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

Commit 003fda01 authored by John Reck's avatar John Reck
Browse files

Make sure to actually return after jniThrowException

It's illegal to keep using JNIEnv with a pending
exception, and also a bit nonsensical to keep doing work
if it's just going to throw when the native method returns

Change-Id: I6ce66fc0d00f05a6fc33202c4aef266860472701
Fixes: 124064285
Test: android.graphics.cts.EGL15Test CTS test
parent 598a0eba
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -194,6 +194,7 @@ fromEGLHandle(JNIEnv *_env, jmethodID mid, jobject obj) {
    if (obj == NULL){
        jniThrowException(_env, "java/lang/IllegalArgumentException",
                          "Object is set to null.");
        return nullptr;
    }

    jlong handle = _env->CallLongMethod(obj, mid);
@@ -254,6 +255,7 @@ exit:
    }
    if (_exception) {
        jniThrowException(_env, _exceptionType, _exceptionMessage);
        return nullptr;
    }
    return toEGLHandle(_env, eglsyncClass, eglsyncConstructor, _returnValue);
}
@@ -335,6 +337,7 @@ exit:
    }
    if (_exception) {
        jniThrowException(_env, _exceptionType, _exceptionMessage);
        return false;
    }
    return (jboolean)_returnValue;
}
@@ -381,6 +384,7 @@ exit:
    }
    if (_exception) {
        jniThrowException(_env, _exceptionType, _exceptionMessage);
        return nullptr;
    }
    return toEGLHandle(_env, egldisplayClass, egldisplayConstructor, _returnValue);
}
@@ -448,6 +452,7 @@ exit:
    }
    if (_exception) {
        jniThrowException(_env, _exceptionType, _exceptionMessage);
        return nullptr;
    }
    return toEGLHandle(_env, eglsurfaceClass, eglsurfaceConstructor, _returnValue);
}
@@ -456,8 +461,11 @@ exit:
static jobject
android_eglCreatePlatformPixmapSurface
  (JNIEnv *_env, jobject _this, jobject dpy, jobject config, jobject native_pixmap_buf, jlongArray attrib_list_ref, jint offset) {
    if ((true)) {
        jniThrowException(_env, "java/lang/UnsupportedOperationException",
            "eglCreatePlatformPixmapSurface");
        return nullptr;
    }
    return toEGLHandle(_env, eglsurfaceClass, eglsurfaceConstructor, (EGLSurface) 0);
}

@@ -523,6 +531,7 @@ exit:
    }
    if (_exception) {
        jniThrowException(_env, _exceptionType, _exceptionMessage);
        return nullptr;
    }
    return toEGLHandle(_env, eglimageClass, eglimageConstructor, _returnValue);
}