diff options
| -rw-r--r-- | core/java/android/view/LayoutInflater.java | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/core/java/android/view/LayoutInflater.java b/core/java/android/view/LayoutInflater.java index 322812738cc2..194c01357613 100644 --- a/core/java/android/view/LayoutInflater.java +++ b/core/java/android/view/LayoutInflater.java @@ -348,6 +348,7 @@ public abstract class LayoutInflater {      public View inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot) {          synchronized (mConstructorArgs) {              final AttributeSet attrs = Xml.asAttributeSet(parser); +            Context lastContext = (Context)mConstructorArgs[0];              mConstructorArgs[0] = mContext;              View result = root; @@ -432,12 +433,12 @@ public abstract class LayoutInflater {                          + ": " + e.getMessage());                  ex.initCause(e);                  throw ex; +            } finally { +                // Don't retain static reference on context. +                mConstructorArgs[0] = lastContext; +                mConstructorArgs[1] = null;              } -            // Told retain static reference on context. -            mConstructorArgs[0] = null; -            mConstructorArgs[1] = null; -              return result;          }      }  |