Merge change 23499 into donut

* changes:
  Fix content provider
This commit is contained in:
Android (Google) Code Review
2009-09-01 19:09:24 -07:00

View File

@@ -7325,6 +7325,8 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
// In this case the provider is a single instance, so we can
// return it right away.
if (r != null) {
if(true) Log.v(TAG, "Adding content provider requested by "+
r.processName +" from process "+cpr.info.processName);
r.conProviders.add(cpr);
cpr.clients.add(r);
} else {
@@ -7435,6 +7437,8 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
mProvidersByName.put(name, cpr);
if (r != null) {
if(true) Log.v(TAG, "Adding content provider requested by "+
r.processName +" from process "+cpr.info.processName);
r.conProviders.add(cpr);
cpr.clients.add(r);
} else {
@@ -7490,7 +7494,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
ContentProviderRecord cpr = (ContentProviderRecord)mProvidersByName.get(name);
if(cpr == null) {
//remove from mProvidersByClass
if(localLOGV) Log.v(TAG, name+" content provider not found in providers list");
if(true) Log.v(TAG, name+" content provider not found in providers list");
return;
}
final ProcessRecord r = getRecordForAppLocked(caller);
@@ -7501,11 +7505,11 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
}
//update content provider record entry info
ContentProviderRecord localCpr = (ContentProviderRecord) mProvidersByClass.get(cpr.info.name);
if(localLOGV) Log.v(TAG, "Removing content provider requested by "+
r.info.processName+" from process "+localCpr.appInfo.processName);
if(localCpr.appInfo.processName == r.info.processName) {
if(true) Log.v(TAG, "Removing content provider requested by "+
r.processName+" from process "+localCpr.info.processName);
if(localCpr.app == r) {
//should not happen. taken care of as a local provider
if(localLOGV) Log.v(TAG, "local provider doing nothing Ignoring other names");
if(true) Log.v(TAG, "local provider doing nothing Ignoring other names");
return;
} else {
localCpr.clients.remove(r);