Revision: 541 http://trac.macosforge.org/projects/ruby/changeset/541 Author: lsansonetti@apple.com Date: 2008-09-01 14:08:22 -0700 (Mon, 01 Sep 2008) Log Message: ----------- try to isolate a curious crasher Modified Paths: -------------- MacRuby/trunk/string.c Modified: MacRuby/trunk/string.c =================================================================== --- MacRuby/trunk/string.c 2008-09-01 01:45:46 UTC (rev 540) +++ MacRuby/trunk/string.c 2008-09-01 21:08:22 UTC (rev 541) @@ -2958,7 +2958,8 @@ if (n == 0) return; - for (i = 0, charset = NULL; i < charset_count; i++) { + charset = NULL; + for (i = 0; i < charset_count; i++) { VALUE s = charsets[i]; bool exclude; const char *sptr, *p; @@ -2976,8 +2977,9 @@ b = exclude ? sptr + 1 : sptr; e = sptr + strlen(sptr) - 1; subset = CFCharacterSetCreateMutable(NULL); - if (p == NULL) + if (p == NULL) { p = strchr(b, '-'); + } while (p != NULL) { if (p > b && *(p - 1) != '\\' && *(p + 1) != '\0') { CFCharacterSetAddCharactersInRange(subset, @@ -2990,6 +2992,7 @@ (CFIndex)p - (CFIndex)b, kCFStringEncodingUTF8, false); + assert(substr != NULL); CFCharacterSetAddCharactersInString(subset, substr); CFRelease(substr); } @@ -3008,12 +3011,14 @@ (CFIndex)e - (CFIndex)b + 1, kCFStringEncodingUTF8, false); + assert(substr != NULL); CFCharacterSetAddCharactersInString(subset, substr); CFRelease(substr); } - if (exclude) + if (exclude) { CFCharacterSetInvert(subset); + } if (charset == NULL) { charset = subset; @@ -3031,7 +3036,7 @@ else { CFCharacterSetRef subset; subset = CFCharacterSetCreateWithCharactersInString(NULL, - (CFStringRef)s); + (CFStringRef)s); CFCharacterSetIntersect(charset, subset); CFRelease(subset); }
participants (1)
-
source_changes@macosforge.org