@@ -848,11 +848,16 @@ } - initWithUTF8StringNoCopy: (char *)UTF8String freeWhenDone: (bool)freeWhenDone { - return [self initWithUTF8String: UTF8String]; + @try { + return [self initWithUTF8String: UTF8String]; + } @finally { + if (freeWhenDone) + free(UTF8String); + } } - initWithCString: (const char *)cString encoding: (of_string_encoding_t)encoding { @@ -1479,11 +1484,11 @@ - (size_t)UTF8StringLength { return [self cStringLengthWithEncoding: OF_STRING_ENCODING_UTF_8]; } -- (of_unichar_t)characterAtIndex: (size_t)index +- (of_unichar_t)characterAtIndex: (size_t)idx { OF_UNRECOGNIZED_SELECTOR } - (void)getCharacters: (of_unichar_t *)buffer