diff options
| author | Eli Zaretskii | 2013-12-07 19:21:57 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2013-12-07 19:21:57 +0200 |
| commit | ce1d7b61f12dcc1b67535b68d9b0655b45fcadb6 (patch) | |
| tree | 881d03f4f486933482cd2e3851184cd3b172ef1b /src/alloc.c | |
| parent | 6630df25238c5a1efa2bc6a0fa7889782e8c91b5 (diff) | |
| parent | fa6fa1a1773f255b5efbe52a743b017f4908a6cb (diff) | |
| download | emacs-ce1d7b61f12dcc1b67535b68d9b0655b45fcadb6.tar.gz emacs-ce1d7b61f12dcc1b67535b68d9b0655b45fcadb6.zip | |
Merge from trunk.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/alloc.c b/src/alloc.c index f12fdc5c861..f076075a94f 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -2066,20 +2066,20 @@ Lisp_Object | |||
| 2066 | make_uninit_bool_vector (EMACS_INT nbits) | 2066 | make_uninit_bool_vector (EMACS_INT nbits) |
| 2067 | { | 2067 | { |
| 2068 | Lisp_Object val; | 2068 | Lisp_Object val; |
| 2069 | struct Lisp_Bool_Vector *p; | 2069 | EMACS_INT words = bool_vector_words (nbits); |
| 2070 | EMACS_INT word_bytes, needed_elements; | 2070 | EMACS_INT word_bytes = words * sizeof (bits_word); |
| 2071 | word_bytes = bool_vector_words (nbits) * sizeof (bits_word); | 2071 | EMACS_INT needed_elements = ((bool_header_size - header_size + word_bytes |
| 2072 | needed_elements = ((bool_header_size - header_size + word_bytes | 2072 | + word_size - 1) |
| 2073 | + word_size - 1) | 2073 | / word_size); |
| 2074 | / word_size); | 2074 | struct Lisp_Bool_Vector *p |
| 2075 | p = (struct Lisp_Bool_Vector *) allocate_vector (needed_elements); | 2075 | = (struct Lisp_Bool_Vector *) allocate_vector (needed_elements); |
| 2076 | XSETVECTOR (val, p); | 2076 | XSETVECTOR (val, p); |
| 2077 | XSETPVECTYPESIZE (XVECTOR (val), PVEC_BOOL_VECTOR, 0, 0); | 2077 | XSETPVECTYPESIZE (XVECTOR (val), PVEC_BOOL_VECTOR, 0, 0); |
| 2078 | p->size = nbits; | 2078 | p->size = nbits; |
| 2079 | 2079 | ||
| 2080 | /* Clear padding at the end. */ | 2080 | /* Clear padding at the end. */ |
| 2081 | if (nbits) | 2081 | if (words) |
| 2082 | p->data[bool_vector_words (nbits) - 1] = 0; | 2082 | p->data[words - 1] = 0; |
| 2083 | 2083 | ||
| 2084 | return val; | 2084 | return val; |
| 2085 | } | 2085 | } |
| @@ -3477,7 +3477,7 @@ make_save_ptr_int (void *a, ptrdiff_t b) | |||
| 3477 | return val; | 3477 | return val; |
| 3478 | } | 3478 | } |
| 3479 | 3479 | ||
| 3480 | #if defined HAVE_MENUS && ! (defined USE_X_TOOLKIT || defined USE_GTK) | 3480 | #if ! (defined USE_X_TOOLKIT || defined USE_GTK) |
| 3481 | Lisp_Object | 3481 | Lisp_Object |
| 3482 | make_save_ptr_ptr (void *a, void *b) | 3482 | make_save_ptr_ptr (void *a, void *b) |
| 3483 | { | 3483 | { |
| @@ -4317,7 +4317,7 @@ live_buffer_p (struct mem_node *m, void *p) | |||
| 4317 | void dump_zombies (void) EXTERNALLY_VISIBLE; | 4317 | void dump_zombies (void) EXTERNALLY_VISIBLE; |
| 4318 | 4318 | ||
| 4319 | /* Array of objects that are kept alive because the C stack contains | 4319 | /* Array of objects that are kept alive because the C stack contains |
| 4320 | a pattern that looks like a reference to them . */ | 4320 | a pattern that looks like a reference to them. */ |
| 4321 | 4321 | ||
| 4322 | #define MAX_ZOMBIES 10 | 4322 | #define MAX_ZOMBIES 10 |
| 4323 | static Lisp_Object zombies[MAX_ZOMBIES]; | 4323 | static Lisp_Object zombies[MAX_ZOMBIES]; |
| @@ -6291,7 +6291,7 @@ survives_gc_p (Lisp_Object obj) | |||
| 6291 | 6291 | ||
| 6292 | 6292 | ||
| 6293 | 6293 | ||
| 6294 | /* Sweep: find all structures not marked, and free them. */ | 6294 | /* Sweep: find all structures not marked, and free them. */ |
| 6295 | 6295 | ||
| 6296 | static void | 6296 | static void |
| 6297 | gc_sweep (void) | 6297 | gc_sweep (void) |
| @@ -6303,7 +6303,7 @@ gc_sweep (void) | |||
| 6303 | sweep_strings (); | 6303 | sweep_strings (); |
| 6304 | check_string_bytes (!noninteractive); | 6304 | check_string_bytes (!noninteractive); |
| 6305 | 6305 | ||
| 6306 | /* Put all unmarked conses on free list */ | 6306 | /* Put all unmarked conses on free list. */ |
| 6307 | { | 6307 | { |
| 6308 | register struct cons_block *cblk; | 6308 | register struct cons_block *cblk; |
| 6309 | struct cons_block **cprev = &cons_block; | 6309 | struct cons_block **cprev = &cons_block; |
| @@ -6380,7 +6380,7 @@ gc_sweep (void) | |||
| 6380 | total_free_conses = num_free; | 6380 | total_free_conses = num_free; |
| 6381 | } | 6381 | } |
| 6382 | 6382 | ||
| 6383 | /* Put all unmarked floats on free list */ | 6383 | /* Put all unmarked floats on free list. */ |
| 6384 | { | 6384 | { |
| 6385 | register struct float_block *fblk; | 6385 | register struct float_block *fblk; |
| 6386 | struct float_block **fprev = &float_block; | 6386 | struct float_block **fprev = &float_block; |
| @@ -6426,7 +6426,7 @@ gc_sweep (void) | |||
| 6426 | total_free_floats = num_free; | 6426 | total_free_floats = num_free; |
| 6427 | } | 6427 | } |
| 6428 | 6428 | ||
| 6429 | /* Put all unmarked intervals on free list */ | 6429 | /* Put all unmarked intervals on free list. */ |
| 6430 | { | 6430 | { |
| 6431 | register struct interval_block *iblk; | 6431 | register struct interval_block *iblk; |
| 6432 | struct interval_block **iprev = &interval_block; | 6432 | struct interval_block **iprev = &interval_block; |
| @@ -6475,7 +6475,7 @@ gc_sweep (void) | |||
| 6475 | total_free_intervals = num_free; | 6475 | total_free_intervals = num_free; |
| 6476 | } | 6476 | } |
| 6477 | 6477 | ||
| 6478 | /* Put all unmarked symbols on free list */ | 6478 | /* Put all unmarked symbols on free list. */ |
| 6479 | { | 6479 | { |
| 6480 | register struct symbol_block *sblk; | 6480 | register struct symbol_block *sblk; |
| 6481 | struct symbol_block **sprev = &symbol_block; | 6481 | struct symbol_block **sprev = &symbol_block; |
| @@ -6512,7 +6512,7 @@ gc_sweep (void) | |||
| 6512 | { | 6512 | { |
| 6513 | ++num_used; | 6513 | ++num_used; |
| 6514 | if (!pure_p) | 6514 | if (!pure_p) |
| 6515 | UNMARK_STRING (XSTRING (sym->s.name)); | 6515 | eassert (!STRING_MARKED_P (XSTRING (sym->s.name))); |
| 6516 | sym->s.gcmarkbit = 0; | 6516 | sym->s.gcmarkbit = 0; |
| 6517 | } | 6517 | } |
| 6518 | } | 6518 | } |