summaryrefslogtreecommitdiff
path: root/rsScriptC.cpp
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-10-21 14:06:55 -0700
committerJason Sams <rjsams@android.com>2010-10-21 21:17:30 -0700
commit225afd317e101a7be5fe02c0a86361146ea89f05 (patch)
treeaf9ed039287d6a03a6442eb8c8d332f97d0f6e48 /rsScriptC.cpp
parent1c94845e04e974b22edf07d21ca03337bfb23b7c (diff)
downloadrs-225afd317e101a7be5fe02c0a86361146ea89f05.tar.gz
Fix refcounting bugs where the sys refcount
could be corrupted during async type creation. Change-Id: If42828e92990598b0cb5da81c82ea513f94725f2 Fix stack object deletion bug. Change-Id: I2c723aa5ad15e0c99dc9cd0cfbc7db80bace172a
Diffstat (limited to 'rsScriptC.cpp')
-rw-r--r--rsScriptC.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/rsScriptC.cpp b/rsScriptC.cpp
index a2910d7e..165fa715 100644
--- a/rsScriptC.cpp
+++ b/rsScriptC.cpp
@@ -35,8 +35,6 @@ using namespace android::renderscript;
ScriptC::ScriptC(Context *rsc) : Script(rsc)
{
- mAllocFile = __FILE__;
- mAllocLine = __LINE__;
mBccScript = NULL;
memset(&mProgram, 0, sizeof(mProgram));
}
@@ -524,11 +522,11 @@ RsScript rsi_ScriptCCreate(Context * rsc)
{
ScriptCState *ss = &rsc->mScriptC;
- ObjectBaseRef<ScriptC> s = ss->mScript.get();
+ ObjectBaseRef<ScriptC> s(ss->mScript);
ss->mScript.clear();
+ s->incUserRef();
ss->runCompiler(rsc, s.get());
- s->incUserRef();
ss->clear(rsc);
return s.get();
}