Fixed warning from generated native code on mac os x

This commit is contained in:
Elias Naur 2006-05-01 08:58:26 +00:00
parent 8baee79bd2
commit 3ce92a9563
3 changed files with 16 additions and 8 deletions

View File

@ -128,7 +128,7 @@ public class NativeMethodStubsGenerator {
writer.print(" = ");
}
writer.print(method.getSimpleName() + "(");
generateCallParameters(writer, method.getParameters());
generateCallParameters(writer, type_map, method.getParameters());
writer.print(")");
writer.println(";");
generateStringDeallocations(writer, method.getParameters());
@ -156,19 +156,27 @@ public class NativeMethodStubsGenerator {
writer.println();
}
private static void generateCallParameters(PrintWriter writer, Collection<ParameterDeclaration> params) {
private static void generateCallParameters(PrintWriter writer, TypeMap type_map, Collection<ParameterDeclaration> params) {
if (params.size() > 0) {
Iterator<ParameterDeclaration> it = params.iterator();
generateCallParameter(writer, it.next());
generateCallParameter(writer, type_map, it.next());
while (it.hasNext()) {
writer.print(", ");
generateCallParameter(writer, it.next());
generateCallParameter(writer, type_map, it.next());
}
}
}
private static void generateCallParameter(PrintWriter writer, ParameterDeclaration param) {
if (param.getAnnotation(Result.class) != null || param.getAnnotation(Indirect.class) != null)
private static void generateCallParameter(PrintWriter writer, TypeMap type_map, ParameterDeclaration param) {
boolean is_indirect = param.getAnnotation(Indirect.class) != null;
if (is_indirect) {
writer.print("(");
NativeTypeTranslator translator = new NativeTypeTranslator(type_map, param);
param.getType().accept(translator);
writer.print(translator.getSignature());
writer.print("*)");
}
if (param.getAnnotation(Result.class) != null || is_indirect)
writer.print("&");
if (param.getAnnotation(Result.class) != null) {
writer.print(Utils.RESULT_VAR_NAME);

View File

@ -68,7 +68,7 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_ARBShaderObjects_nglCreateShaderObj
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBShaderObjects_nglShaderSourceARB(JNIEnv *env, jclass clazz, jint shader, jint count, jobject string, jint string_position, jint length, jlong function_pointer) {
const GLcharARB *string_address = ((const GLcharARB *)(*env)->GetDirectBufferAddress(env, string)) + string_position;
glShaderSourceARBPROC glShaderSourceARB = (glShaderSourceARBPROC)((intptr_t)function_pointer);
glShaderSourceARB(shader, count, &string_address, &length);
glShaderSourceARB(shader, count, (const GLcharARB **)&string_address, (const GLint*)&length);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBShaderObjects_nglCompileShaderARB(JNIEnv *env, jclass clazz, jint shaderObj, jlong function_pointer) {

View File

@ -77,7 +77,7 @@ typedef void (APIENTRY *glBlendEquationSeparatePROC) (GLenum modeRGB, GLenum mod
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL20_nglShaderSource(JNIEnv *env, jclass clazz, jint shader, jint count, jobject string, jint string_position, jint length, jlong function_pointer) {
const GLchar *string_address = ((const GLchar *)(*env)->GetDirectBufferAddress(env, string)) + string_position;
glShaderSourcePROC glShaderSource = (glShaderSourcePROC)((intptr_t)function_pointer);
glShaderSource(shader, count, &string_address, &length);
glShaderSource(shader, count, (const GLchar **)&string_address, (const GLint*)&length);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_GL20_nglCreateShader(JNIEnv *env, jclass clazz, jint type, jlong function_pointer) {