diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2017-12-03 18:17:00 -0800 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-12-03 18:18:02 -0800 |
| commit | a597969f1360b8c28fd4467018792662b698e03a (patch) | |
| tree | d05f411481b000a7773d1351eebd641a878aca5f | |
| parent | c54718e0bb390b35d86e8cab7ae1a7d1da9c047c (diff) | |
| download | emacs-a597969f1360b8c28fd4467018792662b698e03a.tar.gz | |
allocate_vectorlike minor cleanup
* src/alloc.c (allocate_vectorlike): Move a bit of code out of the
critical section. Although this doesn’t really help performance,
it cleans up the code a bit and should make it easier to add
pointer bounds checking.
| -rw-r--r-- | src/alloc.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/alloc.c b/src/alloc.c index 49c99501f11..4f3928a4824 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -3317,15 +3317,14 @@ sweep_vectors (void) static struct Lisp_Vector * allocate_vectorlike (ptrdiff_t len) { - struct Lisp_Vector *p; - - MALLOC_BLOCK_INPUT; - if (len == 0) - p = XVECTOR (zero_vector); + return XVECTOR (zero_vector); else { size_t nbytes = header_size + len * word_size; + struct Lisp_Vector *p; + + MALLOC_BLOCK_INPUT; #ifdef DOUG_LEA_MALLOC if (!mmap_lisp_allowed_p ()) @@ -3355,11 +3354,11 @@ allocate_vectorlike (ptrdiff_t len) consing_since_gc += nbytes; vector_cells_consed += len; - } - MALLOC_UNBLOCK_INPUT; + MALLOC_UNBLOCK_INPUT; - return p; + return p; + } } |
