X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=wrappergen%2Fwrite_jna.c;h=1739481ba1f8b6e1cd2df8e9ca53951a2b468529;hb=c10b6aa243f6a36e53fb4aef63da3258b369bddb;hp=189425cefefce3b40d4b14229852edfdbe3530f4;hpb=fbbb2b6932bdd8455b850b750d93b4d5584402a7;p=cparser diff --git a/wrappergen/write_jna.c b/wrappergen/write_jna.c index 189425c..1739481 100644 --- a/wrappergen/write_jna.c +++ b/wrappergen/write_jna.c @@ -44,8 +44,6 @@ static pset_new_t avoid_symbols; static output_limit *output_limits; static const char *libname; -static void write_type(type_t *type); - static bool is_system_header(const char *fname) { if (strncmp(fname, "/usr/include", 12) == 0) @@ -224,16 +222,11 @@ static void write_type(type_t *type) case TYPE_ENUM: write_enum_type(&type->enumt); return; - case TYPE_BUILTIN: - write_type(type->builtin.real_type); - return; case TYPE_ERROR: - case TYPE_INVALID: case TYPE_TYPEOF: case TYPE_TYPEDEF: panic("invalid type found"); case TYPE_ARRAY: - case TYPE_BITFIELD: case TYPE_REFERENCE: case TYPE_FUNCTION: case TYPE_COMPLEX: @@ -277,7 +270,7 @@ static void write_unary_expression(const unary_expression_t *expression) case EXPR_UNARY_NOT: fputc('!', out); break; - case EXPR_UNARY_CAST_IMPLICIT: + case EXPR_UNARY_CAST: write_expression(expression->value); return; default: @@ -541,6 +534,8 @@ void write_jna_decls(FILE *output, const translation_unit_t *unit) const char *input_name = entity->base.source_position.input_name; if (is_system_header(input_name)) continue; + if (entity->function.elf_visibility != ELF_VISIBILITY_DEFAULT) + continue; if (output_limits != NULL) { bool in_limits = false; for (output_limit *limit = output_limits; limit != NULL;