pe*alloc
[m6w6/ext-psi] / src / data.c
index 4f7168facd6a822bdf2d508a7cad845bc58fadd4..b1fbc49db6ddaaed164d6770c3567d400708b5e1 100644 (file)
@@ -35,7 +35,7 @@ struct psi_data *psi_data_ctor_with_dtors(struct psi_data *data,
                psi_error_cb error, unsigned flags)
 {
        if (!data) {
-               data = calloc(1, sizeof(*data));
+               data = pecalloc(1, sizeof(*data), 1);
        }
 
        data->error = error;
@@ -78,7 +78,7 @@ struct psi_data *psi_data_ctor(struct psi_data *data, psi_error_cb error,
                unsigned flags)
 {
        if (!data) {
-               data = calloc(1, sizeof(*data));
+               data = pecalloc(1, sizeof(*data), 1);
        }
 
        data->error = error;
@@ -121,7 +121,7 @@ struct psi_data *psi_data_ctor(struct psi_data *data, psi_error_cb error,
 struct psi_data *psi_data_exchange(struct psi_data *dest, struct psi_data *src)
 {
        if (!dest) {
-               dest = malloc(sizeof(*dest));
+               dest = pemalloc(sizeof(*dest), 1);
        }
        *dest = *src;
        memset(src, 0, sizeof(*src));
@@ -164,10 +164,7 @@ void psi_data_dump(int fd, struct psi_data *D)
        char *libname;
 
        if (D->file.filename) {
-               size_t i = 0;
-               char *libname;
-
-               dprintf(fd, "// filename=%s (%u errors)\n", D->file.filename, D->errors);
+               dprintf(fd, "// filename=%s (%u errors)\n", D->file.filename->val, D->errors);
        }
        while (psi_plist_get(D->file.libnames, i++, &libname)) {
                dprintf(fd, "lib \"%s\";\n", libname);
@@ -234,8 +231,14 @@ void psi_data_dump(int fd, struct psi_data *D)
                struct psi_decl *decl;
 
                while (psi_plist_get(D->decls, i++, &decl)) {
+                       if (decl->extvar) {
+                               dprintf(fd, "/* extvar accessor\n");
+                       }
                        psi_decl_dump(fd, decl);
-                       dprintf(fd, "// %p \n", decl->sym);
+                       dprintf(fd, "\n");
+                       if (decl->extvar) {
+                               dprintf(fd, "   extvar accessor */\n");
+                       }
                }
                dprintf(fd, "\n");
        }