Joshua Haberman
0a6fc5fad3
Truly fixed type cyclic refcounting.
15 years ago
Joshua Haberman
e15f834a91
Circular references truly work now, along with a test.
...
One simplification to come.
15 years ago
Joshua Haberman
08b4a91204
Add a test for circularly-linked descriptors.
...
The test currently triggers valgrind-detected memory errors.
15 years ago
Joshua Haberman
18291eedc3
Make defs refcounted, rename upb_context->upbsymtab.
...
There is currently a memory leak when type definitions
form cycles. This will need to be dealt with.
15 years ago
Joshua Haberman
a95ab58e79
Overhaul defs to derive from a common base.
15 years ago
Joshua Haberman
9e3f5e343b
Make upb_msgdef own all its data.
...
This is in anticipation of making upb_msgdef's easy
to dup. This involved removing all traces of any
descriptors from the defs.
15 years ago
Joshua Haberman
868f118797
Changed parse API to know about msgdefs.
...
This should make it both easier to use and easier to
optimize, in exchange for a small amount of generality.
In practice, any remotely normal case is still very
natural.
15 years ago
Joshua Haberman
7cde43ea0a
Renamed upb_msg_fielddef -> upb_fielddef, upb_enum -> upb_enumdef.
15 years ago
Joshua Haberman
e252432a41
Refactoring: split defs into their own file, move private parsing funcs out of .h file.
15 years ago
Joshua Haberman
33a68acb14
Use a status object for errors so a message can be returned.
...
Also delay deletion of subfields until the entire message is
deleted.
15 years ago
Joshua Haberman
46fac0f58d
Tests use valgrind, chdir in test.
16 years ago
Joshua Haberman
00ba0d1ac1
Unit test comparing parsed results with proto2.
16 years ago
Joshua Haberman
cd2f77d392
Incremental improvements to cbparser, and a test.
16 years ago
Joshua Haberman
7fa19a3f95
Finish upb_context thread-safety.
16 years ago
Joshua Haberman
71d82d06d1
Add refcounting and thread-safety to message definitions.
16 years ago
Joshua Haberman
2282d2489b
Refactoring: unify upb_msg.
...
The cost is that a upb_msg will now always have an overhead
of 2*sizeof(void*). This is comparable to proto2 overhead.
The benefit is that upb_msg is now self-describing, and
read-only algorithms can now operate on a upb_msg regardless
of the memory-management scheme.
Also, upb_array and upb_string now know inherently if they
own their associated memory, and upb_array has a generic
pointer for memory management purposes like upb_msg does.
16 years ago
Joshua Haberman
946dcf4a5d
Fix tests (and src) such that all tests pass again.
16 years ago
Joshua Haberman
3149d2b372
Added a proper prototype for upb_serialize.
16 years ago
Joshua Haberman
e373367fb7
Move parsing functions to header file in anticipation of code generation (want them inlined).
16 years ago
Joshua Haberman
e58c871c19
upb is fully self-hosting (except for text->descriptor)!
16 years ago
Joshua Haberman
edf5f9e8ed
Update test_table to new table API.
16 years ago
Joshua Haberman
a1a9596d02
Fix tests and the build (though a few tests are failing).
16 years ago
Joshua Haberman
1e388b0af3
Significant, experimental changes (setjmp/longjmp, group handling).
16 years ago
Joshua Haberman
293cbe5135
Enhanced testing.
16 years ago
Joshua Haberman
462b26c1cc
Directory restructuring.
16 years ago