1#include <string.h> 2 3/* void glGetShaderInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */ 4static 5jstring 6android_glGetShaderInfoLog (JNIEnv *_env, jobject _this, jint shader) { 7 GLint infoLen = 0; 8 jstring _result = 0; 9 char* buf = 0; 10 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); 11 if (infoLen) { 12 char* buf = (char*) malloc(infoLen); 13 if (buf == 0) { 14 _env->ThrowNew(IAEClass, "out of memory"); 15 goto exit; 16 } 17 glGetShaderInfoLog(shader, infoLen, NULL, buf); 18 _result = _env->NewStringUTF(buf); 19 } else { 20 _result = _env->NewStringUTF(""); 21 } 22exit: 23 if (buf) { 24 free(buf); 25 } 26 return _result; 27}