[macruby-changes] [3175] MacRuby/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Dec 28 15:25:17 PST 2009


Revision: 3175
          http://trac.macosforge.org/projects/ruby/changeset/3175
Author:   lsansonetti at apple.com
Date:     2009-12-28 15:25:16 -0800 (Mon, 28 Dec 2009)
Log Message:
-----------
fix a bug when retrieving the hidden NSCF classes on the bleeding edge

Modified Paths:
--------------
    MacRuby/trunk/array.c
    MacRuby/trunk/hash.c
    MacRuby/trunk/numeric.c
    MacRuby/trunk/string.c

Modified: MacRuby/trunk/array.c
===================================================================
--- MacRuby/trunk/array.c	2009-12-25 02:13:36 UTC (rev 3174)
+++ MacRuby/trunk/array.c	2009-12-28 23:25:16 UTC (rev 3175)
@@ -4257,10 +4257,17 @@
  * element in the array, and so on. 
  */
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED <= 1060
+# define NSCFARRAY_CNAME "NSCFArray"
+#else
+# define NSCFARRAY_CNAME "__NSCFArray"
+#endif
+
 void
 Init_Array(void)
 {
-    rb_cCFArray = (VALUE)objc_getClass("NSCFArray");
+    rb_cCFArray = (VALUE)objc_getClass(NSCFARRAY_CNAME);
+    assert(rb_cCFArray != 0);
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
     rb_cNSArray0 = (VALUE)objc_getClass("__NSArray0");
 #endif

Modified: MacRuby/trunk/hash.c
===================================================================
--- MacRuby/trunk/hash.c	2009-12-25 02:13:36 UTC (rev 3174)
+++ MacRuby/trunk/hash.c	2009-12-28 23:25:16 UTC (rev 3175)
@@ -2534,6 +2534,12 @@
  *
  */
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED <= 1060
+# define NSCFDICTIONARY_CNAME "NSCFDictionary"
+#else
+# define NSCFDICTIONARY_CNAME "__NSCFDictionary"
+#endif
+
 void
 Init_Hash(void)
 {
@@ -2543,7 +2549,8 @@
     id_hash = rb_intern("hash");
     id_yield = rb_intern("yield");
 
-    rb_cCFHash = (VALUE)objc_getClass("NSCFDictionary");
+    rb_cCFHash = (VALUE)objc_getClass(NSCFDICTIONARY_CNAME);
+    assert(rb_cCFHash != 0);
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
     rb_cNSHash0 = (VALUE)objc_getClass("__NSDictionary0");
 #endif

Modified: MacRuby/trunk/numeric.c
===================================================================
--- MacRuby/trunk/numeric.c	2009-12-25 02:13:36 UTC (rev 3174)
+++ MacRuby/trunk/numeric.c	2009-12-28 23:25:16 UTC (rev 3175)
@@ -3381,6 +3381,12 @@
 	    (IMP)imp_nsnumber_to_int, "@@:");
 }
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED <= 1060
+# define NSCFNUMBER_CNAME "NSCFNumber"
+#else
+# define NSCFNUMBER_CNAME "__NSCFNumber"
+#endif
+
 void
 Init_Numeric(void)
 {
@@ -3395,7 +3401,8 @@
     rb_eZeroDivError = rb_define_class("ZeroDivisionError", rb_eStandardError);
     rb_eFloatDomainError = rb_define_class("FloatDomainError", rb_eRangeError);
     rb_cNSNumber = (VALUE)objc_getClass("NSNumber");
-    rb_cCFNumber = (VALUE)objc_getClass("NSCFNumber");
+    rb_cCFNumber = (VALUE)objc_getClass(NSCFNUMBER_CNAME);
+    assert(rb_cCFNumber != 0);
     rb_cNumeric = rb_define_class("Numeric", rb_cNSNumber);
     RCLASS_SET_VERSION_FLAG(rb_cNumeric, RCLASS_IS_OBJECT_SUBCLASS);
     rb_define_object_special_methods(rb_cNumeric);

Modified: MacRuby/trunk/string.c
===================================================================
--- MacRuby/trunk/string.c	2009-12-25 02:13:36 UTC (rev 3174)
+++ MacRuby/trunk/string.c	2009-12-28 23:25:16 UTC (rev 3175)
@@ -5613,10 +5613,17 @@
  *     
  */
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED <= 1060
+# define NSCFSTRING_CNAME "NSCFString"
+#else
+# define NSCFSTRING_CNAME "__NSCFString"
+#endif
+
 void
 Init_String(void)
 {
-    rb_cCFString = (VALUE)objc_getClass("NSCFString");
+    rb_cCFString = (VALUE)objc_getClass(NSCFSTRING_CNAME);
+    assert(rb_cCFString != 0);
     rb_const_set(rb_cObject, rb_intern("NSCFString"), rb_cCFString);
     rb_cString = rb_cNSString = (VALUE)objc_getClass("NSString");
     rb_cNSMutableString = (VALUE)objc_getClass("NSMutableString");
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091228/4a79154b/attachment.html>


More information about the macruby-changes mailing list