[macruby-changes] [986] MacRuby/branches/experimental/struct.c
source_changes at macosforge.org
source_changes at macosforge.org
Wed Mar 18 12:54:37 PDT 2009
Revision: 986
http://trac.macosforge.org/projects/ruby/changeset/986
Author: lsansonetti at apple.com
Date: 2009-03-18 12:54:37 -0700 (Wed, 18 Mar 2009)
Log Message:
-----------
more porting to rb_objc_define_method()
Modified Paths:
--------------
MacRuby/branches/experimental/struct.c
Modified: MacRuby/branches/experimental/struct.c
===================================================================
--- MacRuby/branches/experimental/struct.c 2009-03-18 19:36:13 UTC (rev 985)
+++ MacRuby/branches/experimental/struct.c 2009-03-18 19:54:37 UTC (rev 986)
@@ -115,25 +115,25 @@
}
static VALUE
-rb_struct_ref(VALUE obj)
+rb_struct_ref(VALUE obj, SEL sel)
{
return rb_struct_getmember(obj, rb_frame_this_func());
}
-static VALUE rb_struct_ref0(VALUE obj) {return RSTRUCT_PTR(obj)[0];}
-static VALUE rb_struct_ref1(VALUE obj) {return RSTRUCT_PTR(obj)[1];}
-static VALUE rb_struct_ref2(VALUE obj) {return RSTRUCT_PTR(obj)[2];}
-static VALUE rb_struct_ref3(VALUE obj) {return RSTRUCT_PTR(obj)[3];}
-static VALUE rb_struct_ref4(VALUE obj) {return RSTRUCT_PTR(obj)[4];}
-static VALUE rb_struct_ref5(VALUE obj) {return RSTRUCT_PTR(obj)[5];}
-static VALUE rb_struct_ref6(VALUE obj) {return RSTRUCT_PTR(obj)[6];}
-static VALUE rb_struct_ref7(VALUE obj) {return RSTRUCT_PTR(obj)[7];}
-static VALUE rb_struct_ref8(VALUE obj) {return RSTRUCT_PTR(obj)[8];}
-static VALUE rb_struct_ref9(VALUE obj) {return RSTRUCT_PTR(obj)[9];}
+static VALUE rb_struct_ref0(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[0];}
+static VALUE rb_struct_ref1(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[1];}
+static VALUE rb_struct_ref2(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[2];}
+static VALUE rb_struct_ref3(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[3];}
+static VALUE rb_struct_ref4(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[4];}
+static VALUE rb_struct_ref5(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[5];}
+static VALUE rb_struct_ref6(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[6];}
+static VALUE rb_struct_ref7(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[7];}
+static VALUE rb_struct_ref8(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[8];}
+static VALUE rb_struct_ref9(VALUE obj, SEL sel) {return RSTRUCT_PTR(obj)[9];}
#define N_REF_FUNC (sizeof(ref_func) / sizeof(ref_func[0]))
-static VALUE (*const ref_func[])(VALUE) = {
+static VALUE (*const ref_func[])(VALUE,SEL) = {
rb_struct_ref0,
rb_struct_ref1,
rb_struct_ref2,
@@ -155,7 +155,7 @@
}
static VALUE
-rb_struct_set(VALUE obj, VALUE val)
+rb_struct_set(VALUE obj, SEL sel, VALUE val)
{
VALUE members, slot;
long i;
@@ -204,20 +204,20 @@
rb_iv_set(nstr, "__size__", LONG2NUM(RARRAY_LEN(members)));
rb_iv_set(nstr, "__members__", members);
- rb_define_alloc_func(nstr, struct_alloc);
- rb_define_singleton_method(nstr, "new", rb_class_new_instance, -1);
- rb_define_singleton_method(nstr, "[]", rb_class_new_instance, -1);
- rb_define_singleton_method(nstr, "members", rb_struct_s_members_m, 0);
+ rb_objc_define_method(*(VALUE *)nstr, "alloc", struct_alloc, 0);
+ rb_objc_define_method(*(VALUE *)nstr, "new", rb_class_new_instance, -1);
+ rb_objc_define_method(*(VALUE *)nstr, "[]", rb_class_new_instance, -1);
+ rb_objc_define_method(*(VALUE *)nstr, "members", rb_struct_s_members_m, 0);
for (i=0; i< RARRAY_LEN(members); i++) {
ID id = SYM2ID(RARRAY_AT(members, i));
if (rb_is_local_id(id) || rb_is_const_id(id)) {
if (i < N_REF_FUNC) {
- rb_define_method_id(nstr, id, ref_func[i], 0);
+ rb_objc_define_method(nstr, rb_id2name(id), ref_func[i], 0);
}
else {
- rb_define_method_id(nstr, id, rb_struct_ref, 0);
+ rb_objc_define_method(nstr, rb_id2name(id), rb_struct_ref, 0);
}
- rb_define_method_id(nstr, rb_id_attrset(id), rb_struct_set, 1);
+ rb_objc_define_method(nstr, rb_id2name(rb_id_attrset(id)), rb_struct_set, 1);
}
}
@@ -260,10 +260,9 @@
rb_iv_set(klass, "__size__", LONG2NUM(RARRAY_LEN(members)));
rb_iv_set(klass, "__members__", members);
- if (alloc)
- rb_define_alloc_func(klass, alloc);
- else
- rb_define_alloc_func(klass, struct_alloc);
+ rb_objc_define_method(*(VALUE *)klass, "alloc",
+ alloc != NULL ? alloc : struct_alloc,
+ 0);
return klass;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090318/5cb7e33e/attachment-0001.html>
More information about the macruby-changes
mailing list