Joshua Haberman
ca512852f3
Fixed parsing for string->double maps. ( #243 )
...
Map parsing/serializing relies on map entries always
having a predictable order. The code that generates
layout was not respecting this in the case of string
keys and primitive values.
5 years ago
Joshua Haberman
ce1a399a19
Text format serializer for upb_msg ( #242 )
...
* WIP, first version of encoder.
* More progress on text encoder.
* A lot of progress on the text printer.
* Added textencode header file.
* Text encoder now passes conformance tests.
These aren't very stringent though, and more testing is needed.
* Print text into static buffer. Passes all conformance tests.
* Fixed kokoro errors.
* Fix for indent depth when printing map fields.
5 years ago
Joshua Haberman
46b93f8cea
A bit more cleanup in the decoder.
5 years ago
Joshua Haberman
ad2eb65a4b
Refactored conformance_upb to use reflection, and fixed a decoder bug.
5 years ago
Joshua Haberman
9a870d957f
Removed upb_decframe and made ptr an explicit parameter and return.
5 years ago
Joshua Haberman
a6c54729df
Added UPB_ASSUME(), to work around warnings when optimization is enabled:
...
upb/json/parser.rl: In function 'end_member.isra.150':
bazel-out/k8-opt/bin/upb.c:5536:13: error: 'sel' may be used uninitialized in this function [-Werror=maybe-uninitialized]
upb_func *ret = (upb_func *)h->table[s].func;
5 years ago
Joshua Haberman
e911aae5f6
Factored upb_map_entry into a shared place.
5 years ago
Anna R
d2389ba261
Add correctness asserts to upb_addmsg
5 years ago
Anna R
de1bc11663
Split port into its own target, add msg.h to :legacy_msg_reflection
5 years ago
Joshua Haberman
744f8588da
Cleanup to remove END_GROUP from descriptortype -> type tables.
5 years ago
Joshua Haberman
f9efbcd5d6
Added missing append fallback.
5 years ago
Joshua Haberman
c4b64e6a20
Slight simplification: NULL arena will avoid creating a new sub-object.
5 years ago
Joshua Haberman
d541566a7b
Moved upb_array_new() to upb/reflection.h where it belongs.
5 years ago
Joshua Haberman
520ddc1f11
c89 fixes.
5 years ago
Joshua Haberman
2a85bef825
Generated code interface for maps is complete, though not yet tested.
5 years ago
Joshua Haberman
7f5fe52dfa
Fixes for non-C89 code.
5 years ago
Joshua Haberman
6c2d732082
Fixed upb's map parsing to overwrite existing elements.
5 years ago
Joshua Haberman
090a0c33a4
Fixed VLA error and rewrote the map parsing code to be clearer.
5 years ago
Joshua Haberman
0fbae939d2
Removed stray fprintf().
5 years ago
Joshua Haberman
572ba75d1c
Removed comma after final enumerator.
5 years ago
Joshua Haberman
c9135e5276
Fixed the build.
5 years ago
Joshua Haberman
e18541a9dd
Added some missing files.
5 years ago
Joshua Haberman
382f92a87f
Maps encode and decode successfully!
5 years ago
Joshua Haberman
4c57b1fefd
More progress on Lua extension.
5 years ago
Joshua Haberman
d6c3152c0b
Added more Lua tests that are passing.
...
Also ripped out the ctype checking in upb_table, it
was not helpful (didn't help catch bugs) but was causing
problems.
5 years ago
Joshua Haberman
ae66e571d4
Fixed some bugs and added a few more tests.
5 years ago
Joshua Haberman
bfc86d3577
Fixed many bugs, basic Lua test passes!
5 years ago
Joshua Haberman
cc6db9fb0b
Fixed crash bug.
5 years ago
Joshua Haberman
626ec4bfcf
Everything builds, test pass except test_decoder.
5 years ago
Joshua Haberman
5239655b99
WIP.
5 years ago
Joshua Haberman
23825332e1
WIP.
5 years ago
Joshua Haberman
27b95c969a
WIP.
5 years ago
Joshua Haberman
9a360ad43d
Moved legacy_msg_reflection.{c,h} -> reflection.{c.h}.
5 years ago
Joshua Haberman
dc58b657ee
New reflection API doesn't need types as parameters for map/array.
...
All tests are passing again.
5 years ago
Joshua Haberman
c486da3970
WIP.
5 years ago
Joshua Haberman
88b1026d26
Fixed leap year handling by reworking upb_mktime() -> upb_timegm().
...
The new function name also better reflects the semantics of the
function. Like timegm(), this function always converts to/from
UTC, not local time.
5 years ago
Joshua Haberman
715718d5a5
Changed endsubmsg handler to return the closure of the submessage.
...
This is a behavior change to help out PHP for the lazy wrappers
optimization.
5 years ago
Joshua Haberman
1ed64db8c2
Fixed compiler error "error: control reaches end of non-void function".
5 years ago
Alan Wu
a73fd86c13
Use memcpy to perform unaligned reads
...
Creating and reading from unaligned pointers is UB and I'm trying to
run upb on a platform (GraalVM) that is sensitive to that unfortunately.
Recent compilers are smart enough to fold the memcpy down to a simple
memory load on platforms that support it, so this should mostly be a
aesthetic change.
5 years ago
Esun Kim
905d1913f7
No // comment
5 years ago
Joshua Haberman
29c30e9cb3
Fixed cache to properly insert by msgdef key.
5 years ago
Joshua Haberman
555b60b062
A memory safety fix, found by ASAN.
...
We cannot assume that the input string is NULL-terminated,
or read past "len." Instead we manually NULL-terminate it.
5 years ago
Joshua Haberman
ca4605b3af
Properly cache decoder methods, instead of regenerating every time.
...
This doesn't fully share bytecode. If you generate for message A
which has B as a sub-message, then generate B, B's code will be
generated twice. This could be optimized later if desired. But
this addresses the leak in PHP.
Also removed some obsolete JIT-only code.
5 years ago
Joshua Haberman
509f1e474f
Bugfix for boolean defaults.
5 years ago
Joshua Haberman
1461da5056
WIP.
5 years ago
Paul Yang
d3762e96cb
Accpet string for numeric wrappers ( #202 )
5 years ago
Esun Kim
6f9a9fb2fa
Rename MurmurHash2 to upb_murmur_hash2
5 years ago
Esun Kim
ce4c4fd76b
Clean up MSVC port for vsnprintf
5 years ago
Esun Kim
bc6d9518e1
Make it use builtin functions on clang
5 years ago
Esun Kim
3838f62aa5
Fixed ubsan error on memmove
5 years ago