diff options
| -rw-r--r-- | core/jni/android_opengl_GLES20.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/core/jni/android_opengl_GLES20.cpp b/core/jni/android_opengl_GLES20.cpp index ac3bf7a5b735..b5c0b645c7f0 100644 --- a/core/jni/android_opengl_GLES20.cpp +++ b/core/jni/android_opengl_GLES20.cpp @@ -3084,15 +3084,16 @@ static jstring android_glGetShaderInfoLog(JNIEnv *_env, jobject, jint shader) { GLint infoLen = 0; glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); if (!infoLen) { - return _env->NewStringUTF(""); + infoLen = 512; } char* buf = (char*) malloc(infoLen); if (buf == NULL) { jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); return NULL; } - glGetShaderInfoLog(shader, infoLen, NULL, buf); - jstring result = _env->NewStringUTF(buf); + GLsizei outLen = 0; + glGetShaderInfoLog(shader, infoLen, &outLen, buf); + jstring result = _env->NewStringUTF(outLen == 0 ? "" : buf); free(buf); return result; } |