[macruby-changes] [3597] MacRuby/trunk/dispatcher.cpp
source_changes at macosforge.org
source_changes at macosforge.org
Wed Feb 24 07:31:40 PST 2010
Revision: 3597
http://trac.macosforge.org/projects/ruby/changeset/3597
Author: martinlagardette at apple.com
Date: 2010-02-24 07:31:36 -0800 (Wed, 24 Feb 2010)
Log Message:
-----------
Arity check fix
Fixed an issue where "wrong number of arguments" ArgumentError would be raised, always displaying the minimum of required args, instead of showing the minimum or maximum number of arguments, depending on how many arguments were actually passed.
Modified Paths:
--------------
MacRuby/trunk/dispatcher.cpp
Modified: MacRuby/trunk/dispatcher.cpp
===================================================================
--- MacRuby/trunk/dispatcher.cpp 2010-02-24 06:27:42 UTC (rev 3596)
+++ MacRuby/trunk/dispatcher.cpp 2010-02-24 15:31:36 UTC (rev 3597)
@@ -399,8 +399,9 @@
{
const rb_vm_arity_t &arity = node->arity;
if ((argc < arity.min) || ((arity.max != -1) && (argc > arity.max))) {
+ short limit = (argc < arity.min) ? arity.min : arity.max;
rb_raise(rb_eArgError, "wrong number of arguments (%d for %d)",
- argc, arity.min);
+ argc, limit);
}
if ((node->flags & VM_METHOD_PRIVATE) && opt == 0) {
@@ -1483,8 +1484,9 @@
if (argc < arity.min || argc > arity.max) {
if (arity.max != -1
&& (b->flags & VM_BLOCK_LAMBDA) == VM_BLOCK_LAMBDA) {
+ short limit = (argc < arity.min) ? arity.min : arity.max;
rb_raise(rb_eArgError, "wrong number of arguments (%d for %d)",
- argc, arity.min);
+ argc, limit);
}
VALUE *new_argv;
if (argc == 1 && TYPE(argv[0]) == T_ARRAY
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100224/7421cf6b/attachment.html>
More information about the macruby-changes
mailing list