void * RsdCpuScriptImpl::lookupRuntimeStub(void* pContext, char const* name) { RsdCpuScriptImpl *s = (RsdCpuScriptImpl *)pContext; const RsdCpuReference::CpuSymbol *syms = gSyms; const RsdCpuReference::CpuSymbol *sym = nullptr; sym = s->mCtx->symLookup(name); if (!sym) { sym = s->lookupSymbolMath(name); } if (!sym) { while (syms->fnPtr) { if (!strcmp(syms->name, name)) { sym = syms; } syms++; } } if (sym) { s->mIsThreadable &= sym->threadable; return sym->fnPtr; } ALOGE("ScriptC sym lookup failed for %s", name); return nullptr; }
RsdCpuReference::CpuScript * RsdCpuReferenceImpl::createScript(const ScriptC *s, char const *resName, char const *cacheDir, uint8_t const *bitcode, size_t bitcodeSize, uint32_t flags) { RsdCpuScriptImpl *i = new RsdCpuScriptImpl(this, s); if (!i->init(resName, cacheDir, bitcode, bitcodeSize, flags)) { delete i; return NULL; } return i; }
RsdCpuReference::CpuScript * RsdCpuReferenceImpl::createScript(const ScriptC *s, char const *resName, char const *cacheDir, uint8_t const *bitcode, size_t bitcodeSize, uint32_t flags) { RsdCpuScriptImpl *i = new RsdCpuScriptImpl(this, s); if (!i->init(resName, cacheDir, bitcode, bitcodeSize, flags #ifndef RS_COMPATIBILITY_LIB , getBccPluginName() #endif )) { delete i; return NULL; } return i; }