diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2015-01-28 12:12:36 -0800 |
---|---|---|
committer | Pirama Arumuga Nainar <pirama@google.com> | 2015-01-28 13:48:32 -0800 |
commit | 68173de001c5d41c74828a426651e07cfd9e8710 (patch) | |
tree | 4818ac1390ef677b03cf8c7c20aa0c51f78ab29c /cpu_ref/rsCpuScript.h | |
parent | 11e10825d1159b4c7d56bc8b4faf4164d988da44 (diff) | |
download | rs-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.h | 12 |
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; }; |