Joshua Haberman
4dce5ab709
Fix upbc and descriptorgen, and update descriptor.
14 years ago
Joshua Haberman
63daaaca4f
Added constants for field names and numbers.
...
Not used in this branch, but it is used in the src-refactoring
branch.
15 years ago
Joshua Haberman
611afe9c69
Removed union tag from types.
15 years ago
Joshua Haberman
d5566c6038
Remove struct keyword from all types, use typedef instead.
15 years ago
Joshua Haberman
9116c697f8
upb_parser -> upb_decoder
15 years ago
Joshua Haberman
6a8dfa5f26
upb_array -> upb_arrayptr.
15 years ago
Joshua Haberman
15604083c7
Move string representations back upb.h -> upb_data.h.
15 years ago
Joshua Haberman
fa5710f1ca
upb_string* -> upb_strptr, to follow aliasing rules.
15 years ago
Joshua Haberman
ece08710a6
Bugfixes: descriptorgen works without leaks!
15 years ago
Joshua Haberman
2fdc9df97e
Other than a couple memory leaks, "make descriptorgen" works again!
15 years ago
Joshua Haberman
8978661a76
upbc compiles, but doesn't link due to unimplemented stuff in upb_data.
15 years ago
Joshua Haberman
e5debfa1c9
More incremental work; ported some of upbc.
15 years ago
Joshua Haberman
2a8ba6f3a2
Updated upbc to new dyncasts.
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
651c92ab33
Scheme for collecting circular refs.
...
"make descriptorgen" is now valgrind-clean again.
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
d160380736
Update upbc to use self-describing upb_msg instead of void*.
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
527a544b04
Small bugfix: enums are int32, not uint32.
15 years ago
Joshua Haberman
2bad79f721
Fix upbc for upb_array API change.
15 years ago
Joshua Haberman
040f7e6ba2
Significant memory-management refactoring any Python extension.
15 years ago
Joshua Haberman
cfd67dda49
Various fixes.
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
eb67fb9109
Fixed memory leaks in upbc.
16 years ago
Joshua Haberman
8fa6a92f53
Major refactoring of upb_msg. Temporary functionality regression.
...
There is significant refactoring here, as well as some more trivial
name changes. upb_msg has become upb_msgdef, to reflect the fact
that a upb_msg is not *itself* a message, it describes a message.
There are other renamings, such as upb_parse_state -> upb_stream_parser.
More significantly, the upb_msg class and parser have been refactored
to reflect my recent realization about how memory management should
work. upb_msg now has no memory management, and a memory mangement
scheme (that works beautifully with multiple language runtimes) will
be layered on top of it.
This iteration has the new, read-only upb_msg. upb_mm_msg (a
memory-managed message class) will come in the next change.
16 years ago
Joshua Haberman
10cdab28e9
Add a friendly comment at the top of auto-generated C files.
16 years ago
Joshua Haberman
a952e42e99
Fixed a bug in set_flags order in the compiler.
16 years ago
Joshua Haberman
e58c871c19
upb is fully self-hosting (except for text->descriptor)!
16 years ago
Joshua Haberman
d8c93dc1a2
Make the compiler correctly define the top-level extern symbol.
16 years ago
Joshua Haberman
ee1ed1ccb8
Compiler finally works (except string arrays). Untested. Holy crap that was a lot of work.
16 years ago
Joshua Haberman
e4e89247e5
More work on the compiler.
16 years ago
Joshua Haberman
d963b04ea9
More work on the compiler.
16 years ago
Joshua Haberman
9bc15a1e74
More work on the compiler.
16 years ago
Joshua Haberman
6d77fa0459
More compiler work.
16 years ago
Joshua Haberman
73bac1f2b0
More work on the compiler.
16 years ago
Joshua Haberman
462b26c1cc
Directory restructuring.
16 years ago