In SkGPipe, set a limit on the amount of flattenables cached.
Also fix a type in gmmain.
Review URL: https://codereview.appspot.com/6351061
git-svn-id: http://skia.googlecode.com/svn/trunk@4473 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/pipe/SkGPipeRead.cpp b/src/pipe/SkGPipeRead.cpp
index a3afc03..9739ac0 100644
--- a/src/pipe/SkGPipeRead.cpp
+++ b/src/pipe/SkGPipeRead.cpp
@@ -94,9 +94,14 @@
}
void defFlattenable(PaintFlats pf, int index) {
- SkASSERT(index == fFlatArray.count() + 1);
+ index--;
SkFlattenable* obj = fReader->readFlattenable();
- *fFlatArray.append() = obj;
+ if (fFlatArray.count() == index) {
+ *fFlatArray.append() = obj;
+ } else {
+ SkSafeUnref(fFlatArray[index]);
+ fFlatArray[index] = obj;
+ }
}
void addBitmap(int index) {