summaryrefslogtreecommitdiff
path: root/src/upb_msg.h
diff options
context:
space:
mode:
authorJoshua Haberman <joshua@reverberate.org>2011-02-17 23:07:17 -0800
committerJoshua Haberman <joshua@reverberate.org>2011-02-17 23:07:17 -0800
commitd8b215486245e84e33283b6047fb253bbb418e00 (patch)
tree4c07a4d3162a0390be0b55d619ddab0e7a6acb23 /src/upb_msg.h
parentf1e1cc4695b34b292454e903adbf09e66cf2e9d5 (diff)
First version of an assembly language decoder.
It is slower than the C decoder for now because it falls off the fast path too often. But it can successfully decode varints, fixed32 and fixed64.
Diffstat (limited to 'src/upb_msg.h')
-rw-r--r--src/upb_msg.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/upb_msg.h b/src/upb_msg.h
index 8a3c63f..3246971 100644
--- a/src/upb_msg.h
+++ b/src/upb_msg.h
@@ -97,11 +97,13 @@ INLINE upb_value upb_value_read(upb_valueptr ptr, upb_fieldtype_t ft) {
INLINE void upb_value_write(upb_valueptr ptr, upb_value val,
upb_fieldtype_t ft) {
+#ifndef NDEBUG
if (ft == UPB_VALUETYPE_ARRAY) {
assert(val.type == UPB_VALUETYPE_ARRAY);
- } else {
+ } else if (val.type != UPB_VALUETYPE_RAW) {
assert(val.type == upb_types[ft].inmemory_type);
}
+#endif
#define CASE(t, member_name) \
case UPB_TYPE(t): *ptr.member_name = val.val.member_name; break;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback