diff --git a/php/ext/google/protobuf/php-upb.h b/php/ext/google/protobuf/php-upb.h index e4292992fd..0289f5c586 100644 --- a/php/ext/google/protobuf/php-upb.h +++ b/php/ext/google/protobuf/php-upb.h @@ -4395,12 +4395,22 @@ extern "C" { // Hasbit access /////////////////////////////////////////////////////////////// +UPB_INLINE bool UPB_PRIVATE(_upb_Message_GetHasbitFromOffset)( + const struct upb_Message* msg, int byte_offset, int bit_mask) { + return (*UPB_PTR_AT(msg, byte_offset, const char) & bit_mask) != 0; +} + UPB_INLINE bool UPB_PRIVATE(_upb_Message_GetHasbit)( const struct upb_Message* msg, const upb_MiniTableField* f) { const uint16_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f); const char mask = UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(f); - return (*UPB_PTR_AT(msg, offset, const char) & mask) != 0; + return UPB_PRIVATE(_upb_Message_GetHasbitFromOffset)(msg, offset, mask); +} + +UPB_INLINE void UPB_PRIVATE(_upb_Message_SetHasbitFromOffset)( + const struct upb_Message* msg, int byte_offset, int bit_mask) { + (*UPB_PTR_AT(msg, byte_offset, char)) |= bit_mask; } UPB_INLINE void UPB_PRIVATE(_upb_Message_SetHasbit)( @@ -4408,7 +4418,7 @@ UPB_INLINE void UPB_PRIVATE(_upb_Message_SetHasbit)( const uint16_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f); const char mask = UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(f); - (*UPB_PTR_AT(msg, offset, char)) |= mask; + UPB_PRIVATE(_upb_Message_SetHasbitFromOffset)(msg, offset, mask); } UPB_INLINE void UPB_PRIVATE(_upb_Message_ClearHasbit)( diff --git a/ruby/ext/google/protobuf_c/ruby-upb.h b/ruby/ext/google/protobuf_c/ruby-upb.h index 62a372f2ff..dbc48870a0 100755 --- a/ruby/ext/google/protobuf_c/ruby-upb.h +++ b/ruby/ext/google/protobuf_c/ruby-upb.h @@ -4395,12 +4395,22 @@ extern "C" { // Hasbit access /////////////////////////////////////////////////////////////// +UPB_INLINE bool UPB_PRIVATE(_upb_Message_GetHasbitFromOffset)( + const struct upb_Message* msg, int byte_offset, int bit_mask) { + return (*UPB_PTR_AT(msg, byte_offset, const char) & bit_mask) != 0; +} + UPB_INLINE bool UPB_PRIVATE(_upb_Message_GetHasbit)( const struct upb_Message* msg, const upb_MiniTableField* f) { const uint16_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f); const char mask = UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(f); - return (*UPB_PTR_AT(msg, offset, const char) & mask) != 0; + return UPB_PRIVATE(_upb_Message_GetHasbitFromOffset)(msg, offset, mask); +} + +UPB_INLINE void UPB_PRIVATE(_upb_Message_SetHasbitFromOffset)( + const struct upb_Message* msg, int byte_offset, int bit_mask) { + (*UPB_PTR_AT(msg, byte_offset, char)) |= bit_mask; } UPB_INLINE void UPB_PRIVATE(_upb_Message_SetHasbit)( @@ -4408,7 +4418,7 @@ UPB_INLINE void UPB_PRIVATE(_upb_Message_SetHasbit)( const uint16_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f); const char mask = UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(f); - (*UPB_PTR_AT(msg, offset, char)) |= mask; + UPB_PRIVATE(_upb_Message_SetHasbitFromOffset)(msg, offset, mask); } UPB_INLINE void UPB_PRIVATE(_upb_Message_ClearHasbit)(