diff options
Diffstat (limited to 'rs')
-rw-r--r-- | rs/java/android/renderscript/FieldPacker.java | 7 | ||||
-rw-r--r-- | rs/jni/android_renderscript_RenderScript.cpp | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/rs/java/android/renderscript/FieldPacker.java b/rs/java/android/renderscript/FieldPacker.java index dccc1ac..9048c31 100644 --- a/rs/java/android/renderscript/FieldPacker.java +++ b/rs/java/android/renderscript/FieldPacker.java @@ -37,10 +37,15 @@ public class FieldPacker { } public FieldPacker(byte[] data) { - mPos = 0; + // Advance mPos to the end of the buffer, since we are copying in the + // full data input. + mPos = data.length; mLen = data.length; mData = data; mAlignment = new BitSet(); + // TODO: We should either have an actual FieldPacker copy constructor + // or drop support for computing alignment like this. As it stands, + // subAlign() can never work correctly for copied FieldPacker objects. } public void align(int v) { diff --git a/rs/jni/android_renderscript_RenderScript.cpp b/rs/jni/android_renderscript_RenderScript.cpp index af2e3bf..5fe631b 100644 --- a/rs/jni/android_renderscript_RenderScript.cpp +++ b/rs/jni/android_renderscript_RenderScript.cpp @@ -1054,7 +1054,7 @@ nScriptSetVarVE(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, jint dimsLen = _env->GetArrayLength(dims) * sizeof(int); jint *dimsPtr = _env->GetIntArrayElements(dims, NULL); rsScriptSetVarVE((RsContext)con, (RsScript)script, slot, ptr, len, (RsElement)elem, - (const size_t*) dimsPtr, dimsLen); + (const uint32_t*) dimsPtr, dimsLen); _env->ReleaseByteArrayElements(data, ptr, JNI_ABORT); _env->ReleaseIntArrayElements(dims, dimsPtr, JNI_ABORT); } |