Revert "Revert "change SkColorTable to be immutable""

This reverts commit b8162cb840f4cb6002ef68d5ac775c6a122c52a9.

Fixed was call-sites in benches that used the (now gone) setIsOpaque api.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/26572006

git-svn-id: http://skia.googlecode.com/svn/trunk@11695 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/BitmapBench.cpp b/bench/BitmapBench.cpp
index 9b3a6a2..982c917 100644
--- a/bench/BitmapBench.cpp
+++ b/bench/BitmapBench.cpp
@@ -33,9 +33,9 @@
     return convByteTo6(r) * 36 + convByteTo6(g) * 6 + convByteTo6(b);
 }
 
-static void convertToIndex666(const SkBitmap& src, SkBitmap* dst) {
-    SkColorTable* ctable = new SkColorTable(216);
-    SkPMColor* colors = ctable->lockColors();
+static void convertToIndex666(const SkBitmap& src, SkBitmap* dst, bool isOpaque) {
+    SkPMColor storage[216];
+    SkPMColor* colors = storage;
     // rrr ggg bbb
     for (int r = 0; r < 6; r++) {
         int rr = conv6ToByte(r);
@@ -47,7 +47,8 @@
             }
         }
     }
-    ctable->unlockColors(true);
+    SkColorTable* ctable = new SkColorTable(storage, 216,
+                         isOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType);
     dst->setConfig(SkBitmap::kIndex8_Config, src.width(), src.height());
     dst->allocPixels(ctable);
     ctable->unref();
@@ -120,14 +121,11 @@
         onDrawIntoBitmap(bm);
 
         if (SkBitmap::kIndex8_Config == fConfig) {
-            convertToIndex666(bm, &fBitmap);
+            convertToIndex666(bm, &fBitmap, fIsOpaque);
         } else {
             fBitmap = bm;
         }
 
-        if (fBitmap.getColorTable()) {
-            fBitmap.getColorTable()->setIsOpaque(fIsOpaque);
-        }
         fBitmap.setIsOpaque(fIsOpaque);
         fBitmap.setIsVolatile(fIsVolatile);
     }