summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-07-05 18:16:54 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-07-05 18:16:54 +0000
commit976bfae03be67236543367aef7b8a22df02cd37b (patch)
tree8942ae65bee913d9329292fc0408b8635d0fc3fc /insns.def
parentb9171a73c4f0d212b723e0160859ab69b89b3339 (diff)
* insns.def: remove unused code.
* compile.c (compile_massign): fix to invoke to_splat on splat rhs (example: *a = *nil). [ruby-dev:31136] * bootstraptest/test_massign.rb: add tests for above. * compile.c (iseq_compile_each): disable excess optimization. [ruby-dev:31126] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def44
1 files changed, 14 insertions, 30 deletions
diff --git a/insns.def b/insns.def
index 51e5272ee9..59c924f166 100644
--- a/insns.def
+++ b/insns.def
@@ -505,40 +505,24 @@ expandarray
}
}
else {
- if ((long)num >= 0) {
- int len;
- if (TYPE(ary) != T_ARRAY) {
- ary = rb_ary_to_ary(ary);
- }
- len = RARRAY_LEN(ary);
- for (i = 0; i < len && i < num; i++) {
- PUSH(RARRAY_PTR(ary)[i]);
- }
- for (; i < num; i++) {
- PUSH(Qnil);
- }
- if (flag) {
- if (len > num) {
- PUSH(rb_ary_new4(len - num, &RARRAY_PTR(ary)[num]));
- }
- else {
- PUSH(rb_ary_new());
- }
- }
+ int len;
+ if (TYPE(ary) != T_ARRAY) {
+ ary = rb_ary_to_ary(ary);
}
- else {
- long holdnum = -num;
- VALUE val;
-
- val = rb_ary_new4(holdnum, STACK_ADDR_FROM_TOP(holdnum));
- if (CLASS_OF(ary) == rb_cArray) {
- val = rb_ary_concat(val, ary);
+ len = RARRAY_LEN(ary);
+ for (i = 0; i < len && i < num; i++) {
+ PUSH(RARRAY_PTR(ary)[i]);
+ }
+ for (; i < num; i++) {
+ PUSH(Qnil);
+ }
+ if (flag) {
+ if (len > num) {
+ PUSH(rb_ary_new4(len - num, &RARRAY_PTR(ary)[num]));
}
else {
- rb_ary_push(val, ary);
+ PUSH(rb_ary_new());
}
- POPN(holdnum);
- PUSH(val);
}
}
}