diff options
author | Joshua Haberman <joshua@reverberate.org> | 2011-02-17 23:07:17 -0800 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2011-02-17 23:07:17 -0800 |
commit | d8b215486245e84e33283b6047fb253bbb418e00 (patch) | |
tree | 4c07a4d3162a0390be0b55d619ddab0e7a6acb23 /src/upb_msg.h | |
parent | f1e1cc4695b34b292454e903adbf09e66cf2e9d5 (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.h | 4 |
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; |