@@ -133,15 +133,11 @@ s->length = newLength; } - (void)setToCString: (const char*)string { - size_t length; - - [self freeMemory: s->string]; - - length = strlen(string); + size_t length = strlen(string); if (length >= 3 && !memcmp(string, "\xEF\xBB\xBF", 3)) { string += 3; length -= 3; } @@ -152,16 +148,14 @@ break; case 1: s->isUTF8 = YES; break; case -1: - s->string = NULL; - s->length = 0; - s->isUTF8 = NO; - @throw [OFInvalidEncodingException newWithClass: isa]; } + + [self freeMemory: s->string]; s->length = length; s->string = [self allocMemoryWithSize: length + 1]; memcpy(s->string, string, length + 1); }