From c3011c15483b775123ff40d58fe8c29f93efa431 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Mon, 24 Dec 2018 12:01:11 -0800 Subject: Fixed bug: make proto2 setters set hasbit. --- upb/generated_util.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'upb/generated_util.h') diff --git a/upb/generated_util.h b/upb/generated_util.h index 5d6ccb4..4982236 100644 --- a/upb/generated_util.h +++ b/upb/generated_util.h @@ -84,6 +84,14 @@ UPB_INLINE bool _upb_has_field(const void *msg, size_t idx) { return (*PTR_AT(msg, idx / 8, const char) & (idx % 8)) != 0; } +UPB_INLINE bool _upb_sethas(const void *msg, size_t idx) { + return (*PTR_AT(msg, idx / 8, char)) |= (1 << (idx % 8)); +} + +UPB_INLINE bool _upb_clearhas(const void *msg, size_t idx) { + return (*PTR_AT(msg, idx / 8, char)) &= ~(1 << (idx % 8)); +} + UPB_INLINE bool _upb_has_oneof_field(const void *msg, size_t case_ofs, int32_t num) { return *PTR_AT(msg, case_ofs, int32_t) == num; } -- cgit v1.2.3