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
diff --git a/cpu_ref/rsCpuScript.h b/cpu_ref/rsCpuScript.h
index b84abb3..873a79a 100644
--- a/cpu_ref/rsCpuScript.h
+++ b/cpu_ref/rsCpuScript.h
@@ -73,7 +73,9 @@
                    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 @@
   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 @@
   std::vector<const char *> mPragmaKeys;
   std::vector<const char *> mPragmaValues;
 
+  bool mIsThreadable;
+
   Context* mRS;
 };