summaryrefslogtreecommitdiffstats
path: root/libs/rs
diff options
context:
space:
mode:
authorShih-wei Liao <sliao@google.com>2010-07-20 16:43:25 -0700
committerShih-wei Liao <sliao@google.com>2010-07-20 16:43:25 -0700
commit07876467556a4603b8186ccf60fa8fc3d55a7d5a (patch)
tree96b5aaf9e7e4d51891855bad09864bd22bed5bb5 /libs/rs
parentaf8976e5b74b32ea9fcadc5af55b423860a1d8e7 (diff)
downloadframeworks_base-07876467556a4603b8186ccf60fa8fc3d55a7d5a.zip
frameworks_base-07876467556a4603b8186ccf60fa8fc3d55a7d5a.tar.gz
frameworks_base-07876467556a4603b8186ccf60fa8fc3d55a7d5a.tar.bz2
Use bccGetExportVars to get mFieldCount, instead of hardwiring "100" in calloc.
Change-Id: I6023b93865f785779b966acf03bf120078ac3c74
Diffstat (limited to 'libs/rs')
-rw-r--r--libs/rs/rsScriptC.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 5261f57..7c7b037 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -390,9 +390,13 @@ void ScriptCState::runCompiler(Context *rsc, ScriptC *s)
bccGetExportFuncs(s->mBccScript, NULL, s->mEnviroment.mInvokeFunctionCount, (BCCvoid **) s->mEnviroment.mInvokeFunctions);
}
- s->mEnviroment.mFieldAddress = (void **)calloc(100, sizeof(void *));
- bccGetExportVars(s->mBccScript, (BCCsizei *)&s->mEnviroment.mFieldCount,
- 100, s->mEnviroment.mFieldAddress);
+ bccGetExportVars(s->mBccScript, (BCCsizei*) &s->mEnviroment.mFieldCount, 0, NULL);
+ if(s->mEnviroment.mFieldCount <= 0)
+ s->mEnviroment.mFieldAddress = NULL;
+ else {
+ s->mEnviroment.mFieldAddress = (void **) calloc(s->mEnviroment.mFieldCount, sizeof(void *));
+ bccGetExportVars(s->mBccScript, NULL, s->mEnviroment.mFieldCount, (BCCvoid **) s->mEnviroment.mFieldAddress);
+ }
//for (int ct2=0; ct2 < s->mEnviroment.mFieldCount; ct2++ ) {
//LOGE("Script field %i = %p", ct2, s->mEnviroment.mFieldAddress[ct2]);
//}