Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static VALUE
- rb_ary_and(VALUE ary1, VALUE ary2)
- {
- VALUE hash, ary3, v;
- st_data_t vv;
- long i;
- ary2 = to_ary(ary2);
- ary3 = rb_ary_new2(RARRAY_LEN(ary1) < RARRAY_LEN(ary2) ?
- RARRAY_LEN(ary1) : RARRAY_LEN(ary2));
- hash = ary_make_hash(ary2);
- if (RHASH_EMPTY_P(hash))
- return ary3;
- for (i=0; i<RARRAY_LEN(ary1); i++) {
- vv = (st_data_t)(v = rb_ary_elt(ary1, i));
- if (st_delete(RHASH_TBL(hash), &vv, 0)) {
- rb_ary_push(ary3, v);
- }
- }
- ary_recycle_hash(hash);
- return ary3;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement