From dd39fdfe99a08b0bbb03eba8f32cad4018271def Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Tue, 22 Nov 2011 12:49:11 -0800 Subject: Fix script init error handling. Change-Id: I7ceb0af4dfd12db0274985ff658f678d7af829ff --- libs/rs/rsScriptC.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'libs/rs/rsScriptC.cpp') diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp index b45366beb109..a5b1902765bc 100644 --- a/libs/rs/rsScriptC.cpp +++ b/libs/rs/rsScriptC.cpp @@ -44,8 +44,10 @@ ScriptC::~ScriptC() { 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 @@ bool ScriptC::runCompiler(Context *rsc, 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()); -- cgit v1.2.3-59-g8ed1b