Revision
585
Author
lsansonetti@apple.com
Date
2008-09-08 17:20:07 -0700 (Mon, 08 Sep 2008)

Log Message

do not create direct instances of primitive CF types

Modified Paths

Diff

Modified: MacRuby/trunk/ext/syck/rubyext.c (584 => 585)


--- MacRuby/trunk/ext/syck/rubyext.c	2008-09-09 00:19:43 UTC (rev 584)
+++ MacRuby/trunk/ext/syck/rubyext.c	2008-09-09 00:20:07 UTC (rev 585)
@@ -1115,6 +1115,18 @@
          *         scheme);
          */
 
+#if WITH_OBJC
+	if (subclass == rb_cCFString) {
+	    subclass = rb_cNSMutableString;
+	}
+	else if (subclass == rb_cCFHash) {
+	    subclass = rb_cNSMutableHash;
+	}
+	else if (subclass == rb_cCFArray) {
+	    subclass = rb_cNSMutableArray;
+	}
+#endif
+
         if ( rb_respond_to( target_class, s_call ) )
         {
             obj = rb_funcall( target_class, s_call, 2, type, val );