Revision: 3175 http://trac.macosforge.org/projects/ruby/changeset/3175 Author: lsansonetti@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");
participants (1)
-
source_changes@macosforge.org