Joshua Haberman
bc717d8402
Implement inlining that works with both C99 and all versions of GCC.
16 years ago
Joshua Haberman
ccca4d7136
Acknowledge authorship and fix warning in the eng() function.
16 years ago
Joshua Haberman
5ec762a600
Added TODO about experimenting with Cuckoo Hashing.
16 years ago
Joshua Haberman
f4c00fc979
More work on the table implementation.
...
It currently beats std::map and std::hash_map by >10x.
16 years ago
Joshua Haberman
0aedd1825f
Makefile: build descriptor.o.
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
fdcefd68b1
Rethought upb_struct and new descriptor.h.
...
This is the next step in bootstrapping. upb_struct defines the
in-memory layout that will be used by both compile-time and run-time
defintions of protobufs. descriptor.h describes the proto format
using this format.
The next step is to create a descriptor.c that can parse descriptor
protos into this format. Then real run-time reflection can begin.
16 years ago
Joshua Haberman
d4f3e5a1af
Add descriptor.proto formats as C data.
...
This will be the bootstrapping strategy.
16 years ago
Joshua Haberman
894e7c6e58
Removed references to pbstruct from Makefile.
16 years ago
Joshua Haberman
0a1697f828
Removed pbstruct.
...
On more work/reflection, I don't think this is particularly
amenable to language-agnostic abstraction. Which is OK.
16 years ago
Joshua Haberman
3c515a6ce9
Very rough (doesn't even compile) pbstruct.
16 years ago
Joshua Haberman
a714989094
Detect overflow (unlikely except for malicious input).
16 years ago
Joshua Haberman
9f56ff3b5b
Fleshed out pbstruct a bit more.
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
2d41d385f3
Add pbstream_lowlevel.h.
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
14624e34d8
Added the first iteration of pbstruct.
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
Joshua Haberman
71311920a9
Fully add tests (oops) and bugfixes.
16 years ago
Joshua Haberman
9f2f5e18f1
Small tweaks.
16 years ago
Joshua Haberman
b98433ce8c
Implementations for ZigZag decoding.
16 years ago
Joshua Haberman
5fb04a8ba5
Tests and fixes to bugs that the tests found.
16 years ago
Joshua Haberman
8064bd419e
Doh, remove .o file from the repository (that's embarrassing).
16 years ago
Joshua Haberman
6cc7230ba2
Add README and LICENSE.
16 years ago
Joshua Haberman
d29a54fc97
Initial commit.
16 years ago