…equest from issue #4 and issue #11. Also replaces jk_encode() function with the JKSerializer class. This is a forward looking change as placing the state in to an autoreleased object that does serializing means that we can always make sure that any resources we might have allocated will get released, no matter what. This could be a problem, for example, if something throws an exception while we are serializing.
… circumstances. Modify the primary parsing initial token matcher to use a if/else if/else if structure instead of switch()/case and organize the if statements to occur in the order they are statistically likely to appear in JSON for a performance win. Also make a minor README.md tweak.
…ca collection classes catch.
…ference in the way we use it, but this corrects it so that it is more 'correct'.
…able to do a better job. Also modified jk_encode_printf to fix a potential bug wrt/ va_end, and used a va_copy() to make a copy of the varArgs. This is needed if the first vsnprintf overruns the buffer and we need to call it again, the first call may leave the passed varArgs in a state that is unusable by the next call- hence we make a va_copy and use the copy on the second call. Also did some tidies on various jk_encode_write|print functions.
…with the 1.4 changes.
…offset in the buffer for the last conversion for an object.
…ELOG.md for more info.
… locality. Changes some of the convience functions so that they leave as little autorelease pending allocations hanging around as possible to minimize our memory footprint.
…HANGELOG.md for info. The biggest news is JSONKit is anywhere from 30% to 60% faster than JSONKit v1.3 for reading / parsing JSON!
…when the slow string parsing path was active.
…some illegal unicode escapes such that JKParseOptionLooseUnicode was honored. Modified the way floating point values are serialized: previously, the printf format conversion '%.16g' was used, changed to '%.17g' which should theoretically allow for up to a full 'float' (aka single precision) of precision when converting to decimal representation.
…nction. The (now removed) hash function for numbers was originally put in place during the initial development of JSONKit in an attempt to avoid hash collisions and table probe / accelerated cache ageing due to similar hashes. This problem was fixed using a different technique, but the old hash function remained for some reason. Although it depends heavily on the JSON being parsed, this change can result in a 2-6% increase in parsing speed.
…e error. Updated the README.md file. Added CHANGELOG.md
…arrays where the same key appeared more than once. Also hacked around the CFNumber limitation where CFNumbers only have a signed type for numbers and do not have an explicity unsigned type. Switched the README to README.md.
…venience methods, plus a few other bits and pieces.