From 84cac20dfdff35932901e978e6b6d3da843a2fa7 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Mon, 5 Dec 2016 12:26:02 -0800 Subject: [PATCH] Add null checks for *Buffer params This change prevents crashes in native layers and throws an exception instead. Bug: 25695785 Test: CtsGraphicsTestCases Change-Id: I0b4115e001099f579f53e47fa5cb9c851c6dabdb --- core/jni/android_opengl_GLES10.cpp | 214 ++++- core/jni/android_opengl_GLES10Ext.cpp | 12 + core/jni/android_opengl_GLES11.cpp | 170 +++- core/jni/android_opengl_GLES11Ext.cpp | 440 +++++++++- core/jni/android_opengl_GLES20.cpp | 336 +++++++- core/jni/android_opengl_GLES30.cpp | 762 +++++++++++++++++- core/jni/android_opengl_GLES31.cpp | 460 ++++++++++- core/jni/android_opengl_GLES31Ext.cpp | 134 ++- core/jni/android_opengl_GLES32.cpp | 162 +++- .../com_google_android_gles_jni_GLImpl.cpp | 626 +++++++++++++- 10 files changed, 3247 insertions(+), 69 deletions(-) diff --git a/core/jni/android_opengl_GLES10.cpp b/core/jni/android_opengl_GLES10.cpp index f4135c213e365..64c9fe8385391 100644 --- a/core/jni/android_opengl_GLES10.cpp +++ b/core/jni/android_opengl_GLES10.cpp @@ -600,6 +600,9 @@ android_glColorMask__ZZZZ static void android_glColorPointerBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -618,17 +621,29 @@ android_glColorPointerBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ static void android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -644,20 +659,34 @@ android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ static void android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -674,9 +703,14 @@ android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ @@ -781,6 +815,12 @@ android_glDeleteTextures__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *textures = (GLuint *) 0; + if (!textures_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "textures == null"; + goto exit; + } textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -885,6 +925,12 @@ android_glDrawElements__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *indices = (GLvoid *) 0; + if (!indices_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "indices == null"; + goto exit; + } indices = (GLvoid *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; @@ -1026,6 +1072,12 @@ android_glFogfv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1144,6 +1196,12 @@ android_glFogxv__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1278,6 +1336,12 @@ android_glGenTextures__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *textures = (GLuint *) 0; + if (!textures_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "textures == null"; + goto exit; + } textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1424,6 +1488,12 @@ android_glLightModelfv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1542,6 +1612,12 @@ android_glLightModelxv__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1676,6 +1752,12 @@ android_glLightfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1825,6 +1907,12 @@ android_glLightxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1947,11 +2035,20 @@ exit: static void android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1960,9 +2057,14 @@ android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 glLoadMatrixf( (GLfloat *)m ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glLoadMatrixx ( const GLfixed *m ) */ @@ -2011,11 +2113,20 @@ exit: static void android_glLoadMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2024,9 +2135,14 @@ android_glLoadMatrixx__Ljava_nio_IntBuffer_2 glLoadMatrixx( (GLfixed *)m ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glLogicOp ( GLenum opcode ) */ @@ -2134,6 +2250,12 @@ android_glMaterialfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2279,6 +2401,12 @@ android_glMaterialxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2383,11 +2511,20 @@ exit: static void android_glMultMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2396,9 +2533,14 @@ android_glMultMatrixf__Ljava_nio_FloatBuffer_2 glMultMatrixf( (GLfloat *)m ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMultMatrixx ( const GLfixed *m ) */ @@ -2447,11 +2589,20 @@ exit: static void android_glMultMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2460,9 +2611,14 @@ android_glMultMatrixx__Ljava_nio_IntBuffer_2 glMultMatrixx( (GLfixed *)m ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */ @@ -2517,6 +2673,9 @@ android_glNormal3x__III static void android_glNormalPointerBounds__IILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -2534,6 +2693,9 @@ android_glNormalPointerBounds__IILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ @@ -2630,11 +2792,20 @@ android_glPushMatrix__ static void android_glReadPixels__IIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *pixels = (GLvoid *) 0; + if (!pixels_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "pixels == null"; + goto exit; + } pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pixels == NULL) { char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -2649,8 +2820,13 @@ android_glReadPixels__IIIIIILjava_nio_Buffer_2 (GLenum)type, (GLvoid *)pixels ); + +exit: if (_array) { - releasePointer(_env, _array, pixels, JNI_TRUE); + releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -2776,6 +2952,9 @@ android_glStencilOp__III static void android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -2794,6 +2973,9 @@ android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */ @@ -2880,6 +3062,12 @@ android_glTexEnvfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -3001,6 +3189,12 @@ android_glTexEnvxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -3042,6 +3236,9 @@ exit: static void android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3068,6 +3265,9 @@ android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ @@ -3096,6 +3296,9 @@ android_glTexParameterx__III static void android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3122,6 +3325,9 @@ android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */ @@ -3150,6 +3356,9 @@ android_glTranslatex__III static void android_glVertexPointerBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3168,6 +3377,9 @@ android_glVertexPointerBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ diff --git a/core/jni/android_opengl_GLES10Ext.cpp b/core/jni/android_opengl_GLES10Ext.cpp index 4dc42339b6e55..533bda4eee2a1 100644 --- a/core/jni/android_opengl_GLES10Ext.cpp +++ b/core/jni/android_opengl_GLES10Ext.cpp @@ -540,6 +540,12 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exponentRemaining; GLint *exponent = (GLint *) 0; + if (!mantissa_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "mantissa == null"; + goto exit; + } mantissa = (GLfixed *)getPointer(_env, mantissa_buf, (jarray*)&_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset); if (_mantissaRemaining < 16) { _exception = 1; @@ -547,6 +553,12 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 _exceptionMessage = "remaining() < 16 < needed"; goto exit; } + if (!exponent_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "exponent == null"; + goto exit; + } exponent = (GLint *)getPointer(_env, exponent_buf, (jarray*)&_exponentArray, &_exponentRemaining, &_exponentBufferOffset); if (_exponentRemaining < 16) { _exception = 1; diff --git a/core/jni/android_opengl_GLES11.cpp b/core/jni/android_opengl_GLES11.cpp index 2625e03c962ea..923f7a8eedba5 100644 --- a/core/jni/android_opengl_GLES11.cpp +++ b/core/jni/android_opengl_GLES11.cpp @@ -505,6 +505,12 @@ android_glBufferSubData__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < size) { _exception = 1; @@ -587,6 +593,12 @@ android_glClipPlanef__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *equation = (GLfloat *) 0; + if (!equation_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "equation == null"; + goto exit; + } equation = (GLfloat *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { char * _equationBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -596,6 +608,8 @@ android_glClipPlanef__ILjava_nio_FloatBuffer_2 (GLenum)plane, (GLfloat *)equation ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)equation, JNI_ABORT); } @@ -659,6 +673,12 @@ android_glClipPlanex__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *equation = (GLfixed *) 0; + if (!equation_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "equation == null"; + goto exit; + } equation = (GLfixed *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { char * _equationBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -668,6 +688,8 @@ android_glClipPlanex__ILjava_nio_IntBuffer_2 (GLenum)plane, (GLfixed *)equation ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)equation, JNI_ABORT); } @@ -761,6 +783,12 @@ android_glDeleteBuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *buffers = (GLuint *) 0; + if (!buffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "buffers == null"; + goto exit; + } buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -865,6 +893,12 @@ android_glGenBuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *buffers = (GLuint *) 0; + if (!buffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "buffers == null"; + goto exit; + } buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -967,6 +1001,12 @@ android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -1054,6 +1094,12 @@ android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *eqn = (GLfloat *) 0; + if (!eqn_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "eqn == null"; + goto exit; + } eqn = (GLfloat *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; @@ -1140,6 +1186,12 @@ android_glGetClipPlanex__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *eqn = (GLfixed *) 0; + if (!eqn_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "eqn == null"; + goto exit; + } eqn = (GLfixed *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; @@ -1212,11 +1264,20 @@ exit: static void android_glGetFixedv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1226,8 +1287,13 @@ android_glGetFixedv__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1333,6 +1399,12 @@ android_glGetLightfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1471,6 +1543,12 @@ android_glGetLightxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1607,6 +1685,12 @@ android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1741,6 +1825,12 @@ android_glGetMaterialxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1863,6 +1953,12 @@ android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1973,6 +2069,12 @@ android_glGetTexEnviv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2083,6 +2185,12 @@ android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2182,6 +2290,12 @@ android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2270,6 +2384,12 @@ android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2358,6 +2478,12 @@ android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2499,6 +2625,12 @@ android_glPointParameterfv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2595,6 +2727,12 @@ android_glPointParameterxv__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2624,6 +2762,9 @@ exit: static void android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -2641,6 +2782,9 @@ android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ @@ -2739,6 +2883,12 @@ android_glTexEnviv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2838,6 +2988,12 @@ android_glTexParameterfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2937,6 +3093,12 @@ android_glTexParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -3025,6 +3187,12 @@ android_glTexParameterxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; diff --git a/core/jni/android_opengl_GLES11Ext.cpp b/core/jni/android_opengl_GLES11Ext.cpp index fb85cb0f8d95e..f7498d52fa50a 100644 --- a/core/jni/android_opengl_GLES11Ext.cpp +++ b/core/jni/android_opengl_GLES11Ext.cpp @@ -572,6 +572,12 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 jint _remaining; GLshort *coords = (GLshort *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLshort *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -656,6 +662,12 @@ android_glDrawTexivOES__Ljava_nio_IntBuffer_2 jint _remaining; GLint *coords = (GLint *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLint *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -740,6 +752,12 @@ android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 jint _remaining; GLfixed *coords = (GLfixed *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLfixed *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -837,6 +855,12 @@ android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 jint _remaining; GLfloat *coords = (GLfloat *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLfloat *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -865,11 +889,20 @@ exit: static void android_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jobject image_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLeglImageOES image = (GLeglImageOES) 0; + if (!image_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "image == null"; + goto exit; + } image = (GLeglImageOES)getPointer(_env, image_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (image == NULL) { char * _imageBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -879,8 +912,13 @@ android_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2 (GLenum)target, (GLeglImageOES)image ); + +exit: if (_array) { - releasePointer(_env, _array, image, JNI_TRUE); + releasePointer(_env, _array, image, _exception ? JNI_FALSE : JNI_TRUE); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -888,11 +926,20 @@ android_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2 static void android_glEGLImageTargetRenderbufferStorageOES__ILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jobject image_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLeglImageOES image = (GLeglImageOES) 0; + if (!image_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "image == null"; + goto exit; + } image = (GLeglImageOES)getPointer(_env, image_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (image == NULL) { char * _imageBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -902,8 +949,13 @@ android_glEGLImageTargetRenderbufferStorageOES__ILjava_nio_Buffer_2 (GLenum)target, (GLeglImageOES)image ); + +exit: if (_array) { - releasePointer(_env, _array, image, JNI_TRUE); + releasePointer(_env, _array, image, _exception ? JNI_FALSE : JNI_TRUE); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -985,11 +1037,20 @@ exit: static void android_glClipPlanexOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *equation = (GLfixed *) 0; + if (!equation_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "equation == null"; + goto exit; + } equation = (GLfixed *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { char * _equationBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -999,9 +1060,14 @@ android_glClipPlanexOES__ILjava_nio_IntBuffer_2 (GLenum)plane, (GLfixed *)equation ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)equation, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glColor4xOES ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */ @@ -1083,11 +1149,20 @@ exit: static void android_glFogxvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1097,9 +1172,14 @@ android_glFogxvOES__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glFrustumxOES ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ @@ -1177,6 +1257,12 @@ android_glGetClipPlanexOES__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *eqn = (GLfixed *) 0; + if (!eqn_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "eqn == null"; + goto exit; + } eqn = (GLfixed *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; @@ -1249,11 +1335,20 @@ exit: static void android_glGetFixedvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1263,8 +1358,13 @@ android_glGetFixedvOES__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1316,11 +1416,20 @@ exit: static void android_glGetLightxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1331,8 +1440,13 @@ android_glGetLightxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1384,11 +1498,20 @@ exit: static void android_glGetMaterialxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1399,8 +1522,13 @@ android_glGetMaterialxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1452,11 +1580,20 @@ exit: static void android_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1467,8 +1604,13 @@ android_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1520,11 +1662,20 @@ exit: static void android_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1535,8 +1686,13 @@ android_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1597,11 +1753,20 @@ exit: static void android_glLightModelxvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1611,9 +1776,14 @@ android_glLightModelxvOES__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glLightxOES ( GLenum light, GLenum pname, GLfixed param ) */ @@ -1675,11 +1845,20 @@ exit: static void android_glLightxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1690,9 +1869,14 @@ android_glLightxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glLineWidthxOES ( GLfixed width ) */ @@ -1750,11 +1934,20 @@ exit: static void android_glLoadMatrixxOES__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1763,9 +1956,14 @@ android_glLoadMatrixxOES__Ljava_nio_IntBuffer_2 glLoadMatrixxOES( (GLfixed *)m ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMaterialxOES ( GLenum face, GLenum pname, GLfixed param ) */ @@ -1827,11 +2025,20 @@ exit: static void android_glMaterialxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1842,9 +2049,14 @@ android_glMaterialxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMultMatrixxOES ( const GLfixed *m ) */ @@ -1893,11 +2105,20 @@ exit: static void android_glMultMatrixxOES__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1906,9 +2127,14 @@ android_glMultMatrixxOES__Ljava_nio_IntBuffer_2 glMultMatrixxOES( (GLfixed *)m ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMultiTexCoord4xOES ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */ @@ -2006,11 +2232,20 @@ exit: static void android_glPointParameterxvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2020,9 +2255,14 @@ android_glPointParameterxvOES__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glPointSizexOES ( GLfixed size ) */ @@ -2136,11 +2376,20 @@ exit: static void android_glTexEnvxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2151,9 +2400,14 @@ android_glTexEnvxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexParameterxOES ( GLenum target, GLenum pname, GLfixed param ) */ @@ -2215,11 +2469,20 @@ exit: static void android_glTexParameterxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2230,9 +2493,14 @@ android_glTexParameterxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTranslatexOES ( GLfixed x, GLfixed y, GLfixed z ) */ @@ -2328,6 +2596,12 @@ android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *renderbuffers = (GLuint *) 0; + if (!renderbuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "renderbuffers == null"; + goto exit; + } renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -2414,6 +2688,12 @@ android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *renderbuffers = (GLuint *) 0; + if (!renderbuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "renderbuffers == null"; + goto exit; + } renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -2513,6 +2793,12 @@ android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2621,6 +2907,12 @@ android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *framebuffers = (GLuint *) 0; + if (!framebuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "framebuffers == null"; + goto exit; + } framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -2707,6 +2999,12 @@ android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *framebuffers = (GLuint *) 0; + if (!framebuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "framebuffers == null"; + goto exit; + } framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -2831,6 +3129,12 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2887,6 +3191,9 @@ android_glLoadPaletteFromModelViewMatrixOES__ static void android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -2905,12 +3212,18 @@ android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ static void android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -2929,6 +3242,9 @@ android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glDepthRangefOES ( GLclampf zNear, GLclampf zFar ) */ @@ -3016,11 +3332,20 @@ exit: static void android_glClipPlanefOES__ILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *equation = (GLfloat *) 0; + if (!equation_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "equation == null"; + goto exit; + } equation = (GLfloat *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { char * _equationBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -3030,9 +3355,14 @@ android_glClipPlanefOES__ILjava_nio_FloatBuffer_2 (GLenum)plane, (GLfloat *)equation ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)equation, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetClipPlanefOES ( GLenum pname, GLfloat *eqn ) */ @@ -3096,6 +3426,12 @@ android_glGetClipPlanefOES__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *eqn = (GLfloat *) 0; + if (!eqn_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "eqn == null"; + goto exit; + } eqn = (GLfloat *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; @@ -3189,11 +3525,20 @@ exit: static void android_glTexGenfvOES__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -3204,9 +3549,14 @@ android_glTexGenfvOES__IILjava_nio_FloatBuffer_2 (GLenum)pname, (GLfloat *)params ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexGeniOES ( GLenum coord, GLenum pname, GLint param ) */ @@ -3268,11 +3618,20 @@ exit: static void android_glTexGenivOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3283,9 +3642,14 @@ android_glTexGenivOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexGenxOES ( GLenum coord, GLenum pname, GLfixed param ) */ @@ -3347,11 +3711,20 @@ exit: static void android_glTexGenxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3362,9 +3735,14 @@ android_glTexGenxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetTexGenfvOES ( GLenum coord, GLenum pname, GLfloat *params ) */ @@ -3415,11 +3793,20 @@ exit: static void android_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -3430,8 +3817,13 @@ android_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2 (GLenum)pname, (GLfloat *)params ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3483,11 +3875,20 @@ exit: static void android_glGetTexGenivOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3498,8 +3899,13 @@ android_glGetTexGenivOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3551,11 +3957,20 @@ exit: static void android_glGetTexGenxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3566,8 +3981,13 @@ android_glGetTexGenxvOES__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } diff --git a/core/jni/android_opengl_GLES20.cpp b/core/jni/android_opengl_GLES20.cpp index b5c0b645c7f03..791233b79c165 100644 --- a/core/jni/android_opengl_GLES20.cpp +++ b/core/jni/android_opengl_GLES20.cpp @@ -640,6 +640,12 @@ android_glBufferSubData__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < size) { _exception = 1; @@ -742,11 +748,20 @@ android_glCompileShader__I static void android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -762,20 +777,34 @@ android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ static void android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -792,9 +821,14 @@ android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ @@ -919,6 +953,12 @@ android_glDeleteBuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *buffers = (GLuint *) 0; + if (!buffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "buffers == null"; + goto exit; + } buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1005,6 +1045,12 @@ android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *framebuffers = (GLuint *) 0; + if (!framebuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "framebuffers == null"; + goto exit; + } framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1100,6 +1146,12 @@ android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *renderbuffers = (GLuint *) 0; + if (!renderbuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "renderbuffers == null"; + goto exit; + } renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1195,6 +1247,12 @@ android_glDeleteTextures__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *textures = (GLuint *) 0; + if (!textures_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "textures == null"; + goto exit; + } textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1317,6 +1375,12 @@ android_glDrawElements__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *indices = (GLvoid *) 0; + if (!indices_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "indices == null"; + goto exit; + } indices = (GLvoid *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; @@ -1471,6 +1535,12 @@ android_glGenBuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *buffers = (GLuint *) 0; + if (!buffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "buffers == null"; + goto exit; + } buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1566,6 +1636,12 @@ android_glGenFramebuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *framebuffers = (GLuint *) 0; + if (!framebuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "framebuffers == null"; + goto exit; + } framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1652,6 +1728,12 @@ android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *renderbuffers = (GLuint *) 0; + if (!renderbuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "renderbuffers == null"; + goto exit; + } renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1738,6 +1820,12 @@ android_glGenTextures__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *textures = (GLuint *) 0; + if (!textures_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "textures == null"; + goto exit; + } textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -2514,6 +2602,12 @@ android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 goto exit; } } + if (!shaders_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "shaders == null"; + goto exit; + } shaders = (GLuint *)getPointer(_env, shaders_buf, (jarray*)&_shadersArray, &_shadersRemaining, &_shadersBufferOffset); if (_shadersRemaining < maxcount) { _exception = 1; @@ -2659,6 +2753,12 @@ android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2758,11 +2858,20 @@ exit: static void android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2774,8 +2883,13 @@ android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -2856,6 +2970,12 @@ android_glGetProgramiv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -2963,6 +3083,12 @@ android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -3051,6 +3177,12 @@ android_glGetShaderiv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -3194,6 +3326,12 @@ android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _precisionRemaining; GLint *precision = (GLint *) 0; + if (!range_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "range == null"; + goto exit; + } range = (GLint *)getPointer(_env, range_buf, (jarray*)&_rangeArray, &_rangeRemaining, &_rangeBufferOffset); if (_rangeRemaining < 1) { _exception = 1; @@ -3201,6 +3339,12 @@ android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 _exceptionMessage = "remaining() < 1 < needed"; goto exit; } + if (!precision_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "precision == null"; + goto exit; + } precision = (GLint *)getPointer(_env, precision_buf, (jarray*)&_precisionArray, &_precisionRemaining, &_precisionBufferOffset); if (_precisionRemaining < 1) { _exception = 1; @@ -3409,6 +3553,12 @@ android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -3497,6 +3647,12 @@ android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -3585,6 +3741,12 @@ android_glGetUniformfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -3673,6 +3835,12 @@ android_glGetUniformiv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -3806,6 +3974,12 @@ android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -3916,6 +4090,12 @@ android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -4082,11 +4262,20 @@ android_glPolygonOffset__FF static void android_glReadPixels__IIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *pixels = (GLvoid *) 0; + if (!pixels_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "pixels == null"; + goto exit; + } pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pixels == NULL) { char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -4101,8 +4290,13 @@ android_glReadPixels__IIIIIILjava_nio_Buffer_2 (GLenum)type, (GLvoid *)pixels ); + +exit: if (_array) { - releasePointer(_env, _array, pixels, JNI_TRUE); + releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4179,6 +4373,12 @@ android_glShaderBinary__I_3IIILjava_nio_Buffer_2I _env->GetIntArrayElements(shaders_ref, (jboolean *)0); shaders = shaders_base + offset; + if (!binary_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "binary == null"; + goto exit; + } binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_array, &_binaryRemaining, &_bufferOffset); if (_binaryRemaining < length) { _exception = 1; @@ -4227,7 +4427,19 @@ android_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I jint _binaryRemaining; GLvoid *binary = (GLvoid *) 0; + if (!shaders_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "shaders == null"; + goto exit; + } shaders = (GLuint *)getPointer(_env, shaders_buf, (jarray*)&_shadersArray, &_shadersRemaining, &_shadersBufferOffset); + if (!binary_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "binary == null"; + goto exit; + } binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_binaryArray, &_binaryRemaining, &_binaryBufferOffset); if (_binaryRemaining < length) { _exception = 1; @@ -4349,6 +4561,9 @@ android_glStencilOpSeparate__IIII static void android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -4375,6 +4590,9 @@ android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ @@ -4450,6 +4668,12 @@ android_glTexParameterfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -4549,6 +4773,12 @@ android_glTexParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -4579,6 +4809,9 @@ exit: static void android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -4605,6 +4838,9 @@ android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniform1f ( GLint location, GLfloat x ) */ @@ -4679,6 +4915,12 @@ android_glUniform1fv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *v = (GLfloat *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; @@ -4777,6 +5019,12 @@ android_glUniform1iv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *v = (GLint *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; @@ -4876,6 +5124,12 @@ android_glUniform2fv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *v = (GLfloat *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*2) { _exception = 1; @@ -4975,6 +5229,12 @@ android_glUniform2iv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *v = (GLint *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*2) { _exception = 1; @@ -5075,6 +5335,12 @@ android_glUniform3fv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *v = (GLfloat *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*3) { _exception = 1; @@ -5175,6 +5441,12 @@ android_glUniform3iv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *v = (GLint *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*3) { _exception = 1; @@ -5276,6 +5548,12 @@ android_glUniform4fv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *v = (GLfloat *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*4) { _exception = 1; @@ -5377,6 +5655,12 @@ android_glUniform4iv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *v = (GLint *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*4) { _exception = 1; @@ -5466,6 +5750,12 @@ android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*4) { _exception = 1; @@ -5556,6 +5846,12 @@ android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*9) { _exception = 1; @@ -5646,6 +5942,12 @@ android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*16) { _exception = 1; @@ -5762,6 +6064,12 @@ android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *values = (GLfloat *) 0; + if (!values_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "values == null"; + goto exit; + } values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -5859,6 +6167,12 @@ android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *values = (GLfloat *) 0; + if (!values_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "values == null"; + goto exit; + } values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 2) { _exception = 1; @@ -5957,6 +6271,12 @@ android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *values = (GLfloat *) 0; + if (!values_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "values == null"; + goto exit; + } values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 3) { _exception = 1; @@ -6056,6 +6376,12 @@ android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *values = (GLfloat *) 0; + if (!values_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "values == null"; + goto exit; + } values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; @@ -6099,6 +6425,9 @@ android_glVertexAttribPointer__IIIZII static void android_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint indx, jint size, jint type, jboolean normalized, jint stride, jobject ptr_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -6119,6 +6448,9 @@ android_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I (GLvoid *)ptr, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ diff --git a/core/jni/android_opengl_GLES30.cpp b/core/jni/android_opengl_GLES30.cpp index 59b8911487b9c..736fd990b6105 100644 --- a/core/jni/android_opengl_GLES30.cpp +++ b/core/jni/android_opengl_GLES30.cpp @@ -455,11 +455,20 @@ android_glReadBuffer__I static void android_glDrawRangeElements__IIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint mode, jint start, jint end, jint count, jint type, jobject indices_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *indices = (GLvoid *) 0; + if (!indices_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "indices == null"; + goto exit; + } indices = (GLvoid *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (indices == NULL) { char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -473,9 +482,14 @@ android_glDrawRangeElements__IIIIILjava_nio_Buffer_2 (GLenum)type, (GLvoid *)indices ); + +exit: if (_array) { releasePointer(_env, _array, indices, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glDrawRangeElements ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLsizei offset ) */ @@ -496,6 +510,9 @@ android_glDrawRangeElements__IIIIII static void android_glTexImage3D__IIIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -523,6 +540,9 @@ android_glTexImage3D__IIIIIIIIILjava_nio_Buffer_2 if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexImage3D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei offset ) */ @@ -547,11 +567,20 @@ android_glTexImage3D__IIIIIIIIII static void android_glTexSubImage3D__IIIIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *pixels = (GLvoid *) 0; + if (!pixels_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "pixels == null"; + goto exit; + } pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pixels == NULL) { char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -570,9 +599,14 @@ android_glTexSubImage3D__IIIIIIIIIILjava_nio_Buffer_2 (GLenum)type, (GLvoid *)pixels ); + +exit: if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei offset ) */ @@ -615,11 +649,20 @@ android_glCopyTexSubImage3D__IIIIIIIII static void android_glCompressedTexImage3D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -636,9 +679,14 @@ android_glCompressedTexImage3D__IIIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCompressedTexImage3D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei offset ) */ @@ -662,11 +710,20 @@ android_glCompressedTexImage3D__IIIIIIIII static void android_glCompressedTexSubImage3D__IIIIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -685,9 +742,14 @@ android_glCompressedTexSubImage3D__IIIIIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCompressedTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei offset ) */ @@ -756,11 +818,20 @@ exit: static void android_glGenQueries__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; + if (!ids_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "ids == null"; + goto exit; + } ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -770,8 +841,13 @@ android_glGenQueries__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)ids ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)ids, 0); + _env->ReleaseIntArrayElements(_array, (jint*)ids, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -822,11 +898,20 @@ exit: static void android_glDeleteQueries__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; + if (!ids_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "ids == null"; + goto exit; + } ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -836,9 +921,14 @@ android_glDeleteQueries__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)ids ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* GLboolean glIsQuery ( GLuint id ) */ @@ -919,11 +1009,20 @@ exit: static void android_glGetQueryiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -934,8 +1033,13 @@ android_glGetQueryiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -987,11 +1091,20 @@ exit: static void android_glGetQueryObjectuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint id, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1002,8 +1115,13 @@ android_glGetQueryObjectuiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1076,11 +1194,20 @@ exit: static void android_glDrawBuffers__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject bufs_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLenum *bufs = (GLenum *) 0; + if (!bufs_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "bufs == null"; + goto exit; + } bufs = (GLenum *)getPointer(_env, bufs_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (bufs == NULL) { char * _bufsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1090,9 +1217,14 @@ android_glDrawBuffers__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLenum *)bufs ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)bufs, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniformMatrix2x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -1144,11 +1276,20 @@ exit: static void android_glUniformMatrix2x3fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1160,9 +1301,14 @@ android_glUniformMatrix2x3fv__IIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniformMatrix3x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -1214,11 +1360,20 @@ exit: static void android_glUniformMatrix3x2fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1230,9 +1385,14 @@ android_glUniformMatrix3x2fv__IIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniformMatrix2x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -1284,11 +1444,20 @@ exit: static void android_glUniformMatrix2x4fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1300,9 +1469,14 @@ android_glUniformMatrix2x4fv__IIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniformMatrix4x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -1354,11 +1528,20 @@ exit: static void android_glUniformMatrix4x2fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1370,9 +1553,14 @@ android_glUniformMatrix4x2fv__IIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniformMatrix3x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -1424,11 +1612,20 @@ exit: static void android_glUniformMatrix3x4fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1440,9 +1637,14 @@ android_glUniformMatrix3x4fv__IIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniformMatrix4x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -1494,11 +1696,20 @@ exit: static void android_glUniformMatrix4x3fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1510,9 +1721,14 @@ android_glUniformMatrix4x3fv__IIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glBlitFramebuffer ( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter ) */ @@ -1639,11 +1855,20 @@ exit: static void android_glDeleteVertexArrays__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject arrays_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *arrays = (GLuint *) 0; + if (!arrays_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "arrays == null"; + goto exit; + } arrays = (GLuint *)getPointer(_env, arrays_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (arrays == NULL) { char * _arraysBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1653,9 +1878,14 @@ android_glDeleteVertexArrays__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)arrays ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)arrays, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGenVertexArrays ( GLsizei n, GLuint *arrays ) */ @@ -1705,11 +1935,20 @@ exit: static void android_glGenVertexArrays__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject arrays_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *arrays = (GLuint *) 0; + if (!arrays_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "arrays == null"; + goto exit; + } arrays = (GLuint *)getPointer(_env, arrays_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (arrays == NULL) { char * _arraysBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1719,8 +1958,13 @@ android_glGenVertexArrays__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)arrays ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)arrays, 0); + _env->ReleaseIntArrayElements(_array, (jint*)arrays, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1783,11 +2027,20 @@ exit: static void android_glGetIntegeri_v__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint index, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *data = (GLint *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLint *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1798,8 +2051,13 @@ android_glGetIntegeri_v__IILjava_nio_IntBuffer_2 (GLuint)index, (GLint *)data ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)data, 0); + _env->ReleaseIntArrayElements(_array, (jint*)data, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -2240,6 +2498,9 @@ android_glGetTransformFeedbackVarying2 static void android_glVertexAttribIPointerBounds__IIIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint index, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -2259,6 +2520,9 @@ android_glVertexAttribIPointerBounds__IIIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glVertexAttribIPointer ( GLuint index, GLint size, GLenum type, GLsizei stride, GLsizei offset ) */ @@ -2322,11 +2586,20 @@ exit: static void android_glGetVertexAttribIiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2337,8 +2610,13 @@ android_glGetVertexAttribIiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -2390,11 +2668,20 @@ exit: static void android_glGetVertexAttribIuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2405,8 +2692,13 @@ android_glGetVertexAttribIuiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -2483,11 +2775,20 @@ exit: static void android_glVertexAttribI4iv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, jobject v_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *v = (GLint *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (v == NULL) { char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2497,9 +2798,14 @@ android_glVertexAttribI4iv__ILjava_nio_IntBuffer_2 (GLuint)index, (GLint *)v ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glVertexAttribI4uiv ( GLuint index, const GLuint *v ) */ @@ -2549,11 +2855,20 @@ exit: static void android_glVertexAttribI4uiv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, jobject v_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *v = (GLuint *) 0; + if (!v_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "v == null"; + goto exit; + } v = (GLuint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (v == NULL) { char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2563,9 +2878,14 @@ android_glVertexAttribI4uiv__ILjava_nio_IntBuffer_2 (GLuint)index, (GLuint *)v ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetUniformuiv ( GLuint program, GLint location, GLuint *params ) */ @@ -2616,11 +2936,20 @@ exit: static void android_glGetUniformuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2631,8 +2960,13 @@ android_glGetUniformuiv__IILjava_nio_IntBuffer_2 (GLint)location, (GLuint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -2764,11 +3098,20 @@ exit: static void android_glUniform1uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2779,9 +3122,14 @@ android_glUniform1uiv__IILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniform2uiv ( GLint location, GLsizei count, const GLuint *value ) */ @@ -2832,11 +3180,20 @@ exit: static void android_glUniform2uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2847,9 +3204,14 @@ android_glUniform2uiv__IILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniform3uiv ( GLint location, GLsizei count, const GLuint *value ) */ @@ -2900,11 +3262,20 @@ exit: static void android_glUniform3uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2915,9 +3286,14 @@ android_glUniform3uiv__IILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glUniform4uiv ( GLint location, GLsizei count, const GLuint *value ) */ @@ -2968,11 +3344,20 @@ exit: static void android_glUniform4uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2983,9 +3368,14 @@ android_glUniform4uiv__IILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glClearBufferiv ( GLenum buffer, GLint drawbuffer, const GLint *value ) */ @@ -3036,11 +3426,20 @@ exit: static void android_glClearBufferiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint buffer, jint drawbuffer, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3051,9 +3450,14 @@ android_glClearBufferiv__IILjava_nio_IntBuffer_2 (GLint)drawbuffer, (GLint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glClearBufferuiv ( GLenum buffer, GLint drawbuffer, const GLuint *value ) */ @@ -3104,11 +3508,20 @@ exit: static void android_glClearBufferuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint buffer, jint drawbuffer, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3119,9 +3532,14 @@ android_glClearBufferuiv__IILjava_nio_IntBuffer_2 (GLint)drawbuffer, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glClearBufferfv ( GLenum buffer, GLint drawbuffer, const GLfloat *value ) */ @@ -3172,11 +3590,20 @@ exit: static void android_glClearBufferfv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint buffer, jint drawbuffer, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -3187,9 +3614,14 @@ android_glClearBufferfv__IILjava_nio_FloatBuffer_2 (GLint)drawbuffer, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glClearBufferfi ( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil ) */ @@ -3453,6 +3885,9 @@ exit: static void android_glGetActiveUniformsiv__IILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint uniformCount, jobject uniformIndices_buf, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _uniformIndicesArray = (jintArray) 0; jint _uniformIndicesBufferOffset = (jint) 0; jintArray _paramsArray = (jintArray) 0; @@ -3462,7 +3897,19 @@ android_glGetActiveUniformsiv__IILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2 jint _paramsRemaining; GLint *params = (GLint *) 0; + if (!uniformIndices_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "uniformIndices == null"; + goto exit; + } uniformIndices = (GLuint *)getPointer(_env, uniformIndices_buf, (jarray*)&_uniformIndicesArray, &_uniformIndicesRemaining, &_uniformIndicesBufferOffset); + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_paramsArray, &_paramsRemaining, &_paramsBufferOffset); if (uniformIndices == NULL) { char * _uniformIndicesBase = (char *)_env->GetIntArrayElements(_uniformIndicesArray, (jboolean *) 0); @@ -3479,12 +3926,17 @@ android_glGetActiveUniformsiv__IILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_paramsArray) { - _env->ReleaseIntArrayElements(_paramsArray, (jint*)params, 0); + _env->ReleaseIntArrayElements(_paramsArray, (jint*)params, _exception ? JNI_ABORT : 0); } if (_uniformIndicesArray) { _env->ReleaseIntArrayElements(_uniformIndicesArray, (jint*)uniformIndices, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* GLuint glGetUniformBlockIndex ( GLuint program, const GLchar *uniformBlockName ) */ @@ -3570,11 +4022,20 @@ exit: static void android_glGetActiveUniformBlockiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint uniformBlockIndex, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3586,8 +4047,13 @@ android_glGetActiveUniformBlockiv__IIILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3877,11 +4343,20 @@ exit: static void android_glGetInteger64v__ILjava_nio_LongBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jlongArray _array = (jlongArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint64 *params = (GLint64 *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint64 *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetLongArrayElements(_array, (jboolean *) 0); @@ -3891,8 +4366,13 @@ android_glGetInteger64v__ILjava_nio_LongBuffer_2 (GLenum)pname, (GLint64 *)params ); + +exit: if (_array) { - _env->ReleaseLongArrayElements(_array, (jlong*)params, 0); + _env->ReleaseLongArrayElements(_array, (jlong*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3966,6 +4446,9 @@ exit: static void android_glGetSynciv__JIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jlong sync, jint pname, jint bufSize, jobject length_buf, jobject values_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; jintArray _valuesArray = (jintArray) 0; @@ -3978,6 +4461,12 @@ android_glGetSynciv__JIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 if (length_buf) { length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); } + if (!values_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "values == null"; + goto exit; + } values = (GLint *)getPointer(_env, values_buf, (jarray*)&_valuesArray, &_valuesRemaining, &_valuesBufferOffset); if (length_buf && length == NULL) { char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); @@ -3994,11 +4483,16 @@ android_glGetSynciv__JIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 (GLsizei *)length, (GLint *)values ); + +exit: if (_valuesArray) { - _env->ReleaseIntArrayElements(_valuesArray, (jint*)values, 0); + _env->ReleaseIntArrayElements(_valuesArray, (jint*)values, _exception ? JNI_ABORT : 0); } if (_lengthArray) { - _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, 0); + _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4050,11 +4544,20 @@ exit: static void android_glGetInteger64i_v__IILjava_nio_LongBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint index, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jlongArray _array = (jlongArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint64 *data = (GLint64 *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLint64 *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetLongArrayElements(_array, (jboolean *) 0); @@ -4065,8 +4568,13 @@ android_glGetInteger64i_v__IILjava_nio_LongBuffer_2 (GLuint)index, (GLint64 *)data ); + +exit: if (_array) { - _env->ReleaseLongArrayElements(_array, (jlong*)data, 0); + _env->ReleaseLongArrayElements(_array, (jlong*)data, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4118,11 +4626,20 @@ exit: static void android_glGetBufferParameteri64v__IILjava_nio_LongBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jlongArray _array = (jlongArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint64 *params = (GLint64 *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint64 *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetLongArrayElements(_array, (jboolean *) 0); @@ -4133,8 +4650,13 @@ android_glGetBufferParameteri64v__IILjava_nio_LongBuffer_2 (GLenum)pname, (GLint64 *)params ); + +exit: if (_array) { - _env->ReleaseLongArrayElements(_array, (jlong*)params, 0); + _env->ReleaseLongArrayElements(_array, (jlong*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4185,11 +4707,20 @@ exit: static void android_glGenSamplers__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint count, jobject samplers_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *samplers = (GLuint *) 0; + if (!samplers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "samplers == null"; + goto exit; + } samplers = (GLuint *)getPointer(_env, samplers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (samplers == NULL) { char * _samplersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4199,8 +4730,13 @@ android_glGenSamplers__ILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)samplers ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)samplers, 0); + _env->ReleaseIntArrayElements(_array, (jint*)samplers, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4251,11 +4787,20 @@ exit: static void android_glDeleteSamplers__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint count, jobject samplers_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *samplers = (GLuint *) 0; + if (!samplers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "samplers == null"; + goto exit; + } samplers = (GLuint *)getPointer(_env, samplers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (samplers == NULL) { char * _samplersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4265,9 +4810,14 @@ android_glDeleteSamplers__ILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)samplers ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)samplers, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* GLboolean glIsSampler ( GLuint sampler ) */ @@ -4350,11 +4900,20 @@ exit: static void android_glSamplerParameteriv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *param = (GLint *) 0; + if (!param_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "param == null"; + goto exit; + } param = (GLint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4365,9 +4924,14 @@ android_glSamplerParameteriv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)param ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glSamplerParameterf ( GLuint sampler, GLenum pname, GLfloat param ) */ @@ -4429,11 +4993,20 @@ exit: static void android_glSamplerParameterfv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *param = (GLfloat *) 0; + if (!param_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "param == null"; + goto exit; + } param = (GLfloat *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { char * _paramBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -4444,9 +5017,14 @@ android_glSamplerParameterfv__IILjava_nio_FloatBuffer_2 (GLenum)pname, (GLfloat *)param ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)param, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetSamplerParameteriv ( GLuint sampler, GLenum pname, GLint *params ) */ @@ -4497,11 +5075,20 @@ exit: static void android_glGetSamplerParameteriv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4512,8 +5099,13 @@ android_glGetSamplerParameteriv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4565,11 +5157,20 @@ exit: static void android_glGetSamplerParameterfv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -4580,8 +5181,13 @@ android_glGetSamplerParameterfv__IILjava_nio_FloatBuffer_2 (GLenum)pname, (GLfloat *)params ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4652,11 +5258,20 @@ exit: static void android_glDeleteTransformFeedbacks__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; + if (!ids_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "ids == null"; + goto exit; + } ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4666,9 +5281,14 @@ android_glDeleteTransformFeedbacks__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)ids ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGenTransformFeedbacks ( GLsizei n, GLuint *ids ) */ @@ -4718,11 +5338,20 @@ exit: static void android_glGenTransformFeedbacks__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; + if (!ids_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "ids == null"; + goto exit; + } ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4732,8 +5361,13 @@ android_glGenTransformFeedbacks__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)ids ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)ids, 0); + _env->ReleaseIntArrayElements(_array, (jint*)ids, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4810,6 +5444,12 @@ android_glGetProgramBinary__II_3II_3IILjava_nio_Buffer_2 _env->GetIntArrayElements(binaryFormat_ref, (jboolean *)0); binaryFormat = binaryFormat_base + binaryFormatOffset; + if (!binary_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "binary == null"; + goto exit; + } binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_array, &_binaryRemaining, &_bufferOffset); if (binary == NULL) { char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -4844,6 +5484,9 @@ exit: static void android_glGetProgramBinary__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint program, jint bufSize, jobject length_buf, jobject binaryFormat_buf, jobject binary_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; jintArray _binaryFormatArray = (jintArray) 0; @@ -4860,7 +5503,19 @@ android_glGetProgramBinary__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_ni if (length_buf) { length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); } + if (!binaryFormat_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "binaryFormat == null"; + goto exit; + } binaryFormat = (GLenum *)getPointer(_env, binaryFormat_buf, (jarray*)&_binaryFormatArray, &_binaryFormatRemaining, &_binaryFormatBufferOffset); + if (!binary_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "binary == null"; + goto exit; + } binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_binaryArray, &_binaryRemaining, &_binaryBufferOffset); if (length_buf && length == NULL) { char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); @@ -4881,14 +5536,19 @@ android_glGetProgramBinary__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_ni (GLenum *)binaryFormat, (GLvoid *)binary ); + +exit: if (_binaryArray) { - releasePointer(_env, _binaryArray, binary, JNI_TRUE); + releasePointer(_env, _binaryArray, binary, _exception ? JNI_FALSE : JNI_TRUE); } if (_binaryFormatArray) { - _env->ReleaseIntArrayElements(_binaryFormatArray, (jint*)binaryFormat, 0); + _env->ReleaseIntArrayElements(_binaryFormatArray, (jint*)binaryFormat, _exception ? JNI_ABORT : 0); } if (_lengthArray) { - _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, 0); + _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4896,11 +5556,20 @@ android_glGetProgramBinary__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_ni static void android_glProgramBinary__IILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint program, jint binaryFormat, jobject binary_buf, jint length) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *binary = (GLvoid *) 0; + if (!binary_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "binary == null"; + goto exit; + } binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (binary == NULL) { char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -4912,9 +5581,14 @@ android_glProgramBinary__IILjava_nio_Buffer_2I (GLvoid *)binary, (GLsizei)length ); + +exit: if (_array) { releasePointer(_env, _array, binary, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramParameteri ( GLuint program, GLenum pname, GLint value ) */ @@ -4976,11 +5650,20 @@ exit: static void android_glInvalidateFramebuffer__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint numAttachments, jobject attachments_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLenum *attachments = (GLenum *) 0; + if (!attachments_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "attachments == null"; + goto exit; + } attachments = (GLenum *)getPointer(_env, attachments_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (attachments == NULL) { char * _attachmentsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4991,9 +5674,14 @@ android_glInvalidateFramebuffer__IILjava_nio_IntBuffer_2 (GLsizei)numAttachments, (GLenum *)attachments ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)attachments, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glInvalidateSubFramebuffer ( GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height ) */ @@ -5048,11 +5736,20 @@ exit: static void android_glInvalidateSubFramebuffer__IILjava_nio_IntBuffer_2IIII (JNIEnv *_env, jobject _this, jint target, jint numAttachments, jobject attachments_buf, jint x, jint y, jint width, jint height) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLenum *attachments = (GLenum *) 0; + if (!attachments_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "attachments == null"; + goto exit; + } attachments = (GLenum *)getPointer(_env, attachments_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (attachments == NULL) { char * _attachmentsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -5067,9 +5764,14 @@ android_glInvalidateSubFramebuffer__IILjava_nio_IntBuffer_2IIII (GLsizei)width, (GLsizei)height ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)attachments, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexStorage2D ( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height ) */ @@ -5149,11 +5851,20 @@ exit: static void android_glGetInternalformativ__IIIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint pname, jint bufSize, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -5166,8 +5877,13 @@ android_glGetInternalformativ__IIIILjava_nio_IntBuffer_2 (GLsizei)bufSize, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } diff --git a/core/jni/android_opengl_GLES31.cpp b/core/jni/android_opengl_GLES31.cpp index 156e7bdda5f22..0e596dc1e088c 100644 --- a/core/jni/android_opengl_GLES31.cpp +++ b/core/jni/android_opengl_GLES31.cpp @@ -547,11 +547,20 @@ exit: static void android_glGetFramebufferParameteriv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -562,8 +571,13 @@ android_glGetFramebufferParameteriv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -616,11 +630,20 @@ exit: static void android_glGetProgramInterfaceiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint programInterface, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -632,8 +655,13 @@ android_glGetProgramInterfaceiv__IIILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -777,6 +805,9 @@ exit: static void android_glGetProgramResourceiv__IIIILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint programInterface, jint index, jint propCount, jobject props_buf, jint bufSize, jobject length_buf, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _propsArray = (jintArray) 0; jint _propsBufferOffset = (jint) 0; jintArray _lengthArray = (jintArray) 0; @@ -790,10 +821,22 @@ android_glGetProgramResourceiv__IIIILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2L jint _paramsRemaining; GLint *params = (GLint *) 0; + if (!props_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "props == null"; + goto exit; + } props = (GLenum *)getPointer(_env, props_buf, (jarray*)&_propsArray, &_propsRemaining, &_propsBufferOffset); if (length_buf) { length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); } + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_paramsArray, &_paramsRemaining, &_paramsBufferOffset); if (props == NULL) { char * _propsBase = (char *)_env->GetIntArrayElements(_propsArray, (jboolean *) 0); @@ -817,15 +860,20 @@ android_glGetProgramResourceiv__IIIILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2L (GLsizei *)length, (GLint *)params ); + +exit: if (_paramsArray) { - _env->ReleaseIntArrayElements(_paramsArray, (jint*)params, 0); + _env->ReleaseIntArrayElements(_paramsArray, (jint*)params, _exception ? JNI_ABORT : 0); } if (_lengthArray) { - _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, 0); + _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, _exception ? JNI_ABORT : 0); } if (_propsArray) { _env->ReleaseIntArrayElements(_propsArray, (jint*)props, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* GLint glGetProgramResourceLocation ( GLuint program, GLenum programInterface, const GLchar *name ) */ @@ -1008,11 +1056,20 @@ exit: static void android_glDeleteProgramPipelines__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject pipelines_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; + if (!pipelines_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "pipelines == null"; + goto exit; + } pipelines = (GLuint *)getPointer(_env, pipelines_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pipelines == NULL) { char * _pipelinesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1022,9 +1079,14 @@ android_glDeleteProgramPipelines__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)pipelines ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)pipelines, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGenProgramPipelines ( GLsizei n, GLuint *pipelines ) */ @@ -1074,11 +1136,20 @@ exit: static void android_glGenProgramPipelines__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject pipelines_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; + if (!pipelines_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "pipelines == null"; + goto exit; + } pipelines = (GLuint *)getPointer(_env, pipelines_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pipelines == NULL) { char * _pipelinesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1088,8 +1159,13 @@ android_glGenProgramPipelines__ILjava_nio_IntBuffer_2 (GLsizei)n, (GLuint *)pipelines ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)pipelines, 0); + _env->ReleaseIntArrayElements(_array, (jint*)pipelines, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1152,11 +1228,20 @@ exit: static void android_glGetProgramPipelineiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pipeline, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1167,8 +1252,13 @@ android_glGetProgramPipelineiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1371,11 +1461,20 @@ exit: static void android_glProgramUniform1iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1387,9 +1486,14 @@ android_glProgramUniform1iv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform2iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ @@ -1441,11 +1545,20 @@ exit: static void android_glProgramUniform2iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1457,9 +1570,14 @@ android_glProgramUniform2iv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform3iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ @@ -1511,11 +1629,20 @@ exit: static void android_glProgramUniform3iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1527,9 +1654,14 @@ android_glProgramUniform3iv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform4iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ @@ -1581,11 +1713,20 @@ exit: static void android_glProgramUniform4iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1597,9 +1738,14 @@ android_glProgramUniform4iv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform1uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ @@ -1651,11 +1797,20 @@ exit: static void android_glProgramUniform1uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1667,9 +1822,14 @@ android_glProgramUniform1uiv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform2uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ @@ -1721,11 +1881,20 @@ exit: static void android_glProgramUniform2uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1737,9 +1906,14 @@ android_glProgramUniform2uiv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform3uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ @@ -1791,11 +1965,20 @@ exit: static void android_glProgramUniform3uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1807,9 +1990,14 @@ android_glProgramUniform3uiv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform4uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ @@ -1861,11 +2049,20 @@ exit: static void android_glProgramUniform4uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1877,9 +2074,14 @@ android_glProgramUniform4uiv__IIILjava_nio_IntBuffer_2 (GLsizei)count, (GLuint *)value ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform1fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ @@ -1931,11 +2133,20 @@ exit: static void android_glProgramUniform1fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -1947,9 +2158,14 @@ android_glProgramUniform1fv__IIILjava_nio_FloatBuffer_2 (GLsizei)count, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform2fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ @@ -2001,11 +2217,20 @@ exit: static void android_glProgramUniform2fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2017,9 +2242,14 @@ android_glProgramUniform2fv__IIILjava_nio_FloatBuffer_2 (GLsizei)count, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform3fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ @@ -2071,11 +2301,20 @@ exit: static void android_glProgramUniform3fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2087,9 +2326,14 @@ android_glProgramUniform3fv__IIILjava_nio_FloatBuffer_2 (GLsizei)count, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniform4fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ @@ -2141,11 +2385,20 @@ exit: static void android_glProgramUniform4fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2157,9 +2410,14 @@ android_glProgramUniform4fv__IIILjava_nio_FloatBuffer_2 (GLsizei)count, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2212,11 +2470,20 @@ exit: static void android_glProgramUniformMatrix2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2229,9 +2496,14 @@ android_glProgramUniformMatrix2fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2284,11 +2556,20 @@ exit: static void android_glProgramUniformMatrix3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2301,9 +2582,14 @@ android_glProgramUniformMatrix3fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2356,11 +2642,20 @@ exit: static void android_glProgramUniformMatrix4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2373,9 +2668,14 @@ android_glProgramUniformMatrix4fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix2x3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2428,11 +2728,20 @@ exit: static void android_glProgramUniformMatrix2x3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2445,9 +2754,14 @@ android_glProgramUniformMatrix2x3fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix3x2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2500,11 +2814,20 @@ exit: static void android_glProgramUniformMatrix3x2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2517,9 +2840,14 @@ android_glProgramUniformMatrix3x2fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix2x4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2572,11 +2900,20 @@ exit: static void android_glProgramUniformMatrix2x4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2589,9 +2926,14 @@ android_glProgramUniformMatrix2x4fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix4x2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2644,11 +2986,20 @@ exit: static void android_glProgramUniformMatrix4x2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2661,9 +3012,14 @@ android_glProgramUniformMatrix4x2fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix3x4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2716,11 +3072,20 @@ exit: static void android_glProgramUniformMatrix3x4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2733,9 +3098,14 @@ android_glProgramUniformMatrix3x4fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glProgramUniformMatrix4x3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ @@ -2788,11 +3158,20 @@ exit: static void android_glProgramUniformMatrix4x3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; + if (!value_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "value == null"; + goto exit; + } value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2805,9 +3184,14 @@ android_glProgramUniformMatrix4x3fv__IIIZLjava_nio_FloatBuffer_2 (GLboolean)transpose, (GLfloat *)value ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glValidateProgramPipeline ( GLuint pipeline ) */ @@ -2901,11 +3285,20 @@ exit: static void android_glGetBooleani_v__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint index, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLboolean *data = (GLboolean *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLboolean *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2916,8 +3309,13 @@ android_glGetBooleani_v__IILjava_nio_IntBuffer_2 (GLuint)index, (GLboolean *)data ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)data, 0); + _env->ReleaseIntArrayElements(_array, (jint*)data, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3001,11 +3399,20 @@ exit: static void android_glGetMultisamplefv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jint index, jobject val_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *val = (GLfloat *) 0; + if (!val_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "val == null"; + goto exit; + } val = (GLfloat *)getPointer(_env, val_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (val == NULL) { char * _valBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -3016,8 +3423,13 @@ android_glGetMultisamplefv__IILjava_nio_FloatBuffer_2 (GLuint)index, (GLfloat *)val ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)val, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)val, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3080,11 +3492,20 @@ exit: static void android_glGetTexLevelParameteriv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3096,8 +3517,13 @@ android_glGetTexLevelParameteriv__IIILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3150,11 +3576,20 @@ exit: static void android_glGetTexLevelParameterfv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -3166,8 +3601,13 @@ android_glGetTexLevelParameterfv__IIILjava_nio_FloatBuffer_2 (GLenum)pname, (GLfloat *)params ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } diff --git a/core/jni/android_opengl_GLES31Ext.cpp b/core/jni/android_opengl_GLES31Ext.cpp index 5be7be04f5810..9f2b0c5cf9586 100644 --- a/core/jni/android_opengl_GLES31Ext.cpp +++ b/core/jni/android_opengl_GLES31Ext.cpp @@ -499,11 +499,20 @@ exit: static void android_glDebugMessageControlKHR__IIIILjava_nio_IntBuffer_2Z (JNIEnv *_env, jobject _this, jint source, jint type, jint severity, jint count, jobject ids_buf, jboolean enabled) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; + if (!ids_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "ids == null"; + goto exit; + } ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -517,9 +526,14 @@ android_glDebugMessageControlKHR__IIIILjava_nio_IntBuffer_2Z (GLuint *)ids, (GLboolean)enabled ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glDebugMessageInsertKHR ( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf ) */ @@ -915,11 +929,20 @@ exit: static void android_glTexParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -930,9 +953,14 @@ android_glTexParameterIivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexParameterIuivEXT ( GLenum target, GLenum pname, const GLuint *params ) */ @@ -983,11 +1011,20 @@ exit: static void android_glTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -998,9 +1035,14 @@ android_glTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetTexParameterIivEXT ( GLenum target, GLenum pname, GLint *params ) */ @@ -1051,11 +1093,20 @@ exit: static void android_glGetTexParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1066,8 +1117,13 @@ android_glGetTexParameterIivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1119,11 +1175,20 @@ exit: static void android_glGetTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1134,8 +1199,13 @@ android_glGetTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1187,11 +1257,20 @@ exit: static void android_glSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *param = (GLint *) 0; + if (!param_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "param == null"; + goto exit; + } param = (GLint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1202,9 +1281,14 @@ android_glSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)param ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glSamplerParameterIuivEXT ( GLuint sampler, GLenum pname, const GLuint *param ) */ @@ -1255,11 +1339,20 @@ exit: static void android_glSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *param = (GLuint *) 0; + if (!param_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "param == null"; + goto exit; + } param = (GLuint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1270,9 +1363,14 @@ android_glSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)param ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetSamplerParameterIivEXT ( GLuint sampler, GLenum pname, GLint *params ) */ @@ -1323,11 +1421,20 @@ exit: static void android_glGetSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1338,8 +1445,13 @@ android_glGetSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1391,11 +1503,20 @@ exit: static void android_glGetSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1406,8 +1527,13 @@ android_glGetSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } diff --git a/core/jni/android_opengl_GLES32.cpp b/core/jni/android_opengl_GLES32.cpp index f9a1a8ea0d745..aa917a03043b7 100644 --- a/core/jni/android_opengl_GLES32.cpp +++ b/core/jni/android_opengl_GLES32.cpp @@ -535,6 +535,12 @@ android_glDebugMessageControl__IIIILjava_nio_IntBuffer_2Z jint _remaining; GLuint *ids = (GLuint *) 0; + if (!ids_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "ids == null"; + goto exit; + } ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; @@ -852,6 +858,12 @@ android_glDrawElementsBaseVertex__IIILjava_nio_Buffer_2I jint _remaining; void *indices = (void *) 0; + if (!indices_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "indices == null"; + goto exit; + } indices = (void *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count-basevertex) { _exception = 1; @@ -892,6 +904,12 @@ android_glDrawRangeElementsBaseVertex__IIIIILjava_nio_Buffer_2I jint _remaining; void *indices = (void *) 0; + if (!indices_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "indices == null"; + goto exit; + } indices = (void *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count-basevertex) { _exception = 1; @@ -1022,6 +1040,12 @@ android_glReadnPixels__IIIIIIILjava_nio_Buffer_2 jint _remaining; void *data = (void *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (void *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < bufSize) { _exception = 1; @@ -1116,6 +1140,12 @@ android_glGetnUniformfv__IIILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < bufSize) { _exception = 1; @@ -1206,6 +1236,12 @@ android_glGetnUniformiv__IIILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < bufSize) { _exception = 1; @@ -1296,6 +1332,12 @@ android_glGetnUniformuiv__IIILjava_nio_IntBuffer_2 jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < bufSize) { _exception = 1; @@ -1390,11 +1432,20 @@ exit: static void android_glTexParameterIiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1405,9 +1456,14 @@ android_glTexParameterIiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexParameterIuiv ( GLenum target, GLenum pname, const GLuint *params ) */ @@ -1458,11 +1514,20 @@ exit: static void android_glTexParameterIuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1473,9 +1538,14 @@ android_glTexParameterIuiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetTexParameterIiv ( GLenum target, GLenum pname, GLint *params ) */ @@ -1526,11 +1596,20 @@ exit: static void android_glGetTexParameterIiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1541,8 +1620,13 @@ android_glGetTexParameterIiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1594,11 +1678,20 @@ exit: static void android_glGetTexParameterIuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1609,8 +1702,13 @@ android_glGetTexParameterIuiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1662,11 +1760,20 @@ exit: static void android_glSamplerParameterIiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *param = (GLint *) 0; + if (!param_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "param == null"; + goto exit; + } param = (GLint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1677,9 +1784,14 @@ android_glSamplerParameterIiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)param ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glSamplerParameterIuiv ( GLuint sampler, GLenum pname, const GLuint *param ) */ @@ -1730,11 +1842,20 @@ exit: static void android_glSamplerParameterIuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *param = (GLuint *) 0; + if (!param_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "param == null"; + goto exit; + } param = (GLuint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1745,9 +1866,14 @@ android_glSamplerParameterIuiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)param ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glGetSamplerParameterIiv ( GLuint sampler, GLenum pname, GLint *params ) */ @@ -1798,11 +1924,20 @@ exit: static void android_glGetSamplerParameterIiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1813,8 +1948,13 @@ android_glGetSamplerParameterIiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -1866,11 +2006,20 @@ exit: static void android_glGetSamplerParameterIuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -1881,8 +2030,13 @@ android_glGetSamplerParameterIuiv__IILjava_nio_IntBuffer_2 (GLenum)pname, (GLuint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } diff --git a/core/jni/com_google_android_gles_jni_GLImpl.cpp b/core/jni/com_google_android_gles_jni_GLImpl.cpp index ad7d744cb693e..bf0e9eddb3e77 100644 --- a/core/jni/com_google_android_gles_jni_GLImpl.cpp +++ b/core/jni/com_google_android_gles_jni_GLImpl.cpp @@ -420,6 +420,9 @@ android_glColorMask__ZZZZ static void android_glColorPointerBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -438,17 +441,29 @@ android_glColorPointerBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ static void android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -464,20 +479,34 @@ android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ static void android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -494,9 +523,14 @@ android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (GLsizei)imageSize, (GLvoid *)data ); + +exit: if (_array) { releasePointer(_env, _array, data, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ @@ -601,6 +635,12 @@ android_glDeleteTextures__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *textures = (GLuint *) 0; + if (!textures_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "textures == null"; + goto exit; + } textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -705,6 +745,12 @@ android_glDrawElements__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *indices = (GLvoid *) 0; + if (!indices_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "indices == null"; + goto exit; + } indices = (GLvoid *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; @@ -860,6 +906,12 @@ android_glFogfv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1006,6 +1058,12 @@ android_glFogxv__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -1154,6 +1212,12 @@ android_glGenTextures__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *textures = (GLuint *) 0; + if (!textures_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "textures == null"; + goto exit; + } textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -1580,6 +1644,12 @@ android_glGetIntegerv__ILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2038,6 +2108,12 @@ android_glLightModelfv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2166,6 +2242,12 @@ android_glLightModelxv__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2322,6 +2404,12 @@ android_glLightfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2505,6 +2593,12 @@ android_glLightxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2644,11 +2738,20 @@ exit: static void android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -2657,9 +2760,14 @@ android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 glLoadMatrixf( (GLfloat *)m ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glLoadMatrixx ( const GLfixed *m ) */ @@ -2708,11 +2816,20 @@ exit: static void android_glLoadMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -2721,9 +2838,14 @@ android_glLoadMatrixx__Ljava_nio_IntBuffer_2 glLoadMatrixx( (GLfixed *)m ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glLogicOp ( GLenum opcode ) */ @@ -2836,6 +2958,12 @@ android_glMaterialfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -2991,6 +3119,12 @@ android_glMaterialxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -3100,11 +3234,20 @@ exit: static void android_glMultMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -3113,9 +3256,14 @@ android_glMultMatrixf__Ljava_nio_FloatBuffer_2 glMultMatrixf( (GLfloat *)m ); + +exit: if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMultMatrixx ( const GLfixed *m ) */ @@ -3164,11 +3312,20 @@ exit: static void android_glMultMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; + if (!m_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "m == null"; + goto exit; + } m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -3177,9 +3334,14 @@ android_glMultMatrixx__Ljava_nio_IntBuffer_2 glMultMatrixx( (GLfixed *)m ); + +exit: if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */ @@ -3234,6 +3396,9 @@ android_glNormal3x__III static void android_glNormalPointerBounds__IILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3251,6 +3416,9 @@ android_glNormalPointerBounds__IILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ @@ -3347,11 +3515,20 @@ android_glPushMatrix__ static void android_glReadPixels__IIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLvoid *pixels = (GLvoid *) 0; + if (!pixels_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "pixels == null"; + goto exit; + } pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pixels == NULL) { char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -3366,8 +3543,13 @@ android_glReadPixels__IIIIIILjava_nio_Buffer_2 (GLenum)type, (GLvoid *)pixels ); + +exit: if (_array) { - releasePointer(_env, _array, pixels, JNI_TRUE); + releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -3493,6 +3675,9 @@ android_glStencilOp__III static void android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3511,6 +3696,9 @@ android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */ @@ -3608,6 +3796,12 @@ android_glTexEnvfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -3751,6 +3945,12 @@ android_glTexEnvxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -3803,6 +4003,9 @@ exit: static void android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3829,6 +4032,9 @@ android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ @@ -3857,6 +4063,9 @@ android_glTexParameterx__III static void android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3883,6 +4092,9 @@ android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 if (_array) { releasePointer(_env, _array, pixels, JNI_FALSE); } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */ @@ -3911,6 +4123,9 @@ android_glTranslatex__III static void android_glVertexPointerBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -3929,6 +4144,9 @@ android_glVertexPointerBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ @@ -4041,6 +4259,12 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exponentRemaining; GLint *exponent = (GLint *) 0; + if (!mantissa_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "mantissa == null"; + goto exit; + } mantissa = (GLfixed *)getPointer(_env, mantissa_buf, (jarray*)&_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset); if (_mantissaRemaining < 16) { _exception = 1; @@ -4048,6 +4272,12 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 _exceptionMessage = "remaining() < 16 < needed"; goto exit; } + if (!exponent_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "exponent == null"; + goto exit; + } exponent = (GLint *)getPointer(_env, exponent_buf, (jarray*)&_exponentArray, &_exponentRemaining, &_exponentBufferOffset); if (_exponentRemaining < 16) { _exception = 1; @@ -4144,6 +4374,12 @@ android_glBufferSubData__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *data = (GLvoid *) 0; + if (!data_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "data == null"; + goto exit; + } data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < size) { _exception = 1; @@ -4232,6 +4468,12 @@ android_glClipPlanef__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *equation = (GLfloat *) 0; + if (!equation_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "equation == null"; + goto exit; + } equation = (GLfloat *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; @@ -4318,6 +4560,12 @@ android_glClipPlanex__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *equation = (GLfixed *) 0; + if (!equation_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "equation == null"; + goto exit; + } equation = (GLfixed *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; @@ -4428,6 +4676,12 @@ android_glDeleteBuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *buffers = (GLuint *) 0; + if (!buffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "buffers == null"; + goto exit; + } buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -4532,6 +4786,12 @@ android_glGenBuffers__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *buffers = (GLuint *) 0; + if (!buffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "buffers == null"; + goto exit; + } buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -4604,11 +4864,20 @@ exit: static void android_glGetBooleanv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLboolean *params = (GLboolean *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLboolean *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4618,8 +4887,13 @@ android_glGetBooleanv__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLboolean *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4686,11 +4960,20 @@ exit: static void android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *eqn = (GLfloat *) 0; + if (!eqn_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "eqn == null"; + goto exit; + } eqn = (GLfloat *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (eqn == NULL) { char * _eqnBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -4700,8 +4983,13 @@ android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 (GLenum)pname, (GLfloat *)eqn ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)eqn, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)eqn, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4752,11 +5040,20 @@ exit: static void android_glGetClipPlanex__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *eqn = (GLfixed *) 0; + if (!eqn_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "eqn == null"; + goto exit; + } eqn = (GLfixed *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (eqn == NULL) { char * _eqnBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4766,8 +5063,13 @@ android_glGetClipPlanex__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)eqn ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)eqn, 0); + _env->ReleaseIntArrayElements(_array, (jint*)eqn, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4818,11 +5120,20 @@ exit: static void android_glGetFixedv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -4832,8 +5143,13 @@ android_glGetFixedv__ILjava_nio_IntBuffer_2 (GLenum)pname, (GLfixed *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -4884,11 +5200,20 @@ exit: static void android_glGetFloatv__ILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -4898,8 +5223,13 @@ android_glGetFloatv__ILjava_nio_FloatBuffer_2 (GLenum)pname, (GLfloat *)params ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -5007,6 +5337,12 @@ android_glGetLightfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -5179,6 +5515,12 @@ android_glGetLightxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -5337,6 +5679,12 @@ android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -5481,6 +5829,12 @@ android_glGetMaterialxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -5619,6 +5973,12 @@ android_glGetTexEnviv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -5751,6 +6111,12 @@ android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -5861,6 +6227,12 @@ android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -5949,6 +6321,12 @@ android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -6037,6 +6415,12 @@ android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -6178,6 +6562,12 @@ android_glPointParameterfv__ILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -6274,6 +6664,12 @@ android_glPointParameterxv__ILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -6303,6 +6699,9 @@ exit: static void android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -6320,6 +6719,9 @@ android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ @@ -6429,6 +6831,12 @@ android_glTexEnviv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { @@ -6539,6 +6947,12 @@ android_glTexParameterfv__IILjava_nio_FloatBuffer_2 jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -6638,6 +7052,12 @@ android_glTexParameteriv__IILjava_nio_IntBuffer_2 jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -6726,6 +7146,12 @@ android_glTexParameterxv__IILjava_nio_IntBuffer_2 jint _remaining; GLfixed *params = (GLfixed *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; @@ -6846,6 +7272,12 @@ android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 jint _remaining; GLfloat *coords = (GLfloat *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLfloat *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -6943,6 +7375,12 @@ android_glDrawTexivOES__Ljava_nio_IntBuffer_2 jint _remaining; GLint *coords = (GLint *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLint *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -7040,6 +7478,12 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 jint _remaining; GLshort *coords = (GLshort *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLshort *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -7137,6 +7581,12 @@ android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 jint _remaining; GLfixed *coords = (GLfixed *) 0; + if (!coords_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "coords == null"; + goto exit; + } coords = (GLfixed *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; @@ -7172,6 +7622,9 @@ android_glLoadPaletteFromModelViewMatrixOES__ static void android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -7190,6 +7643,9 @@ android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ @@ -7208,6 +7664,9 @@ android_glMatrixIndexPointerOES__IIII static void android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jarray _array = (jarray) 0; jint _bufferOffset = (jint) 0; jint _remaining; @@ -7226,6 +7685,9 @@ android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I (GLvoid *)pointer, (GLsizei)remaining ); + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); + } } /* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ @@ -7403,6 +7865,12 @@ android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *framebuffers = (GLuint *) 0; + if (!framebuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "framebuffers == null"; + goto exit; + } framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -7499,6 +7967,12 @@ android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *renderbuffers = (GLuint *) 0; + if (!renderbuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "renderbuffers == null"; + goto exit; + } renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -7644,6 +8118,12 @@ android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *framebuffers = (GLuint *) 0; + if (!framebuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "framebuffers == null"; + goto exit; + } framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -7740,6 +8220,12 @@ android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 jint _remaining; GLuint *renderbuffers = (GLuint *) 0; + if (!renderbuffers_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "renderbuffers == null"; + goto exit; + } renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; @@ -7824,11 +8310,20 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 "glGetFramebufferAttachmentParameterivOES"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -7840,8 +8335,13 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 (GLint)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -7903,11 +8403,20 @@ android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 "glGetRenderbufferParameterivOES"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -7918,8 +8427,13 @@ android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 (GLint)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -7981,11 +8495,20 @@ android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 "glGetTexGenfv"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -7996,8 +8519,13 @@ android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 (GLint)pname, (GLfloat *)params ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -8059,11 +8587,20 @@ android_glGetTexGeniv__IILjava_nio_IntBuffer_2 "glGetTexGeniv"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -8074,8 +8611,13 @@ android_glGetTexGeniv__IILjava_nio_IntBuffer_2 (GLint)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -8137,11 +8679,20 @@ android_glGetTexGenxv__IILjava_nio_IntBuffer_2 "glGetTexGenxv"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -8152,8 +8703,13 @@ android_glGetTexGenxv__IILjava_nio_IntBuffer_2 (GLint)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -8280,11 +8836,20 @@ android_glTexGenfv__IILjava_nio_FloatBuffer_2 "glTexGenfv"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); @@ -8295,8 +8860,13 @@ android_glTexGenfv__IILjava_nio_FloatBuffer_2 (GLint)pname, (GLfloat *)params ); + +exit: if (_array) { - _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -8374,11 +8944,20 @@ android_glTexGeniv__IILjava_nio_IntBuffer_2 "glTexGeniv"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -8389,8 +8968,13 @@ android_glTexGeniv__IILjava_nio_IntBuffer_2 (GLint)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } } @@ -8468,11 +9052,20 @@ android_glTexGenxv__IILjava_nio_IntBuffer_2 "glTexGenxv"); return; } + jint _exception = 0; + const char * _exceptionType = NULL; + const char * _exceptionMessage = NULL; jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; + if (!params_buf) { + _exception = 1; + _exceptionType = "java/lang/IllegalArgumentException"; + _exceptionMessage = "params == null"; + goto exit; + } params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); @@ -8483,8 +9076,13 @@ android_glTexGenxv__IILjava_nio_IntBuffer_2 (GLint)pname, (GLint *)params ); + +exit: if (_array) { - _env->ReleaseIntArrayElements(_array, (jint*)params, 0); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); + } + if (_exception) { + jniThrowException(_env, _exceptionType, _exceptionMessage); } }