diff options
Diffstat (limited to 'cpu_ref/rsCpuExecutable.cpp')
| -rw-r--r-- | cpu_ref/rsCpuExecutable.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/cpu_ref/rsCpuExecutable.cpp b/cpu_ref/rsCpuExecutable.cpp index 5dd31ee6..1a0e70e9 100644 --- a/cpu_ref/rsCpuExecutable.cpp +++ b/cpu_ref/rsCpuExecutable.cpp @@ -538,8 +538,8 @@ ScriptExecutable* ScriptExecutable::createFromSharedObject( goto error; } - // The current implementation does not use the signature, - // reduce name, or combiner. + // The current implementation does not use the signature + // or reduce name. reduceNewDescriptions[i].accumSize = tmpSize; @@ -565,6 +565,19 @@ ScriptExecutable* ScriptExecutable::createFromSharedObject( goto error; } + // Process the (optional) combiner. + if (strcmp(tmpNameCombiner, kNoName)) { + // Lookup the original user-written combiner. + if (!(reduceNewDescriptions[i].combFunc = + (ReduceNewCombinerFunc_t) dlsym(sharedObj, tmpNameCombiner))) { + ALOGE("Failed to find combiner function address for %s(): %s", + tmpNameCombiner, dlerror()); + goto error; + } + } else { + reduceNewDescriptions[i].combFunc = nullptr; + } + // Process the (optional) outconverter. if (strcmp(tmpNameOutConverter, kNoName)) { // Lookup the original user-written outconverter. |
