Merge "Make ImageProcessing work." into honeycomb
diff --git a/rsAllocation.cpp b/rsAllocation.cpp
index 6e4c22e..41c9fe2 100644
--- a/rsAllocation.cpp
+++ b/rsAllocation.cpp
@@ -212,6 +212,7 @@
     GLenum type = mType->getElement()->getComponent().getGLType();
     GLenum format = mType->getElement()->getComponent().getGLFormat();
     GLenum target = (GLenum)getGLTarget();
+    rsAssert(mTextureID);
     glBindTexture(target, mTextureID);
     glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
     GLenum t = GL_TEXTURE_2D;
diff --git a/rsThreadIO.cpp b/rsThreadIO.cpp
index 1c6c5ac..001ac55 100644
--- a/rsThreadIO.cpp
+++ b/rsThreadIO.cpp
@@ -53,6 +53,10 @@
         waitForCommand = false;
         //LOGV("playCoreCommands 3 %i %i", cmdID, cmdSize);
 
+        if (cmdID >= (sizeof(gPlaybackFuncs) / sizeof(void *))) {
+            rsAssert(cmdID < (sizeof(gPlaybackFuncs) / sizeof(void *)));
+            LOGE("playCoreCommands error con %p, cmd %i", con, cmdID);
+        }
         gPlaybackFuncs[cmdID](con, data);
         mToCore.next();
     }
diff --git a/rsg_generator.c b/rsg_generator.c
index 1e468bb..4ac5b7f 100644
--- a/rsg_generator.c
+++ b/rsg_generator.c
@@ -219,7 +219,7 @@
         fprintf(f, "};\n\n");
     }
 
-    fprintf(f, "RsPlaybackFunc gPlaybackFuncs[] = {\n");
+    fprintf(f, "RsPlaybackFunc gPlaybackFuncs[%i] = {\n", apiCount + 1);
     fprintf(f, "    NULL,\n");
     for (ct=0; ct < apiCount; ct++) {
         fprintf(f, "    %s%s,\n", "rsp_", apis[ct].name);
@@ -265,7 +265,7 @@
             printFuncDecls(f, "rsi_", 1);
             printPlaybackFuncs(f, "rsp_");
             fprintf(f, "\n\ntypedef void (*RsPlaybackFunc)(Context *, const void *);\n");
-            fprintf(f, "extern RsPlaybackFunc gPlaybackFuncs[];\n");
+            fprintf(f, "extern RsPlaybackFunc gPlaybackFuncs[%i];\n", apiCount + 1);
 
             fprintf(f, "}\n");
             fprintf(f, "}\n");