[macruby-changes] [186] MacRuby/trunk/string.c

source_changes at macosforge.org source_changes at macosforge.org
Sat May 3 21:56:49 PDT 2008


Revision: 186
          http://trac.macosforge.org/projects/ruby/changeset/186
Author:   lsansonetti at apple.com
Date:     2008-05-03 21:56:49 -0700 (Sat, 03 May 2008)

Log Message:
-----------
make sure bytestrings are created

Modified Paths:
--------------
    MacRuby/trunk/string.c

Modified: MacRuby/trunk/string.c
===================================================================
--- MacRuby/trunk/string.c	2008-05-03 01:15:13 UTC (rev 185)
+++ MacRuby/trunk/string.c	2008-05-04 04:56:49 UTC (rev 186)
@@ -583,39 +583,29 @@
 static void
 rb_objc_str_set_bytestring(VALUE str, const char *dataptr, long datalen)
 {
-    struct rb_objc_str_struct *s;
-
     assert(dataptr != NULL);
     assert(datalen > 0);
 
-#if 1
-    CFStringRef substr = CFStringCreateWithBytes/*NoCopy*/(
+    CFStringRef substr = CFStringCreateWithBytes(
 	NULL, 
 	(const UInt8 *)dataptr,
 	datalen, 
 	kCFStringEncodingUTF8,
-	false/*,
-	kCFAllocatorNull*/);
-    CFStringReplaceAll((CFMutableStringRef)str, substr);
-    CFRelease(substr);
-#else
-    s = rb_objc_str_get_struct2(str);
-    if (s->cfdata == NULL) {
+	false);
+    if (substr != NULL) {
+	CFStringReplaceAll((CFMutableStringRef)str, substr);
+	CFRelease(substr);
+    }
+    else {
+	struct rb_objc_str_struct *s;
 	CFMutableDataRef data;
+
+	s = rb_objc_str_get_struct2(str);
 	data = CFDataCreateMutable(NULL, 0);
-	rb_warning("string %p becomes a bytestring (len %ld clen %ld)", 
-		str, datalen, strlen(dataptr));
 	CFDataAppendBytes(data, (const UInt8 *)dataptr, datalen);
 	GC_WB(&s->cfdata, (void *)data);
 	CFMakeCollectable(data);
     }
-    else {
-	CFDataReplaceBytes((CFMutableDataRef)s->cfdata, 
-	    CFRangeMake(0, CFDataGetLength((CFDataRef)s->cfdata)),
-	    (const UInt8 *)dataptr, datalen);
-    }
-    rb_str_bytesync(str);
-#endif
 }
 #endif
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080503/c8935275/attachment.html


More information about the macruby-changes mailing list