summaryrefslogtreecommitdiff
path: root/libs/rs/rsScriptC.cpp
diff options
context:
space:
mode:
author Jason Sams <rjsams@android.com> 2009-09-24 14:55:38 -0700
committer Jason Sams <rjsams@android.com> 2009-09-24 14:55:38 -0700
commite60446b9c1a0f4f48372a36de5b01a2ddb8121e3 (patch)
tree8d9d7807a3aa295e2445095ab646a611711f7b72 /libs/rs/rsScriptC.cpp
parentb6f2b131c42e5148b07c7cfe22b8bd5bc5b4ad4b (diff)
Fix invokables to make sure script pointers are setup before invoking function calls. Reduce app startup time up to 1s.
Diffstat (limited to 'libs/rs/rsScriptC.cpp')
-rw-r--r--libs/rs/rsScriptC.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 108ae5a911c6..bff337c0b90d 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -46,6 +46,15 @@ ScriptC::~ScriptC()
}
}
+void ScriptC::setupScript()
+{
+ for (int ct=0; ct < MAX_SCRIPT_BANKS; ct++) {
+ if (mProgram.mSlotPointers[ct]) {
+ *mProgram.mSlotPointers[ct] = mSlots[ct]->getPtr();
+ }
+ }
+}
+
bool ScriptC::run(Context *rsc, uint32_t launchIndex)
{
@@ -66,12 +75,7 @@ bool ScriptC::run(Context *rsc, uint32_t launchIndex)
mEnviroment.mStartTimeMillis
= nanoseconds_to_milliseconds(systemTime(SYSTEM_TIME_MONOTONIC));
}
-
- for (int ct=0; ct < MAX_SCRIPT_BANKS; ct++) {
- if (mProgram.mSlotPointers[ct]) {
- *mProgram.mSlotPointers[ct] = mSlots[ct]->getPtr();
- }
- }
+ setupScript();
bool ret = false;
tls->mScript = this;