jni: Regenerated EGL/GLES JNI files to support null arguments
Bug 9321681
Change-Id: I397c1fbdfcc38a697b4f608546822a739e55e1d9
diff --git a/core/jni/android_opengl_EGL14.cpp b/core/jni/android_opengl_EGL14.cpp
index 568473c..c8b1784 100644
--- a/core/jni/android_opengl_EGL14.cpp
+++ b/core/jni/android_opengl_EGL14.cpp
@@ -184,51 +184,43 @@
jint _minorRemaining;
EGLint *minor = (EGLint *) 0;
- if (!major_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "major == null";
- goto exit;
+ if (major_ref) {
+ if (majorOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "majorOffset < 0";
+ goto exit;
+ }
+ _majorRemaining = _env->GetArrayLength(major_ref) - majorOffset;
+ if (_majorRemaining < 1) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "length - majorOffset < 1 < needed";
+ goto exit;
+ }
+ major_base = (EGLint *)
+ _env->GetIntArrayElements(major_ref, (jboolean *)0);
+ major = major_base + majorOffset;
}
- if (majorOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "majorOffset < 0";
- goto exit;
- }
- _majorRemaining = _env->GetArrayLength(major_ref) - majorOffset;
- if (_majorRemaining < 1) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length - majorOffset < 1 < needed";
- goto exit;
- }
- major_base = (EGLint *)
- _env->GetIntArrayElements(major_ref, (jboolean *)0);
- major = major_base + majorOffset;
- if (!minor_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "minor == null";
- goto exit;
+ if (minor_ref) {
+ if (minorOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "minorOffset < 0";
+ goto exit;
+ }
+ _minorRemaining = _env->GetArrayLength(minor_ref) - minorOffset;
+ if (_minorRemaining < 1) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "length - minorOffset < 1 < needed";
+ goto exit;
+ }
+ minor_base = (EGLint *)
+ _env->GetIntArrayElements(minor_ref, (jboolean *)0);
+ minor = minor_base + minorOffset;
}
- if (minorOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "minorOffset < 0";
- goto exit;
- }
- _minorRemaining = _env->GetArrayLength(minor_ref) - minorOffset;
- if (_minorRemaining < 1) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length - minorOffset < 1 < needed";
- goto exit;
- }
- minor_base = (EGLint *)
- _env->GetIntArrayElements(minor_ref, (jboolean *)0);
- minor = minor_base + minorOffset;
_returnValue = eglInitialize(
(EGLDisplay)dpy_native,
@@ -289,26 +281,22 @@
jint _num_configRemaining;
EGLint *num_config = (EGLint *) 0;
- if (!configs_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "configs == null";
- goto exit;
+ if (configs_ref) {
+ if (configsOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "configsOffset < 0";
+ goto exit;
+ }
+ _configsRemaining = _env->GetArrayLength(configs_ref) - configsOffset;
+ if (_configsRemaining < config_size) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "length - configsOffset < config_size < needed";
+ goto exit;
+ }
+ configs = new EGLConfig[_configsRemaining];
}
- if (configsOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "configsOffset < 0";
- goto exit;
- }
- _configsRemaining = _env->GetArrayLength(configs_ref) - configsOffset;
- if (_configsRemaining < config_size) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length - configsOffset < config_size < needed";
- goto exit;
- }
- configs = new EGLConfig[_configsRemaining];
if (!num_config_ref) {
_exception = 1;
@@ -401,26 +389,22 @@
goto exit;
}
- if (!configs_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "configs == null";
- goto exit;
+ if (configs_ref) {
+ if (configsOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "configsOffset < 0";
+ goto exit;
+ }
+ _configsRemaining = _env->GetArrayLength(configs_ref) - configsOffset;
+ if (_configsRemaining < config_size) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "length - configsOffset < config_size < needed";
+ goto exit;
+ }
+ configs = new EGLConfig[_configsRemaining];
}
- if (configsOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "configsOffset < 0";
- goto exit;
- }
- _configsRemaining = _env->GetArrayLength(configs_ref) - configsOffset;
- if (_configsRemaining < config_size) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length - configsOffset < config_size < needed";
- goto exit;
- }
- configs = new EGLConfig[_configsRemaining];
if (!num_config_ref) {
_exception = 1;
@@ -546,18 +530,32 @@
EGLint *attrib_list = (EGLint *) 0;
android::sp<ANativeWindow> window;
- if (!attrib_list_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "attrib_list == null";
- goto exit;
+ if (attrib_list_ref) {
+ if (offset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "offset < 0";
+ goto exit;
+ }
+ _remaining = _env->GetArrayLength(attrib_list_ref) - offset;
+ attrib_list_base = (EGLint *)
+ _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0);
+ attrib_list = attrib_list_base + offset;
+ attrib_list_sentinel = 0;
+ for (int i = _remaining - 1; i >= 0; i--) {
+ if (*((EGLint*)(attrib_list + i)) == EGL_NONE){
+ attrib_list_sentinel = 1;
+ break;
+ }
+ }
+ if (attrib_list_sentinel == 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "attrib_list must contain EGL_NONE!";
+ goto exit;
+ }
}
- if (offset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "offset < 0";
- goto exit;
- }
+
if (win == NULL) {
not_valid_surface:
_exception = 1;
@@ -571,24 +569,6 @@
if (window == NULL)
goto not_valid_surface;
- _remaining = _env->GetArrayLength(attrib_list_ref) - offset;
- attrib_list_base = (EGLint *)
- _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0);
- attrib_list = attrib_list_base + offset;
- attrib_list_sentinel = 0;
- for (int i = _remaining - 1; i >= 0; i--) {
- if (*((EGLint*)(attrib_list + i)) == EGL_NONE){
- attrib_list_sentinel = 1;
- break;
- }
- }
- if (attrib_list_sentinel == 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "attrib_list must contain EGL_NONE!";
- goto exit;
- }
-
_returnValue = eglCreateWindowSurface(
(EGLDisplay)dpy_native,
(EGLConfig)config_native,
@@ -703,34 +683,30 @@
jint _remaining;
EGLint *attrib_list = (EGLint *) 0;
- if (!attrib_list_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "attrib_list == null";
- goto exit;
- }
- if (offset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "offset < 0";
- goto exit;
- }
- _remaining = _env->GetArrayLength(attrib_list_ref) - offset;
- attrib_list_base = (EGLint *)
- _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0);
- attrib_list = attrib_list_base + offset;
- attrib_list_sentinel = false;
- for (int i = _remaining - 1; i >= 0; i--) {
- if (attrib_list[i] == EGL_NONE){
- attrib_list_sentinel = true;
- break;
+ if (attrib_list_ref) {
+ if (offset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "offset < 0";
+ goto exit;
}
- }
- if (attrib_list_sentinel == false) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "attrib_list must contain EGL_NONE!";
- goto exit;
+ _remaining = _env->GetArrayLength(attrib_list_ref) - offset;
+ attrib_list_base = (EGLint *)
+ _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0);
+ attrib_list = attrib_list_base + offset;
+ attrib_list_sentinel = false;
+ for (int i = _remaining - 1; i >= 0; i--) {
+ if (attrib_list[i] == EGL_NONE){
+ attrib_list_sentinel = true;
+ break;
+ }
+ }
+ if (attrib_list_sentinel == false) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "attrib_list must contain EGL_NONE!";
+ goto exit;
+ }
}
_returnValue = eglCreatePbufferSurface(
@@ -882,34 +858,30 @@
jint _remaining;
EGLint *attrib_list = (EGLint *) 0;
- if (!attrib_list_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "attrib_list == null";
- goto exit;
- }
- if (offset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "offset < 0";
- goto exit;
- }
- _remaining = _env->GetArrayLength(attrib_list_ref) - offset;
- attrib_list_base = (EGLint *)
- _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0);
- attrib_list = attrib_list_base + offset;
- attrib_list_sentinel = false;
- for (int i = _remaining - 1; i >= 0; i--) {
- if (attrib_list[i] == EGL_NONE){
- attrib_list_sentinel = true;
- break;
+ if (attrib_list_ref) {
+ if (offset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "offset < 0";
+ goto exit;
}
- }
- if (attrib_list_sentinel == false) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "attrib_list must contain EGL_NONE!";
- goto exit;
+ _remaining = _env->GetArrayLength(attrib_list_ref) - offset;
+ attrib_list_base = (EGLint *)
+ _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0);
+ attrib_list = attrib_list_base + offset;
+ attrib_list_sentinel = false;
+ for (int i = _remaining - 1; i >= 0; i--) {
+ if (attrib_list[i] == EGL_NONE){
+ attrib_list_sentinel = true;
+ break;
+ }
+ }
+ if (attrib_list_sentinel == false) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "attrib_list must contain EGL_NONE!";
+ goto exit;
+ }
}
_returnValue = eglCreatePbufferFromClientBuffer(
diff --git a/core/jni/android_opengl_GLES20.cpp b/core/jni/android_opengl_GLES20.cpp
index b9f61a9..ac3bf7a 100644
--- a/core/jni/android_opengl_GLES20.cpp
+++ b/core/jni/android_opengl_GLES20.cpp
@@ -1783,22 +1783,18 @@
jint _nameRemaining;
char *name = (char *) 0;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ length_base = (GLsizei *)
+ _env->GetIntArrayElements(length_ref, (jboolean *)0);
+ length = length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- length_base = (GLsizei *)
- _env->GetIntArrayElements(length_ref, (jboolean *)0);
- length = length_base + lengthOffset;
if (!size_ref) {
_exception = 1;
@@ -2111,22 +2107,18 @@
jint _nameRemaining;
char *name = (char *) 0;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ length_base = (GLsizei *)
+ _env->GetIntArrayElements(length_ref, (jboolean *)0);
+ length = length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- length_base = (GLsizei *)
- _env->GetIntArrayElements(length_ref, (jboolean *)0);
- length = length_base + lengthOffset;
if (!size_ref) {
_exception = 1;
@@ -2434,28 +2426,24 @@
jint _shadersRemaining;
GLuint *shaders = (GLuint *) 0;
- if (!count_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "count == null";
- goto exit;
+ if (count_ref) {
+ if (countOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "countOffset < 0";
+ goto exit;
+ }
+ _countRemaining = _env->GetArrayLength(count_ref) - countOffset;
+ if (_countRemaining < 1) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "length - countOffset < 1 < needed";
+ goto exit;
+ }
+ count_base = (GLsizei *)
+ _env->GetIntArrayElements(count_ref, (jboolean *)0);
+ count = count_base + countOffset;
}
- if (countOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "countOffset < 0";
- goto exit;
- }
- _countRemaining = _env->GetArrayLength(count_ref) - countOffset;
- if (_countRemaining < 1) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length - countOffset < 1 < needed";
- goto exit;
- }
- count_base = (GLsizei *)
- _env->GetIntArrayElements(count_ref, (jboolean *)0);
- count = count_base + countOffset;
if (!shaders_ref) {
_exception = 1;
@@ -2526,20 +2514,18 @@
goto exit;
}
}
- if (shaders_buf) {
- shaders = (GLuint *)getPointer(_env, shaders_buf, (jarray*)&_shadersArray, &_shadersRemaining, &_shadersBufferOffset);
- if (_shadersRemaining < maxcount) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "remaining() < maxcount < needed";
- goto exit;
- }
+ shaders = (GLuint *)getPointer(_env, shaders_buf, (jarray*)&_shadersArray, &_shadersRemaining, &_shadersBufferOffset);
+ if (_shadersRemaining < maxcount) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "remaining() < maxcount < needed";
+ goto exit;
}
if (count_buf && count == NULL) {
char * _countBase = (char *)_env->GetIntArrayElements(_countArray, (jboolean *) 0);
count = (GLsizei *) (_countBase + _countBufferOffset);
}
- if (shaders_buf && shaders == NULL) {
+ if (shaders == NULL) {
char * _shadersBase = (char *)_env->GetIntArrayElements(_shadersArray, (jboolean *) 0);
shaders = (GLuint *) (_shadersBase + _shadersBufferOffset);
}
@@ -3262,22 +3248,18 @@
jint _sourceRemaining;
char *source = (char *) 0;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ length_base = (GLsizei *)
+ _env->GetIntArrayElements(length_ref, (jboolean *)0);
+ length = length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- length_base = (GLsizei *)
- _env->GetIntArrayElements(length_ref, (jboolean *)0);
- length = length_base + lengthOffset;
if (!source_ref) {
_exception = 1;
diff --git a/core/jni/android_opengl_GLES30.cpp b/core/jni/android_opengl_GLES30.cpp
index 8eb5044..c9b5af7 100644
--- a/core/jni/android_opengl_GLES30.cpp
+++ b/core/jni/android_opengl_GLES30.cpp
@@ -501,8 +501,10 @@
jint _remaining;
GLvoid *pixels = (GLvoid *) 0;
- pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
- if (pixels == NULL) {
+ if (pixels_buf) {
+ pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
+ }
+ if (pixels_buf && pixels == NULL) {
char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
}
@@ -1910,22 +1912,18 @@
jint _nameRemaining;
char *name = (char *) 0;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ length_base = (GLsizei *)
+ _env->GetIntArrayElements(length_ref, (jboolean *)0);
+ length = length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- length_base = (GLsizei *)
- _env->GetIntArrayElements(length_ref, (jboolean *)0);
- length = length_base + lengthOffset;
if (!size_ref) {
_exception = 1;
@@ -3591,22 +3589,18 @@
jint _nameRemaining;
GLchar* _name = (GLchar*)0;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ _length_base = (GLsizei*)_env->GetIntArrayElements(
+ length_ref, (jboolean*)0);
+ _length = _length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- _length_base = (GLsizei*)_env->GetIntArrayElements(
- length_ref, (jboolean*)0);
- _length = _length_base + lengthOffset;
if (!name_ref) {
_exception = 1;
@@ -3900,22 +3894,18 @@
jint _valuesRemaining;
GLint *values = (GLint *) 0;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ length_base = (GLsizei *)
+ _env->GetIntArrayElements(length_ref, (jboolean *)0);
+ length = length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- length_base = (GLsizei *)
- _env->GetIntArrayElements(length_ref, (jboolean *)0);
- length = length_base + lengthOffset;
if (!values_ref) {
_exception = 1;
@@ -3969,9 +3959,11 @@
jint _valuesRemaining;
GLint *values = (GLint *) 0;
- length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
+ if (length_buf) {
+ length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
+ }
values = (GLint *)getPointer(_env, values_buf, (jarray*)&_valuesArray, &_valuesRemaining, &_valuesBufferOffset);
- if (length == NULL) {
+ if (length_buf && length == NULL) {
char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0);
length = (GLsizei *) (_lengthBase + _lengthBufferOffset);
}
@@ -4772,22 +4764,18 @@
jint _binaryRemaining;
GLvoid *binary = (GLvoid *) 0;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ length_base = (GLsizei *)
+ _env->GetIntArrayElements(length_ref, (jboolean *)0);
+ length = length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- length_base = (GLsizei *)
- _env->GetIntArrayElements(length_ref, (jboolean *)0);
- length = length_base + lengthOffset;
if (!binaryFormat_ref) {
_exception = 1;
@@ -4853,10 +4841,12 @@
jint _binaryRemaining;
GLvoid *binary = (GLvoid *) 0;
- length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
+ if (length_buf) {
+ length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
+ }
binaryFormat = (GLenum *)getPointer(_env, binaryFormat_buf, (jarray*)&_binaryFormatArray, &_binaryFormatRemaining, &_binaryFormatBufferOffset);
binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_binaryArray, &_binaryRemaining, &_binaryBufferOffset);
- if (length == NULL) {
+ if (length_buf && length == NULL) {
char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0);
length = (GLsizei *) (_lengthBase + _lengthBufferOffset);
}
diff --git a/core/jni/android_opengl_GLES31.cpp b/core/jni/android_opengl_GLES31.cpp
index e427388..5751add 100644
--- a/core/jni/android_opengl_GLES31.cpp
+++ b/core/jni/android_opengl_GLES31.cpp
@@ -714,22 +714,18 @@
_env->GetIntArrayElements(props_ref, (jboolean *)0);
props = props_base + propsOffset;
- if (!length_ref) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "length == null";
- goto exit;
+ if (length_ref) {
+ if (lengthOffset < 0) {
+ _exception = 1;
+ _exceptionType = "java/lang/IllegalArgumentException";
+ _exceptionMessage = "lengthOffset < 0";
+ goto exit;
+ }
+ _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
+ length_base = (GLsizei *)
+ _env->GetIntArrayElements(length_ref, (jboolean *)0);
+ length = length_base + lengthOffset;
}
- if (lengthOffset < 0) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "lengthOffset < 0";
- goto exit;
- }
- _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
- length_base = (GLsizei *)
- _env->GetIntArrayElements(length_ref, (jboolean *)0);
- length = length_base + lengthOffset;
if (!params_ref) {
_exception = 1;
@@ -795,13 +791,15 @@
GLint *params = (GLint *) 0;
props = (GLenum *)getPointer(_env, props_buf, (jarray*)&_propsArray, &_propsRemaining, &_propsBufferOffset);
- length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
+ if (length_buf) {
+ length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
+ }
params = (GLint *)getPointer(_env, params_buf, (jarray*)&_paramsArray, &_paramsRemaining, &_paramsBufferOffset);
if (props == NULL) {
char * _propsBase = (char *)_env->GetIntArrayElements(_propsArray, (jboolean *) 0);
props = (GLenum *) (_propsBase + _propsBufferOffset);
}
- if (length == NULL) {
+ if (length_buf && length == NULL) {
char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0);
length = (GLsizei *) (_lengthBase + _lengthBufferOffset);
}
diff --git a/core/jni/android_opengl_GLES31Ext.cpp b/core/jni/android_opengl_GLES31Ext.cpp
index 180c693..5be7be0 100644
--- a/core/jni/android_opengl_GLES31Ext.cpp
+++ b/core/jni/android_opengl_GLES31Ext.cpp
@@ -646,13 +646,9 @@
const char * _exceptionMessage = NULL;
const char* _nativelabel = 0;
- if (!label) {
- _exception = 1;
- _exceptionType = "java/lang/IllegalArgumentException";
- _exceptionMessage = "label == null";
- goto exit;
+ if (label) {
+ _nativelabel = _env->GetStringUTFChars(label, 0);
}
- _nativelabel = _env->GetStringUTFChars(label, 0);
glObjectLabelKHR(
(GLenum)identifier,
@@ -660,8 +656,6 @@
(GLsizei)length,
(GLchar *)_nativelabel
);
-
-exit:
if (_nativelabel) {
_env->ReleaseStringUTFChars(label, _nativelabel);
}