From c55de66ad20c7834b04d605e8704dd2a0e3d23fa Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Sun, 23 Jan 2011 17:48:45 -0800 Subject: Cleanup script init to fix bogus log printing and reduce memory churn. Change-Id: I0bf5392102e3d59fea81f5f9f832887113602b7f --- libs/rs/rsScriptC.cpp | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) (limited to 'libs/rs/rsScriptC.cpp') diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp index eecfa16b43a4..3858e1cfc0de 100644 --- a/libs/rs/rsScriptC.cpp +++ b/libs/rs/rsScriptC.cpp @@ -421,21 +421,9 @@ void ScriptC::Invoke(Context *rsc, uint32_t slot, const void *data, uint32_t len } ScriptCState::ScriptCState() { - mScript.clear(); } ScriptCState::~ScriptCState() { - mScript.clear(); -} - -void ScriptCState::init(Context *rsc) { - clear(rsc); -} - -void ScriptCState::clear(Context *rsc) { - rsAssert(rsc); - mScript.clear(); - mScript.set(new ScriptC(rsc)); } static void* symbolLookup(void* pContext, char const* name) { @@ -608,8 +596,6 @@ namespace android { namespace renderscript { void rsi_ScriptCBegin(Context * rsc) { - ScriptCState *ss = &rsc->mScriptC; - ss->clear(rsc); } void rsi_ScriptCSetText(Context *rsc, const char *text, uint32_t len) { @@ -618,8 +604,8 @@ void rsi_ScriptCSetText(Context *rsc, const char *text, uint32_t len) { char *t = (char *)malloc(len + 1); memcpy(t, text, len); t[len] = 0; - ss->mScript->mEnviroment.mScriptText = t; - ss->mScript->mEnviroment.mScriptTextLength = len; + ss->mScriptText = t; + ss->mScriptLen = len; } @@ -630,17 +616,19 @@ RsScript rsi_ScriptCCreate(Context *rsc, { ScriptCState *ss = &rsc->mScriptC; - ObjectBaseRef s(ss->mScript); - ss->mScript.clear(); + ScriptC *s = new ScriptC(rsc); + s->mEnviroment.mScriptText = ss->mScriptText; + s->mEnviroment.mScriptTextLength = ss->mScriptLen; + ss->mScriptText = NULL; + ss->mScriptLen = 0; s->incUserRef(); - if (!ss->runCompiler(rsc, s.get(), resName, cacheDir)) { + if (!ss->runCompiler(rsc, s, resName, cacheDir)) { // Error during compile, destroy s and return null. - s->zeroUserRef(); + delete s; return NULL; } - ss->clear(rsc); - return s.get(); + return s; } } -- cgit v1.2.3-59-g8ed1b