* nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.

This makes this file independent of the recent pseudovector change.
This commit is contained in:
Paul Eggert 2011-04-26 23:01:43 -07:00
parent b6f5355a9e
commit 96fb4434c8
2 changed files with 41 additions and 37 deletions

View file

@ -1,3 +1,8 @@
2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
* nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
This makes this file independent of the recent pseudovector change.
2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
* keyboard.c (handle_user_signal): Fix pointer signedness problem.

View file

@ -218,7 +218,7 @@
/* Save the frame's previous menu bar contents data */
if (previous_menu_items_used)
memcpy (previous_items, XVECTOR (f->menu_bar_vector)->contents,
memcpy (previous_items, &AREF (f->menu_bar_vector, 0),
previous_menu_items_used * sizeof (Lisp_Object));
/* parse stage 1: extract from lisp */
@ -226,19 +226,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;
@ -311,11 +311,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)
{
@ -346,10 +346,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)))
@ -407,7 +407,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++)
@ -434,9 +434,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;
@ -591,7 +591,7 @@ -(NSString *)parseKeyEquiv: (const char *)key
if (!key || !strlen (key))
return @"";
while (*tpos == ' ' || *tpos == '(')
tpos++;
if ((*tpos == 's') && (*(tpos+1) == '-'))
@ -652,7 +652,7 @@ - (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr
-(void)clear
{
int n;
for (n = [self numberOfItems]-1; n >= 0; n--)
{
NSMenuItem *item = [self itemAtIndex: n];
@ -794,7 +794,7 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
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;
@ -802,21 +802,21 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
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;
@ -906,7 +906,7 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
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))
@ -1257,12 +1257,12 @@ - (void) setText: (char *)text
{
NSString *str = [NSString stringWithUTF8String: text];
NSRect r = [textField frame];
NSSize textSize = [str sizeWithAttributes:
NSSize textSize = [str sizeWithAttributes:
[NSDictionary dictionaryWithObject: [[textField font] screenFont]
forKey: NSFontAttributeName]];
NSSize padSize = [[[textField font] screenFont]
NSSize padSize = [[[textField font] screenFont]
boundingRectForFont].size;
r.size.width = textSize.width + padSize.width/2;
r.size.height = textSize.height + padSize.height/2;
[textField setFrame: r];
@ -1345,7 +1345,7 @@ - (NSRect) frame
BOOL isQ;
NSTRACE (x-popup-dialog);
check_ns ();
isQ = NILP (header);
@ -1507,10 +1507,10 @@ @implementation EmacsDialogPanel
[cell setCellAttribute: NSCellIsInsetButton to: 8];
[cell setBezelStyle: NSRoundedBezelStyle];
matrix = [[NSMatrix alloc] initWithFrame: contentRect
mode: NSHighlightModeMatrix
prototype: cell
numberOfRows: 0
matrix = [[NSMatrix alloc] initWithFrame: contentRect
mode: NSHighlightModeMatrix
prototype: cell
numberOfRows: 0
numberOfColumns: 1];
[[self contentView] addSubview: matrix];
[matrix release];
@ -1561,7 +1561,7 @@ void process_dialog (id window, Lisp_Object list)
- addButton: (char *)str value: (Lisp_Object)val row: (int)row
{
id cell;
if (row >= rows)
{
[matrix addRow];
@ -1582,7 +1582,7 @@ void process_dialog (id window, Lisp_Object list)
- addString: (char *)str row: (int)row
{
id cell;
if (row >= rows)
{
[matrix addRow];
@ -1611,7 +1611,7 @@ void process_dialog (id window, Lisp_Object list)
EMACS_INT seltag;
sellist = [sender selectedCells];
if ([sellist count]<1)
if ([sellist count]<1)
return self;
seltag = [[sellist objectAtIndex: 0] tag];
@ -1794,4 +1794,3 @@ Each ITEM is a cons cell (STRING . VALUE).
Qdebug_on_next_call = intern_c_string ("debug-on-next-call");
staticpro (&Qdebug_on_next_call);
}