am 01588aca: Merge "Preserve invariant that sService is not null (although NfcAdapter.get() can return null)" into gingerbread

* commit '01588acaf87cfe9916239b7b26cc6810e0097138':
  Preserve invariant that sService is not null (although NfcAdapter.get() can return null)
This commit is contained in:
Nick Pelly
2011-07-13 22:38:44 -07:00
committed by Android Git Automerger

View File

@@ -67,7 +67,11 @@ public final class NfcAdapterExtras {
/** get service handles */
private static void initService() {
sService = sAdapter.getNfcAdapterExtrasInterface();
final INfcAdapterExtras service = sAdapter.getNfcAdapterExtrasInterface();
if (service != null) {
// Leave stale rather than receive a null value.
sService = service;
}
}
/**
@@ -84,18 +88,19 @@ public final class NfcAdapterExtras {
if (sSingleton == null) {
try {
sAdapter = adapter;
sRouteOff = new CardEmulationRoute(CardEmulationRoute.ROUTE_OFF, null);
sSingleton = new NfcAdapterExtras();
sEmbeddedEe = new NfcExecutionEnvironment(sSingleton);
sRouteOff = new CardEmulationRoute(CardEmulationRoute.ROUTE_OFF, null);
sRouteOnWhenScreenOn = new CardEmulationRoute(
CardEmulationRoute.ROUTE_ON_WHEN_SCREEN_ON, sEmbeddedEe);
initService();
} finally {
if (sSingleton == null) {
sService = null;
sEmbeddedEe = null;
sRouteOff = null;
if (sService == null) {
sRouteOnWhenScreenOn = null;
sRouteOff = null;
sEmbeddedEe = null;
sSingleton = null;
sAdapter = null;
}
}
}