Sha256: 44741a70b14be4f434ddf90615f16cdf821a4fb3bd3598dff850d93e03ed71d2
Contents?: true
Size: 775 Bytes
Versions: 1
Compression:
Stored size: 775 Bytes
Contents
#include "cruby.h" // NOTE: There's optimization chance to check flag beforehand. // TODO: Use `vm_check_match` after Ruby 2.5. VALUE check_match(VALUE pattern, VALUE target, enum vm_check_match_type type); VALUE llrb_insn_checkmatch(VALUE target, VALUE pattern, rb_num_t flag) { enum vm_check_match_type checkmatch_type = (enum vm_check_match_type)(flag & VM_CHECKMATCH_TYPE_MASK); VALUE result = Qfalse; if (flag & VM_CHECKMATCH_ARRAY) { long i; for (i = 0; i < RARRAY_LEN(pattern); i++) { if (RTEST(check_match(RARRAY_AREF(pattern, i), target, checkmatch_type))) { result = Qtrue; break; } } } else { if (RTEST(check_match(pattern, target, checkmatch_type))) { result = Qtrue; } } return result; }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
llrb-0.0.1 | ext/llrb_insn_checkmatch.c |