summaryrefslogtreecommitdiff
path: root/cpu_ref/rsCpuScript.h
diff options
context:
space:
mode:
authorPirama Arumuga Nainar <pirama@google.com>2015-01-28 12:12:36 -0800
committerPirama Arumuga Nainar <pirama@google.com>2015-01-28 13:48:32 -0800
commit68173de001c5d41c74828a426651e07cfd9e8710 (patch)
tree4818ac1390ef677b03cf8c7c20aa0c51f78ab29c /cpu_ref/rsCpuScript.h
parent11e10825d1159b4c7d56bc8b4faf4164d988da44 (diff)
downloadrs-68173de001c5d41c74828a426651e07cfd9e8710.tar.gz
Mark scripts as threadable or not
bug 19095896 Read embedded flag in .rs.info and use it to mark Scripts as threadable. In compat lib path, scripts are always threadable. Change-Id: I85a3753ffae788dbdec5fd130c20581790c4ee07
Diffstat (limited to 'cpu_ref/rsCpuScript.h')
-rw-r--r--cpu_ref/rsCpuScript.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/cpu_ref/rsCpuScript.h b/cpu_ref/rsCpuScript.h
index b84abb3e..873a79a4 100644
--- a/cpu_ref/rsCpuScript.h
+++ b/cpu_ref/rsCpuScript.h
@@ -73,7 +73,9 @@ class ScriptExecutable {
std::vector<ForEachFunc_t>& forEachFunctions,
std::vector<uint32_t>& forEachSignatures,
std::vector<const char *> &pragmaKeys,
- std::vector<const char *> &pragmaValues) : mRS(RSContext) {
+ std::vector<const char *> &pragmaValues,
+ bool isThreadable)
+ : mIsThreadable(isThreadable), mRS(RSContext) {
mFieldAddress.swap(fieldAddress);
mFieldIsObject.swap(fieldIsObject);
mInvokeFunctions.swap(invokeFunctions);
@@ -114,8 +116,10 @@ class ScriptExecutable {
ForEachFunc_t getForEachFunction(int slot) const { return mForEachFunctions[slot]; }
uint32_t getForEachSignature(int slot) const { return mForEachSignatures[slot]; }
- std::vector<const char *> & getPragmaKeys() { return mPragmaKeys; }
- std::vector<const char *> & getPragmaValues() { return mPragmaValues; }
+ const std::vector<const char *> & getPragmaKeys() const { return mPragmaKeys; }
+ const std::vector<const char *> & getPragmaValues() const { return mPragmaValues; }
+
+ bool getThreadable() const { return mIsThreadable; }
private:
std::vector<void*> mFieldAddress;
@@ -126,6 +130,8 @@ class ScriptExecutable {
std::vector<const char *> mPragmaKeys;
std::vector<const char *> mPragmaValues;
+ bool mIsThreadable;
+
Context* mRS;
};