[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