diff options
Diffstat (limited to 'libs/rs/rsScriptC.cpp')
-rw-r--r-- | libs/rs/rsScriptC.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp index 507430dfabc9..0ae85cba6100 100644 --- a/libs/rs/rsScriptC.cpp +++ b/libs/rs/rsScriptC.cpp @@ -420,7 +420,14 @@ void ScriptCState::runCompiler(Context *rsc, ScriptC *s, const char *resName, co } else { // bccReadBC returns a neagative value: Didn't read any script, // So, use cached binary instead - bccLoadBinary(s->mBccScript); + if (bccLoadBinary(s->mBccScript)) { // LoadBinary fails ==> Recompile + bccReadBC(s->mBccScript, + s->mEnviroment.mScriptText, + s->mEnviroment.mScriptTextLength, + NULL, + cacheDir); + bccCompileBC(s->mBccScript); + } } bccGetScriptLabel(s->mBccScript, "root", (BCCvoid**) &s->mProgram.mRoot); bccGetScriptLabel(s->mBccScript, "init", (BCCvoid**) &s->mProgram.mInit); |