X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fdumper.c;h=9e93d0967d2877ec671927078680b0132341d41d;hb=57bf633187a745973c8f0e0220e3aad79a83462f;hp=b60496c4ac4521572e5d6d22c0bdf56d0425e7e4;hpb=d81014e89b5102527e5b50aac62edeed2955671d;p=chise%2Fxemacs-chise.git.1 diff --git a/src/dumper.c b/src/dumper.c index b60496c..9e93d09 100644 --- a/src/dumper.c +++ b/src/dumper.c @@ -282,7 +282,11 @@ static int pdump_fd; static void *pdump_buf; static FILE *pdump_out; +#ifdef UTF2000 +#define PDUMP_HASHSIZE 20000001 +#else #define PDUMP_HASHSIZE 200001 +#endif static pdump_entry_list_elt **pdump_hash; @@ -440,7 +444,7 @@ pdump_get_indirect_count (EMACS_INT code, stderr_out ("Unsupported count type : %d (line = %d, code=%ld)\n", idesc[line].type, line, (long)code); pdump_backtrace (); - abort (); + ABORT (); } count += delta; return count; @@ -540,7 +544,7 @@ pdump_register_sub (const void *data, const struct lrecord_description *desc, in default: stderr_out ("Unsupported dump type : %d\n", desc[pos].type); pdump_backtrace (); - abort (); + ABORT (); }; } } @@ -566,10 +570,10 @@ pdump_register_object (Lisp_Object obj) if (imp->description) { int me = depth++; - if (me>65536) + if (me>=65536) { stderr_out ("Backtrace overflow, loop ?\n"); - abort (); + ABORT (); } backtrace[me].obj = objh; backtrace[me].position = 0; @@ -601,10 +605,10 @@ pdump_register_struct (const void *data, { int me = depth++; int i; - if (me>65536) + if (me>=65536) { stderr_out ("Backtrace overflow, loop ?\n"); - abort (); + ABORT (); } backtrace[me].obj = 0; backtrace[me].position = 0; @@ -717,7 +721,7 @@ pdump_dump_data (pdump_entry_list_elt *elt, } default: stderr_out ("Unsupported dump type : %d\n", desc[pos].type); - abort (); + ABORT (); } } } @@ -795,7 +799,7 @@ pdump_reloc_one (void *data, EMACS_INT delta, } default: stderr_out ("Unsupported dump type : %d\n", desc[pos].type); - abort (); + ABORT (); }; } } @@ -1067,7 +1071,8 @@ pdump (void) pdump_dump_root_objects (); fclose (pdump_out); - close (pdump_fd); + /* pdump_fd is already closed by the preceding fclose call + close (pdump_fd); */ free (pdump_buf);