aboutsummaryrefslogtreecommitdiffstats
path: root/insns.def
diff options
context:
space:
mode:
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def8
1 files changed, 2 insertions, 6 deletions
diff --git a/insns.def b/insns.def
index a056b221d5..5f1ff62d1a 100644
--- a/insns.def
+++ b/insns.def
@@ -492,16 +492,12 @@ newhash
(...)
(VALUE val) // inc += 1 - num;
{
- rb_num_t i;
-
RUBY_DTRACE_CREATE_HOOK(HASH, num);
val = rb_hash_new();
- for (i = num; i > 0; i -= 2) {
- const VALUE v = TOPN(i - 2);
- const VALUE k = TOPN(i - 1);
- rb_hash_aset(val, k, v);
+ if (num) {
+ rb_hash_bulk_insert(num, STACK_ADDR_FROM_TOP(num), val);
}
POPN(num);
}