Joshua Haberman
c7ee14f8ef
Moved bounds check to the end of the loop to increase performance.
16 years ago
Joshua Haberman
d7b666ecf4
Remove branch prediction hints. They seem to hurt more than help.
16 years ago
Joshua Haberman
127adf4036
More work on the benchmark.
16 years ago
Joshua Haberman
d7fc64ab66
Fixes for groups and 32-bit varints.
16 years ago
Joshua Haberman
5bfef1bc8e
Added a little note for upb_parse.
16 years ago
Joshua Haberman
06efc6b12c
Fixed a lot of bugs, parser and compiler now work a little!
16 years ago
Joshua Haberman
485b964662
Bugfixes.
16 years ago
Joshua Haberman
b0ef7f0b67
More fixes, completions, still doesn't quite work.
16 years ago
Joshua Haberman
b8481e0e55
A bit more work on generalizing parsing.
16 years ago
Joshua Haberman
fd1ad20a2d
Remove public visibility from a few parsing functions.
16 years ago
Joshua Haberman
c21ad57da6
More work to msg and parse. Getting close!
16 years ago
Joshua Haberman
f813688f3e
Major revision to upb_parse.
16 years ago
Joshua Haberman
9fcddef19f
Updated comment to reflect code change.
16 years ago
Joshua Haberman
2d21601d47
Reworked low-level parsing: smaller, safer.
16 years ago
Joshua Haberman
5e2691460e
Ditch abbreviated field business.
16 years ago
Joshua Haberman
88cc3f2fc8
Progress implementing upb_msg.
16 years ago
Joshua Haberman
edd137fe99
Two small fixes.
16 years ago
Joshua Haberman
0f26f51486
Fix varint-skipping (oops).
16 years ago
Joshua Haberman
e3905b425a
Simplified the varint-skipping function.
16 years ago
Joshua Haberman
9f80d0d60e
Do unaligned reads if UPB_UNALIGNED_READS_OK is defined.
...
Also removed commented-out alternate implementations for
varint-reading code (they are still in the history).
16 years ago
Joshua Haberman
79d57263f5
Improvements to one-branch varint reading function.
16 years ago
Joshua Haberman
d1aa095cb3
High-level parsing interface written (not yet tested).
16 years ago
Joshua Haberman
b04a376636
Alternative (optimized) implementations of varint parsing.
16 years ago
Joshua Haberman
bc717d8402
Implement inlining that works with both C99 and all versions of GCC.
16 years ago
Joshua Haberman
d1f78c88fa
A bunch more work, a fast table for field lookup.
16 years ago
Joshua Haberman
0c80c38475
A flurry of activity. Doesn't compile yet.
...
- a descriptor.c that describes the data structures in
descriptor.proto using the data structures in descriptor.h.
- everything renamed pbstream -> upb.
- modularization rethought.
- Doesn't compile yet, but should once things settle back down.
16 years ago
Joshua Haberman
a714989094
Detect overflow (unlikely except for malicious input).
16 years ago
Joshua Haberman
5f2344e480
Fixed off-by-one error in hashtable calculation.
16 years ago
Joshua Haberman
6e67cb48ef
Fixed bugs that lint caught.
16 years ago
Joshua Haberman
268bb50e80
Enabled more warnings, fixed the warnings.
16 years ago
Joshua Haberman
c8d67b2686
More refactoring of structures.
...
pbstream_internal.h is now where even lower-level parsing
functions go.
16 years ago
Joshua Haberman
73ab650ad1
Added function for skipping data.
16 years ago
Joshua Haberman
5a31f694a7
Implemented the array part of the fieldnum lookup.
16 years ago
Joshua Haberman
e195d5379d
Since the stack has a fixed size, don't allocate dynamically.
16 years ago
Joshua Haberman
eaa0cdd6a1
Oops, malloc(array[int]) didn't do what I thought.
16 years ago
Joshua Haberman
d351981f9e
Change to a fixed stack size.
...
Proto2 only allows a nesting depth of 64, so we follow suit.
16 years ago
Joshua Haberman
e67f5d5f02
Less code duplication, joy.
16 years ago
Joshua Haberman
47fb22194c
Another test, another bugfix.
16 years ago
Joshua Haberman
e6b461c84a
More tests and bugfixes -- parses its first proto!
16 years ago
Joshua Haberman
73978bfc74
API cleanup.
16 years ago
Joshua Haberman
1aa1627fc1
Implemented the _init_parser() function.
16 years ago
Joshua Haberman
afe132eb10
Remove DYNARRAY for the stack (wasn't buying much).
16 years ago
Joshua Haberman
446d7c27ee
Rip out more stuff that belongs in higher layers.
16 years ago
Joshua Haberman
537ca81ada
Credit where credit is due.
16 years ago
Joshua Haberman
ecd855279d
Removed CALLBACK() macro and struct of callbacks.
16 years ago
Joshua Haberman
7fefc5c875
Removed DECODE macro (wasn't buying much).
...
Also decided that groups aren't a TODO -- I don't plan to ever
support them (unless there is a real need).
16 years ago
Joshua Haberman
a0a99811be
Removed bounds checking, for speed and simplicity.
...
Callers must always over-allocate their buffer by at least
ten bytes. Since we will never read *more* than ten bytes,
there is no need to do bounds checking inside the parsing
code.
16 years ago
Joshua Haberman
a38b191e8d
Move submessage begin code to handler as well.
16 years ago
Joshua Haberman
faf6b5f3bf
Massive changes (practically a rewrite). More compact and minimal.
...
Still doesn't actually work yet, but much closer.
16 years ago
Joshua Haberman
75ee6df2ff
Newfound respect for 80 characters and for terseness.
16 years ago