diff options
| -rw-r--r-- | core/java/android/view/DisplayListCanvas.java | 3 | ||||
| -rw-r--r-- | core/jni/android_view_DisplayListCanvas.cpp | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/core/java/android/view/DisplayListCanvas.java b/core/java/android/view/DisplayListCanvas.java index 2481e049933b..415c29107a94 100644 --- a/core/java/android/view/DisplayListCanvas.java +++ b/core/java/android/view/DisplayListCanvas.java @@ -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); } diff --git a/core/jni/android_view_DisplayListCanvas.cpp b/core/jni/android_view_DisplayListCanvas.cpp index cadfd3d89a2a..d6f9db58c361 100644 --- a/core/jni/android_view_DisplayListCanvas.cpp +++ b/core/jni/android_view_DisplayListCanvas.cpp @@ -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()); } |