Fix fragment index expunging.

Change-Id: If37e58dfa998575530305584d3aa756bb5a61d7b
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 20272df..a1cf233 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -1567,6 +1567,12 @@
         return new BackStackEntry(mFragments);
     }
     
+    void invalidateFragmentIndex(int index) {
+        if (mAllLoaderManagers != null) {
+            mAllLoaderManagers.remove(index);
+        }
+    }
+    
     /**
      * Called when a Fragment is being attached to this activity, immediately
      * after the call to its {@link Fragment#onAttach Fragment.onAttach()}
diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java
index 50307d4..4f3043c 100644
--- a/core/java/android/app/FragmentManager.java
+++ b/core/java/android/app/FragmentManager.java
@@ -316,7 +316,6 @@
                             throw new SuperNotCalledException("Fragment " + f
                                     + " did not call through to super.onDetach()");
                         }
-                        f.mActivity.mAllLoaderManagers.remove(f.mIndex);
                         f.mActivity = null;
                     }
             }
@@ -377,6 +376,7 @@
             mAvailIndices = new ArrayList<Integer>();
         }
         mAvailIndices.add(f.mIndex);
+        mActivity.invalidateFragmentIndex(f.mIndex);
         f.clearIndex();
     }