Fix 2 NPEs in the Browser.
The first was from freeMemory getting a tab back that had already been freed.
This is a really hard case to reproduce but it appears that it can happen. So
just check for a null mMainView before trying to free the tab.
The second was a null mTabOverview during the onAnimationStart method when
animating to the tab overview. I think this is caused by message delays not
being accurate enough to ensure the overview has been created. A check for null
fixes the problem for now but I am working on a better solution to ensure
animation message order.
diff --git a/src/com/android/browser/TabControl.java b/src/com/android/browser/TabControl.java
index 581d144..575be8d 100644
--- a/src/com/android/browser/TabControl.java
+++ b/src/com/android/browser/TabControl.java
@@ -709,8 +709,9 @@
t = mTabQueue.get(i++);
} while (i < queueSize && t != null && t.mMainView == null);
- // Don't do anything if the last remaining tab is the current one.
- if (t == getCurrentTab()) {
+ // Don't do anything if the last remaining tab is the current one or if
+ // the last tab has been freed already.
+ if (t == getCurrentTab() || t.mMainView == null) {
return null;
}