Switch the dimensions array to use uint32_t instead of size_t.

size_t isn't safe, since we pack/unpack the array as a 32-bit int array, but
that is the wrong type for 64-bit. Switching to uint32_t is better, since we
only support 1 dimension today, and won't need many more than that even for
complex cases in the future.

Change-Id: Ie0dda264a9398b0e385e0f9ee0a91cda08325dbc
diff --git a/cpp/rsDispatch.h b/cpp/rsDispatch.h
index ca708ad..614f5a4 100644
--- a/cpp/rsDispatch.h
+++ b/cpp/rsDispatch.h
@@ -74,7 +74,7 @@
 typedef void (*ScriptSetVarDFnPtr) (RsContext, RsScript, uint32_t, double);
 typedef void (*ScriptSetVarVFnPtr) (RsContext, RsScript, uint32_t, const void*, size_t);
 typedef void (*ScriptGetVarVFnPtr) (RsContext, RsScript, uint32_t, void*, size_t);
-typedef void (*ScriptSetVarVEFnPtr) (RsContext, RsScript, uint32_t, const void*, size_t, RsElement, const size_t*, size_t);
+typedef void (*ScriptSetVarVEFnPtr) (RsContext, RsScript, uint32_t, const void*, size_t, RsElement, const uint32_t*, size_t);
 typedef RsScript (*ScriptCCreateFnPtr) (RsContext, const char*, size_t, const char*, size_t, const char*, size_t);
 typedef RsScript (*ScriptIntrinsicCreateFnPtr) (RsContext, uint32_t id, RsElement);
 typedef RsScriptKernelID (*ScriptKernelIDCreateFnPtr) (RsContext, RsScript, int, int);
diff --git a/cpu_ref/rsCpuIntrinsic.cpp b/cpu_ref/rsCpuIntrinsic.cpp
index cda40f0..7195714 100644
--- a/cpu_ref/rsCpuIntrinsic.cpp
+++ b/cpu_ref/rsCpuIntrinsic.cpp
@@ -54,7 +54,7 @@
 
 void RsdCpuScriptIntrinsic::setGlobalVarWithElemDims(uint32_t slot, const void *data,
                                                      size_t dataLength, const Element *e,
-                                                     const size_t *dims, size_t dimLength) {
+                                                     const uint32_t *dims, size_t dimLength) {
     mCtx->getContext()->setError(RS_ERROR_FATAL_DRIVER,
                                  "Unexpected RsdCpuScriptIntrinsic::setGlobalVarWithElemDims");
 }
diff --git a/cpu_ref/rsCpuIntrinsic.h b/cpu_ref/rsCpuIntrinsic.h
index 917b235..1cf889c 100644
--- a/cpu_ref/rsCpuIntrinsic.h
+++ b/cpu_ref/rsCpuIntrinsic.h
@@ -49,7 +49,7 @@
 
     virtual void setGlobalVar(uint32_t slot, const void *data, size_t dataLength);
     virtual void setGlobalVarWithElemDims(uint32_t slot, const void *data, size_t dataLength,
-                                  const Element *e, const size_t *dims, size_t dimLength);
+                                  const Element *e, const uint32_t *dims, size_t dimLength);
     virtual void setGlobalBind(uint32_t slot, Allocation *data);
     virtual void setGlobalObj(uint32_t slot, ObjectBase *data);
 
diff --git a/cpu_ref/rsCpuScript.cpp b/cpu_ref/rsCpuScript.cpp
index 29b1bf8..81e70f0 100644
--- a/cpu_ref/rsCpuScript.cpp
+++ b/cpu_ref/rsCpuScript.cpp
@@ -992,7 +992,7 @@
 
 void RsdCpuScriptImpl::setGlobalVarWithElemDims(uint32_t slot, const void *data, size_t dataLength,
                                                 const Element *elem,
-                                                const size_t *dims, size_t dimLength) {
+                                                const uint32_t *dims, size_t dimLength) {
 
 #ifndef RS_COMPATIBILITY_LIB
     int32_t *destPtr = reinterpret_cast<int32_t *>(
@@ -1015,14 +1015,14 @@
         // First do the increment loop.
         size_t stride = elem->getSizeBytes();
         const char *cVal = reinterpret_cast<const char *>(data);
-        for (size_t i = 0; i < dims[0]; i++) {
+        for (uint32_t i = 0; i < dims[0]; i++) {
             elem->incRefs(cVal);
             cVal += stride;
         }
 
         // Decrement loop comes after (to prevent race conditions).
         char *oldVal = reinterpret_cast<char *>(destPtr);
-        for (size_t i = 0; i < dims[0]; i++) {
+        for (uint32_t i = 0; i < dims[0]; i++) {
             elem->decRefs(oldVal);
             oldVal += stride;
         }
diff --git a/cpu_ref/rsCpuScript.h b/cpu_ref/rsCpuScript.h
index 151120d..7531a86 100644
--- a/cpu_ref/rsCpuScript.h
+++ b/cpu_ref/rsCpuScript.h
@@ -82,7 +82,7 @@
     virtual void setGlobalVar(uint32_t slot, const void *data, size_t dataLength);
     virtual void getGlobalVar(uint32_t slot, void *data, size_t dataLength);
     virtual void setGlobalVarWithElemDims(uint32_t slot, const void *data, size_t dataLength,
-                                  const Element *e, const size_t *dims, size_t dimLength);
+                                  const Element *e, const uint32_t *dims, size_t dimLength);
     virtual void setGlobalBind(uint32_t slot, Allocation *data);
     virtual void setGlobalObj(uint32_t slot, ObjectBase *data);
 
diff --git a/cpu_ref/rsd_cpu.h b/cpu_ref/rsd_cpu.h
index ac4cf31..675bb97 100644
--- a/cpu_ref/rsd_cpu.h
+++ b/cpu_ref/rsd_cpu.h
@@ -81,7 +81,7 @@
         virtual void setGlobalVar(uint32_t slot, const void *data, size_t dataLength) = 0;
         virtual void getGlobalVar(uint32_t slot, void *data, size_t dataLength) = 0;
         virtual void setGlobalVarWithElemDims(uint32_t slot, const void *data, size_t dataLength,
-                                      const Element *e, const size_t *dims, size_t dimLength) = 0;
+                                      const Element *e, const uint32_t *dims, size_t dimLength) = 0;
         virtual void setGlobalBind(uint32_t slot, Allocation *data) = 0;
         virtual void setGlobalObj(uint32_t slot, ObjectBase *obj) = 0;
 
diff --git a/driver/rsdBcc.cpp b/driver/rsdBcc.cpp
index 212184e..60532df 100644
--- a/driver/rsdBcc.cpp
+++ b/driver/rsdBcc.cpp
@@ -117,7 +117,7 @@
 void rsdScriptSetGlobalVarWithElemDims(const Context *dc, const Script *s,
                                        uint32_t slot, void *data, size_t dataLength,
                                        const android::renderscript::Element *elem,
-                                       const size_t *dims, size_t dimLength) {
+                                       const uint32_t *dims, size_t dimLength) {
     RsdCpuReference::CpuScript *cs = (RsdCpuReference::CpuScript *)s->mHal.drv;
     cs->setGlobalVarWithElemDims(slot, data, dataLength, elem, dims, dimLength);
 }
diff --git a/driver/rsdBcc.h b/driver/rsdBcc.h
index 9a194cb..2917bce 100644
--- a/driver/rsdBcc.h
+++ b/driver/rsdBcc.h
@@ -61,7 +61,7 @@
                                        uint32_t slot, void *data,
                                        size_t dataLength,
                                        const android::renderscript::Element *,
-                                       const size_t *dims,
+                                       const uint32_t *dims,
                                        size_t dimLength);
 void rsdScriptSetGlobalBind(const android::renderscript::Context *,
                             const android::renderscript::Script *,
diff --git a/rs.spec b/rs.spec
index 62a3646..24c06ed 100644
--- a/rs.spec
+++ b/rs.spec
@@ -343,7 +343,7 @@
     param uint32_t slot
     param const void * data
     param RsElement e
-    param const size_t * dims
+    param const uint32_t * dims
     }
 
 
diff --git a/rsScript.cpp b/rsScript.cpp
index 835ded1..327e7d9 100644
--- a/rsScript.cpp
+++ b/rsScript.cpp
@@ -252,7 +252,7 @@
 
 void rsi_ScriptSetVarVE(Context *rsc, RsScript vs, uint32_t slot,
                         const void *data, size_t len, RsElement ve,
-                        const size_t *dims, size_t dimLen) {
+                        const uint32_t *dims, size_t dimLen) {
     Script *s = static_cast<Script *>(vs);
     Element *e = static_cast<Element *>(ve);
     s->setVar(slot, data, len, e, dims, dimLen);
diff --git a/rs_hal.h b/rs_hal.h
index 9ecbf3a..4c740ae 100644
--- a/rs_hal.h
+++ b/rs_hal.h
@@ -130,7 +130,7 @@
                                          void *data,
                                          size_t dataLength,
                                          const Element *e,
-                                         const size_t *dims,
+                                         const uint32_t *dims,
                                          size_t dimLength);
         void (*setGlobalBind)(const Context *rsc, const Script *s,
                               uint32_t slot,