Handle recursive call into GrResourceCache::purgeAsNeeded

Review URL: http://codereview.appspot.com/4850042/



git-svn-id: http://skia.googlecode.com/svn/trunk@2046 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrResourceCache.h b/gpu/src/GrResourceCache.h
index a190004..e431f1c 100644
--- a/gpu/src/GrResourceCache.h
+++ b/gpu/src/GrResourceCache.h
@@ -255,7 +255,7 @@
 private:
     void internalDetach(GrResourceEntry*, bool);
     void attachToHead(GrResourceEntry*, bool);
-    void purgeAsNeeded();   // uses kFreeResource_DeleteMode
+    void purgeAsNeeded();
 
     class Key;
     GrTHashTable<GrResourceEntry, Key, 8> fCache;
@@ -270,9 +270,13 @@
 
     // our current stats, related to our budget
     int fEntryCount;
+    int fUnlockedEntryCount;
     size_t fEntryBytes;
     int fClientDetachedCount;
     size_t fClientDetachedBytes;
+    
+    // prevents recursive purging
+    bool fPurging;
 };
 
 ///////////////////////////////////////////////////////////////////////////////