From 9aaae09c65c25179e8d2361f84c148aef9dcf19f Mon Sep 17 00:00:00 2001 From: Siarhei Vishniakou Date: Wed, 15 Jul 2020 16:37:28 -0500 Subject: [PATCH] Remove goto from android_view_MotionEvent To simplify code, remove goto from android_view_MotionEvent Bug: 158476194 Test: Builds and runs Change-Id: Ica3b1d7d899e3c17fc920f99046ac8c4dcd2b718 --- core/jni/android_view_MotionEvent.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/core/jni/android_view_MotionEvent.cpp b/core/jni/android_view_MotionEvent.cpp index 9816d713c6dc2..15a91107cbb17 100644 --- a/core/jni/android_view_MotionEvent.cpp +++ b/core/jni/android_view_MotionEvent.cpp @@ -342,11 +342,11 @@ static jlong android_view_MotionEvent_nativeInitialize( return 0; } - MotionEvent* event; + std::unique_ptr event; if (nativePtr) { - event = reinterpret_cast(nativePtr); + event = std::unique_ptr(reinterpret_cast(nativePtr)); } else { - event = new MotionEvent(); + event = std::make_unique(); } PointerProperties pointerProperties[pointerCount]; @@ -355,7 +355,7 @@ static jlong android_view_MotionEvent_nativeInitialize( for (jint i = 0; i < pointerCount; i++) { jobject pointerPropertiesObj = env->GetObjectArrayElement(pointerPropertiesObjArray, i); if (!pointerPropertiesObj) { - goto Error; + return 0; } pointerPropertiesToNative(env, pointerPropertiesObj, &pointerProperties[i]); env->DeleteLocalRef(pointerPropertiesObj); @@ -363,7 +363,7 @@ static jlong android_view_MotionEvent_nativeInitialize( jobject pointerCoordsObj = env->GetObjectArrayElement(pointerCoordsObjArray, i); if (!pointerCoordsObj) { jniThrowNullPointerException(env, "pointerCoords"); - goto Error; + return 0; } pointerCoordsToNative(env, pointerCoordsObj, xOffset, yOffset, &rawPointerCoords[i]); env->DeleteLocalRef(pointerCoordsObj); @@ -377,13 +377,7 @@ static jlong android_view_MotionEvent_nativeInitialize( downTimeNanos, eventTimeNanos, pointerCount, pointerProperties, rawPointerCoords); - return reinterpret_cast(event); - -Error: - if (!nativePtr) { - delete event; - } - return 0; + return reinterpret_cast(event.release()); } static void android_view_MotionEvent_nativeDispose(JNIEnv* env, jclass clazz,