Increment sys ref count of input/output Allocations

Bug: 30596040

In case such Allocations lose their other references and get deleted,
while being used by a rsForEach() call.

Test: CTS on x86_64 emulator
Change-Id: I01bd9ef9235ad963b461d235f4d63c481e7c034d
(cherry picked from commit 972be5160b8b52d07582fd0f0585524e2f7e143d)
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,