From: nobu.nokada@... Date: 2002-01-08T03:20:06+09:00 Subject: Re: Patch for Ruby 1.7 At Tue, 8 Jan 2002 00:18:26 +0900, Lyle Johnson wrote: > > |Looking at the CVS version of Ruby, the declaration for rb_rescue2() in > > |ruby.h isn't quite right when you're compiling under a C++ compiler. It > > |currently reads: > > | > > | VALUE rb_rescue2 > > |__((VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...)); > > | > > |but should instead read: > > | > > | VALUE rb_rescue2 > __((VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE),VALUE,...)); > > > > I don't remember why I did this. I guess I must had reason... > > So... does that mean it will be fixed or not? If you look at the code for > rb_rescue2() in eval.c it's pretty clear that those two function pointers > (i.e. the first and third arguments to rb_rescue2) only take one argument > and aren't intended to accept variable-length argument lists. Actually I added the nested prototype arguments, because some callback functions take VALUE* instead of VALUE, and others take no arguments. Just to avoid casting. -- Nobu Nakada