コード例 #1
0
ファイル: set.c プロジェクト: alloy/mr-experimental
static VALUE
rb_set_union(VALUE set, SEL sel, VALUE other)
{
    VALUE new_set = rb_set_dup(set, 0);
    rb_set_merge(new_set, 0, other);

    return new_set;
}
コード例 #2
0
ファイル: set.c プロジェクト: Sophrinix/iphone-macruby
static VALUE
rb_set_clone(VALUE rcv)
{
    VALUE clone = rb_set_dup(rcv);
    if (OBJ_FROZEN(rcv))
	OBJ_FREEZE(clone);
    return clone;
}
コード例 #3
0
ファイル: set.c プロジェクト: Sophrinix/iphone-macruby
static VALUE
rb_set_union(VALUE set, VALUE other)
{
    VALUE new_set = rb_set_dup(set);
    CFSetApplyFunction((CFMutableSetRef)other, rb_set_union_callback, (void *)new_set);

    return new_set;
}
コード例 #4
0
ファイル: set.c プロジェクト: alloy/mr-experimental
static VALUE
rb_set_clone(VALUE rcv, SEL sel)
{
    VALUE clone = rb_set_dup(rcv, 0);
    if (OBJ_FROZEN(rcv)) {
	OBJ_FREEZE(clone);
    }
    return clone;
}
コード例 #5
0
ファイル: set.c プロジェクト: alloy/mr-experimental
static VALUE
rb_set_subtract(VALUE set, SEL sel, VALUE other)
{
    VALUE new_set = rb_set_dup(set, 0);
    CFMutableSetRef sets[2] = { (CFMutableSetRef)other, (CFMutableSetRef)new_set };
    CFSetApplyFunction((CFMutableSetRef)set, rb_set_subtract_callback, sets);

    return new_set;
}
コード例 #6
0
ファイル: set.c プロジェクト: alloy/mr-experimental
static VALUE
rb_set_reject_bang(VALUE set, SEL sel)
{
    rb_set_modify_check(set);

    VALUE new_set = rb_set_dup(set, 0);
    VALUE acted = Qfalse;
    VALUE context[2] = { set, (VALUE)&acted };
    CFSetApplyFunction((CFMutableSetRef)new_set, rb_set_delete_if_callback, (void *)context);

    return acted == Qtrue ? set : Qnil ;
}
コード例 #7
0
ファイル: set.c プロジェクト: Sophrinix/iphone-macruby
static VALUE
rb_set_delete_if(VALUE set)
{
    rb_set_modify_check(set);

    VALUE new_set = rb_set_dup(set);
    VALUE acted = Qfalse;
    VALUE context[2] = { set, (VALUE)&acted };
    CFSetApplyFunction((CFMutableSetRef)new_set, rb_set_delete_if_callback, (void *)context);

    return set;
}