summaryrefslogtreecommitdiffstats
path: root/rs
diff options
context:
space:
mode:
authorYang Ni <yangni@google.com>2015-04-01 02:19:41 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-01 02:19:41 +0000
commit249e6c8cd829f4de16cbdebd56b123d0bc0b88a6 (patch)
treef60ee7cbdf699784fd5669b18389bd738d11a154 /rs
parentc09ccc5631d61f94200df2bb37262364bb598211 (diff)
parent02dff422a7734764e3ce00179f62ba115f2081a5 (diff)
downloadframeworks_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.java9
-rw-r--r--rs/jni/android_renderscript_RenderScript.cpp4
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