Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4afbed15 authored by John Reck's avatar John Reck
Browse files

Fix NPE checkjni

Fixes: 28240259

releasedCallback can be null, which we need to check for

Change-Id: Ib218e1c624be8734db5722fc625ebbd72fa099ec
parent 7d0b8d79
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.view;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.CanvasProperty;
@@ -184,7 +185,7 @@ public class DisplayListCanvas extends Canvas {
     * any references to the functor, just that the reference from this specific
     * canvas's display list has been released.
     */
    public void drawGLFunctor2(long drawGLFunctor, Runnable releasedCallback) {
    public void drawGLFunctor2(long drawGLFunctor, @Nullable Runnable releasedCallback) {
        nCallDrawGLFunction(mNativeCanvasWrapper, drawGLFunctor, releasedCallback);
    }

+4 −2
Original line number Diff line number Diff line
@@ -105,8 +105,10 @@ static void android_view_DisplayListCanvas_callDrawGLFunction(JNIEnv* env, jobje
        jlong canvasPtr, jlong functorPtr, jobject releasedCallback) {
    Canvas* canvas = reinterpret_cast<Canvas*>(canvasPtr);
    Functor* functor = reinterpret_cast<Functor*>(functorPtr);
    sp<GlFunctorReleasedCallbackBridge> bridge(new GlFunctorReleasedCallbackBridge(
            env, releasedCallback));
    sp<GlFunctorReleasedCallbackBridge> bridge;
    if (releasedCallback) {
        bridge = new GlFunctorReleasedCallbackBridge(env, releasedCallback);
    }
    canvas->callDrawGLFunction(functor, bridge.get());
}