Sha256: 1548a2a0510c9b66abfc89335d05f45421b2830b659d22bcb444cc2a64795c86
Contents?: true
Size: 718 Bytes
Versions: 1
Compression:
Stored size: 718 Bytes
Contents
#include "cruby.h" VALUE llrb_insn_opt_aref(VALUE recv, VALUE obj) { if (!SPECIAL_CONST_P(recv)) { if (RBASIC_CLASS(recv) == rb_cArray && BASIC_OP_UNREDEFINED_P(BOP_AREF, ARRAY_REDEFINED_OP_FLAG) && FIXNUM_P(obj)) { return rb_ary_entry(recv, FIX2LONG(obj)); } else if (RBASIC_CLASS(recv) == rb_cHash && BASIC_OP_UNREDEFINED_P(BOP_AREF, HASH_REDEFINED_OP_FLAG)) { return rb_hash_aref(recv, obj); } else { //goto INSN_LABEL(normal_dispatch); return rb_funcall(recv, rb_intern("[]"), 1, obj); } } else { //INSN_LABEL(normal_dispatch): //PUSH(recv); //PUSH(obj); //CALL_SIMPLE_METHOD(recv); return rb_funcall(recv, rb_intern("[]"), 1, obj); } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
llrb-0.0.1 | ext/llrb_insn_opt_aref.c |