[macruby-changes] [984] MacRuby/branches/experimental

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 18 12:35:35 PDT 2009


Revision: 984
          http://trac.macosforge.org/projects/ruby/changeset/984
Author:   lsansonetti at apple.com
Date:     2009-03-18 12:35:34 -0700 (Wed, 18 Mar 2009)
Log Message:
-----------
ported to rb_objc_define_method()

Modified Paths:
--------------
    MacRuby/branches/experimental/include/ruby/intern.h
    MacRuby/branches/experimental/marshal.c
    MacRuby/branches/experimental/struct.c

Modified: MacRuby/branches/experimental/include/ruby/intern.h
===================================================================
--- MacRuby/branches/experimental/include/ruby/intern.h	2009-03-18 19:34:39 UTC (rev 983)
+++ MacRuby/branches/experimental/include/ruby/intern.h	2009-03-18 19:35:34 UTC (rev 984)
@@ -485,7 +485,6 @@
 rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags);
 void rb_syswait(rb_pid_t pid);
 rb_pid_t rb_spawn(int, VALUE*);
-VALUE rb_proc_times(VALUE);
 VALUE rb_detach_process(rb_pid_t pid);
 /* range.c */
 VALUE rb_range_new(VALUE, VALUE, int);
@@ -592,7 +591,7 @@
 VALUE rb_struct_new(VALUE, ...);
 VALUE rb_struct_define(const char*, ...);
 VALUE rb_struct_alloc(VALUE, VALUE);
-VALUE rb_struct_initialize(VALUE, VALUE);
+VALUE rb_struct_initialize(VALUE, SEL, VALUE);
 VALUE rb_struct_aref(VALUE, VALUE);
 VALUE rb_struct_aset(VALUE, VALUE, VALUE);
 VALUE rb_struct_getmember(VALUE, ID);

Modified: MacRuby/branches/experimental/marshal.c
===================================================================
--- MacRuby/branches/experimental/marshal.c	2009-03-18 19:34:39 UTC (rev 983)
+++ MacRuby/branches/experimental/marshal.c	2009-03-18 19:35:34 UTC (rev 984)
@@ -1492,7 +1492,7 @@
 		}
                 rb_ary_push(values, r_object(arg));
 	    }
-            rb_struct_initialize(v, values);
+            rb_struct_initialize(v, 0, values);
             v = r_leave(v, arg);
 	}
 	break;

Modified: MacRuby/branches/experimental/struct.c
===================================================================
--- MacRuby/branches/experimental/struct.c	2009-03-18 19:34:39 UTC (rev 983)
+++ MacRuby/branches/experimental/struct.c	2009-03-18 19:35:34 UTC (rev 984)
@@ -92,7 +92,7 @@
  */
 
 static VALUE
-rb_struct_members_m(VALUE obj)
+rb_struct_members_m(VALUE obj, SEL sel)
 {
     return rb_struct_s_members_m(rb_obj_class(obj));
 }
@@ -326,7 +326,7 @@
 VALUE rb_mod_module_eval(VALUE mod, SEL sel, int argc, VALUE *argv);
 
 static VALUE
-rb_struct_s_def(int argc, VALUE *argv, VALUE klass)
+rb_struct_s_def(VALUE klass, SEL sel, int argc, VALUE *argv)
 {
     VALUE name, rest;
     long i;
@@ -354,7 +354,7 @@
  */
 
 VALUE
-rb_struct_initialize(VALUE self, VALUE values)
+rb_struct_initialize(VALUE self, SEL sel, VALUE values)
 {
     VALUE klass = rb_obj_class(self);
     VALUE size;
@@ -443,7 +443,7 @@
  */
 
 static VALUE
-rb_struct_each(VALUE s)
+rb_struct_each(VALUE s, SEL sel)
 {
     long i;
 
@@ -474,7 +474,7 @@
  */
 
 static VALUE
-rb_struct_each_pair(VALUE s)
+rb_struct_each_pair(VALUE s, SEL sel)
 {
     VALUE members;
     long i;
@@ -539,7 +539,7 @@
  */
 
 static VALUE
-rb_struct_inspect(VALUE s)
+rb_struct_inspect(VALUE s, SEL sel)
 {
     return rb_exec_recursive(inspect_struct, s, 0);
 }
@@ -557,14 +557,14 @@
  */
 
 static VALUE
-rb_struct_to_a(VALUE s)
+rb_struct_to_a(VALUE s, SEL sel)
 {
     return rb_ary_new4(RSTRUCT_LEN(s), RSTRUCT_PTR(s));
 }
 
 /* :nodoc: */
 static VALUE
-rb_struct_init_copy(VALUE copy, VALUE s)
+rb_struct_init_copy(VALUE copy, SEL sel, VALUE s)
 {
     if (copy == s) return copy;
     rb_check_frozen(copy);
@@ -615,8 +615,8 @@
  *     joe[0]        #=> "Joe Smith"
  */
 
-VALUE
-rb_struct_aref(VALUE s, VALUE idx)
+static VALUE
+rb_struct_aref_imp(VALUE s, SEL sel, VALUE idx)
 {
     long i;
 
@@ -635,6 +635,12 @@
     return RSTRUCT_PTR(s)[i];
 }
 
+VALUE
+rb_struct_aref(VALUE s, VALUE idx)
+{
+    return rb_struct_aref_imp(s, 0, idx);
+}
+
 static VALUE
 rb_struct_aset_id(VALUE s, ID id, VALUE val)
 {
@@ -678,8 +684,8 @@
  *     joe.zip    #=> "90210"
  */
 
-VALUE
-rb_struct_aset(VALUE s, VALUE idx, VALUE val)
+static VALUE
+rb_struct_aset_imp(VALUE s, SEL sel, VALUE idx, VALUE val)
 {
     long i;
 
@@ -701,6 +707,12 @@
     return RSTRUCT_PTR(s)[i] = val;
 }
 
+VALUE
+rb_struct_aset(VALUE s, VALUE idx, VALUE val)
+{
+    return rb_struct_aset_imp(s, 0, idx, val);
+}
+
 static VALUE
 struct_entry(VALUE s, long n)
 {
@@ -724,7 +736,7 @@
  */
 
 static VALUE
-rb_struct_values_at(int argc, VALUE *argv, VALUE s)
+rb_struct_values_at(VALUE s, SEL sel, int argc, VALUE *argv)
 {
     return rb_get_values_at(s, RSTRUCT_LEN(s), argc, argv, struct_entry);
 }
@@ -744,7 +756,7 @@
  */
 
 static VALUE
-rb_struct_select(int argc, VALUE *argv, VALUE s)
+rb_struct_select(VALUE s, SEL sel, int argc, VALUE *argv)
 {
     VALUE result;
     long i;
@@ -782,7 +794,7 @@
  */
 
 static VALUE
-rb_struct_equal(VALUE s, VALUE s2)
+rb_struct_equal(VALUE s, SEL sel, VALUE s2)
 {
     long i;
 
@@ -807,7 +819,7 @@
  */
 
 static VALUE
-rb_struct_hash(VALUE s)
+rb_struct_hash(VALUE s, SEL sel)
 {
     long i, h;
     VALUE n;
@@ -830,7 +842,7 @@
  */
 
 static VALUE
-rb_struct_eql(VALUE s, VALUE s2)
+rb_struct_eql(VALUE s, SEL sel, VALUE s2)
 {
     long i;
 
@@ -860,7 +872,7 @@
  */
 
 static VALUE
-rb_struct_size(VALUE s)
+rb_struct_size(VALUE s, SEL sel)
 {
     return LONG2FIX(RSTRUCT_LEN(s));
 }
@@ -887,28 +899,28 @@
     rb_include_module(rb_cStruct, rb_mEnumerable);
 
     rb_undef_alloc_func(rb_cStruct);
-    rb_define_singleton_method(rb_cStruct, "new", rb_struct_s_def, -1);
+    rb_objc_define_method(*(VALUE *)rb_cStruct, "new", rb_struct_s_def, -1);
 
-    rb_define_method(rb_cStruct, "initialize", rb_struct_initialize, -2);
-    rb_define_method(rb_cStruct, "initialize_copy", rb_struct_init_copy, 1);
+    rb_objc_define_method(rb_cStruct, "initialize", rb_struct_initialize, -2);
+    rb_objc_define_method(rb_cStruct, "initialize_copy", rb_struct_init_copy, 1);
 
-    rb_define_method(rb_cStruct, "==", rb_struct_equal, 1);
-    rb_define_method(rb_cStruct, "eql?", rb_struct_eql, 1);
-    rb_define_method(rb_cStruct, "hash", rb_struct_hash, 0);
+    rb_objc_define_method(rb_cStruct, "==", rb_struct_equal, 1);
+    rb_objc_define_method(rb_cStruct, "eql?", rb_struct_eql, 1);
+    rb_objc_define_method(rb_cStruct, "hash", rb_struct_hash, 0);
 
-    rb_define_method(rb_cStruct, "to_s", rb_struct_inspect, 0);
-    rb_define_method(rb_cStruct, "inspect", rb_struct_inspect, 0);
-    rb_define_method(rb_cStruct, "to_a", rb_struct_to_a, 0);
-    rb_define_method(rb_cStruct, "values", rb_struct_to_a, 0);
-    rb_define_method(rb_cStruct, "size", rb_struct_size, 0);
-    rb_define_method(rb_cStruct, "length", rb_struct_size, 0);
+    rb_objc_define_method(rb_cStruct, "to_s", rb_struct_inspect, 0);
+    rb_objc_define_method(rb_cStruct, "inspect", rb_struct_inspect, 0);
+    rb_objc_define_method(rb_cStruct, "to_a", rb_struct_to_a, 0);
+    rb_objc_define_method(rb_cStruct, "values", rb_struct_to_a, 0);
+    rb_objc_define_method(rb_cStruct, "size", rb_struct_size, 0);
+    rb_objc_define_method(rb_cStruct, "length", rb_struct_size, 0);
 
-    rb_define_method(rb_cStruct, "each", rb_struct_each, 0);
-    rb_define_method(rb_cStruct, "each_pair", rb_struct_each_pair, 0);
-    rb_define_method(rb_cStruct, "[]", rb_struct_aref, 1);
-    rb_define_method(rb_cStruct, "[]=", rb_struct_aset, 2);
-    rb_define_method(rb_cStruct, "select", rb_struct_select, -1);
-    rb_define_method(rb_cStruct, "values_at", rb_struct_values_at, -1);
+    rb_objc_define_method(rb_cStruct, "each", rb_struct_each, 0);
+    rb_objc_define_method(rb_cStruct, "each_pair", rb_struct_each_pair, 0);
+    rb_objc_define_method(rb_cStruct, "[]", rb_struct_aref, 1);
+    rb_objc_define_method(rb_cStruct, "[]=", rb_struct_aset, 2);
+    rb_objc_define_method(rb_cStruct, "select", rb_struct_select, -1);
+    rb_objc_define_method(rb_cStruct, "values_at", rb_struct_values_at, -1);
 
-    rb_define_method(rb_cStruct, "members", rb_struct_members_m, 0);
+    rb_objc_define_method(rb_cStruct, "members", rb_struct_members_m, 0);
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090318/0686e286/attachment-0001.html>


More information about the macruby-changes mailing list