@@ -152,11 +152,11 @@ while (*pointer < stop) { /* Parse escape codes */ if (**pointer == '\\') { if (++(*pointer) >= stop) { - of_free(buffer); + free(buffer); return nil; } switch (**pointer) { case '"': @@ -191,26 +191,26 @@ of_unichar_t c; size_t l; c1 = parseUnicodeEscape(*pointer - 1, stop); if (c1 == 0xFFFF) { - of_free(buffer); + free(buffer); return nil; } /* Low surrogate */ if ((c1 & 0xFC00) == 0xDC00) { - of_free(buffer); + free(buffer); return nil; } /* Normal character */ if ((c1 & 0xFC00) != 0xD800) { l = of_string_utf8_encode(c1, buffer + i); if (l == 0) { - of_free(buffer); + free(buffer); return nil; } i += l; *pointer += 5; @@ -223,20 +223,20 @@ * surrogate and now need to get the other one * in order to produce UTF-8 and not CESU-8. */ c2 = parseUnicodeEscape(*pointer + 5, stop); if (c2 == 0xFFFF) { - of_free(buffer); + free(buffer); return nil; } c = (((c1 & 0x3FF) << 10) | (c2 & 0x3FF)) + 0x10000; l = of_string_utf8_encode(c, buffer + i); if (l == 0) { - of_free(buffer); + free(buffer); return nil; } i += l; *pointer += 11; @@ -254,11 +254,11 @@ case '\n': (*pointer)++; (*line)++; break; default: - of_free(buffer); + free(buffer); return nil; } /* End of string found */ } else if (**pointer == delimiter) { OFString *ret; @@ -265,28 +265,28 @@ @try { ret = [OFString stringWithUTF8String: buffer length: i]; } @finally { - of_free(buffer); + free(buffer); } (*pointer)++; return ret; /* Newlines in strings are disallowed */ } else if (**pointer == '\n' || **pointer == '\r') { (*line)++; - of_free(buffer); + free(buffer); return nil; } else { buffer[i++] = **pointer; (*pointer)++; } } - of_free(buffer); + free(buffer); return nil; } static inline OFString * parseIdentifier(const char **pointer, const char *stop) @@ -308,31 +308,31 @@ of_char16_t c1, c2; of_unichar_t c; size_t l; if (++(*pointer) >= stop || **pointer != 'u') { - of_free(buffer); + free(buffer); return nil; } c1 = parseUnicodeEscape(*pointer - 1, stop); if (c1 == 0xFFFF) { - of_free(buffer); + free(buffer); return nil; } /* Low surrogate */ if ((c1 & 0xFC00) == 0xDC00) { - of_free(buffer); + free(buffer); return nil; } /* Normal character */ if ((c1 & 0xFC00) != 0xD800) { l = of_string_utf8_encode(c1, buffer + i); if (l == 0) { - of_free(buffer); + free(buffer); return nil; } i += l; *pointer += 5; @@ -345,37 +345,37 @@ * surrogate and now need to get the other one in order * to produce UTF-8 and not CESU-8. */ c2 = parseUnicodeEscape(*pointer + 5, stop); if (c2 == 0xFFFF) { - of_free(buffer); + free(buffer); return nil; } c = (((c1 & 0x3FF) << 10) | (c2 & 0x3FF)) + 0x10000; l = of_string_utf8_encode(c, buffer + i); if (l == 0) { - of_free(buffer); + free(buffer); return nil; } i += l; *pointer += 11; } else { OFString *ret; if (i == 0 || (buffer[0] >= '0' && buffer[0] <= '9')) { - of_free(buffer); + free(buffer); return nil; } @try { ret = [OFString stringWithUTF8String: buffer length: i]; } @finally { - of_free(buffer); + free(buffer); } return ret; } } @@ -382,11 +382,11 @@ /* * It is never possible to end with an identifier, thus we should never * reach stop. */ - of_free(buffer); + free(buffer); return nil; } static inline OFMutableArray * parseArray(const char **pointer, const char *stop, size_t *line,