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,