X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Fprotoparse.h;h=ced1a546d242221084fcfa3dd877c7635f3fc645;hb=360cca21a7b27400c4953c49e0afc8628e003a0c;hp=70d02c3507a2c2b436171009d4c6b1ec25615172;hpb=17ed469eafaf2698cd31cdf0b2cb0e35fa799cd7;p=ia32rtools.git diff --git a/tools/protoparse.h b/tools/protoparse.h index 70d02c3..ced1a54 100644 --- a/tools/protoparse.h +++ b/tools/protoparse.h @@ -23,8 +23,9 @@ struct parsed_proto_arg { char *reg; struct parsed_type type; struct parsed_proto *pp; // fptr or struct - void *datap; unsigned int is_saved:1; // not set here, for tool use + void **push_refs; + int push_ref_cnt; }; struct parsed_proto { @@ -215,6 +216,7 @@ static const char *known_ptr_types[] = { "HRGN", "HRSRC", "HKEY", + "HKL", "HMENU", "HMONITOR", "HWAVEOUT", @@ -1063,12 +1065,10 @@ static inline void proto_release(struct parsed_proto *pp) int i; for (i = 0; i < pp->argc; i++) { - if (pp->arg[i].reg != NULL) - free(pp->arg[i].reg); - if (pp->arg[i].type.name != NULL) - free(pp->arg[i].type.name); - if (pp->arg[i].pp != NULL) - free(pp->arg[i].pp); + free(pp->arg[i].reg); + free(pp->arg[i].type.name); + free(pp->arg[i].pp); + free(pp->arg[i].push_refs); } if (pp->ret_type.name != NULL) free(pp->ret_type.name);