X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=wrappergen%2Fwrite_jna.c;h=228520625e2cccc5428581bddbe3d4fc6cb0656b;hb=2d4a842e50718fa66d8d13aac18871c090de6b31;hp=a727de0b620486fe5475f718c4bc5002e1158160;hpb=50cf45288a13f4125e798286622be62b93734fd3;p=cparser diff --git a/wrappergen/write_jna.c b/wrappergen/write_jna.c index a727de0..2285206 100644 --- a/wrappergen/write_jna.c +++ b/wrappergen/write_jna.c @@ -103,7 +103,7 @@ static void write_pointer_type(const pointer_type_t *type) } if (is_type_pointer(points_to)) { /* hack... */ - fputs("Pointer[]", out); + fputs("java.nio.Buffer", out); return; } fputs("Pointer", out); @@ -401,7 +401,7 @@ static void write_function(const entity_t *entity) const function_type_t *function_type = (const function_type_t*) entity->declaration.type; - fputc('\t', out); + fprintf(out, "\tpublic static native "); type_t *return_type = skip_typeref(function_type->return_type); write_type(return_type); fprintf(out, " %s(", entity->base.symbol->string); @@ -444,12 +444,13 @@ void write_jna_decls(FILE *output, const translation_unit_t *unit) print_to_file(out); fprintf(out, "/* WARNING: Automatically generated file */\n"); - fputs("import com.sun.jna.Library;\n", out); + fputs("import com.sun.jna.Native;\n", out); fputs("import com.sun.jna.Pointer;\n", out); fputs("\n\n", out); /* TODO: where to get the name from? */ - fputs("public interface binding extends Library {\n", out); + fputs("public class binding {\n", out); + fputs("\tstatic { Native.register(\"firm\"); }\n", out); /* read the avoid list */ FILE *avoid = fopen("avoid.config", "r");