From: Dmitry Antipov <dmantipov@yandex.ru>
To: Emacs development discussions <emacs-devel@gnu.org>
Subject: Trying coccinelle
Date: Mon, 18 Jun 2012 20:44:34 +0400 [thread overview]
Message-ID: <4FDF5AF2.2080503@yandex.ru> (raw)
[-- Attachment #1: Type: text/plain, Size: 677 bytes --]
Some time ago it was noticed (http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00371.html)
that coccinelle tool (http://coccinelle.lip6.fr) might be useful for get rid of the GCPROs;
but it seems that this tool opens a lot of other opportunities. For example, attached patch was
generated with the very simple "semantic patch":
@expression@
identifier I1, I2;
expression E1, E2;
@@
(
- XVECTOR (I1)->contents[I2++] = E1
+ ASET (I1, I2, E1), I2++
|
- XVECTOR (I1)->contents[E1] = E2
+ ASET (I1, E1, E2)
|
-XVECTOR (I1)->contents[E1]
+AREF (I1, E1)
)
and following minimal manual intervention, so I suspect that more useful cleanups may be done
with this tool.
Dmitry
[-- Attachment #2: vector_access.patch --]
[-- Type: text/plain, Size: 43746 bytes --]
=== modified file 'src/alloc.c'
--- src/alloc.c 2012-06-16 12:24:15 +0000
+++ src/alloc.c 2012-06-18 16:16:20 +0000
@@ -5294,7 +5294,7 @@
size &= PSEUDOVECTOR_SIZE_MASK;
vec = XVECTOR (make_pure_vector (size));
for (i = 0; i < size; i++)
- vec->contents[i] = Fpurecopy (XVECTOR (obj)->contents[i]);
+ vec->contents[i] = Fpurecopy (AREF (obj, i));
if (COMPILEDP (obj))
{
XSETPVECTYPE (vec, PVEC_COMPILED);
=== modified file 'src/bytecode.c'
--- src/bytecode.c 2012-06-16 12:24:15 +0000
+++ src/bytecode.c 2012-06-18 16:16:20 +0000
@@ -1867,8 +1867,8 @@
{
int i = 256;
while (i--)
- XVECTOR (Vbyte_code_meter)->contents[i] =
- Fmake_vector (make_number (256), make_number (0));
+ ASET (Vbyte_code_meter, i,
+ Fmake_vector (make_number (256), make_number (0)));
}
#endif
}
=== modified file 'src/ccl.c'
--- src/ccl.c 2012-02-10 18:58:48 +0000
+++ src/ccl.c 2012-06-18 16:16:20 +0000
@@ -61,7 +61,7 @@
/* Return a hash table of id number ID. */
#define GET_HASH_TABLE(id) \
- (XHASH_TABLE (XCDR (XVECTOR (Vtranslation_hash_table_vector)->contents[(id)])))
+ (XHASH_TABLE (XCDR (AREF (Vtranslation_hash_table_vector, (id)))))
/* CCL (Code Conversion Language) is a simple language which has
operations on one input buffer, one output buffer, and 7 registers.
=== modified file 'src/coding.c'
--- src/coding.c 2012-06-17 07:57:28 +0000
+++ src/coding.c 2012-06-18 16:16:20 +0000
@@ -3189,7 +3189,7 @@
break;
check_extra_latin:
if (! VECTORP (Vlatin_extra_code_table)
- || NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
+ || NILP (AREF (Vlatin_extra_code_table, c)))
{
rejected = CATEGORY_MASK_ISO;
break;
@@ -5464,7 +5464,7 @@
if (c < 0xA0
&& check_latin_extra
&& (!VECTORP (Vlatin_extra_code_table)
- || NILP (XVECTOR (Vlatin_extra_code_table)->contents[c])))
+ || NILP (AREF (Vlatin_extra_code_table, c))))
break;
found = CATEGORY_MASK_CHARSET;
}
@@ -10560,7 +10560,7 @@
Vcoding_category_list = Qnil;
for (i = coding_category_max - 1; i >= 0; i--)
Vcoding_category_list
- = Fcons (XVECTOR (Vcoding_category_table)->contents[i],
+ = Fcons (AREF (Vcoding_category_table, i),
Vcoding_category_list);
}
=== modified file 'src/composite.c'
--- src/composite.c 2012-06-16 12:24:15 +0000
+++ src/composite.c 2012-06-18 16:16:20 +0000
@@ -240,13 +240,13 @@
for (i = 0; i < nchars; i++)
{
FETCH_STRING_CHAR_ADVANCE (ch, string, charpos, bytepos);
- XVECTOR (key)->contents[i] = make_number (ch);
+ ASET (key, i, make_number (ch));
}
else
for (i = 0; i < nchars; i++)
{
FETCH_CHAR_ADVANCE (ch, charpos, bytepos);
- XVECTOR (key)->contents[i] = make_number (ch);
+ ASET (key, i, make_number (ch));
}
}
else
=== modified file 'src/data.c'
--- src/data.c 2012-06-18 15:57:41 +0000
+++ src/data.c 2012-06-18 16:16:20 +0000
@@ -2134,7 +2134,7 @@
{
if (idxval < 0 || idxval >= ASIZE (array))
args_out_of_range (array, idx);
- XVECTOR (array)->contents[idxval] = newelt;
+ ASET (array, idxval, newelt);
}
else if (BOOL_VECTOR_P (array))
{
=== modified file 'src/dosfns.c'
--- src/dosfns.c 2012-06-16 12:24:15 +0000
+++ src/dosfns.c 2012-06-18 16:16:20 +0000
@@ -65,27 +65,27 @@
if (no < 0 || no > 0xff || ASIZE (registers) != 8)
return Qnil;
for (i = 0; i < 8; i++)
- CHECK_NUMBER (XVECTOR (registers)->contents[i]);
+ CHECK_NUMBER (AREF (registers, i));
- inregs.x.ax = (unsigned long) XFASTINT (XVECTOR (registers)->contents[0]);
- inregs.x.bx = (unsigned long) XFASTINT (XVECTOR (registers)->contents[1]);
- inregs.x.cx = (unsigned long) XFASTINT (XVECTOR (registers)->contents[2]);
- inregs.x.dx = (unsigned long) XFASTINT (XVECTOR (registers)->contents[3]);
- inregs.x.si = (unsigned long) XFASTINT (XVECTOR (registers)->contents[4]);
- inregs.x.di = (unsigned long) XFASTINT (XVECTOR (registers)->contents[5]);
- inregs.x.cflag = (unsigned long) XFASTINT (XVECTOR (registers)->contents[6]);
- inregs.x.flags = (unsigned long) XFASTINT (XVECTOR (registers)->contents[7]);
+ inregs.x.ax = (unsigned long) XFASTINT (AREF (registers, 0));
+ inregs.x.bx = (unsigned long) XFASTINT (AREF (registers, 1));
+ inregs.x.cx = (unsigned long) XFASTINT (AREF (registers, 2));
+ inregs.x.dx = (unsigned long) XFASTINT (AREF (registers, 3));
+ inregs.x.si = (unsigned long) XFASTINT (AREF (registers, 4));
+ inregs.x.di = (unsigned long) XFASTINT (AREF (registers, 5));
+ inregs.x.cflag = (unsigned long) XFASTINT (AREF (registers, 6));
+ inregs.x.flags = (unsigned long) XFASTINT (AREF (registers, 7));
int86 (no, &inregs, &outregs);
- XVECTOR (registers)->contents[0] = make_number (outregs.x.ax);
- XVECTOR (registers)->contents[1] = make_number (outregs.x.bx);
- XVECTOR (registers)->contents[2] = make_number (outregs.x.cx);
- XVECTOR (registers)->contents[3] = make_number (outregs.x.dx);
- XVECTOR (registers)->contents[4] = make_number (outregs.x.si);
- XVECTOR (registers)->contents[5] = make_number (outregs.x.di);
- XVECTOR (registers)->contents[6] = make_number (outregs.x.cflag);
- XVECTOR (registers)->contents[7] = make_number (outregs.x.flags);
+ ASET (registers, 0, make_number (outregs.x.ax));
+ ASET (registers, 1, make_number (outregs.x.bx));
+ ASET (registers, 2, make_number (outregs.x.cx));
+ ASET (registers, 3, make_number (outregs.x.dx));
+ ASET (registers, 4, make_number (outregs.x.si));
+ ASET (registers, 5, make_number (outregs.x.di));
+ ASET (registers, 6, make_number (outregs.x.cflag));
+ ASET (registers, 7, make_number (outregs.x.flags));
return registers;
}
@@ -109,7 +109,7 @@
dosmemget (offs, len, buf);
for (i = 0; i < len; i++)
- XVECTOR (vector)->contents[i] = make_number (buf[i]);
+ ASET (vector, i, make_number (buf[i]));
return vector;
}
@@ -132,8 +132,8 @@
for (i = 0; i < len; i++)
{
- CHECK_NUMBER (XVECTOR (vector)->contents[i]);
- buf[i] = (unsigned char) XFASTINT (XVECTOR (vector)->contents[i]) & 0xFF;
+ CHECK_NUMBER (AREF (vector, i));
+ buf[i] = (unsigned char) XFASTINT (AREF (vector, i)) & 0xFF;
}
dosmemput (buf, len, offs);
=== modified file 'src/font.c'
--- src/font.c 2012-06-16 12:24:15 +0000
+++ src/font.c 2012-06-18 16:16:20 +0000
@@ -4877,13 +4877,13 @@
font = XFONT_OBJECT (font_object);
info = Fmake_vector (make_number (7), Qnil);
- XVECTOR (info)->contents[0] = AREF (font_object, FONT_NAME_INDEX);
- XVECTOR (info)->contents[1] = AREF (font_object, FONT_FULLNAME_INDEX);
- XVECTOR (info)->contents[2] = make_number (font->pixel_size);
- XVECTOR (info)->contents[3] = make_number (font->height);
- XVECTOR (info)->contents[4] = make_number (font->baseline_offset);
- XVECTOR (info)->contents[5] = make_number (font->relative_compose);
- XVECTOR (info)->contents[6] = make_number (font->default_ascent);
+ ASET (info, 0, AREF (font_object, FONT_NAME_INDEX));
+ ASET (info, 1, AREF (font_object, FONT_FULLNAME_INDEX));
+ ASET (info, 2, make_number (font->pixel_size));
+ ASET (info, 3, make_number (font->height));
+ ASET (info, 4, make_number (font->baseline_offset));
+ ASET (info, 5, make_number (font->relative_compose));
+ ASET (info, 6, make_number (font->default_ascent));
#if 0
/* As font_object is still in FONT_OBJLIST of the entity, we can't
=== modified file 'src/image.c'
--- src/image.c 2012-06-12 10:08:39 +0000
+++ src/image.c 2012-06-18 16:16:20 +0000
@@ -2366,7 +2366,7 @@
for one line of the image. */
for (i = 0; i < height; ++i)
{
- Lisp_Object elt = XVECTOR (data)->contents[i];
+ Lisp_Object elt = AREF (data, i);
if (STRINGP (elt))
{
@@ -2939,7 +2939,7 @@
p = bits = (char *) alloca (nbytes * img->height);
for (i = 0; i < img->height; ++i, p += nbytes)
{
- Lisp_Object line = XVECTOR (data)->contents[i];
+ Lisp_Object line = AREF (data, i);
if (STRINGP (line))
memcpy (p, SDATA (line), nbytes);
else
@@ -3749,7 +3749,7 @@
int chars_len,
Lisp_Object color)
{
- XVECTOR (color_table)->contents[*chars_start] = color;
+ ASET (color_table, *chars_start, color);
}
static Lisp_Object
@@ -3757,7 +3757,7 @@
const unsigned char *chars_start,
int chars_len)
{
- return XVECTOR (color_table)->contents[*chars_start];
+ return AREF (color_table, *chars_start);
}
static Lisp_Object
@@ -8503,7 +8503,7 @@
if (ASIZE (tem) != 4)
return 0;
for (i = 0; i < 4; ++i)
- if (!INTEGERP (XVECTOR (tem)->contents[i]))
+ if (!INTEGERP (AREF (tem, i)))
return 0;
}
else
=== modified file 'src/keyboard.c'
--- src/keyboard.c 2012-06-16 12:24:15 +0000
+++ src/keyboard.c 2012-06-18 16:16:20 +0000
@@ -625,7 +625,7 @@
if (i == this_single_command_key_start)
before_command_echo_length = echo_length ();
- c = XVECTOR (this_command_keys)->contents[i];
+ c = AREF (this_command_keys, i);
if (! (EVENT_HAS_PARAMETERS (c)
&& EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_movement)))
echo_char (c);
@@ -4269,7 +4269,7 @@
if (!VECTORP (timer) || ASIZE (timer) != 8)
continue;
- XVECTOR (timer)->contents[0] = Qnil;
+ ASET (timer, 0, Qnil);
}
}
@@ -6272,7 +6272,7 @@
modifier_list = Qnil;
for (i = 0; (1<<i) <= modifiers && i < NUM_MOD_NAMES; i++)
if (modifiers & (1<<i))
- modifier_list = Fcons (XVECTOR (modifier_symbols)->contents[i],
+ modifier_list = Fcons (AREF (modifier_symbols, i),
modifier_list);
return modifier_list;
@@ -6503,7 +6503,7 @@
*symbol_table = Fmake_vector (size, Qnil);
}
- value = XVECTOR (*symbol_table)->contents[symbol_num];
+ value = AREF (*symbol_table, symbol_num);
}
/* Have we already used this symbol before? */
@@ -6546,7 +6546,7 @@
if (CONSP (*symbol_table))
*symbol_table = Fcons (Fcons (symbol_int, value), *symbol_table);
else
- XVECTOR (*symbol_table)->contents[symbol_num] = value;
+ ASET (*symbol_table, symbol_num, value);
/* Fill in the cache entries for this symbol; this also
builds the Qevent_symbol_elements property, which the user
@@ -7553,23 +7553,23 @@
int end = menu_bar_items_index;
for (i = 0; i < end; i += 4)
- if (EQ (XCAR (tail), XVECTOR (menu_bar_items_vector)->contents[i]))
+ if (EQ (XCAR (tail), AREF (menu_bar_items_vector, i)))
{
Lisp_Object tem0, tem1, tem2, tem3;
/* Move the item at index I to the end,
shifting all the others forward. */
- tem0 = XVECTOR (menu_bar_items_vector)->contents[i + 0];
- tem1 = XVECTOR (menu_bar_items_vector)->contents[i + 1];
- tem2 = XVECTOR (menu_bar_items_vector)->contents[i + 2];
- tem3 = XVECTOR (menu_bar_items_vector)->contents[i + 3];
+ tem0 = AREF (menu_bar_items_vector, i + 0);
+ tem1 = AREF (menu_bar_items_vector, i + 1);
+ tem2 = AREF (menu_bar_items_vector, i + 2);
+ tem3 = AREF (menu_bar_items_vector, i + 3);
if (end > i + 4)
- memmove (&XVECTOR (menu_bar_items_vector)->contents[i],
- &XVECTOR (menu_bar_items_vector)->contents[i + 4],
+ memmove (&AREF (menu_bar_items_vector, i),
+ &AREF (menu_bar_items_vector, i + 4),
(end - i - 4) * sizeof (Lisp_Object));
- XVECTOR (menu_bar_items_vector)->contents[end - 4] = tem0;
- XVECTOR (menu_bar_items_vector)->contents[end - 3] = tem1;
- XVECTOR (menu_bar_items_vector)->contents[end - 2] = tem2;
- XVECTOR (menu_bar_items_vector)->contents[end - 1] = tem3;
+ ASET (menu_bar_items_vector, end - 4, tem0);
+ ASET (menu_bar_items_vector, end - 3, tem1);
+ ASET (menu_bar_items_vector, end - 2, tem2);
+ ASET (menu_bar_items_vector, end - 1, tem3);
break;
}
}
@@ -7581,10 +7581,10 @@
menu_bar_items_vector =
larger_vector (menu_bar_items_vector, 4, -1);
/* Add this item. */
- XVECTOR (menu_bar_items_vector)->contents[i++] = Qnil;
- XVECTOR (menu_bar_items_vector)->contents[i++] = Qnil;
- XVECTOR (menu_bar_items_vector)->contents[i++] = Qnil;
- XVECTOR (menu_bar_items_vector)->contents[i++] = Qnil;
+ ASET (menu_bar_items_vector, i, Qnil), i++;
+ ASET (menu_bar_items_vector, i, Qnil), i++;
+ ASET (menu_bar_items_vector, i, Qnil), i++;
+ ASET (menu_bar_items_vector, i, Qnil), i++;
menu_bar_items_index = i;
}
@@ -7610,11 +7610,11 @@
discard any previously made menu bar item. */
for (i = 0; i < menu_bar_items_index; i += 4)
- if (EQ (key, XVECTOR (menu_bar_items_vector)->contents[i]))
+ if (EQ (key, AREF (menu_bar_items_vector, i)))
{
if (menu_bar_items_index > i + 4)
- memmove (&XVECTOR (menu_bar_items_vector)->contents[i],
- &XVECTOR (menu_bar_items_vector)->contents[i + 4],
+ memmove (&AREF (menu_bar_items_vector, i),
+ &AREF (menu_bar_items_vector, i + 4),
(menu_bar_items_index - i - 4) * sizeof (Lisp_Object));
menu_bar_items_index -= 4;
}
@@ -7638,11 +7638,11 @@
if (!i)
return;
- item = XVECTOR (item_properties)->contents[ITEM_PROPERTY_DEF];
+ item = AREF (item_properties, ITEM_PROPERTY_DEF);
/* Find any existing item for this KEY. */
for (i = 0; i < menu_bar_items_index; i += 4)
- if (EQ (key, XVECTOR (menu_bar_items_vector)->contents[i]))
+ if (EQ (key, AREF (menu_bar_items_vector, i)))
break;
/* If we did not find this KEY, add it at the end. */
@@ -7652,22 +7652,22 @@
if (i + 4 > ASIZE (menu_bar_items_vector))
menu_bar_items_vector = larger_vector (menu_bar_items_vector, 4, -1);
/* Add this item. */
- XVECTOR (menu_bar_items_vector)->contents[i++] = key;
- XVECTOR (menu_bar_items_vector)->contents[i++]
- = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME];
- XVECTOR (menu_bar_items_vector)->contents[i++] = Fcons (item, Qnil);
- XVECTOR (menu_bar_items_vector)->contents[i++] = make_number (0);
+ ASET (menu_bar_items_vector, i, key), i++;
+ ASET (menu_bar_items_vector, i,
+ AREF (item_properties, ITEM_PROPERTY_NAME)), i++;
+ ASET (menu_bar_items_vector, i, Fcons (item, Qnil)), i++;
+ ASET (menu_bar_items_vector, i, make_number (0)), i++;
menu_bar_items_index = i;
}
/* We did find an item for this KEY. Add ITEM to its list of maps. */
else
{
Lisp_Object old;
- old = XVECTOR (menu_bar_items_vector)->contents[i + 2];
+ old = AREF (menu_bar_items_vector, i + 2);
/* If the new and the old items are not both keymaps,
the lookup will only find `item'. */
item = Fcons (item, KEYMAPP (item) && KEYMAPP (XCAR (old)) ? old : Qnil);
- XVECTOR (menu_bar_items_vector)->contents[i + 2] = item;
+ ASET (menu_bar_items_vector, i + 2, item);
}
}
\f
@@ -8184,7 +8184,7 @@
parse_tool_bar_item (Lisp_Object key, Lisp_Object item)
{
/* Access slot with index IDX of vector tool_bar_item_properties. */
-#define PROP(IDX) XVECTOR (tool_bar_item_properties)->contents[IDX]
+#define PROP(IDX) AREF (tool_bar_item_properties, (IDX))
Lisp_Object filter = Qnil;
Lisp_Object caption;
@@ -8629,7 +8629,7 @@
/* Look at the next element of the map. */
if (idx >= 0)
- elt = XVECTOR (vector)->contents[idx];
+ elt = AREF (vector, idx);
else
elt = Fcar_safe (rest);
@@ -8664,7 +8664,7 @@
Lisp_Object upcased_event, downcased_event;
Lisp_Object desc = Qnil;
Lisp_Object s
- = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME];
+ = AREF (item_properties, ITEM_PROPERTY_NAME);
upcased_event = Fupcase (event);
downcased_event = Fdowncase (event);
@@ -8682,12 +8682,12 @@
s = concat2 (s, tem);
#endif
tem
- = XVECTOR (item_properties)->contents[ITEM_PROPERTY_TYPE];
+ = AREF (item_properties, ITEM_PROPERTY_TYPE);
if (EQ (tem, QCradio) || EQ (tem, QCtoggle))
{
/* Insert button prefix. */
Lisp_Object selected
- = XVECTOR (item_properties)->contents[ITEM_PROPERTY_SELECTED];
+ = AREF (item_properties, ITEM_PROPERTY_SELECTED);
if (EQ (tem, QCradio))
tem = build_string (NILP (selected) ? "(*) " : "( ) ");
else
@@ -9457,7 +9457,7 @@
&& current_buffer != starting_buffer)
{
GROW_RAW_KEYBUF;
- XVECTOR (raw_keybuf)->contents[raw_keybuf_count++] = key;
+ ASET (raw_keybuf, raw_keybuf_count, key), raw_keybuf_count++;
keybuf[t++] = key;
mock_input = t;
Vquit_flag = Qnil;
@@ -9535,7 +9535,7 @@
&& BUFFERP (XWINDOW (window)->buffer)
&& XBUFFER (XWINDOW (window)->buffer) != current_buffer)
{
- XVECTOR (raw_keybuf)->contents[raw_keybuf_count++] = key;
+ ASET (raw_keybuf, raw_keybuf_count, key), raw_keybuf_count++;
keybuf[t] = key;
mock_input = t + 1;
@@ -10566,7 +10566,7 @@
if (NILP (keep_record))
{
for (i = 0; i < ASIZE (recent_keys); ++i)
- XVECTOR (recent_keys)->contents[i] = Qnil;
+ ASET (recent_keys, i, Qnil);
total_keys = 0;
recent_keys_index = 0;
}
@@ -11585,7 +11585,7 @@
modifier_symbols = Fmake_vector (make_number (len), Qnil);
for (i = 0; i < len; i++)
if (modifier_names[i])
- XVECTOR (modifier_symbols)->contents[i] = intern_c_string (modifier_names[i]);
+ ASET (modifier_symbols, i, intern_c_string (modifier_names[i]));
staticpro (&modifier_symbols);
}
=== modified file 'src/lread.c'
--- src/lread.c 2012-06-16 12:24:15 +0000
+++ src/lread.c 2012-06-18 16:16:20 +0000
@@ -3748,7 +3748,7 @@
SET_SYMBOL_VAL (XSYMBOL (sym), sym);
}
- ptr = &XVECTOR (obarray)->contents[XINT (tem)];
+ ptr = &AREF (obarray, XINT(tem));
if (SYMBOLP (*ptr))
XSYMBOL (sym)->next = XSYMBOL (*ptr);
else
@@ -3827,18 +3827,18 @@
hash = oblookup_last_bucket_number;
- if (EQ (XVECTOR (obarray)->contents[hash], tem))
+ if (EQ (AREF (obarray, hash), tem))
{
if (XSYMBOL (tem)->next)
- XSETSYMBOL (XVECTOR (obarray)->contents[hash], XSYMBOL (tem)->next);
+ XSETSYMBOL (AREF (obarray, hash), XSYMBOL (tem)->next);
else
- XSETINT (XVECTOR (obarray)->contents[hash], 0);
+ XSETINT (AREF (obarray, hash), 0);
}
else
{
Lisp_Object tail, following;
- for (tail = XVECTOR (obarray)->contents[hash];
+ for (tail = AREF (obarray, hash);
XSYMBOL (tail)->next;
tail = following)
{
@@ -3877,7 +3877,7 @@
/* This is sometimes needed in the middle of GC. */
obsize &= ~ARRAY_MARK_FLAG;
hash = hash_string (ptr, size_byte) % obsize;
- bucket = XVECTOR (obarray)->contents[hash];
+ bucket = AREF (obarray, hash);
oblookup_last_bucket_number = hash;
if (EQ (bucket, make_number (0)))
;
@@ -3905,7 +3905,7 @@
CHECK_VECTOR (obarray);
for (i = ASIZE (obarray) - 1; i >= 0; i--)
{
- tail = XVECTOR (obarray)->contents[i];
+ tail = AREF (obarray, i);
if (SYMBOLP (tail))
while (1)
{
=== modified file 'src/menu.c'
--- src/menu.c 2012-02-10 18:58:48 +0000
+++ src/menu.c 2012-06-18 16:16:20 +0000
@@ -197,7 +197,7 @@
push_submenu_start (void)
{
ensure_menu_items (1);
- XVECTOR (menu_items)->contents[menu_items_used++] = Qnil;
+ ASET (menu_items, menu_items_used, Qnil), menu_items_used++;
menu_items_submenu_depth++;
}
@@ -207,7 +207,7 @@
push_submenu_end (void)
{
ensure_menu_items (1);
- XVECTOR (menu_items)->contents[menu_items_used++] = Qlambda;
+ ASET (menu_items, menu_items_used, Qlambda), menu_items_used++;
menu_items_submenu_depth--;
}
@@ -219,7 +219,7 @@
push_left_right_boundary (void)
{
ensure_menu_items (1);
- XVECTOR (menu_items)->contents[menu_items_used++] = Qquote;
+ ASET (menu_items, menu_items_used, Qquote), menu_items_used++;
}
/* Start a new menu pane in menu_items.
@@ -231,9 +231,9 @@
ensure_menu_items (MENU_ITEMS_PANE_LENGTH);
if (menu_items_submenu_depth == 0)
menu_items_n_panes++;
- XVECTOR (menu_items)->contents[menu_items_used++] = Qt;
- XVECTOR (menu_items)->contents[menu_items_used++] = name;
- XVECTOR (menu_items)->contents[menu_items_used++] = prefix_vec;
+ ASET (menu_items, menu_items_used, Qt), menu_items_used++;
+ ASET (menu_items, menu_items_used, name), menu_items_used++;
+ ASET (menu_items, menu_items_used, prefix_vec), menu_items_used++;
}
/* Push one menu item into the current pane. NAME is the string to
@@ -343,10 +343,10 @@
if (!res)
return; /* Not a menu item. */
- map = XVECTOR (item_properties)->contents[ITEM_PROPERTY_MAP];
+ map = AREF (item_properties, ITEM_PROPERTY_MAP);
- enabled = XVECTOR (item_properties)->contents[ITEM_PROPERTY_ENABLE];
- item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME];
+ enabled = AREF (item_properties, ITEM_PROPERTY_ENABLE);
+ item_string = AREF (item_properties, ITEM_PROPERTY_NAME);
if (!NILP (map) && SREF (item_string, 0) == '@')
{
@@ -363,11 +363,11 @@
front of them. */
{
Lisp_Object prefix = Qnil;
- Lisp_Object type = XVECTOR (item_properties)->contents[ITEM_PROPERTY_TYPE];
+ Lisp_Object type = AREF (item_properties, ITEM_PROPERTY_TYPE);
if (!NILP (type))
{
Lisp_Object selected
- = XVECTOR (item_properties)->contents[ITEM_PROPERTY_SELECTED];
+ = AREF (item_properties, ITEM_PROPERTY_SELECTED);
if (skp->notbuttons)
/* The first button. Line up previous items in this menu. */
@@ -378,7 +378,7 @@
while (idx < menu_items_used)
{
tem
- = XVECTOR (menu_items)->contents[idx + MENU_ITEMS_ITEM_NAME];
+ = AREF (menu_items, idx + MENU_ITEMS_ITEM_NAME);
if (NILP (tem))
{
idx++;
@@ -397,8 +397,8 @@
{
if (!submenu && SREF (tem, 0) != '\0'
&& SREF (tem, 0) != '-')
- XVECTOR (menu_items)->contents[idx + MENU_ITEMS_ITEM_NAME]
- = concat2 (build_string (" "), tem);
+ ASET (menu_items, idx + MENU_ITEMS_ITEM_NAME,
+ concat2 (build_string (" "), tem));
idx += MENU_ITEMS_ITEM_LENGTH;
}
}
@@ -430,11 +430,11 @@
#endif /* HAVE_X_WINDOWS || MSDOS */
push_menu_item (item_string, enabled, key,
- XVECTOR (item_properties)->contents[ITEM_PROPERTY_DEF],
- XVECTOR (item_properties)->contents[ITEM_PROPERTY_KEYEQ],
- XVECTOR (item_properties)->contents[ITEM_PROPERTY_TYPE],
- XVECTOR (item_properties)->contents[ITEM_PROPERTY_SELECTED],
- XVECTOR (item_properties)->contents[ITEM_PROPERTY_HELP]);
+ AREF (item_properties, ITEM_PROPERTY_DEF),
+ AREF (item_properties, ITEM_PROPERTY_KEYEQ),
+ AREF (item_properties, ITEM_PROPERTY_TYPE),
+ AREF (item_properties, ITEM_PROPERTY_SELECTED),
+ AREF (item_properties, ITEM_PROPERTY_HELP));
#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS) || defined (HAVE_NTGUI)
/* Display a submenu using the toolkit. */
@@ -645,27 +645,27 @@
i = start;
while (i < end)
{
- if (EQ (XVECTOR (menu_items)->contents[i], Qnil))
+ if (EQ (AREF (menu_items, i), Qnil))
{
submenu_stack[submenu_depth++] = save_wv;
save_wv = prev_wv;
prev_wv = 0;
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qlambda))
+ else if (EQ (AREF (menu_items, i), Qlambda))
{
prev_wv = save_wv;
save_wv = submenu_stack[--submenu_depth];
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qt)
+ else if (EQ (AREF (menu_items, i), Qt)
&& submenu_depth != 0)
i += MENU_ITEMS_PANE_LENGTH;
/* Ignore a nil in the item list.
It's meaningful only for dialog boxes. */
- else if (EQ (XVECTOR (menu_items)->contents[i], Qquote))
+ else if (EQ (AREF (menu_items, i), Qquote))
i += 1;
- else if (EQ (XVECTOR (menu_items)->contents[i], Qt))
+ else if (EQ (AREF (menu_items, i), Qt))
{
/* Create a new pane. */
Lisp_Object pane_name;
@@ -673,7 +673,7 @@
panes_seen++;
- pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME];
+ pane_name = AREF (menu_items, i + MENU_ITEMS_PANE_NAME);
#ifdef HAVE_NTGUI
if (STRINGP (pane_name))
@@ -893,25 +893,25 @@
while (i < menu_bar_items_used)
{
- if (EQ (XVECTOR (vector)->contents[i], Qnil))
+ if (EQ (AREF (vector, i), Qnil))
{
subprefix_stack[submenu_depth++] = prefix;
prefix = entry;
i++;
}
- else if (EQ (XVECTOR (vector)->contents[i], Qlambda))
+ else if (EQ (AREF (vector, i), Qlambda))
{
prefix = subprefix_stack[--submenu_depth];
i++;
}
- else if (EQ (XVECTOR (vector)->contents[i], Qt))
+ else if (EQ (AREF (vector, i), Qt))
{
- prefix = XVECTOR (vector)->contents[i + MENU_ITEMS_PANE_PREFIX];
+ prefix = AREF (vector, i + MENU_ITEMS_PANE_PREFIX);
i += MENU_ITEMS_PANE_LENGTH;
}
else
{
- entry = XVECTOR (vector)->contents[i + MENU_ITEMS_ITEM_VALUE];
+ entry = AREF (vector, i + MENU_ITEMS_ITEM_VALUE);
/* Treat the pointer as an integer. There's no problem
as long as pointers have enough bits to hold small integers. */
if ((intptr_t) client_data == i)
@@ -976,32 +976,32 @@
while (i < menu_items_used)
{
- if (EQ (XVECTOR (menu_items)->contents[i], Qnil))
+ if (EQ (AREF (menu_items, i), Qnil))
{
subprefix_stack[submenu_depth++] = prefix;
prefix = entry;
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qlambda))
+ else if (EQ (AREF (menu_items, i), Qlambda))
{
prefix = subprefix_stack[--submenu_depth];
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qt))
+ else if (EQ (AREF (menu_items, i), Qt))
{
prefix
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
+ = AREF (menu_items, i + MENU_ITEMS_PANE_PREFIX);
i += MENU_ITEMS_PANE_LENGTH;
}
/* Ignore a nil in the item list.
It's meaningful only for dialog boxes. */
- else if (EQ (XVECTOR (menu_items)->contents[i], Qquote))
+ else if (EQ (AREF (menu_items, i), Qquote))
i += 1;
else
{
entry
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_VALUE];
- if (&XVECTOR (menu_items)->contents[i] == client_data)
+ = AREF (menu_items, i + MENU_ITEMS_ITEM_VALUE);
+ if (&AREF (menu_items, i) == client_data)
{
if (keymaps != 0)
{
=== modified file 'src/minibuf.c'
--- src/minibuf.c 2012-06-16 12:24:15 +0000
+++ src/minibuf.c 2012-06-18 16:16:20 +0000
@@ -1266,7 +1266,7 @@
{
collection = check_obarray (collection);
obsize = ASIZE (collection);
- bucket = XVECTOR (collection)->contents[idx];
+ bucket = AREF (collection, idx);
}
while (1)
@@ -1301,7 +1301,7 @@
break;
else
{
- bucket = XVECTOR (collection)->contents[idx];
+ bucket = AREF (collection, idx);
continue;
}
}
@@ -1529,7 +1529,7 @@
{
collection = check_obarray (collection);
obsize = ASIZE (collection);
- bucket = XVECTOR (collection)->contents[idx];
+ bucket = AREF (collection, idx);
}
while (1)
@@ -1564,7 +1564,7 @@
break;
else
{
- bucket = XVECTOR (collection)->contents[idx];
+ bucket = AREF (collection, idx);
continue;
}
}
@@ -1772,7 +1772,7 @@
{
for (i = ASIZE (collection) - 1; i >= 0; i--)
{
- tail = XVECTOR (collection)->contents[i];
+ tail = AREF (collection, i);
if (SYMBOLP (tail))
while (1)
{
=== modified file 'src/msdos.c'
--- src/msdos.c 2012-05-27 01:06:44 +0000
+++ src/msdos.c 2012-06-18 16:16:20 +0000
@@ -2466,12 +2466,10 @@
sc = regs.h.ah;
total_doskeys += 2;
- XVECTOR (recent_doskeys)->contents[recent_doskeys_index++]
- = make_number (c);
+ ASET (recent_doskeys, recent_doskeys_index, make_number (c)), recent_doskeys_index++;
if (recent_doskeys_index == NUM_RECENT_DOSKEYS)
recent_doskeys_index = 0;
- XVECTOR (recent_doskeys)->contents[recent_doskeys_index++]
- = make_number (sc);
+ ASET (recent_doskeys, recent_doskeys_index, make_number (sc)), recent_doskeys_index++;
if (recent_doskeys_index == NUM_RECENT_DOSKEYS)
recent_doskeys_index = 0;
=== modified file 'src/print.c'
--- src/print.c 2012-06-16 12:24:15 +0000
+++ src/print.c 2012-06-18 16:16:20 +0000
@@ -1208,7 +1208,7 @@
if (size & PSEUDOVECTOR_FLAG)
size &= PSEUDOVECTOR_SIZE_MASK;
for (i = 0; i < size; i++)
- print_preprocess (XVECTOR (obj)->contents[i]);
+ print_preprocess (AREF (obj, i));
if (HASH_TABLE_P (obj))
{ /* For hash tables, the key_and_value slot is past
`size' because it needs to be marked specially in case
@@ -1960,7 +1960,7 @@
for (i = 0; i < size; i++)
{
if (i) PRINTCHAR (' ');
- tem = XVECTOR (obj)->contents[i];
+ tem = AREF (obj, i);
print_object (tem, printcharfun, escapeflag);
}
if (size < real_size)
=== modified file 'src/syntax.c'
--- src/syntax.c 2012-06-16 12:24:15 +0000
+++ src/syntax.c 2012-06-18 16:16:20 +0000
@@ -988,7 +988,7 @@
}
if (val < ASIZE (Vsyntax_code_object) && NILP (match))
- return XVECTOR (Vsyntax_code_object)->contents[val];
+ return AREF (Vsyntax_code_object, val);
else
/* Since we can't use a shared object, let's make a new one. */
return Fcons (make_number (val), match);
@@ -3386,32 +3386,31 @@
/* Create objects which can be shared among syntax tables. */
Vsyntax_code_object = Fmake_vector (make_number (Smax), Qnil);
for (i = 0; i < ASIZE (Vsyntax_code_object); i++)
- XVECTOR (Vsyntax_code_object)->contents[i]
- = Fcons (make_number (i), Qnil);
+ ASET (Vsyntax_code_object, i, Fcons (make_number (i), Qnil));
/* Now we are ready to set up this property, so we can
create syntax tables. */
Fput (Qsyntax_table, Qchar_table_extra_slots, make_number (0));
- temp = XVECTOR (Vsyntax_code_object)->contents[(int) Swhitespace];
+ temp = AREF (Vsyntax_code_object, (int) Swhitespace);
Vstandard_syntax_table = Fmake_char_table (Qsyntax_table, temp);
/* Control characters should not be whitespace. */
- temp = XVECTOR (Vsyntax_code_object)->contents[(int) Spunct];
+ temp = AREF (Vsyntax_code_object, (int) Spunct);
for (i = 0; i <= ' ' - 1; i++)
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, i, temp);
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, 0177, temp);
/* Except that a few really are whitespace. */
- temp = XVECTOR (Vsyntax_code_object)->contents[(int) Swhitespace];
+ temp = AREF (Vsyntax_code_object, (int) Swhitespace);
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, ' ', temp);
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '\t', temp);
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '\n', temp);
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, 015, temp);
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, 014, temp);
- temp = XVECTOR (Vsyntax_code_object)->contents[(int) Sword];
+ temp = AREF (Vsyntax_code_object, (int) Sword);
for (i = 'a'; i <= 'z'; i++)
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, i, temp);
for (i = 'A'; i <= 'Z'; i++)
@@ -3439,14 +3438,14 @@
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, '\\',
Fcons (make_number ((int) Sescape), Qnil));
- temp = XVECTOR (Vsyntax_code_object)->contents[(int) Ssymbol];
+ temp = AREF (Vsyntax_code_object, (int) Ssymbol);
for (i = 0; i < 10; i++)
{
c = "_-+*/&|<>="[i];
SET_RAW_SYNTAX_ENTRY (Vstandard_syntax_table, c, temp);
}
- temp = XVECTOR (Vsyntax_code_object)->contents[(int) Spunct];
+ temp = AREF (Vsyntax_code_object, (int) Spunct);
for (i = 0; i < 12; i++)
{
c = ".,;:?!#@~^'`"[i];
@@ -3454,7 +3453,7 @@
}
/* All multibyte characters have syntax `word' by default. */
- temp = XVECTOR (Vsyntax_code_object)->contents[(int) Sword];
+ temp = AREF (Vsyntax_code_object, (int) Sword);
char_table_set_range (Vstandard_syntax_table, 0x80, MAX_CHAR, temp);
}
=== modified file 'src/window.c'
--- src/window.c 2012-06-16 12:24:15 +0000
+++ src/window.c 2012-06-18 16:16:20 +0000
@@ -6036,8 +6036,8 @@
tem = Fmake_vector (make_number (n_windows), Qnil);
data->saved_windows = tem;
for (i = 0; i < n_windows; i++)
- XVECTOR (tem)->contents[i]
- = Fmake_vector (make_number (VECSIZE (struct saved_window)), Qnil);
+ ASET (tem, i,
+ Fmake_vector (make_number (VECSIZE (struct saved_window)), Qnil));
save_window_save (FRAME_ROOT_WINDOW (f), XVECTOR (tem), 0);
XSETWINDOW_CONFIGURATION (tem, data);
return (tem);
=== modified file 'src/xmenu.c'
--- src/xmenu.c 2012-06-16 12:24:15 +0000
+++ src/xmenu.c 2012-06-18 16:16:20 +0000
@@ -1040,9 +1040,9 @@
{
Lisp_Object key, string, maps;
- key = XVECTOR (items)->contents[4 * i];
- string = XVECTOR (items)->contents[4 * i + 1];
- maps = XVECTOR (items)->contents[4 * i + 2];
+ key = AREF (items, 4 * i);
+ string = AREF (items, 4 * i + 1);
+ maps = AREF (items, 4 * i + 2);
if (NILP (string))
break;
@@ -1093,7 +1093,7 @@
/* Compare the new menu items with the ones computed last time. */
for (i = 0; i < previous_menu_items_used; i++)
if (menu_items_used == i
- || (!EQ (previous_items[i], XVECTOR (menu_items)->contents[i])))
+ || (!EQ (previous_items[i], AREF (menu_items, i))))
break;
if (i == menu_items_used && i == previous_menu_items_used && i != 0)
{
@@ -1118,7 +1118,7 @@
for (i = 0; i < ASIZE (items); i += 4)
{
Lisp_Object string;
- string = XVECTOR (items)->contents[i + 1];
+ string = AREF (items, i + 1);
if (NILP (string))
break;
wv->name = SSDATA (string);
@@ -1145,7 +1145,7 @@
{
Lisp_Object string;
- string = XVECTOR (items)->contents[i + 1];
+ string = AREF (items, i + 1);
if (NILP (string))
break;
@@ -1677,7 +1677,7 @@
i = 0;
while (i < menu_items_used)
{
- if (EQ (XVECTOR (menu_items)->contents[i], Qnil))
+ if (EQ (AREF (menu_items, i), Qnil))
{
submenu_stack[submenu_depth++] = save_wv;
save_wv = prev_wv;
@@ -1685,21 +1685,21 @@
first_pane = 1;
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qlambda))
+ else if (EQ (AREF (menu_items, i), Qlambda))
{
prev_wv = save_wv;
save_wv = submenu_stack[--submenu_depth];
first_pane = 0;
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qt)
+ else if (EQ (AREF (menu_items, i), Qt)
&& submenu_depth != 0)
i += MENU_ITEMS_PANE_LENGTH;
/* Ignore a nil in the item list.
It's meaningful only for dialog boxes. */
- else if (EQ (XVECTOR (menu_items)->contents[i], Qquote))
+ else if (EQ (AREF (menu_items, i), Qquote))
i += 1;
- else if (EQ (XVECTOR (menu_items)->contents[i], Qt))
+ else if (EQ (AREF (menu_items, i), Qt))
{
/* Create a new pane. */
Lisp_Object pane_name, prefix;
@@ -1789,7 +1789,7 @@
make the call_data null so that it won't display a box
when the mouse is on it. */
wv->call_data
- = (!NILP (def) ? (void *) &XVECTOR (menu_items)->contents[i] : 0);
+ = (!NILP (def) ? (void *) &AREF (menu_items, i) : 0);
wv->enabled = !NILP (enable);
if (NILP (type))
@@ -1865,32 +1865,32 @@
i = 0;
while (i < menu_items_used)
{
- if (EQ (XVECTOR (menu_items)->contents[i], Qnil))
+ if (EQ (AREF (menu_items, i), Qnil))
{
subprefix_stack[submenu_depth++] = prefix;
prefix = entry;
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qlambda))
+ else if (EQ (AREF (menu_items, i), Qlambda))
{
prefix = subprefix_stack[--submenu_depth];
i++;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qt))
+ else if (EQ (AREF (menu_items, i), Qt))
{
prefix
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
+ = AREF (menu_items, i + MENU_ITEMS_PANE_PREFIX);
i += MENU_ITEMS_PANE_LENGTH;
}
/* Ignore a nil in the item list.
It's meaningful only for dialog boxes. */
- else if (EQ (XVECTOR (menu_items)->contents[i], Qquote))
+ else if (EQ (AREF (menu_items, i), Qquote))
i += 1;
else
{
entry
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_VALUE];
- if (menu_item_selection == &XVECTOR (menu_items)->contents[i])
+ = AREF (menu_items, i + MENU_ITEMS_ITEM_VALUE);
+ if (menu_item_selection == &AREF (menu_items, i))
{
if (keymaps != 0)
{
@@ -2058,8 +2058,8 @@
{
Lisp_Object pane_name, prefix;
const char *pane_string;
- pane_name = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_NAME];
- prefix = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_PREFIX];
+ pane_name = AREF (menu_items, MENU_ITEMS_PANE_NAME);
+ prefix = AREF (menu_items, MENU_ITEMS_PANE_PREFIX);
pane_string = (NILP (pane_name)
? "" : SSDATA (pane_name));
prev_wv = xmalloc_widget_value ();
@@ -2078,10 +2078,10 @@
/* Create a new item within current pane. */
Lisp_Object item_name, enable, descrip;
- item_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_NAME];
- enable = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_ENABLE];
+ item_name = AREF (menu_items, i + MENU_ITEMS_ITEM_NAME);
+ enable = AREF (menu_items, i + MENU_ITEMS_ITEM_ENABLE);
descrip
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY];
+ = AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY);
if (NILP (item_name))
{
@@ -2110,7 +2110,7 @@
if (!NILP (descrip))
wv->key = SSDATA (descrip);
wv->value = SSDATA (item_name);
- wv->call_data = (void *) &XVECTOR (menu_items)->contents[i];
+ wv->call_data = (void *) &AREF (menu_items, i);
wv->enabled = !NILP (enable);
wv->help = Qnil;
prev_wv = wv;
@@ -2177,13 +2177,13 @@
{
Lisp_Object entry;
- if (EQ (XVECTOR (menu_items)->contents[i], Qt))
+ if (EQ (AREF (menu_items, i), Qt))
{
prefix
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
+ = AREF (menu_items, i + MENU_ITEMS_PANE_PREFIX);
i += MENU_ITEMS_PANE_LENGTH;
}
- else if (EQ (XVECTOR (menu_items)->contents[i], Qquote))
+ else if (EQ (AREF (menu_items, i), Qquote))
{
/* This is the boundary between left-side elts and
right-side elts. */
@@ -2192,8 +2192,8 @@
else
{
entry
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_VALUE];
- if (menu_item_selection == &XVECTOR (menu_items)->contents[i])
+ = AREF (menu_items, i + MENU_ITEMS_ITEM_VALUE);
+ if (menu_item_selection == &AREF (menu_items, i))
{
if (keymaps != 0)
{
@@ -2353,7 +2353,7 @@
lpane = XM_FAILURE;
while (i < menu_items_used)
{
- if (EQ (XVECTOR (menu_items)->contents[i], Qt))
+ if (EQ (AREF (menu_items, i), Qt))
{
/* Create a new pane. */
Lisp_Object pane_name, prefix;
@@ -2361,8 +2361,8 @@
maxlines = max (maxlines, lines);
lines = 0;
- pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME];
- prefix = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
+ pane_name = AREF (menu_items, i + MENU_ITEMS_PANE_NAME);
+ prefix = AREF (menu_items, i + MENU_ITEMS_PANE_PREFIX);
pane_string = (NILP (pane_name)
? "" : SSDATA (pane_name));
if (keymaps && !NILP (prefix))
@@ -2382,7 +2382,7 @@
while (j < menu_items_used)
{
Lisp_Object item;
- item = XVECTOR (menu_items)->contents[j];
+ item = AREF (menu_items, j);
if (EQ (item, Qt))
break;
if (NILP (item))
@@ -2399,7 +2399,7 @@
}
/* Ignore a nil in the item list.
It's meaningful only for dialog boxes. */
- else if (EQ (XVECTOR (menu_items)->contents[i], Qquote))
+ else if (EQ (AREF (menu_items, i), Qquote))
i += 1;
else
{
@@ -2408,11 +2408,11 @@
char *item_data;
char const *help_string;
- item_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_NAME];
- enable = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_ENABLE];
+ item_name = AREF (menu_items, i + MENU_ITEMS_ITEM_NAME);
+ enable = AREF (menu_items, i + MENU_ITEMS_ITEM_ENABLE);
descrip
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY];
- help = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_HELP];
+ = AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY);
+ help = AREF (menu_items, i + MENU_ITEMS_ITEM_HELP);
help_string = STRINGP (help) ? SSDATA (help) : NULL;
if (!NILP (descrip))
@@ -2526,11 +2526,11 @@
i = 0;
while (i < menu_items_used)
{
- if (EQ (XVECTOR (menu_items)->contents[i], Qt))
+ if (EQ (AREF (menu_items, i), Qt))
{
if (pane == 0)
pane_prefix
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
+ = AREF (menu_items, i + MENU_ITEMS_PANE_PREFIX);
pane--;
i += MENU_ITEMS_PANE_LENGTH;
}
@@ -2541,7 +2541,7 @@
if (selidx == 0)
{
entry
- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_VALUE];
+ = AREF (menu_items, i + MENU_ITEMS_ITEM_VALUE);
if (keymaps != 0)
{
entry = Fcons (entry, Qnil);
=== modified file 'src/xselect.c'
--- src/xselect.c 2012-06-16 12:24:15 +0000
+++ src/xselect.c 2012-06-18 16:16:20 +0000
@@ -1816,12 +1816,12 @@
ptrdiff_t i;
ptrdiff_t size = ASIZE (obj);
- if (SYMBOLP (XVECTOR (obj)->contents [0]))
+ if (SYMBOLP (AREF (obj, 0)))
/* This vector is an ATOM set */
{
if (NILP (type)) type = QATOM;
for (i = 0; i < size; i++)
- if (!SYMBOLP (XVECTOR (obj)->contents [i]))
+ if (!SYMBOLP (AREF (obj, i)))
signal_error ("All elements of selection vector must have same type", obj);
*data_ret = xnmalloc (size, sizeof (Atom));
@@ -1829,7 +1829,7 @@
*size_ret = size;
for (i = 0; i < size; i++)
(*(Atom **) data_ret) [i]
- = symbol_to_x_atom (dpyinfo, XVECTOR (obj)->contents [i]);
+ = symbol_to_x_atom (dpyinfo, AREF (obj, i));
}
else
/* This vector is an INTEGER set, or something like it */
@@ -1839,7 +1839,7 @@
if (NILP (type)) type = QINTEGER;
for (i = 0; i < size; i++)
{
- if (! RANGED_INTEGERP (X_SHRT_MIN, XVECTOR (obj)->contents[i],
+ if (! RANGED_INTEGERP (X_SHRT_MIN, AREF (obj, i),
X_SHRT_MAX))
{
/* Use sizeof (long) even if it is more than 32 bits.
@@ -1857,10 +1857,10 @@
{
if (format == 32)
(*((unsigned long **) data_ret)) [i] =
- cons_to_x_long (XVECTOR (obj)->contents[i]);
+ cons_to_x_long (AREF (obj, i));
else
(*((short **) data_ret)) [i] =
- XINT (XVECTOR (obj)->contents[i]);
+ XINT (AREF (obj, i));
}
}
}
@@ -1895,11 +1895,10 @@
ptrdiff_t size = ASIZE (obj);
Lisp_Object copy;
if (size == 1)
- return clean_local_selection_data (XVECTOR (obj)->contents [0]);
+ return clean_local_selection_data (AREF (obj, 0));
copy = Fmake_vector (make_number (size), Qnil);
for (i = 0; i < size; i++)
- XVECTOR (copy)->contents [i]
- = clean_local_selection_data (XVECTOR (obj)->contents [i]);
+ ASET (copy, i, clean_local_selection_data (AREF (obj, i)));
return copy;
}
return obj;
next reply other threads:[~2012-06-18 16:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-18 16:44 Dmitry Antipov [this message]
2012-06-18 19:47 ` Trying coccinelle Aurélien Aptel
2012-06-18 20:33 ` Stefan Monnier
2012-06-19 4:27 ` Dmitry Antipov
2012-06-19 13:31 ` Stefan Monnier
2012-06-22 5:57 ` Dmitry Antipov
2012-06-22 6:40 ` Miles Bader
2012-06-22 10:22 ` martin rudalics
2012-06-22 19:02 ` Stefan Monnier
2012-06-24 16:20 ` Dmitry Antipov
2012-06-24 18:59 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FDF5AF2.2080503@yandex.ru \
--to=dmantipov@yandex.ru \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.