Skip to content

Commit 451714a

Browse files
Avoid unnecessary sign extension to size_t for has bits
Before: ``` ldrh w8, [x1, #6] sxth x9, w8 and w8, w8, #0x7 lsr x9, x9, #3 ldrb w9, [x0, x9] lsr w8, w9, w8 and w0, w8, #0x1 ret ``` After: ``` ldrh w8, [x1, #6] lsr x9, x8, #3 and w8, w8, #0x7 ldrb w9, [x0, x9] lsr w8, w9, w8 and w0, w8, #0x1 ret ``` PiperOrigin-RevId: 735610397
1 parent 184e0a2 commit 451714a

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

upb/message/internal/accessors.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,23 +60,23 @@ extern "C" {
6060

6161
UPB_INLINE bool UPB_PRIVATE(_upb_Message_GetHasbit)(
6262
const struct upb_Message* msg, const upb_MiniTableField* f) {
63-
const size_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f);
63+
const uint16_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f);
6464
const char mask = UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(f);
6565

6666
return (*UPB_PTR_AT(msg, offset, const char) & mask) != 0;
6767
}
6868

6969
UPB_INLINE void UPB_PRIVATE(_upb_Message_SetHasbit)(
7070
const struct upb_Message* msg, const upb_MiniTableField* f) {
71-
const size_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f);
71+
const uint16_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f);
7272
const char mask = UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(f);
7373

7474
(*UPB_PTR_AT(msg, offset, char)) |= mask;
7575
}
7676

7777
UPB_INLINE void UPB_PRIVATE(_upb_Message_ClearHasbit)(
7878
const struct upb_Message* msg, const upb_MiniTableField* f) {
79-
const size_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f);
79+
const uint16_t offset = UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(f);
8080
const char mask = UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(f);
8181

8282
(*UPB_PTR_AT(msg, offset, char)) &= ~mask;

upb/mini_table/internal/field.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ struct upb_MiniTableField {
3333
uint8_t UPB_ONLYBITS(mode);
3434
};
3535

36-
#define kUpb_NoSub ((uint16_t) - 1)
36+
#define kUpb_NoSub ((uint16_t)-1)
3737

3838
typedef enum {
3939
kUpb_FieldMode_Map = 0,
@@ -138,14 +138,14 @@ UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableField_HasHasbit)(
138138
UPB_INLINE char UPB_PRIVATE(_upb_MiniTableField_HasbitMask)(
139139
const struct upb_MiniTableField* f) {
140140
UPB_ASSERT(UPB_PRIVATE(_upb_MiniTableField_HasHasbit)(f));
141-
const size_t index = f->presence;
141+
const uint16_t index = f->presence;
142142
return 1 << (index % 8);
143143
}
144144

145-
UPB_INLINE size_t UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(
145+
UPB_INLINE uint16_t UPB_PRIVATE(_upb_MiniTableField_HasbitOffset)(
146146
const struct upb_MiniTableField* f) {
147147
UPB_ASSERT(UPB_PRIVATE(_upb_MiniTableField_HasHasbit)(f));
148-
const size_t index = f->presence;
148+
const uint16_t index = f->presence;
149149
return index / 8;
150150
}
151151

0 commit comments

Comments
 (0)