From unknown Sat Jun 21 10:15:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#8839: [PATCH] uses of XVECTOR in nsmenu.m in v23 need to be changed Resent-From: Alp Aker Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Jun 2011 02:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 8839 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 8839@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.130784414115588 (code B ref -1); Sun, 12 Jun 2011 02:03:02 +0000 Received: (at submit) by debbugs.gnu.org; 12 Jun 2011 02:02:21 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QVa0K-00043M-0J for submit@debbugs.gnu.org; Sat, 11 Jun 2011 22:02:21 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QVZVJ-0003KM-Kd for submit@debbugs.gnu.org; Sat, 11 Jun 2011 21:30:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QVZVD-0008Lg-7e for submit@debbugs.gnu.org; Sat, 11 Jun 2011 21:30:12 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:34361) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QVZVD-0008Lc-4x for submit@debbugs.gnu.org; Sat, 11 Jun 2011 21:30:11 -0400 Received: from eggs.gnu.org ([140.186.70.92]:40122) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QVZVB-0004Lj-G8 for bug-gnu-emacs@gnu.org; Sat, 11 Jun 2011 21:30:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QVZVA-0008L7-5i for bug-gnu-emacs@gnu.org; Sat, 11 Jun 2011 21:30:09 -0400 Received: from lo.gmane.org ([80.91.229.12]:44948) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QVZV9-0008Ka-QA for bug-gnu-emacs@gnu.org; Sat, 11 Jun 2011 21:30:08 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QVZV8-0003yn-0w for bug-gnu-emacs@gnu.org; Sun, 12 Jun 2011 03:30:06 +0200 Received: from pool-108-32-106-85.pitbpa.east.verizon.net ([108.32.106.85]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 12 Jun 2011 03:30:06 +0200 Received: from alp.tekin.aker by pool-108-32-106-85.pitbpa.east.verizon.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 12 Jun 2011 03:30:06 +0200 X-Injected-Via-Gmane: http://gmane.org/ From: Alp Aker Date: Sun, 12 Jun 2011 01:26:32 +0000 (UTC) Lines: 152 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: sea.gmane.org User-Agent: Loom/3.14 (http://gmane.org/) X-Loom-IP: 108.32.106.85 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_5) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -5.9 (-----) X-Mailman-Approved-At: Sat, 11 Jun 2011 22:02:18 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.9 (-----) 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 + + * nsmenu.m (ns_update_menubar, ns_menu_show): Replace uses of + XVECTOR with ASIZE and AREF. + 2011-06-02 Dan Nicolaescu * 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; isize; 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)) From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 11 22:04:43 2011 Received: (at control) by debbugs.gnu.org; 12 Jun 2011 02:04:43 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QVa2d-000497-Kv for submit@debbugs.gnu.org; Sat, 11 Jun 2011 22:04:43 -0400 Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QVa2b-00048f-EG for control@debbugs.gnu.org; Sat, 11 Jun 2011 22:04:41 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1QVa2W-0007Mo-5O for control@debbugs.gnu.org; Sat, 11 Jun 2011 22:04:36 -0400 Date: Sat, 11 Jun 2011 22:04:36 -0400 Message-Id: Subject: control message for bug 8839 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.3 (------) found 8839 23.3 fixed 8839 24.1 From unknown Sat Jun 21 10:15:16 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.427 (Entity 5.427) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Alp Aker Subject: bug#8839: closed (Re: 23 branch NS build failure - XVECTOR->size / nsmenu) Message-ID: References: <0E1F41F2-EC85-43C4-8860-DA9D71FB64F5@gmail.com> X-Gnu-PR-Message: they-closed 8839 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 8839@debbugs.gnu.org Date: Thu, 16 Jun 2011 16:32:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1308241922-15452-1" This is a multi-part message in MIME format... ------------=_1308241922-15452-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #8839: [PATCH] uses of XVECTOR in nsmenu.m in v23 need to be changed which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 8839@debbugs.gnu.org. --=20 8839: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D8839 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1308241922-15452-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 8839-done) by debbugs.gnu.org; 16 Jun 2011 16:31:41 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QXFTo-00040h-7x for submit@debbugs.gnu.org; Thu, 16 Jun 2011 12:31:40 -0400 Received: from mail-iw0-f172.google.com ([209.85.214.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QXFTm-00040V-Gq for 8839-done@debbugs.gnu.org; Thu, 16 Jun 2011 12:31:39 -0400 Received: by iwn39 with SMTP id 39so1331837iwn.3 for <8839-done@debbugs.gnu.org>; Thu, 16 Jun 2011 09:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:subject:mime-version:content-type:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to:x-mailer; bh=Eta/k8c1s3xUF2epboOWHSj6d9BUgkYNu5VdPgh2agk=; b=cp/QGsmzCPlZGZpNMHtBYqh6wSoJW2Mrpl2Yx+7mYIyK1yAUVh4e6b3lXGiqEW9exP Xc+zsYoypNVdAvDHnmpS8t09od6ZqGteCLFy4YTlPRA4cftZKd9E5YL1iKZXJFkfviBW Ou4wMRQdcIBr7XHHwROvzL9DiitjMx3hQtSLA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; b=e9cUvppcQewfxgRxLuv7fZ9RqQ9RvnrcjN5RtwAEK8y493dG30+pJxpCZxo4RDtM6o Mf9DjIyZKMyTl7VRqUPxafQ18Yas8DEDRSv4K5IDGFtTiYkB9A53RnRqky/tEUP+5P6y c32MMSyCWGuQGusR5xVbvcHwkv+UODg7m+ii4= Received: by 10.231.45.80 with SMTP id d16mr962809ibf.111.1308241892190; Thu, 16 Jun 2011 09:31:32 -0700 (PDT) Received: from elin.andrew.cmu.edu (ELIN.ANDREW.CMU.EDU [128.2.46.20]) by mx.google.com with ESMTPS id v15sm879991ibh.28.2011.06.16.09.31.30 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 16 Jun 2011 09:31:31 -0700 (PDT) Subject: Re: 23 branch NS build failure - XVECTOR->size / nsmenu Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: David Reitter In-Reply-To: Date: Thu, 16 Jun 2011 12:31:29 -0400 Content-Transfer-Encoding: 7bit Message-Id: <0E1F41F2-EC85-43C4-8860-DA9D71FB64F5@gmail.com> References: To: Alp Aker X-Mailer: Apple Mail (2.1084) X-Spam-Score: -3.8 (---) X-Debbugs-Envelope-To: 8839-done Cc: Emacs devel X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.8 (---) On Jun 15, 2011, at 3:29 PM, Alp Aker wrote: > > But wouldn't it be unfortunate to leave emacs-23 in a state in > which it won't even compile on NS? I agree. I have made the change (rev 100598). Please try it out. ------------=_1308241922-15452-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 12 Jun 2011 02:02:21 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QVa0K-00043M-0J for submit@debbugs.gnu.org; Sat, 11 Jun 2011 22:02:21 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QVZVJ-0003KM-Kd for submit@debbugs.gnu.org; Sat, 11 Jun 2011 21:30:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QVZVD-0008Lg-7e for submit@debbugs.gnu.org; Sat, 11 Jun 2011 21:30:12 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:34361) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QVZVD-0008Lc-4x for submit@debbugs.gnu.org; Sat, 11 Jun 2011 21:30:11 -0400 Received: from eggs.gnu.org ([140.186.70.92]:40122) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QVZVB-0004Lj-G8 for bug-gnu-emacs@gnu.org; Sat, 11 Jun 2011 21:30:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QVZVA-0008L7-5i for bug-gnu-emacs@gnu.org; Sat, 11 Jun 2011 21:30:09 -0400 Received: from lo.gmane.org ([80.91.229.12]:44948) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QVZV9-0008Ka-QA for bug-gnu-emacs@gnu.org; Sat, 11 Jun 2011 21:30:08 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QVZV8-0003yn-0w for bug-gnu-emacs@gnu.org; Sun, 12 Jun 2011 03:30:06 +0200 Received: from pool-108-32-106-85.pitbpa.east.verizon.net ([108.32.106.85]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 12 Jun 2011 03:30:06 +0200 Received: from alp.tekin.aker by pool-108-32-106-85.pitbpa.east.verizon.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 12 Jun 2011 03:30:06 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Alp Aker Subject: [PATCH] uses of XVECTOR in nsmenu.m in v23 need to be changed Date: Sun, 12 Jun 2011 01:26:32 +0000 (UTC) Lines: 152 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: sea.gmane.org User-Agent: Loom/3.14 (http://gmane.org/) X-Loom-IP: 108.32.106.85 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_5) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -5.9 (-----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sat, 11 Jun 2011 22:02:18 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.9 (-----) 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 + + * nsmenu.m (ns_update_menubar, ns_menu_show): Replace uses of + XVECTOR with ASIZE and AREF. + 2011-06-02 Dan Nicolaescu * 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; isize; 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)) ------------=_1308241922-15452-1--