From d8b215486245e84e33283b6047fb253bbb418e00 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Thu, 17 Feb 2011 23:07:17 -0800 Subject: 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. --- src/upb_msg.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/upb_msg.h') 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; -- cgit v1.2.3