aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDmitry Antipov2013-02-08 09:28:52 +0400
committerDmitry Antipov2013-02-08 09:28:52 +0400
commit25721f5bb5681c22f666a0b4e61d94687d92a671 (patch)
tree2ea496a25332f603727cc978192bc415c885c02a /src
parent9a9d91d9c247adefa7137338d7609d81734f888d (diff)
downloademacs-25721f5bb5681c22f666a0b4e61d94687d92a671.tar.gz
emacs-25721f5bb5681c22f666a0b4e61d94687d92a671.zip
* lisp.h (make_uninit_vector): New function.
* alloc.c (Fvector, Fmake_byte_code): * ccl.c (Fregister_ccl_program): * charset.c (Fdefine_charset_internal, define_charset_internal): * coding.c (make_subsidiaries, Fdefine_coding_system_internal): * composite.c (syms_of_composite): * font.c (Fquery_font, Ffont_info, syms_of_font): * fontset.c (FONT_DEF_NEW, Fset_fontset_font): * ftfont.c (ftfont_shape_by_flt): * indent.c (recompute_width_table): * nsselect.m (clean_local_selection_data): * syntax.c (init_syntax_once): * w32unsubscribe.c (uniscribe_shape): * window.c (Fcurrent_window_configuration): * xfaces.c (Fx_family_fonts): * xselect.c (selection_data_to_lisp_data): Use it.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog19
-rw-r--r--src/alloc.c15
-rw-r--r--src/ccl.c3
-rw-r--r--src/charset.c4
-rw-r--r--src/coding.c8
-rw-r--r--src/composite.c2
-rw-r--r--src/font.c8
-rw-r--r--src/fontset.c5
-rw-r--r--src/ftfont.c3
-rw-r--r--src/indent.c2
-rw-r--r--src/lisp.h21
-rw-r--r--src/nsselect.m2
-rw-r--r--src/syntax.c4
-rw-r--r--src/w32uniscribe.c4
-rw-r--r--src/window.c4
-rw-r--r--src/xfaces.c2
-rw-r--r--src/xselect.c12
17 files changed, 77 insertions, 41 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9ffe133e758..073227281f0 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,22 @@
12013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
2
3 * lisp.h (make_uninit_vector): New function.
4 * alloc.c (Fvector, Fmake_byte_code):
5 * ccl.c (Fregister_ccl_program):
6 * charset.c (Fdefine_charset_internal, define_charset_internal):
7 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
8 * composite.c (syms_of_composite):
9 * font.c (Fquery_font, Ffont_info, syms_of_font):
10 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
11 * ftfont.c (ftfont_shape_by_flt):
12 * indent.c (recompute_width_table):
13 * nsselect.m (clean_local_selection_data):
14 * syntax.c (init_syntax_once):
15 * w32unsubscribe.c (uniscribe_shape):
16 * window.c (Fcurrent_window_configuration):
17 * xfaces.c (Fx_family_fonts):
18 * xselect.c (selection_data_to_lisp_data): Use it.
19
12013-02-07 Dmitry Antipov <dmantipov@yandex.ru> 202013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
2 21
3 * coding.c (Fdefine_coding_system_internal): Use AREF where 22 * coding.c (Fdefine_coding_system_internal): Use AREF where
diff --git a/src/alloc.c b/src/alloc.c
index 2624650ed2c..80086433e65 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3105,13 +3105,10 @@ Any number of arguments, even zero arguments, are allowed.
3105usage: (vector &rest OBJECTS) */) 3105usage: (vector &rest OBJECTS) */)
3106 (ptrdiff_t nargs, Lisp_Object *args) 3106 (ptrdiff_t nargs, Lisp_Object *args)
3107{ 3107{
3108 register Lisp_Object len, val;
3109 ptrdiff_t i; 3108 ptrdiff_t i;
3110 register struct Lisp_Vector *p; 3109 register Lisp_Object val = make_uninit_vector (nargs);
3110 register struct Lisp_Vector *p = XVECTOR (val);
3111 3111
3112 XSETFASTINT (len, nargs);
3113 val = Fmake_vector (len, Qnil);
3114 p = XVECTOR (val);
3115 for (i = 0; i < nargs; i++) 3112 for (i = 0; i < nargs; i++)
3116 p->contents[i] = args[i]; 3113 p->contents[i] = args[i];
3117 return val; 3114 return val;
@@ -3149,9 +3146,9 @@ stack before executing the byte-code.
3149usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INTERACTIVE-SPEC &rest ELEMENTS) */) 3146usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INTERACTIVE-SPEC &rest ELEMENTS) */)
3150 (ptrdiff_t nargs, Lisp_Object *args) 3147 (ptrdiff_t nargs, Lisp_Object *args)
3151{ 3148{
3152 register Lisp_Object len, val;
3153 ptrdiff_t i; 3149 ptrdiff_t i;
3154 register struct Lisp_Vector *p; 3150 register Lisp_Object val = make_uninit_vector (nargs);
3151 register struct Lisp_Vector *p = XVECTOR (val);
3155 3152
3156 /* We used to purecopy everything here, if purify-flag was set. This worked 3153 /* We used to purecopy everything here, if purify-flag was set. This worked
3157 OK for Emacs-23, but with Emacs-24's lexical binding code, it can be 3154 OK for Emacs-23, but with Emacs-24's lexical binding code, it can be
@@ -3161,10 +3158,6 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INT
3161 just wasteful and other times plainly wrong (e.g. those free vars may want 3158 just wasteful and other times plainly wrong (e.g. those free vars may want
3162 to be setcar'd). */ 3159 to be setcar'd). */
3163 3160
3164 XSETFASTINT (len, nargs);
3165 val = Fmake_vector (len, Qnil);
3166
3167 p = XVECTOR (val);
3168 for (i = 0; i < nargs; i++) 3161 for (i = 0; i < nargs; i++)
3169 p->contents[i] = args[i]; 3162 p->contents[i] = args[i];
3170 make_byte_code (p); 3163 make_byte_code (p);
diff --git a/src/ccl.c b/src/ccl.c
index 9bfd437d885..7f77e1d22fa 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -2228,9 +2228,8 @@ Return index number of the registered CCL program. */)
2228 Vccl_program_table = larger_vector (Vccl_program_table, 1, -1); 2228 Vccl_program_table = larger_vector (Vccl_program_table, 1, -1);
2229 2229
2230 { 2230 {
2231 Lisp_Object elt; 2231 Lisp_Object elt = make_uninit_vector (4);
2232 2232
2233 elt = Fmake_vector (make_number (4), Qnil);
2234 ASET (elt, 0, name); 2233 ASET (elt, 0, name);
2235 ASET (elt, 1, ccl_prog); 2234 ASET (elt, 1, ccl_prog);
2236 ASET (elt, 2, resolved); 2235 ASET (elt, 2, resolved);
diff --git a/src/charset.c b/src/charset.c
index c3a4538f223..fdb8eebde8b 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1053,7 +1053,7 @@ usage: (define-charset-internal ...) */)
1053 CHECK_NATNUM (parent_max_code); 1053 CHECK_NATNUM (parent_max_code);
1054 parent_code_offset = Fnth (make_number (3), val); 1054 parent_code_offset = Fnth (make_number (3), val);
1055 CHECK_NUMBER (parent_code_offset); 1055 CHECK_NUMBER (parent_code_offset);
1056 val = Fmake_vector (make_number (4), Qnil); 1056 val = make_uninit_vector (4);
1057 ASET (val, 0, make_number (parent_charset->id)); 1057 ASET (val, 0, make_number (parent_charset->id));
1058 ASET (val, 1, parent_min_code); 1058 ASET (val, 1, parent_min_code);
1059 ASET (val, 2, parent_max_code); 1059 ASET (val, 2, parent_max_code);
@@ -1259,7 +1259,7 @@ define_charset_internal (Lisp_Object name,
1259 1259
1260 args[charset_arg_name] = name; 1260 args[charset_arg_name] = name;
1261 args[charset_arg_dimension] = make_number (dimension); 1261 args[charset_arg_dimension] = make_number (dimension);
1262 val = Fmake_vector (make_number (8), make_number (0)); 1262 val = make_uninit_vector (8);
1263 for (i = 0; i < 8; i++) 1263 for (i = 0; i < 8; i++)
1264 ASET (val, i, make_number (code_space[i])); 1264 ASET (val, i, make_number (code_space[i]));
1265 args[charset_arg_code_space] = val; 1265 args[charset_arg_code_space] = val;
diff --git a/src/coding.c b/src/coding.c
index c7bfe25e0cc..b881f162ab9 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -9483,7 +9483,7 @@ make_subsidiaries (Lisp_Object base)
9483 int i; 9483 int i;
9484 9484
9485 memcpy (buf, SDATA (SYMBOL_NAME (base)), base_name_len); 9485 memcpy (buf, SDATA (SYMBOL_NAME (base)), base_name_len);
9486 subsidiaries = Fmake_vector (make_number (3), Qnil); 9486 subsidiaries = make_uninit_vector (3);
9487 for (i = 0; i < 3; i++) 9487 for (i = 0; i < 3; i++)
9488 { 9488 {
9489 strcpy (buf + base_name_len, suffixes[i]); 9489 strcpy (buf + base_name_len, suffixes[i]);
@@ -9988,7 +9988,8 @@ usage: (define-coding-system-internal ...) */)
9988 this_name = AREF (eol_type, i); 9988 this_name = AREF (eol_type, i);
9989 this_aliases = Fcons (this_name, Qnil); 9989 this_aliases = Fcons (this_name, Qnil);
9990 this_eol_type = (i == 0 ? Qunix : i == 1 ? Qdos : Qmac); 9990 this_eol_type = (i == 0 ? Qunix : i == 1 ? Qdos : Qmac);
9991 this_spec = Fmake_vector (make_number (3), attrs); 9991 this_spec = make_uninit_vector (3);
9992 ASET (this_spec, 0, attrs);
9992 ASET (this_spec, 1, this_aliases); 9993 ASET (this_spec, 1, this_aliases);
9993 ASET (this_spec, 2, this_eol_type); 9994 ASET (this_spec, 2, this_eol_type);
9994 Fputhash (this_name, this_spec, Vcoding_system_hash_table); 9995 Fputhash (this_name, this_spec, Vcoding_system_hash_table);
@@ -10001,7 +10002,8 @@ usage: (define-coding-system-internal ...) */)
10001 } 10002 }
10002 } 10003 }
10003 10004
10004 spec_vec = Fmake_vector (make_number (3), attrs); 10005 spec_vec = make_uninit_vector (3);
10006 ASET (spec_vec, 0, attrs);
10005 ASET (spec_vec, 1, aliases); 10007 ASET (spec_vec, 1, aliases);
10006 ASET (spec_vec, 2, eol_type); 10008 ASET (spec_vec, 2, eol_type);
10007 10009
diff --git a/src/composite.c b/src/composite.c
index ddd92389725..54cebc00eb7 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1958,7 +1958,7 @@ syms_of_composite (void)
1958 } 1958 }
1959 1959
1960 staticpro (&gstring_work_headers); 1960 staticpro (&gstring_work_headers);
1961 gstring_work_headers = Fmake_vector (make_number (8), Qnil); 1961 gstring_work_headers = make_uninit_vector (8);
1962 for (i = 0; i < 8; i++) 1962 for (i = 0; i < 8; i++)
1963 ASET (gstring_work_headers, i, Fmake_vector (make_number (i + 2), Qnil)); 1963 ASET (gstring_work_headers, i, Fmake_vector (make_number (i + 2), Qnil));
1964 staticpro (&gstring_work); 1964 staticpro (&gstring_work);
diff --git a/src/font.c b/src/font.c
index 3cffe2558ae..bed0ac8caf2 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4603,7 +4603,7 @@ If the font is not OpenType font, CAPABILITY is nil. */)
4603 4603
4604 CHECK_FONT_GET_OBJECT (font_object, font); 4604 CHECK_FONT_GET_OBJECT (font_object, font);
4605 4605
4606 val = Fmake_vector (make_number (9), Qnil); 4606 val = make_uninit_vector (9);
4607 ASET (val, 0, AREF (font_object, FONT_NAME_INDEX)); 4607 ASET (val, 0, AREF (font_object, FONT_NAME_INDEX));
4608 ASET (val, 1, AREF (font_object, FONT_FILE_INDEX)); 4608 ASET (val, 1, AREF (font_object, FONT_FILE_INDEX));
4609 ASET (val, 2, make_number (font->pixel_size)); 4609 ASET (val, 2, make_number (font->pixel_size));
@@ -4614,6 +4614,8 @@ If the font is not OpenType font, CAPABILITY is nil. */)
4614 ASET (val, 7, make_number (font->average_width)); 4614 ASET (val, 7, make_number (font->average_width));
4615 if (font->driver->otf_capability) 4615 if (font->driver->otf_capability)
4616 ASET (val, 8, Fcons (Qopentype, font->driver->otf_capability (font))); 4616 ASET (val, 8, Fcons (Qopentype, font->driver->otf_capability (font)));
4617 else
4618 ASET (val, 8, Qnil);
4617 return val; 4619 return val;
4618} 4620}
4619 4621
@@ -4870,7 +4872,7 @@ If the named font is not yet loaded, return nil. */)
4870 return Qnil; 4872 return Qnil;
4871 font = XFONT_OBJECT (font_object); 4873 font = XFONT_OBJECT (font_object);
4872 4874
4873 info = Fmake_vector (make_number (7), Qnil); 4875 info = make_uninit_vector (7);
4874 ASET (info, 0, AREF (font_object, FONT_NAME_INDEX)); 4876 ASET (info, 0, AREF (font_object, FONT_NAME_INDEX));
4875 ASET (info, 1, AREF (font_object, FONT_FULLNAME_INDEX)); 4877 ASET (info, 1, AREF (font_object, FONT_FULLNAME_INDEX));
4876 ASET (info, 2, make_number (font->pixel_size)); 4878 ASET (info, 2, make_number (font->pixel_size));
@@ -5163,7 +5165,7 @@ See `font-weight-table' for the format of the vector. */);
5163 XSYMBOL (intern_c_string ("font-width-table"))->constant = 1; 5165 XSYMBOL (intern_c_string ("font-width-table"))->constant = 1;
5164 5166
5165 staticpro (&font_style_table); 5167 staticpro (&font_style_table);
5166 font_style_table = Fmake_vector (make_number (3), Qnil); 5168 font_style_table = make_uninit_vector (3);
5167 ASET (font_style_table, 0, Vfont_weight_table); 5169 ASET (font_style_table, 0, Vfont_weight_table);
5168 ASET (font_style_table, 1, Vfont_slant_table); 5170 ASET (font_style_table, 1, Vfont_slant_table);
5169 ASET (font_style_table, 2, Vfont_width_table); 5171 ASET (font_style_table, 2, Vfont_width_table);
diff --git a/src/fontset.c b/src/fontset.c
index b7f3e46d69c..3578bc9403d 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -271,7 +271,8 @@ set_fontset_fallback (Lisp_Object fontset, Lisp_Object fallback)
271/* Macros for FONT-DEF and RFONT-DEF of fontset. */ 271/* Macros for FONT-DEF and RFONT-DEF of fontset. */
272#define FONT_DEF_NEW(font_def, font_spec, encoding, repertory) \ 272#define FONT_DEF_NEW(font_def, font_spec, encoding, repertory) \
273 do { \ 273 do { \
274 (font_def) = Fmake_vector (make_number (3), (font_spec)); \ 274 (font_def) = make_uninit_vector (3); \
275 ASET ((font_def), 0, font_spec); \
275 ASET ((font_def), 1, encoding); \ 276 ASET ((font_def), 1, encoding); \
276 ASET ((font_def), 2, repertory); \ 277 ASET ((font_def), 2, repertory); \
277 } while (0) 278 } while (0)
@@ -1591,7 +1592,7 @@ appended. By default, FONT-SPEC overrides the previous settings. */)
1591 { 1592 {
1592 Lisp_Object arg; 1593 Lisp_Object arg;
1593 1594
1594 arg = Fmake_vector (make_number (5), Qnil); 1595 arg = make_uninit_vector (5);
1595 ASET (arg, 0, fontset); 1596 ASET (arg, 0, fontset);
1596 ASET (arg, 1, font_def); 1597 ASET (arg, 1, font_def);
1597 ASET (arg, 2, add); 1598 ASET (arg, 2, add);
diff --git a/src/ftfont.c b/src/ftfont.c
index 03e40bf2e46..1fb1b574a1c 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -2555,9 +2555,8 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font,
2555 LGLYPH_SET_DESCENT (lglyph, g->descent >> 6); 2555 LGLYPH_SET_DESCENT (lglyph, g->descent >> 6);
2556 if (g->adjusted) 2556 if (g->adjusted)
2557 { 2557 {
2558 Lisp_Object vec; 2558 Lisp_Object vec = make_uninit_vector (3);
2559 2559
2560 vec = Fmake_vector (make_number (3), Qnil);
2561 ASET (vec, 0, make_number (g->xoff >> 6)); 2560 ASET (vec, 0, make_number (g->xoff >> 6));
2562 ASET (vec, 1, make_number (g->yoff >> 6)); 2561 ASET (vec, 1, make_number (g->yoff >> 6));
2563 ASET (vec, 2, make_number (g->xadv >> 6)); 2562 ASET (vec, 2, make_number (g->xadv >> 6));
diff --git a/src/indent.c b/src/indent.c
index 45b6afbd395..44ecbbc8a58 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -138,7 +138,7 @@ recompute_width_table (struct buffer *buf, struct Lisp_Char_Table *disptab)
138 struct Lisp_Vector *widthtab; 138 struct Lisp_Vector *widthtab;
139 139
140 if (!VECTORP (BVAR (buf, width_table))) 140 if (!VECTORP (BVAR (buf, width_table)))
141 bset_width_table (buf, Fmake_vector (make_number (256), make_number (0))); 141 bset_width_table (buf, make_uninit_vector (256));
142 widthtab = XVECTOR (BVAR (buf, width_table)); 142 widthtab = XVECTOR (BVAR (buf, width_table));
143 eassert (widthtab->header.size == 256); 143 eassert (widthtab->header.size == 256);
144 144
diff --git a/src/lisp.h b/src/lisp.h
index 251b5e069ec..c15e83bd51c 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3043,6 +3043,27 @@ extern void make_byte_code (struct Lisp_Vector *);
3043extern Lisp_Object Qautomatic_gc; 3043extern Lisp_Object Qautomatic_gc;
3044extern Lisp_Object Qchar_table_extra_slots; 3044extern Lisp_Object Qchar_table_extra_slots;
3045extern struct Lisp_Vector *allocate_vector (EMACS_INT); 3045extern struct Lisp_Vector *allocate_vector (EMACS_INT);
3046
3047/* Make an unitialized vector for SIZE objects. NOTE: you must
3048 be sure that GC cannot happen until the vector is completely
3049 initialized. E.g. the following code is likely to crash:
3050
3051 v = make_uninit_vector (3);
3052 ASET (v, 0, obj0);
3053 ASET (v, 1, Ffunction_can_gc ());
3054 ASET (v, 2, obj1); */
3055
3056LISP_INLINE Lisp_Object
3057make_uninit_vector (ptrdiff_t size)
3058{
3059 Lisp_Object v;
3060 struct Lisp_Vector *p;
3061
3062 p = allocate_vector (size);
3063 XSETVECTOR (v, p);
3064 return v;
3065}
3066
3046extern struct Lisp_Vector *allocate_pseudovector (int, int, enum pvec_type); 3067extern struct Lisp_Vector *allocate_pseudovector (int, int, enum pvec_type);
3047#define ALLOCATE_PSEUDOVECTOR(typ,field,tag) \ 3068#define ALLOCATE_PSEUDOVECTOR(typ,field,tag) \
3048 ((typ*) \ 3069 ((typ*) \
diff --git a/src/nsselect.m b/src/nsselect.m
index 903448ce0a5..49380f87945 100644
--- a/src/nsselect.m
+++ b/src/nsselect.m
@@ -117,7 +117,7 @@ clean_local_selection_data (Lisp_Object obj)
117 117
118 if (size == 1) 118 if (size == 1)
119 return clean_local_selection_data (AREF (obj, 0)); 119 return clean_local_selection_data (AREF (obj, 0));
120 copy = Fmake_vector (make_number (size), Qnil); 120 copy = make_uninit_vector (size);
121 for (i = 0; i < size; i++) 121 for (i = 0; i < size; i++)
122 ASET (copy, i, clean_local_selection_data (AREF (obj, i))); 122 ASET (copy, i, clean_local_selection_data (AREF (obj, i)));
123 return copy; 123 return copy;
diff --git a/src/syntax.c b/src/syntax.c
index 72d904914ec..6febcd266c0 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -3389,8 +3389,8 @@ init_syntax_once (void)
3389 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots"); 3389 Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
3390 3390
3391 /* Create objects which can be shared among syntax tables. */ 3391 /* Create objects which can be shared among syntax tables. */
3392 Vsyntax_code_object = Fmake_vector (make_number (Smax), Qnil); 3392 Vsyntax_code_object = make_uninit_vector (Smax);
3393 for (i = 0; i < ASIZE (Vsyntax_code_object); i++) 3393 for (i = 0; i < Smax; i++)
3394 ASET (Vsyntax_code_object, i, Fcons (make_number (i), Qnil)); 3394 ASET (Vsyntax_code_object, i, Fcons (make_number (i), Qnil));
3395 3395
3396 /* Now we are ready to set up this property, so we can 3396 /* Now we are ready to set up this property, so we can
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index 88227487d35..56931adfac5 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -435,8 +435,8 @@ uniscribe_shape (Lisp_Object lgstring)
435 are zero. */ 435 are zero. */
436 || (!attributes[j].fClusterStart && items[i].a.fRTL)) 436 || (!attributes[j].fClusterStart && items[i].a.fRTL))
437 { 437 {
438 Lisp_Object vec; 438 Lisp_Object vec = make_uninit_vector (3);
439 vec = Fmake_vector (make_number (3), Qnil); 439
440 if (items[i].a.fRTL) 440 if (items[i].a.fRTL)
441 { 441 {
442 /* Empirically, it looks like Uniscribe 442 /* Empirically, it looks like Uniscribe
diff --git a/src/window.c b/src/window.c
index 5679c150efa..cc115c094f0 100644
--- a/src/window.c
+++ b/src/window.c
@@ -6190,11 +6190,11 @@ saved by this function. */)
6190 data->minibuf_selected_window = minibuf_level > 0 ? minibuf_selected_window : Qnil; 6190 data->minibuf_selected_window = minibuf_level > 0 ? minibuf_selected_window : Qnil;
6191 data->root_window = FRAME_ROOT_WINDOW (f); 6191 data->root_window = FRAME_ROOT_WINDOW (f);
6192 data->focus_frame = FRAME_FOCUS_FRAME (f); 6192 data->focus_frame = FRAME_FOCUS_FRAME (f);
6193 tem = Fmake_vector (make_number (n_windows), Qnil); 6193 tem = make_uninit_vector (n_windows);
6194 data->saved_windows = tem; 6194 data->saved_windows = tem;
6195 for (i = 0; i < n_windows; i++) 6195 for (i = 0; i < n_windows; i++)
6196 ASET (tem, i, 6196 ASET (tem, i,
6197 Fmake_vector (make_number (VECSIZE (struct saved_window)), Qnil)); 6197 Fmake_vector (make_number (VECSIZE (struct saved_window)), Qnil));
6198 save_window_save (FRAME_ROOT_WINDOW (f), XVECTOR (tem), 0); 6198 save_window_save (FRAME_ROOT_WINDOW (f), XVECTOR (tem), 0);
6199 XSETWINDOW_CONFIGURATION (tem, data); 6199 XSETWINDOW_CONFIGURATION (tem, data);
6200 return (tem); 6200 return (tem);
diff --git a/src/xfaces.c b/src/xfaces.c
index 43535b9ea0c..33a221fdd52 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -1585,7 +1585,7 @@ the face font sort order. */)
1585 for (i = nfonts - 1; i >= 0; --i) 1585 for (i = nfonts - 1; i >= 0; --i)
1586 { 1586 {
1587 Lisp_Object font = AREF (vec, i); 1587 Lisp_Object font = AREF (vec, i);
1588 Lisp_Object v = Fmake_vector (make_number (8), Qnil); 1588 Lisp_Object v = make_uninit_vector (8);
1589 int point; 1589 int point;
1590 Lisp_Object spacing; 1590 Lisp_Object spacing;
1591 1591
diff --git a/src/xselect.c b/src/xselect.c
index d769f86cdef..decea696bfd 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1670,8 +1670,8 @@ selection_data_to_lisp_data (Display *display, const unsigned char *data,
1670 return x_atom_to_symbol (display, (Atom) idata[0]); 1670 return x_atom_to_symbol (display, (Atom) idata[0]);
1671 else 1671 else
1672 { 1672 {
1673 Lisp_Object v = Fmake_vector (make_number (size / sizeof (int)), 1673 Lisp_Object v = make_uninit_vector (size / sizeof (int));
1674 make_number (0)); 1674
1675 for (i = 0; i < size / sizeof (int); i++) 1675 for (i = 0; i < size / sizeof (int); i++)
1676 ASET (v, i, x_atom_to_symbol (display, (Atom) idata[i])); 1676 ASET (v, i, x_atom_to_symbol (display, (Atom) idata[i]));
1677 return v; 1677 return v;
@@ -1693,8 +1693,8 @@ selection_data_to_lisp_data (Display *display, const unsigned char *data,
1693 else if (format == 16) 1693 else if (format == 16)
1694 { 1694 {
1695 ptrdiff_t i; 1695 ptrdiff_t i;
1696 Lisp_Object v; 1696 Lisp_Object v = make_uninit_vector (size / 2);
1697 v = Fmake_vector (make_number (size / 2), make_number (0)); 1697
1698 for (i = 0; i < size / 2; i++) 1698 for (i = 0; i < size / 2; i++)
1699 { 1699 {
1700 short j = ((short *) data) [i]; 1700 short j = ((short *) data) [i];
@@ -1705,8 +1705,8 @@ selection_data_to_lisp_data (Display *display, const unsigned char *data,
1705 else 1705 else
1706 { 1706 {
1707 ptrdiff_t i; 1707 ptrdiff_t i;
1708 Lisp_Object v = Fmake_vector (make_number (size / X_LONG_SIZE), 1708 Lisp_Object v = make_uninit_vector (size / X_LONG_SIZE);
1709 make_number (0)); 1709
1710 for (i = 0; i < size / X_LONG_SIZE; i++) 1710 for (i = 0; i < size / X_LONG_SIZE; i++)
1711 { 1711 {
1712 int j = ((int *) data) [i]; 1712 int j = ((int *) data) [i];