Index: src/OFString+JSONValue.h ================================================================== --- src/OFString+JSONValue.h +++ src/OFString+JSONValue.h @@ -28,10 +28,19 @@ /** * \brief Creates an object from the JSON value of the string. * * \note This also allows parsing JSON5, an extension of JSON. See * http://json5.org/ for more details. + * + * \warning Although not specified by the JSON specification, this can also + * return primitives like strings and numbers. The rationale behind + * this is that most JSON parsers allow JSON data just consisting of a + * single primitive, leading to realworld JSON files sometimes only + * consisting of a single primitive. Therefore, you should not make any + * assumptions about the object returned by this method if you don't + * want your program to terminate due to a message not understood, but + * instead check the returned object using -[isKindOfClass:]. * * \return An object */ - (id)JSONValue; @end Index: src/OFString+JSONValue.m ================================================================== --- src/OFString+JSONValue.m +++ src/OFString+JSONValue.m @@ -193,11 +193,10 @@ /* Normal character */ if ((c1 & 0xFC00) != 0xD800) { l = of_string_unicode_to_utf8(c1, buffer + i); - if (l == 0) { free(buffer); return nil; } @@ -220,11 +219,10 @@ c = (((c1 & 0x3FF) << 10) | (c2 & 0x3FF)) + 0x10000; l = of_string_unicode_to_utf8(c, buffer + i); - if (l == 0) { free(buffer); return nil; }