summaryrefslogtreecommitdiff
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 7946f9aa4f..3cd0c8df7b 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -4129,6 +4129,10 @@ static VALUE
vm_opt_aref(VALUE recv, VALUE obj)
{
if (SPECIAL_CONST_P(recv)) {
+ if (FIXNUM_P(recv) && FIXNUM_P(obj) &&
+ BASIC_OP_UNREDEFINED_P(BOP_AREF, INTEGER_REDEFINED_OP_FLAG)) {
+ return rb_fix_aref(recv, obj);
+ }
return Qundef;
}
else if (RBASIC_CLASS(recv) == rb_cArray &&