Merge "Increment sys ref count of input/output Allocations"
diff --git a/driver/rsdRuntimeStubs.cpp b/driver/rsdRuntimeStubs.cpp
index 504f098..74c7918 100644
--- a/driver/rsdRuntimeStubs.cpp
+++ b/driver/rsdRuntimeStubs.cpp
@@ -683,10 +683,23 @@
     Allocation* inputs[RS_KERNEL_MAX_ARGUMENTS];
     for (int i = 0; i < numInputs; i++) {
         inputs[i] = (Allocation*)allocs[i].p;
+        CHECK_OBJ(inputs[i]);
+        inputs[i]->incSysRef();
     }
-    Allocation* out = hasOutput ? (Allocation*)allocs[numInputs].p : nullptr;
+    Allocation* out = nullptr;
+    if (hasOutput) {
+        out = (Allocation*)allocs[numInputs].p;
+        CHECK_OBJ(out);
+        out->incSysRef();
+    }
     rsrForEach(rsc, s, slot, numInputs, numInputs > 0 ? inputs : nullptr, out,
                nullptr, 0, (RsScriptCall*)options);
+    for (int i = 0; i < numInputs; i++) {
+        inputs[i]->decSysRef();
+    }
+    if (hasOutput) {
+        out->decSysRef();
+    }
 }
 
 void __attribute__((overloadable)) rsForEach(::rs_script script,