diff --git a/src/frame.c b/src/frame.c index 6630fa18808aa4860273c5f73d9c71f0be6a4ad2..39e9a92bcdc6d4b8a9a72afac3b87ffb997fd61d 100644 --- a/src/frame.c +++ b/src/frame.c @@ -141,13 +141,15 @@ make_frame (mini_p) register struct frame *f; register Lisp_Object root_window; register Lisp_Object mini_window; - - frame = Fmake_vector (((sizeof (struct frame) - (sizeof (Lisp_Vector) - - sizeof (Lisp_Object))) - / sizeof (Lisp_Object)), - make_number (0)); - XSETTYPE (frame, Lisp_Frame); - f = XFRAME (frame); + register struct Lisp_Vector *vec; + int i; + + vec = allocate_vectorlike ((EMACS_INT) VECSIZE (struct frame)); + for (i = 0; i < VECSIZE (struct frame); i++) + XSETFASTINT (vec->contents[i], 0); + vec->size = VECSIZE (struct frame); + f = (struct frame *)vec; + XSETFRAME (frame, f); f->cursor_x = 0; f->cursor_y = 0;