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

source_changes at macosforge.org source_changes at macosforge.org
Wed Apr 22 17:55:53 PDT 2009


Revision: 1473
          http://trac.macosforge.org/projects/ruby/changeset/1473
Author:   lsansonetti at apple.com
Date:     2009-04-22 17:55:53 -0700 (Wed, 22 Apr 2009)
Log Message:
-----------
statically generate the struct reader methods, 128 seems necessary at least for OpenGL

Modified Paths:
--------------
    MacRuby/branches/experimental/roxor.cpp

Added Paths:
-----------
    MacRuby/branches/experimental/bs_struct_readers.c
    MacRuby/branches/experimental/gen_bs_struct_readers.rb

Added: MacRuby/branches/experimental/bs_struct_readers.c
===================================================================
--- MacRuby/branches/experimental/bs_struct_readers.c	                        (rev 0)
+++ MacRuby/branches/experimental/bs_struct_readers.c	2009-04-23 00:55:53 UTC (rev 1473)
@@ -0,0 +1,644 @@
+// This file was generated by gen_bs_struct_readers.rb, do not modify it manually.
+static VALUE rb_vm_struct_reader_0 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[0];
+}
+static VALUE rb_vm_struct_reader_1 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[1];
+}
+static VALUE rb_vm_struct_reader_2 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[2];
+}
+static VALUE rb_vm_struct_reader_3 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[3];
+}
+static VALUE rb_vm_struct_reader_4 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[4];
+}
+static VALUE rb_vm_struct_reader_5 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[5];
+}
+static VALUE rb_vm_struct_reader_6 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[6];
+}
+static VALUE rb_vm_struct_reader_7 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[7];
+}
+static VALUE rb_vm_struct_reader_8 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[8];
+}
+static VALUE rb_vm_struct_reader_9 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[9];
+}
+static VALUE rb_vm_struct_reader_10 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[10];
+}
+static VALUE rb_vm_struct_reader_11 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[11];
+}
+static VALUE rb_vm_struct_reader_12 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[12];
+}
+static VALUE rb_vm_struct_reader_13 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[13];
+}
+static VALUE rb_vm_struct_reader_14 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[14];
+}
+static VALUE rb_vm_struct_reader_15 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[15];
+}
+static VALUE rb_vm_struct_reader_16 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[16];
+}
+static VALUE rb_vm_struct_reader_17 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[17];
+}
+static VALUE rb_vm_struct_reader_18 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[18];
+}
+static VALUE rb_vm_struct_reader_19 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[19];
+}
+static VALUE rb_vm_struct_reader_20 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[20];
+}
+static VALUE rb_vm_struct_reader_21 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[21];
+}
+static VALUE rb_vm_struct_reader_22 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[22];
+}
+static VALUE rb_vm_struct_reader_23 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[23];
+}
+static VALUE rb_vm_struct_reader_24 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[24];
+}
+static VALUE rb_vm_struct_reader_25 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[25];
+}
+static VALUE rb_vm_struct_reader_26 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[26];
+}
+static VALUE rb_vm_struct_reader_27 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[27];
+}
+static VALUE rb_vm_struct_reader_28 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[28];
+}
+static VALUE rb_vm_struct_reader_29 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[29];
+}
+static VALUE rb_vm_struct_reader_30 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[30];
+}
+static VALUE rb_vm_struct_reader_31 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[31];
+}
+static VALUE rb_vm_struct_reader_32 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[32];
+}
+static VALUE rb_vm_struct_reader_33 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[33];
+}
+static VALUE rb_vm_struct_reader_34 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[34];
+}
+static VALUE rb_vm_struct_reader_35 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[35];
+}
+static VALUE rb_vm_struct_reader_36 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[36];
+}
+static VALUE rb_vm_struct_reader_37 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[37];
+}
+static VALUE rb_vm_struct_reader_38 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[38];
+}
+static VALUE rb_vm_struct_reader_39 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[39];
+}
+static VALUE rb_vm_struct_reader_40 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[40];
+}
+static VALUE rb_vm_struct_reader_41 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[41];
+}
+static VALUE rb_vm_struct_reader_42 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[42];
+}
+static VALUE rb_vm_struct_reader_43 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[43];
+}
+static VALUE rb_vm_struct_reader_44 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[44];
+}
+static VALUE rb_vm_struct_reader_45 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[45];
+}
+static VALUE rb_vm_struct_reader_46 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[46];
+}
+static VALUE rb_vm_struct_reader_47 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[47];
+}
+static VALUE rb_vm_struct_reader_48 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[48];
+}
+static VALUE rb_vm_struct_reader_49 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[49];
+}
+static VALUE rb_vm_struct_reader_50 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[50];
+}
+static VALUE rb_vm_struct_reader_51 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[51];
+}
+static VALUE rb_vm_struct_reader_52 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[52];
+}
+static VALUE rb_vm_struct_reader_53 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[53];
+}
+static VALUE rb_vm_struct_reader_54 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[54];
+}
+static VALUE rb_vm_struct_reader_55 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[55];
+}
+static VALUE rb_vm_struct_reader_56 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[56];
+}
+static VALUE rb_vm_struct_reader_57 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[57];
+}
+static VALUE rb_vm_struct_reader_58 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[58];
+}
+static VALUE rb_vm_struct_reader_59 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[59];
+}
+static VALUE rb_vm_struct_reader_60 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[60];
+}
+static VALUE rb_vm_struct_reader_61 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[61];
+}
+static VALUE rb_vm_struct_reader_62 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[62];
+}
+static VALUE rb_vm_struct_reader_63 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[63];
+}
+static VALUE rb_vm_struct_reader_64 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[64];
+}
+static VALUE rb_vm_struct_reader_65 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[65];
+}
+static VALUE rb_vm_struct_reader_66 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[66];
+}
+static VALUE rb_vm_struct_reader_67 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[67];
+}
+static VALUE rb_vm_struct_reader_68 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[68];
+}
+static VALUE rb_vm_struct_reader_69 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[69];
+}
+static VALUE rb_vm_struct_reader_70 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[70];
+}
+static VALUE rb_vm_struct_reader_71 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[71];
+}
+static VALUE rb_vm_struct_reader_72 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[72];
+}
+static VALUE rb_vm_struct_reader_73 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[73];
+}
+static VALUE rb_vm_struct_reader_74 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[74];
+}
+static VALUE rb_vm_struct_reader_75 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[75];
+}
+static VALUE rb_vm_struct_reader_76 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[76];
+}
+static VALUE rb_vm_struct_reader_77 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[77];
+}
+static VALUE rb_vm_struct_reader_78 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[78];
+}
+static VALUE rb_vm_struct_reader_79 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[79];
+}
+static VALUE rb_vm_struct_reader_80 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[80];
+}
+static VALUE rb_vm_struct_reader_81 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[81];
+}
+static VALUE rb_vm_struct_reader_82 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[82];
+}
+static VALUE rb_vm_struct_reader_83 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[83];
+}
+static VALUE rb_vm_struct_reader_84 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[84];
+}
+static VALUE rb_vm_struct_reader_85 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[85];
+}
+static VALUE rb_vm_struct_reader_86 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[86];
+}
+static VALUE rb_vm_struct_reader_87 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[87];
+}
+static VALUE rb_vm_struct_reader_88 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[88];
+}
+static VALUE rb_vm_struct_reader_89 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[89];
+}
+static VALUE rb_vm_struct_reader_90 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[90];
+}
+static VALUE rb_vm_struct_reader_91 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[91];
+}
+static VALUE rb_vm_struct_reader_92 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[92];
+}
+static VALUE rb_vm_struct_reader_93 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[93];
+}
+static VALUE rb_vm_struct_reader_94 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[94];
+}
+static VALUE rb_vm_struct_reader_95 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[95];
+}
+static VALUE rb_vm_struct_reader_96 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[96];
+}
+static VALUE rb_vm_struct_reader_97 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[97];
+}
+static VALUE rb_vm_struct_reader_98 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[98];
+}
+static VALUE rb_vm_struct_reader_99 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[99];
+}
+static VALUE rb_vm_struct_reader_100 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[100];
+}
+static VALUE rb_vm_struct_reader_101 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[101];
+}
+static VALUE rb_vm_struct_reader_102 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[102];
+}
+static VALUE rb_vm_struct_reader_103 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[103];
+}
+static VALUE rb_vm_struct_reader_104 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[104];
+}
+static VALUE rb_vm_struct_reader_105 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[105];
+}
+static VALUE rb_vm_struct_reader_106 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[106];
+}
+static VALUE rb_vm_struct_reader_107 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[107];
+}
+static VALUE rb_vm_struct_reader_108 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[108];
+}
+static VALUE rb_vm_struct_reader_109 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[109];
+}
+static VALUE rb_vm_struct_reader_110 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[110];
+}
+static VALUE rb_vm_struct_reader_111 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[111];
+}
+static VALUE rb_vm_struct_reader_112 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[112];
+}
+static VALUE rb_vm_struct_reader_113 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[113];
+}
+static VALUE rb_vm_struct_reader_114 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[114];
+}
+static VALUE rb_vm_struct_reader_115 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[115];
+}
+static VALUE rb_vm_struct_reader_116 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[116];
+}
+static VALUE rb_vm_struct_reader_117 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[117];
+}
+static VALUE rb_vm_struct_reader_118 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[118];
+}
+static VALUE rb_vm_struct_reader_119 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[119];
+}
+static VALUE rb_vm_struct_reader_120 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[120];
+}
+static VALUE rb_vm_struct_reader_121 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[121];
+}
+static VALUE rb_vm_struct_reader_122 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[122];
+}
+static VALUE rb_vm_struct_reader_123 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[123];
+}
+static VALUE rb_vm_struct_reader_124 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[124];
+}
+static VALUE rb_vm_struct_reader_125 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[125];
+}
+static VALUE rb_vm_struct_reader_126 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[126];
+}
+static VALUE rb_vm_struct_reader_127 (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[127];
+}
+#define BS_STRUCT_MAX_FIELDS 128
+typedef VALUE rb_vm_struct_reader_t(VALUE, SEL);
+static rb_vm_struct_reader_t *struct_readers[] = { rb_vm_struct_reader_0, rb_vm_struct_reader_1, rb_vm_struct_reader_2, rb_vm_struct_reader_3, rb_vm_struct_reader_4, rb_vm_struct_reader_5, rb_vm_struct_reader_6, rb_vm_struct_reader_7, rb_vm_struct_reader_8, rb_vm_struct_reader_9, rb_vm_struct_reader_10, rb_vm_struct_reader_11, rb_vm_struct_reader_12, rb_vm_struct_reader_13, rb_vm_struct_reader_14, rb_vm_struct_reader_15, rb_vm_struct_reader_16, rb_vm_struct_reader_17, rb_vm_struct_reader_18, rb_vm_struct_reader_19, rb_vm_struct_reader_20, rb_vm_struct_reader_21, rb_vm_struct_reader_22, rb_vm_struct_reader_23, rb_vm_struct_reader_24, rb_vm_struct_reader_25, rb_vm_struct_reader_26, rb_vm_struct_reader_27, rb_vm_struct_reader_28, rb_vm_struct_reader_29, rb_vm_struct_reader_30, rb_vm_struct_reader_31, rb_vm_struct_reader_32, rb_vm_struct_reader_33, rb_vm_struct_reader_34, rb_vm_struct_reader_35, rb_vm_struct_reader_36, rb_vm_struct_reader_37, rb_vm_struct_reader_38, rb_vm_struct
 _reader_39, rb_vm_struct_reader_40, rb_vm_struct_reader_41, rb_vm_struct_reader_42, rb_vm_struct_reader_43, rb_vm_struct_reader_44, rb_vm_struct_reader_45, rb_vm_struct_reader_46, rb_vm_struct_reader_47, rb_vm_struct_reader_48, rb_vm_struct_reader_49, rb_vm_struct_reader_50, rb_vm_struct_reader_51, rb_vm_struct_reader_52, rb_vm_struct_reader_53, rb_vm_struct_reader_54, rb_vm_struct_reader_55, rb_vm_struct_reader_56, rb_vm_struct_reader_57, rb_vm_struct_reader_58, rb_vm_struct_reader_59, rb_vm_struct_reader_60, rb_vm_struct_reader_61, rb_vm_struct_reader_62, rb_vm_struct_reader_63, rb_vm_struct_reader_64, rb_vm_struct_reader_65, rb_vm_struct_reader_66, rb_vm_struct_reader_67, rb_vm_struct_reader_68, rb_vm_struct_reader_69, rb_vm_struct_reader_70, rb_vm_struct_reader_71, rb_vm_struct_reader_72, rb_vm_struct_reader_73, rb_vm_struct_reader_74, rb_vm_struct_reader_75, rb_vm_struct_reader_76, rb_vm_struct_reader_77, rb_vm_struct_reader_78, rb_vm_struct_reader_79, rb_vm_struct_read
 er_80, rb_vm_struct_reader_81, rb_vm_struct_reader_82, rb_vm_struct_reader_83, rb_vm_struct_reader_84, rb_vm_struct_reader_85, rb_vm_struct_reader_86, rb_vm_struct_reader_87, rb_vm_struct_reader_88, rb_vm_struct_reader_89, rb_vm_struct_reader_90, rb_vm_struct_reader_91, rb_vm_struct_reader_92, rb_vm_struct_reader_93, rb_vm_struct_reader_94, rb_vm_struct_reader_95, rb_vm_struct_reader_96, rb_vm_struct_reader_97, rb_vm_struct_reader_98, rb_vm_struct_reader_99, rb_vm_struct_reader_100, rb_vm_struct_reader_101, rb_vm_struct_reader_102, rb_vm_struct_reader_103, rb_vm_struct_reader_104, rb_vm_struct_reader_105, rb_vm_struct_reader_106, rb_vm_struct_reader_107, rb_vm_struct_reader_108, rb_vm_struct_reader_109, rb_vm_struct_reader_110, rb_vm_struct_reader_111, rb_vm_struct_reader_112, rb_vm_struct_reader_113, rb_vm_struct_reader_114, rb_vm_struct_reader_115, rb_vm_struct_reader_116, rb_vm_struct_reader_117, rb_vm_struct_reader_118, rb_vm_struct_reader_119, rb_vm_struct_reader_120, r
 b_vm_struct_reader_121, rb_vm_struct_reader_122, rb_vm_struct_reader_123, rb_vm_struct_reader_124, rb_vm_struct_reader_125, rb_vm_struct_reader_126, rb_vm_struct_reader_127 };

Added: MacRuby/branches/experimental/gen_bs_struct_readers.rb
===================================================================
--- MacRuby/branches/experimental/gen_bs_struct_readers.rb	                        (rev 0)
+++ MacRuby/branches/experimental/gen_bs_struct_readers.rb	2009-04-23 00:55:53 UTC (rev 1473)
@@ -0,0 +1,19 @@
+MAX_READERS = 128
+
+puts "// This file was generated by #{__FILE__}, do not modify it manually."
+
+MAX_READERS.times do |i|
+    puts <<EOS
+static VALUE rb_vm_struct_reader_#{i} (VALUE self, SEL sel) {
+    VALUE *data;
+    Data_Get_Struct(self, VALUE, data);
+    return data[#{i}];
+}
+EOS
+end
+
+puts <<EOS
+#define BS_STRUCT_MAX_FIELDS #{MAX_READERS}
+typedef VALUE rb_vm_struct_reader_t(VALUE, SEL);
+static rb_vm_struct_reader_t *struct_readers[] = { #{(0..(MAX_READERS-1)).to_a.map { |x| 'rb_vm_struct_reader_' + x.to_s }.join(', ') } };
+EOS

Modified: MacRuby/branches/experimental/roxor.cpp
===================================================================
--- MacRuby/branches/experimental/roxor.cpp	2009-04-22 23:56:51 UTC (rev 1472)
+++ MacRuby/branches/experimental/roxor.cpp	2009-04-23 00:55:53 UTC (rev 1473)
@@ -8298,33 +8298,9 @@
     return v;
 }
 
-#define GEN_STRUCT_READER(idx) \
-    static VALUE rb_vm_struct_reader_##idx (VALUE self, SEL sel) { \
-	VALUE *data; \
-	Data_Get_Struct(self, VALUE, data); \
-	return data[idx]; \
-    } \
+// Readers are statically generated.
+#include "bs_struct_readers.c"
 
-GEN_STRUCT_READER(0);  GEN_STRUCT_READER(1);  GEN_STRUCT_READER(2);
-GEN_STRUCT_READER(3);  GEN_STRUCT_READER(4);  GEN_STRUCT_READER(5);
-GEN_STRUCT_READER(6);  GEN_STRUCT_READER(7);  GEN_STRUCT_READER(8);
-GEN_STRUCT_READER(9);  GEN_STRUCT_READER(10); GEN_STRUCT_READER(11);
-GEN_STRUCT_READER(12); GEN_STRUCT_READER(13); GEN_STRUCT_READER(14);
-GEN_STRUCT_READER(15); GEN_STRUCT_READER(16); GEN_STRUCT_READER(17);
-GEN_STRUCT_READER(18); GEN_STRUCT_READER(19);
-
-#define BS_STRUCT_MAX_FIELDS 20
-typedef VALUE rb_vm_struct_reader_t(VALUE, SEL);
-static rb_vm_struct_reader_t *struct_readers[] = {
-    rb_vm_struct_reader_0,  rb_vm_struct_reader_1,  rb_vm_struct_reader_2,
-    rb_vm_struct_reader_3,  rb_vm_struct_reader_4,  rb_vm_struct_reader_5,
-    rb_vm_struct_reader_6,  rb_vm_struct_reader_7,  rb_vm_struct_reader_8,
-    rb_vm_struct_reader_9,  rb_vm_struct_reader_10, rb_vm_struct_reader_11,
-    rb_vm_struct_reader_12, rb_vm_struct_reader_13, rb_vm_struct_reader_14,
-    rb_vm_struct_reader_15, rb_vm_struct_reader_16, rb_vm_struct_reader_17,
-    rb_vm_struct_reader_18, rb_vm_struct_reader_19
-};
-
 static bool
 register_bs_boxed(bs_element_type_t type, void *value)
 {
@@ -8347,7 +8323,7 @@
 	    rb_cBoxed);
 
     if (type == BS_ELEMENT_STRUCT) {
-	assert(boxed->as.s->fields_count < BS_STRUCT_MAX_FIELDS);
+	assert(boxed->as.s->fields_count <= BS_STRUCT_MAX_FIELDS);
 	for (unsigned i = 0; i < boxed->as.s->fields_count; i++) {
 	    rb_objc_define_method(boxed->klass, boxed->as.s->fields[i].name,
 		    (void *)struct_readers[i], 0);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090422/fda4b378/attachment-0001.html>


More information about the macruby-changes mailing list