Loading services/core/java/com/android/server/slice/SliceManagerService.java +4 −22 Original line number Original line Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.net.Uri; import android.net.Uri; import android.os.Binder; import android.os.Binder; Loading Loading @@ -395,30 +396,11 @@ public class SliceManagerService extends ISliceManager.Stub { private String getProviderPkg(Uri uri, int user) { private String getProviderPkg(Uri uri, int user) { long ident = Binder.clearCallingIdentity(); long ident = Binder.clearCallingIdentity(); try { try { IBinder token = new Binder(); IActivityManager activityManager = ActivityManager.getService(); ContentProviderHolder holder = null; String providerName = getUriWithoutUserId(uri).getAuthority(); String providerName = getUriWithoutUserId(uri).getAuthority(); try { ProviderInfo provider = mContext.getPackageManager().resolveContentProviderAsUser( try { providerName, 0, getUserIdFromUri(uri, user)); holder = activityManager.getContentProviderExternal( return provider.packageName; providerName, getUserIdFromUri(uri, user), token); if (holder != null && holder.info != null) { return holder.info.packageName; } else { return null; } } finally { if (holder != null && holder.provider != null) { activityManager.removeContentProviderExternal(providerName, token); } } } catch (RemoteException e) { // Can't happen. throw e.rethrowAsRuntimeException(); } } finally { } finally { // I know, the double finally seems ugly, but seems safest for the identity. Binder.restoreCallingIdentity(ident); Binder.restoreCallingIdentity(ident); } } } } Loading Loading
services/core/java/com/android/server/slice/SliceManagerService.java +4 −22 Original line number Original line Diff line number Diff line Loading @@ -42,6 +42,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.net.Uri; import android.net.Uri; import android.os.Binder; import android.os.Binder; Loading Loading @@ -395,30 +396,11 @@ public class SliceManagerService extends ISliceManager.Stub { private String getProviderPkg(Uri uri, int user) { private String getProviderPkg(Uri uri, int user) { long ident = Binder.clearCallingIdentity(); long ident = Binder.clearCallingIdentity(); try { try { IBinder token = new Binder(); IActivityManager activityManager = ActivityManager.getService(); ContentProviderHolder holder = null; String providerName = getUriWithoutUserId(uri).getAuthority(); String providerName = getUriWithoutUserId(uri).getAuthority(); try { ProviderInfo provider = mContext.getPackageManager().resolveContentProviderAsUser( try { providerName, 0, getUserIdFromUri(uri, user)); holder = activityManager.getContentProviderExternal( return provider.packageName; providerName, getUserIdFromUri(uri, user), token); if (holder != null && holder.info != null) { return holder.info.packageName; } else { return null; } } finally { if (holder != null && holder.provider != null) { activityManager.removeContentProviderExternal(providerName, token); } } } catch (RemoteException e) { // Can't happen. throw e.rethrowAsRuntimeException(); } } finally { } finally { // I know, the double finally seems ugly, but seems safest for the identity. Binder.restoreCallingIdentity(ident); Binder.restoreCallingIdentity(ident); } } } } Loading