Fix script init error handling.

Change-Id: I7ceb0af4dfd12db0274985ff658f678d7af829ff
diff --git a/rsScriptC.cpp b/rsScriptC.cpp
index b45366b..a5b1902 100644
--- a/rsScriptC.cpp
+++ b/rsScriptC.cpp
@@ -44,8 +44,10 @@
         BT = NULL;
     }
 #endif
-    mRSC->mHal.funcs.script.invokeFreeChildren(mRSC, this);
-    mRSC->mHal.funcs.script.destroy(mRSC, this);
+    if (mInitialized) {
+        mRSC->mHal.funcs.script.invokeFreeChildren(mRSC, this);
+        mRSC->mHal.funcs.script.destroy(mRSC, this);
+    }
 }
 
 void ScriptC::setupScript(Context *rsc) {
@@ -212,8 +214,11 @@
     bitcodeLen = BT->getTranslatedBitcodeSize();
 #endif
 
-    rsc->mHal.funcs.script.init(rsc, this, resName, cacheDir, bitcode, bitcodeLen, 0);
+    if (!rsc->mHal.funcs.script.init(rsc, this, resName, cacheDir, bitcode, bitcodeLen, 0)) {
+        return false;
+    }
 
+    mInitialized = true;
     mEnviroment.mFragment.set(rsc->getDefaultProgramFragment());
     mEnviroment.mVertex.set(rsc->getDefaultProgramVertex());
     mEnviroment.mFragmentStore.set(rsc->getDefaultProgramStore());