summaryrefslogtreecommitdiffstats
path: root/opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2011-04-08 20:01:01 -0700
committerElliott Hughes <enh@google.com>2011-04-11 15:31:20 -0700
commit24ce5fb2cc09d0a14406e7b935f8648c5720d27e (patch)
tree022bd63502ea1a649ecf32bdb3dc2e0205376901 /opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp
parent7797e647fc8fcd5091b9449c0044f5cb70db5b47 (diff)
downloadframeworks_base-24ce5fb2cc09d0a14406e7b935f8648c5720d27e.zip
frameworks_base-24ce5fb2cc09d0a14406e7b935f8648c5720d27e.tar.gz
frameworks_base-24ce5fb2cc09d0a14406e7b935f8648c5720d27e.tar.bz2
Kill the global references in the OpenGL wrappers.
Just use jniThrowException instead. Note that it would be trivial to throw seemingly more appropriate exceptions (NullPointerException and OutOfMemoryException in particular), but I'm only attempting to preserve existing behavior here. I also found shadowing bugs in some of the special-case functions, which would previously always have leaked memory. This also moves an accidental change to a generated file (ActivityThread -> AppGlobals) into the generator, so it won't be overwritten in future. Change-Id: Iab570310b568cb406c60dd0e2b8211f8a36ae590
Diffstat (limited to 'opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp')
-rw-r--r--opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp b/opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp
index d92f515..ce6ab24 100644
--- a/opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp
+++ b/opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.cpp
@@ -1,27 +1,19 @@
-#include <string.h>
+#include <stdlib.h>
/* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
-static
-jstring
-android_glGetProgramInfoLog (JNIEnv *_env, jobject _this, jint shader) {
+static jstring android_glGetProgramInfoLog(JNIEnv *_env, jobject, jint shader) {
GLint infoLen = 0;
- jstring _result = 0;
- char* buf = 0;
glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
- if (infoLen) {
- char* buf = (char*) malloc(infoLen);
- if (buf == 0) {
- _env->ThrowNew(IAEClass, "out of memory");
- goto exit;
- }
- glGetProgramInfoLog(shader, infoLen, NULL, buf);
- _result = _env->NewStringUTF(buf);
- } else {
- _result = _env->NewStringUTF("");
+ if (!infoLen) {
+ return _env->NewStringUTF("");
}
-exit:
- if (buf) {
- free(buf);
+ char* buf = (char*) malloc(infoLen);
+ if (buf == NULL) {
+ jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory");
+ return NULL;
}
- return _result;
-} \ No newline at end of file
+ glGetProgramInfoLog(shader, infoLen, NULL, buf);
+ jstring result = _env->NewStringUTF(buf);
+ free(buf);
+ return result;
+}