aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 201e3f0b13f..503ef98b983 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3353,7 +3353,7 @@ static struct Lisp_Vector *
3353allocate_vectorlike (ptrdiff_t len) 3353allocate_vectorlike (ptrdiff_t len)
3354{ 3354{
3355 eassert (0 < len && len <= VECTOR_ELTS_MAX); 3355 eassert (0 < len && len <= VECTOR_ELTS_MAX);
3356 size_t nbytes = header_size + len * word_size; 3356 ptrdiff_t nbytes = header_size + len * word_size;
3357 struct Lisp_Vector *p; 3357 struct Lisp_Vector *p;
3358 3358
3359 MALLOC_BLOCK_INPUT; 3359 MALLOC_BLOCK_INPUT;
@@ -3496,8 +3496,16 @@ See also the function `vector'. */)
3496{ 3496{
3497 CHECK_TYPE (FIXNATP (length) && XFIXNAT (length) <= PTRDIFF_MAX, 3497 CHECK_TYPE (FIXNATP (length) && XFIXNAT (length) <= PTRDIFF_MAX,
3498 Qwholenump, length); 3498 Qwholenump, length);
3499 struct Lisp_Vector *p = allocate_vector (XFIXNAT (length)); 3499 return make_vector (XFIXNAT (length), init);
3500 for (ptrdiff_t i = 0; i < XFIXNAT (length); i++) 3500}
3501
3502/* Return a new vector of length LENGTH with each element being INIT. */
3503
3504Lisp_Object
3505make_vector (ptrdiff_t length, Lisp_Object init)
3506{
3507 struct Lisp_Vector *p = allocate_vector (length);
3508 for (ptrdiff_t i = 0; i < length; i++)
3501 p->contents[i] = init; 3509 p->contents[i] = init;
3502 return make_lisp_ptr (p, Lisp_Vectorlike); 3510 return make_lisp_ptr (p, Lisp_Vectorlike);
3503} 3511}