[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8839: [PATCH] uses of XVECTOR in nsmenu.m in v23 need to be changed
From: |
Alp Aker |
Subject: |
bug#8839: [PATCH] uses of XVECTOR in nsmenu.m in v23 need to be changed |
Date: |
Sun, 12 Jun 2011 01:26:32 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
Uses of XVECTOR in nsmenu.m were recently removed in the trunk (by Paul Eggert,
rev. no. 104024). The same changes also need to made to nsmenu.m in the
emacs-23 branch in order to build on Nextstep. The following patch does what's
necessary.
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2011-06-02 16:56:04 +0000
+++ b/src/ChangeLog 2011-06-12 01:05:36 +0000
@@ -1,3 +1,8 @@
+2011-06-11 Alp Aker <alp.tekin.aker@gmail.com>
+
+ * nsmenu.m (ns_update_menubar, ns_menu_show): Replace uses of
+ XVECTOR with ASIZE and AREF.
+
2011-06-02 Dan Nicolaescu <dann@ics.uci.edu>
* emacs.c (main): Warn when starting a GTK emacs in daemon mode.
=== modified file 'src/nsmenu.m'
--- a/src/nsmenu.m 2011-01-02 23:50:46 +0000
+++ b/src/nsmenu.m 2011-06-12 00:33:14 +0000
@@ -219,7 +219,7 @@
/* Save the frame's previous menu bar contents data */
if (previous_menu_items_used)
- bcopy (XVECTOR (f->menu_bar_vector)->contents, previous_items,
+ memcpy (previous_items, &AREF (f->menu_bar_vector, 0),
previous_menu_items_used * sizeof (Lisp_Object));
/* parse stage 1: extract from lisp */
@@ -227,19 +227,19 @@
menu_items = f->menu_bar_vector;
menu_items_allocated = VECTORP (menu_items) ? ASIZE (menu_items) : 0;
- submenu_start = (int *) alloca (XVECTOR (items)->size * sizeof (int *));
- submenu_end = (int *) alloca (XVECTOR (items)->size * sizeof (int *));
- submenu_n_panes = (int *) alloca (XVECTOR (items)->size * sizeof (int));
+ submenu_start = (int *) alloca (ASIZE (items) * sizeof (int *));
+ submenu_end = (int *) alloca (ASIZE (items) * sizeof (int *));
+ submenu_n_panes = (int *) alloca (ASIZE (items) * sizeof (int));
submenu_top_level_items
- = (int *) alloca (XVECTOR (items)->size * sizeof (int *));
+ = (int *) alloca (ASIZE (items) * sizeof (int *));
init_menu_items ();
- for (i = 0; i < XVECTOR (items)->size; i += 4)
+ for (i = 0; i < ASIZE (items); i += 4)
{
Lisp_Object key, string, maps;
- key = XVECTOR (items)->contents[i];
- string = XVECTOR (items)->contents[i + 1];
- maps = XVECTOR (items)->contents[i + 2];
+ key = AREF (items, i);
+ string = AREF (items, i + 1);
+ maps = AREF (items, i + 2);
if (NILP (string))
break;
@@ -312,11 +312,11 @@
/* FIXME: this ALWAYS fails on Buffers menu items.. something
about their strings causes them to change every time, so we
double-check failures */
- if (!EQ (previous_items[i], XVECTOR (menu_items)->contents[i]))
+ if (!EQ (previous_items[i], AREF (menu_items, i)))
if (!(STRINGP (previous_items[i])
- && STRINGP (XVECTOR (menu_items)->contents[i])
+ && STRINGP (AREF (menu_items, i))
&& !strcmp (SDATA (previous_items[i]),
- SDATA (XVECTOR (menu_items)->contents[i]))))
+ SDATA (AREF (menu_items, i)))))
break;
if (i == previous_menu_items_used)
{
@@ -347,10 +347,10 @@
/* Parse stage 2a: now GC cannot happen during the lifetime of the
widget_value, so it's safe to store data from a Lisp_String */
wv = first_wv->contents;
- for (i = 0; i < XVECTOR (items)->size; i += 4)
+ 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;
/* if (submenu && strcmp (submenuTitle, SDATA (string)))
@@ -408,7 +408,7 @@
/* check if no change.. this mechanism is a bit rough, but ready */
- n = XVECTOR (items)->size / 4;
+ n = ASIZE (items) / 4;
if (f == last_f && n_previous_strings == n)
{
for (i = 0; i<n; i++)
@@ -435,9 +435,9 @@
}
[menu clear];
- for (i = 0; i < XVECTOR (items)->size; i += 4)
+ for (i = 0; i < ASIZE (items); i += 4)
{
- string = XVECTOR (items)->contents[i + 1];
+ string = AREF (items, i + 1);
if (NILP (string))
break;
@@ -809,7 +809,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;
@@ -817,21 +817,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;
@@ -921,7 +921,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))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#8839: [PATCH] uses of XVECTOR in nsmenu.m in v23 need to be changed,
Alp Aker <=