summaryrefslogtreecommitdiff
path: root/cpu_ref/rsCpuExecutable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpu_ref/rsCpuExecutable.cpp')
-rw-r--r--cpu_ref/rsCpuExecutable.cpp17
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.