@@ -334,18 +334,17 @@ } return self; } -- initWithUTF8StringNoCopy: (const char*)UTF8String - freeWhenDone: (BOOL)freeWhenDone_ +- initWithUTF8StringNoCopy: (char*)UTF8String + freeWhenDone: (BOOL)freeWhenDone { self = [super init]; @try { size_t UTF8StringLength = strlen(UTF8String); - char *freeWhenDone = (char*)UTF8String; if (UTF8StringLength >= 3 && !memcmp(UTF8String, "\xEF\xBB\xBF", 3)) { UTF8String += 3; UTF8StringLength -= 3; @@ -354,12 +353,12 @@ s = &s_store; s->cString = (char*)UTF8String; s->cStringLength = UTF8StringLength; - if (freeWhenDone_) - s->freeWhenDone = freeWhenDone; + if (freeWhenDone) + s->freeWhenDone = UTF8String; switch (of_string_utf8_check(UTF8String, UTF8StringLength, &s->length)) { case 1: s->isUTF8 = YES;