From cffec418d6dc9e0de14d57d722208a11e6f0ac17 Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Wed, 16 Nov 1994 05:16:42 +0000 Subject: [PATCH] (make_dummy_parent, make_window): Use allocate_vectorlike and VECSIZE. --- src/window.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/window.c b/src/window.c index 822dcea7199..0ede40c2402 100644 --- a/src/window.c +++ b/src/window.c @@ -119,18 +119,16 @@ DEFUN ("window-live-p", Fwindow_live_p, Swindow_live_p, 1, 1, 0, Lisp_Object make_window () { - register Lisp_Object val; + Lisp_Object val; register struct window *p; - - /* Add sizeof (Lisp_Object) here because sizeof (struct Lisp_Vector) - includes the first element. */ - val = Fmake_vector ( - make_number ((sizeof (struct window) - sizeof (struct Lisp_Vector) - + sizeof (Lisp_Object)) - / sizeof (Lisp_Object)), - Qnil); - XSETTYPE (val, Lisp_Window); - p = XWINDOW (val); + register struct Lisp_Vector *vec; + int i; + + vec = allocate_vectorlike ((EMACS_INT) VECSIZE (struct window)); + for (i = 0; i < VECSIZE (struct window); i++) + vec->contents[i] = Qnil; + vec->size = VECSIZE (struct window); + p = (struct window *)vec; XSETFASTINT (p->sequence_number, ++sequence_number); XSETFASTINT (p->left, 0); XSETFASTINT (p->top, 0); @@ -145,6 +143,7 @@ make_window () p->frame = Qnil; p->display_table = Qnil; p->dedicated = Qnil; + XSETWINDOW (val, p); return val; } @@ -2042,16 +2041,19 @@ static make_dummy_parent (window) Lisp_Object window; { - register Lisp_Object old, new; + Lisp_Object new; register struct window *o, *p; + register struct Lisp_Vector *vec; + int i; - old = window; - XSETTYPE (old, Lisp_Vector); - new = Fcopy_sequence (old); - XSETTYPE (new, Lisp_Window); + o = XWINDOW (window); + vec = allocate_vectorlike ((EMACS_INT)VECSIZE (struct window)); + for (i = 0; i < VECSIZE (struct window); ++i) + vec->contents[i] = ((struct Lisp_Vector *)o)->contents[i]; + vec->size = VECSIZE (struct window); + p = (struct window *)vec; + XSETWINDOW (new, p); - o = XWINDOW (old); - p = XWINDOW (new); XSETFASTINT (p->sequence_number, ++sequence_number); /* Put new into window structure in place of window */ -- 2.39.5