Mercurial > emacs
changeset 9970:76910d506a80
(make_dummy_parent, make_window): Use allocate_vectorlike and VECSIZE.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Wed, 16 Nov 1994 05:16:42 +0000 |
parents | 007d93b04e1f |
children | 214a00665c2b |
files | src/window.c |
diffstat | 1 files changed, 22 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/window.c Wed Nov 16 05:03:02 1994 +0000 +++ b/src/window.c Wed Nov 16 05:16:42 1994 +0000 @@ -119,18 +119,16 @@ 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 @@ p->frame = Qnil; p->display_table = Qnil; p->dedicated = Qnil; + XSETWINDOW (val, p); return val; } @@ -2042,16 +2041,19 @@ make_dummy_parent (window) Lisp_Object window; { - register Lisp_Object old, new; + Lisp_Object new; register struct window *o, *p; - - old = window; - XSETTYPE (old, Lisp_Vector); - new = Fcopy_sequence (old); - XSETTYPE (new, Lisp_Window); - - o = XWINDOW (old); - p = XWINDOW (new); + register struct Lisp_Vector *vec; + int i; + + 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); + XSETFASTINT (p->sequence_number, ++sequence_number); /* Put new into window structure in place of window */