minor fixes
[ia32rtools.git] / tools / protoparse.h
index 70d02c3..8e88ba0 100644 (file)
@@ -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",
@@ -251,6 +253,7 @@ static const char *known_ptr_types[] = {
 
 static const char *ignored_keywords[] = {
        "extern",
+       "static",
        "WINBASEAPI",
        "WINUSERAPI",
        "WINGDIAPI",
@@ -1063,12 +1066,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);