emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#19634: closed (counting MANY function args more re


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#19634: closed (counting MANY function args more reliably)
Date: Sun, 25 Jan 2015 17:17:01 +0000

Your message dated Sun, 25 Jan 2015 09:15:58 -0800
with message-id <address@hidden>
and subject line Re: bug#19634: counting MANY function args more reliably
has caused the debbugs.gnu.org bug report #19634,
regarding counting MANY function args more reliably
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
19634: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19634
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: counting MANY function args more reliably Date: Tue, 20 Jan 2015 01:26:25 -0800 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 Commit ef5a526f1b51b76b0f753e0936c80743a7f4463d fixed a bug in Emacs where the C code passed 10 arguments to a function using the MANY calling convention, but the caller mistakenly passed 8 as the argument count, and this mistakenly discarded the last two arguments; see <http://bugs.gnu.org/3228#63>.

To help prevent this sort of mistake in the future, I would like to install something like the attached patch, which uses a new C macro CALLN to count these arguments automatically. The key lines in the patch are the following additions to lisp.h:

#define CALLMANY(f, array) (f) (ARRAYELTS (array), array)

#define CALLN(f, ...) CALLMANY (f, ((Lisp_Object []) {__VA_ARGS__}))

This lets code use 'return CALLN (foo, a, b, c, d);' instead of the current error-prone usages which are like '{ Lisp_Object args[4]; args[0] = a; args[1] = b; args[2] = c; args[3] = d; return foo (3, args); }'. (Oops, that last '3' should have been a '4'....)

This patch still needs a ChangeLog entry and some more testing on my part, but I thought I'd get it out for review now.

Attachment: calln.diff
Description: Text Data


--- End Message ---
--- Begin Message --- Subject: Re: bug#19634: counting MANY function args more reliably Date: Sun, 25 Jan 2015 09:15:58 -0800 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
Stefan Monnier wrote:
I like that,

Thanks, I tested the patch on a few more platforms, rebased it to the current master, added some commentary in response to the remarks in this bug report, and installed the patch into the master as commit a3689d3c661fe36df971c875760f8d500b5ae994.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]