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

Commit 9b7146db authored by Romain Guy's avatar Romain Guy
Browse files

Fix EGL JNI bugs

Bug #3461349

Before this change, eglGetCurrent*() could not be used to compare
contexts, displays and surfaces at the Dalvik level.

Change-Id: I442037dae37bc357b64810ab10c779b5754e9153
parent 0aaa11ed
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -400,7 +400,7 @@ static jint jni_eglGetCurrentDisplay(JNIEnv *_env, jobject _this) {
}

static jint jni_eglGetCurrentSurface(JNIEnv *_env, jobject _this, jint readdraw) {
    if (!(readdraw == EGL_READ) || (readdraw == EGL_DRAW)) {
    if ((readdraw != EGL_READ) && (readdraw != EGL_DRAW)) {
        doThrow(_env, "java/lang/IllegalArgumentException");
        return 0;
    }
+15 −0
Original line number Diff line number Diff line
@@ -32,4 +32,19 @@ public class EGLContextImpl extends EGLContext {
    public GL getGL() {
        return mGLContext;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        EGLContextImpl that = (EGLContextImpl) o;

        return mEGLContext == that.mEGLContext;
    }

    @Override
    public int hashCode() {
        return mEGLContext;
    }
}
+16 −0
Original line number Diff line number Diff line
@@ -24,4 +24,20 @@ public class EGLDisplayImpl extends EGLDisplay {
    public EGLDisplayImpl(int dpy) {
        mEGLDisplay = dpy;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        EGLDisplayImpl that = (EGLDisplayImpl) o;

        return mEGLDisplay == that.mEGLDisplay;

    }

    @Override
    public int hashCode() {
        return mEGLDisplay;
    }
}
+16 −0
Original line number Diff line number Diff line
@@ -29,4 +29,20 @@ public class EGLSurfaceImpl extends EGLSurface {
        mEGLSurface = surface;
        mNativePixelRef = 0;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        EGLSurfaceImpl that = (EGLSurfaceImpl) o;

        return mEGLSurface == that.mEGLSurface;

    }

    @Override
    public int hashCode() {
        return mEGLSurface;
    }
}