Commit Graph

27 Commits

Author SHA1 Message Date
Eric Fischer
bc5a7b251f Check return values after allocating memory 2016-03-25 11:20:56 -07:00
Eric Fischer
167beae307 Stringify feature properties that are arrays or hashes 2016-01-27 14:29:34 -08:00
Eric Fischer
c6dfae26cb Add a function to disconnect a JSON object from the parse tree 2015-12-18 12:05:22 -08:00
Eric Fischer
b70d19288e Get back in sync with json-pull 2015-06-03 11:31:41 -07:00
Eric Fischer
8a1f0d83e1 Consistent indent style with clang-format 2015-06-03 11:22:13 -07:00
Eric Fischer
a1e7426956 Sprinkle consts and casts to make it valid C++ as well as C 2014-12-02 14:17:49 -08:00
Eric Fischer
4bb441ce41 Speed up reading further by reading buffers instead of characters 2014-10-19 15:35:28 -07:00
Eric Fischer
84b9dea51e Buffer the next character internally to make reading faster 2014-10-19 15:15:36 -07:00
Eric Fischer
b72bb6f1f4 Clean up after errors and fix related bugs:
It was freeing the wrong object when there was an error
attaching an object to its parent!

Don't crash when printing null (partially read) hash values.
2014-02-08 09:31:49 -08:00
Eric Fischer
54f637a9a8 More documentation of object internals 2014-02-07 18:11:36 -08:00
Eric Fischer
9d31e8a05e Slightly less wordy name for reading JSON with separators 2014-02-07 18:01:18 -08:00
Eric Fischer
0fd66048c8 Get rid of root node to simplify. Walk the tree if you need it. 2014-02-07 16:56:38 -08:00
Eric Fischer
1cbf8a813e Match documented function names 2014-02-07 16:49:52 -08:00
Eric Fischer
a7e26262ea Expose interface for arbitrary reader functions 2014-02-07 16:23:03 -08:00
Eric Fischer
4a14e09457 Clarify what types are used where 2014-02-07 16:09:05 -08:00
Eric Fischer
fee27e1353 Add a callback interface for non-closing punctuation 2014-02-07 15:51:46 -08:00
Eric Fischer
f67e97cd08 Work out more details of how json_free() needs to work.
The idea is that you can free any element once you are
done with it, even if it is part of an array or hash that
isn't completely read yet.

Removing array elements is reasonably well defined because
nothing else depends on them. Removing a hash key or value
causes it to be replaced by a null unless the other side of
the component has already been nulled out, in which case
the whole pair is removed.
2014-02-06 22:45:40 -08:00
Eric Fischer
f0f73c6dd1 Keep track of the root of the parse tree for the caller 2014-02-06 21:06:27 -08:00
Eric Fischer
a74444af28 Track line number for error reports 2014-02-06 20:44:39 -08:00
Eric Fischer
e22b154ecc Add an input form that parses JSON from a string 2014-02-06 19:27:21 -08:00
Eric Fischer
ed079e37a9 Add a reader abstraction 2014-02-06 19:22:37 -08:00
Eric Fischer
979b9243d8 A container object makes the state transitions more straightforward
And should make it possible to free an object that has just been read
and still know what the next state will be, importantly.
2014-02-06 18:56:22 -08:00
Eric Fischer
42283ece0b More sensible way of passing errors back to caller 2014-02-06 12:13:23 -08:00
Eric Fischer
68e0784cc3 At least don't talk about allocation sizes in the public API 2014-02-05 23:35:35 -08:00
Eric Fischer
d630aa917e Put arrays in order by getting rid of the linked lists.
Resizing is ugly, but less ugly than backwards arrays.
2014-02-05 23:18:27 -08:00
Eric Fischer
879f9126b3 Name the types in the order the JSON spec names them in 2014-02-05 22:40:35 -08:00
Eric Fischer
7983c66add Separate source and header files 2014-02-05 21:27:48 -08:00