diff options
author | Karl Heuer <[email protected]> | 1994-11-16 04:48:37 +0000 |
---|---|---|
committer | Karl Heuer <[email protected]> | 1994-11-16 04:48:37 +0000 |
commit | 1825c68d0c522e82968bccb90d34f3f525946ba2 (patch) | |
tree | 21a7592613c4cc1886ceb40427a9fdadac93da69 /src/alloc.c | |
parent | b8e0549dc41377a70d2467571dfcbccbecd412f7 (diff) |
(Fmake_vector): Call allocate_vectorlike.
(allocate_vectorlike): New function, extracted from Fmake_vector.
Diffstat (limited to 'src/alloc.c')
-rw-r--r-- | src/alloc.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/src/alloc.c b/src/alloc.c index 62f37d61bf..e8c137bb4e 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -583,32 +583,43 @@ DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0, struct Lisp_Vector *all_vectors; +struct Lisp_Vector * +allocate_vectorlike (len) + EMACS_INT len; +{ + struct Lisp_Vector *p; + + p = (struct Lisp_Vector *)xmalloc (sizeof (struct Lisp_Vector) + + (len - 1) * sizeof (Lisp_Object)); + VALIDATE_LISP_STORAGE (p, 0); + consing_since_gc += (sizeof (struct Lisp_Vector) + + (len - 1) * sizeof (Lisp_Object)); + + p->next = all_vectors; + all_vectors = p; + return p; +} + DEFUN ("make-vector", Fmake_vector, Smake_vector, 2, 2, 0, "Return a newly created vector of length LENGTH, with each element being INIT.\n\ See also the function `vector'.") (length, init) register Lisp_Object length, init; { - register int sizei, index; - register Lisp_Object vector; + Lisp_Object vector; + register EMACS_INT sizei; + register int index; register struct Lisp_Vector *p; CHECK_NATNUM (length, 0); sizei = XFASTINT (length); - p = (struct Lisp_Vector *) xmalloc (sizeof (struct Lisp_Vector) + (sizei - 1) * sizeof (Lisp_Object)); - VALIDATE_LISP_STORAGE (p, 0); - - XSETVECTOR (vector, p); - consing_since_gc += sizeof (struct Lisp_Vector) + (sizei - 1) * sizeof (Lisp_Object); - + p = allocate_vectorlike (sizei); p->size = sizei; - p->next = all_vectors; - all_vectors = p; - for (index = 0; index < sizei; index++) p->contents[index] = init; + XSETVECTOR (vector, p); return vector; } |