[macruby-changes] [142] MacRuby/trunk/string.c
source_changes at macosforge.org
source_changes at macosforge.org
Wed Apr 16 12:20:43 PDT 2008
Revision: 142
http://trac.macosforge.org/projects/ruby/changeset/142
Author: lsansonetti at apple.com
Date: 2008-04-16 12:20:43 -0700 (Wed, 16 Apr 2008)
Log Message:
-----------
fixing String#reverse
Modified Paths:
--------------
MacRuby/trunk/string.c
Modified: MacRuby/trunk/string.c
===================================================================
--- MacRuby/trunk/string.c 2008-04-16 19:11:52 UTC (rev 141)
+++ MacRuby/trunk/string.c 2008-04-16 19:20:43 UTC (rev 142)
@@ -3954,15 +3954,12 @@
if (n <= 1)
return rb_str_dup(str);
- buffer = (UniChar *)CFStringGetCharactersPtr((CFStringRef)str);
- if (buffer == NULL) {
- buffer = (UniChar *)alloca(sizeof(UniChar) * n);
- CFStringGetCharacters((CFStringRef)buffer, CFRangeMake(0, n), buffer);
- }
+ buffer = (UniChar *)alloca(sizeof(UniChar) * n);
+ CFStringGetCharacters((CFStringRef)str, CFRangeMake(0, n), buffer);
for (i = 0; i < (n / 2); i++) {
UniChar c = buffer[i];
- buffer[i] = buffer[n - i];
- buffer[n - i] = c;
+ buffer[i] = buffer[n - i - 1];
+ buffer[n - i - 1] = c;
}
CFStringDelete((CFMutableStringRef)str, CFRangeMake(0, n));
CFStringAppendCharacters((CFMutableStringRef)str, (const UniChar *)buffer, n);
@@ -4003,7 +4000,7 @@
{
#if WITH_OBJC
VALUE obj = rb_str_dup(str);
- rb_str_reverse_bang(rb_str_dup(str));
+ rb_str_reverse_bang(obj);
return obj;
#else
rb_encoding *enc;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080416/5d889d6a/attachment.html
More information about the macruby-changes
mailing list