From: Paul Eggert Date: Mon, 4 Dec 2017 02:17:00 +0000 (-0800) Subject: allocate_vectorlike minor cleanup X-Git-Tag: emacs-27.0.90~6090 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a597969f1360b8c28fd4467018792662b698e03a;p=emacs.git 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. --- 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; + } }