summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--eval.c8
-rw-r--r--parse.y4
3 files changed, 12 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 31fd6c16d0..fccf6f8327 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed Apr 19 13:55:27 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * parse.y (arg): too much NEW_LIST()
+
+ * eval.c (SETUP_ARGS0): remove unnecessary access to nd_alen.
+
Wed Apr 19 11:57:04 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.
diff --git a/eval.c b/eval.c
index c6d0dd711e..4698c34021 100644
--- a/eval.c
+++ b/eval.c
@@ -2213,14 +2213,14 @@ copy_node_scope(node, rval)
# define TMP_ALLOC(n) ALLOCA_N(VALUE,n)
#endif
-#define SETUP_ARGS0(anode,alen,extra) do {\
+#define SETUP_ARGS0(anode,extra) do {\
NODE *n = anode;\
if (!n) {\
argc = 0;\
argv = 0;\
}\
else if (nd_type(n) == NODE_ARRAY) {\
- argc=alen;\
+ argc=anode->nd_alen;\
if (argc > 0) {\
int i;\
n = anode;\
@@ -2245,7 +2245,7 @@ copy_node_scope(node, rval)
}\
} while (0)
-#define SETUP_ARGS(anode) SETUP_ARGS0(anode, anode->nd_alen,0)
+#define SETUP_ARGS(anode) SETUP_ARGS0(anode,0)
#define BEGIN_CALLARGS do {\
struct BLOCK *tmp_block = ruby_block;\
@@ -3540,7 +3540,7 @@ rb_eval(self, n)
recv = rb_eval(self, node->nd_recv);
rval = node->nd_args->nd_head;
- SETUP_ARGS0(node->nd_args->nd_body, node->nd_args->nd_alen-1,1);
+ SETUP_ARGS0(node->nd_args->nd_body, 1);
val = rb_funcall3(recv, aref, argc, argv);
switch (node->nd_mid) {
case 0: /* OR */
diff --git a/parse.y b/parse.y
index 608da7e820..b6ee2c5a8d 100644
--- a/parse.y
+++ b/parse.y
@@ -542,7 +542,7 @@ stmt : kALIAS fitem {lex_state = EXPR_FNAME;} fitem
NODE *args;
value_expr($6);
- args = arg_concat(NEW_LIST($6), $3);
+ args = arg_concat($6, $3);
if ($5 == tOROP) {
$5 = 0;
}
@@ -1009,7 +1009,7 @@ arg : lhs '=' arg
NODE *args;
value_expr($6);
- args = arg_concat(NEW_LIST($6), $3);
+ args = arg_concat($6, $3);
if ($5 == tOROP) {
$5 = 0;
}