diff options
author | Yang Ni <yangni@google.com> | 2015-04-01 02:19:41 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-04-01 02:19:41 +0000 |
commit | 249e6c8cd829f4de16cbdebd56b123d0bc0b88a6 (patch) | |
tree | f60ee7cbdf699784fd5669b18389bd738d11a154 /rs | |
parent | c09ccc5631d61f94200df2bb37262364bb598211 (diff) | |
parent | 02dff422a7734764e3ce00179f62ba115f2081a5 (diff) | |
download | frameworks_base-249e6c8cd829f4de16cbdebd56b123d0bc0b88a6.zip frameworks_base-249e6c8cd829f4de16cbdebd56b123d0bc0b88a6.tar.gz frameworks_base-249e6c8cd829f4de16cbdebd56b123d0bc0b88a6.tar.bz2 |
am 02dff422: am 5db6f1fa: am 63dde9c8: Merge "Fix value size data type in closure creation."
* commit '02dff422a7734764e3ce00179f62ba115f2081a5':
Fix value size data type in closure creation.
Diffstat (limited to 'rs')
-rw-r--r-- | rs/java/android/renderscript/ScriptGroup2.java | 9 | ||||
-rw-r--r-- | rs/jni/android_renderscript_RenderScript.cpp | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/rs/java/android/renderscript/ScriptGroup2.java b/rs/java/android/renderscript/ScriptGroup2.java index a5da519..9d73ac4 100644 --- a/rs/java/android/renderscript/ScriptGroup2.java +++ b/rs/java/android/renderscript/ScriptGroup2.java @@ -58,6 +58,7 @@ public class ScriptGroup2 extends BaseObj { */ public static class Closure extends BaseObj { + private Object[] mArgs; private Allocation mReturnValue; private Map<Script.FieldID, Object> mBindings; @@ -76,8 +77,9 @@ public class ScriptGroup2 extends BaseObj { Object[] args, Map<Script.FieldID, Object> globals) { super(0, rs); + mArgs = args; mReturnValue = Allocation.createTyped(rs, returnType); - mBindings = new HashMap<Script.FieldID, Object>(); + mBindings = globals; mGlobalFuture = new HashMap<Script.FieldID, Future>(); int numValues = args.length + globals.size(); @@ -126,7 +128,8 @@ public class ScriptGroup2 extends BaseObj { super(0, rs); mFP = FieldPacker.createFieldPack(args); - mBindings = new HashMap<Script.FieldID, Object>(); + mArgs = args; + mBindings = globals; mGlobalFuture = new HashMap<Script.FieldID, Future>(); int numValues = globals.size(); @@ -224,11 +227,13 @@ public class ScriptGroup2 extends BaseObj { } void setArg(int index, Object obj) { + mArgs[index] = obj; ValueAndSize vs = new ValueAndSize(mRS, obj); mRS.nClosureSetArg(getID(mRS), index, vs.value, vs.size); } void setGlobal(Script.FieldID fieldID, Object obj) { + mBindings.put(fieldID, obj); ValueAndSize vs = new ValueAndSize(mRS, obj); mRS.nClosureSetGlobal(getID(mRS), fieldID.getID(mRS), vs.value, vs.size); } diff --git a/rs/jni/android_renderscript_RenderScript.cpp b/rs/jni/android_renderscript_RenderScript.cpp index 886845c..40fad38 100644 --- a/rs/jni/android_renderscript_RenderScript.cpp +++ b/rs/jni/android_renderscript_RenderScript.cpp @@ -367,7 +367,7 @@ nClosureCreate(JNIEnv *_env, jobject _this, jlong con, jlong kernelID, return (jlong)(uintptr_t)rsClosureCreate( (RsContext)con, (RsScriptKernelID)kernelID, (RsAllocation)returnValue, fieldIDs, (size_t)fieldIDs_length, values, (size_t)values_length, - (size_t*)sizes, (size_t)sizes_length, + (int*)sizes, (size_t)sizes_length, depClosures, (size_t)depClosures_length, depFieldIDs, (size_t)depFieldIDs_length); } @@ -400,7 +400,7 @@ nInvokeClosureCreate(JNIEnv *_env, jobject _this, jlong con, jlong invokeID, return (jlong)(uintptr_t)rsInvokeClosureCreate( (RsContext)con, (RsScriptInvokeID)invokeID, jParams, jParamLength, fieldIDs, (size_t)fieldIDs_length, values, (size_t)values_length, - (size_t*)sizes, (size_t)sizes_length); + (int*)sizes, (size_t)sizes_length); } static void |