OSDN Git Service

Fix layoutlib [DO NOT MERGE]
authorDeepanshu Gupta <deepanshu@google.com>
Thu, 17 Oct 2013 03:27:51 +0000 (20:27 -0700)
committerDeepanshu Gupta <deepanshu@google.com>
Tue, 6 May 2014 01:23:15 +0000 (18:23 -0700)
Fix a NPE.

The cherry-pick differs slightly from the original to remove changes not
relevant to the current branch.

Bug: 11140701
Change-Id: Id92fc5359acf6dde1bcdbc781aaf637fdb6eecbf
(cherry-picked from 87be67f91719234cbd381ff0242b5efc8b6aa257)

tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderAction.java

index b20f190..60b20a6 100644 (file)
@@ -246,11 +246,16 @@ public abstract class RenderAction<T extends RenderParams> extends FrameworkReso
      * The counterpart is {@link #setUp()}.
      */
     private void tearDown() {
-        // Make sure to remove static references, otherwise we could not unload the lib
-        mContext.disposeResources();
+        // The context may be null, if there was an error during init().
+        if (mContext != null) {
+            // Make sure to remove static references, otherwise we could not unload the lib
+            mContext.disposeResources();
+        }
 
-        // quit HandlerThread created during this session.
-        HandlerThread_Delegate.cleanUp(sCurrentContext);
+        if (sCurrentContext != null) {
+            // quit HandlerThread created during this session.
+            HandlerThread_Delegate.cleanUp(sCurrentContext);
+        }
 
         // clear the stored ViewConfiguration since the map is per density and not per context.
         ViewConfiguration_Accessor.clearConfigurations();
@@ -261,8 +266,12 @@ public abstract class RenderAction<T extends RenderParams> extends FrameworkReso
         sCurrentContext = null;
 
         Bridge.setLog(null);
-        mContext.getRenderResources().setFrameworkResourceIdProvider(null);
-        mContext.getRenderResources().setLogger(null);
+        if (mContext != null) {
+            mContext.getRenderResources().setFrameworkResourceIdProvider(null);
+            mContext.getRenderResources().setLogger(null);
+        }
+
+        mContext = null;
     }
 
     public static BridgeContext getCurrentContext() {