rename the upb_Array 'len' field as 'size'
Now that 'size' has been renamed as 'capacity' we are free to rename 'len' as
'size', so upb_Array_Size() is actually returning the 'size' field.
PiperOrigin-RevId: 456865972
diff --git a/upb/array.c b/upb/array.c
index 17bec38..97a8d95 100644
--- a/upb/array.c
+++ b/upb/array.c
@@ -53,13 +53,13 @@
return _upb_Array_New(a, 4, _upb_CTypeo_sizelg2[type]);
}
-size_t upb_Array_Size(const upb_Array* arr) { return arr->len; }
+size_t upb_Array_Size(const upb_Array* arr) { return arr->size; }
upb_MessageValue upb_Array_Get(const upb_Array* arr, size_t i) {
upb_MessageValue ret;
const char* data = _upb_array_constptr(arr);
int lg2 = arr->data & 7;
- UPB_ASSERT(i < arr->len);
+ UPB_ASSERT(i < arr->size);
memcpy(&ret, data + (i << lg2), 1 << lg2);
return ret;
}
@@ -67,15 +67,15 @@
void upb_Array_Set(upb_Array* arr, size_t i, upb_MessageValue val) {
char* data = _upb_array_ptr(arr);
int lg2 = arr->data & 7;
- UPB_ASSERT(i < arr->len);
+ UPB_ASSERT(i < arr->size);
memcpy(data + (i << lg2), &val, 1 << lg2);
}
bool upb_Array_Append(upb_Array* arr, upb_MessageValue val, upb_Arena* arena) {
- if (!upb_Array_Resize(arr, arr->len + 1, arena)) {
+ if (!upb_Array_Resize(arr, arr->size + 1, arena)) {
return false;
}
- upb_Array_Set(arr, arr->len - 1, val);
+ upb_Array_Set(arr, arr->size - 1, val);
return true;
}
@@ -88,10 +88,10 @@
bool upb_Array_Insert(upb_Array* arr, size_t i, size_t count,
upb_Arena* arena) {
- UPB_ASSERT(i <= arr->len);
- UPB_ASSERT(count + arr->len >= count);
- size_t oldsize = arr->len;
- if (!upb_Array_Resize(arr, arr->len + count, arena)) {
+ UPB_ASSERT(i <= arr->size);
+ UPB_ASSERT(count + arr->size >= count);
+ size_t oldsize = arr->size;
+ if (!upb_Array_Resize(arr, arr->size + count, arena)) {
return false;
}
upb_Array_Move(arr, i + count, i, oldsize - i);
@@ -99,15 +99,15 @@
}
/*
- * i end arr->len
+ * i end arr->size
* |------------|XXXXXXXX|--------|
*/
void upb_Array_Delete(upb_Array* arr, size_t i, size_t count) {
size_t end = i + count;
UPB_ASSERT(i <= end);
- UPB_ASSERT(end <= arr->len);
- upb_Array_Move(arr, i, end, arr->len - end);
- arr->len -= count;
+ UPB_ASSERT(end <= arr->size);
+ upb_Array_Move(arr, i, end, arr->size - end);
+ arr->size -= count;
}
bool upb_Array_Resize(upb_Array* arr, size_t size, upb_Arena* arena) {
diff --git a/upb/decode.c b/upb/decode.c
index 790fa01..afd654c 100644
--- a/upb/decode.c
+++ b/upb/decode.c
@@ -201,8 +201,8 @@
}
static bool decode_reserve(upb_Decoder* d, upb_Array* arr, size_t elem) {
- bool need_realloc = arr->capacity - arr->len < elem;
- if (need_realloc && !_upb_array_realloc(arr, arr->len + elem, &d->arena)) {
+ bool need_realloc = arr->capacity - arr->size < elem;
+ if (need_realloc && !_upb_array_realloc(arr, arr->size + elem, &d->arena)) {
decode_err(d, kUpb_DecodeStatus_OutOfMemory);
}
return need_realloc;
@@ -445,8 +445,8 @@
wireval* val) {
const upb_MiniTable_Enum* e = subs[field->submsg_index].subenum;
if (!decode_checkenum(d, ptr, msg, e, field, val)) return ptr;
- void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
- arr->len++;
+ void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->size * 4, void);
+ arr->size++;
memcpy(mem, val, 4);
return ptr;
}
@@ -463,8 +463,8 @@
return decode_err(d, kUpb_DecodeStatus_Malformed);
}
decode_reserve(d, arr, count);
- void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
- arr->len += count;
+ void* mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->size << lg2, void);
+ arr->size += count;
// Note: if/when the decoder supports multi-buffer input, we will need to
// handle buffer seams here.
if (_upb_IsLittleEndian()) {
@@ -501,15 +501,15 @@
int lg2) {
int scale = 1 << lg2;
int saved_limit = decode_pushlimit(d, ptr, val->size);
- char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
+ char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->size << lg2, void);
while (!decode_isdone(d, &ptr)) {
wireval elem;
ptr = decode_varint64(d, ptr, &elem.uint64_val);
decode_munge(field->descriptortype, &elem);
if (decode_reserve(d, arr, 1)) {
- out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << lg2, void);
+ out = UPB_PTR_AT(_upb_array_ptr(arr), arr->size << lg2, void);
}
- arr->len++;
+ arr->size++;
memcpy(out, &elem, scale);
out += scale;
}
@@ -525,7 +525,7 @@
wireval* val) {
const upb_MiniTable_Enum* e = subs[field->submsg_index].subenum;
int saved_limit = decode_pushlimit(d, ptr, val->size);
- char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
+ char* out = UPB_PTR_AT(_upb_array_ptr(arr), arr->size * 4, void);
while (!decode_isdone(d, &ptr)) {
wireval elem;
ptr = decode_varint64(d, ptr, &elem.uint64_val);
@@ -534,9 +534,9 @@
continue;
}
if (decode_reserve(d, arr, 1)) {
- out = UPB_PTR_AT(_upb_array_ptr(arr), arr->len * 4, void);
+ out = UPB_PTR_AT(_upb_array_ptr(arr), arr->size * 4, void);
}
- arr->len++;
+ arr->size++;
memcpy(out, &elem, 4);
out += 4;
}
@@ -567,8 +567,8 @@
case OP_SCALAR_LG2(2):
case OP_SCALAR_LG2(3):
/* Append scalar value. */
- mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->len << op, void);
- arr->len++;
+ mem = UPB_PTR_AT(_upb_array_ptr(arr), arr->size << op, void);
+ arr->size++;
memcpy(mem, val, 1 << op);
return ptr;
case OP_STRING:
@@ -576,16 +576,16 @@
/* Fallthrough. */
case OP_BYTES: {
/* Append bytes. */
- upb_StringView* str = (upb_StringView*)_upb_array_ptr(arr) + arr->len;
- arr->len++;
+ upb_StringView* str = (upb_StringView*)_upb_array_ptr(arr) + arr->size;
+ arr->size++;
return decode_readstr(d, ptr, val->size, str);
}
case OP_SUBMSG: {
/* Append submessage / group. */
upb_Message* submsg = decode_newsubmsg(d, subs, field);
- *UPB_PTR_AT(_upb_array_ptr(arr), arr->len * sizeof(void*), upb_Message*) =
- submsg;
- arr->len++;
+ *UPB_PTR_AT(_upb_array_ptr(arr), arr->size * sizeof(void*),
+ upb_Message*) = submsg;
+ arr->size++;
if (UPB_UNLIKELY(field->descriptortype == kUpb_FieldType_Group)) {
return decode_togroup(d, ptr, submsg, subs, field);
} else {
diff --git a/upb/decode_fast.c b/upb/decode_fast.c
index 25f67db..f7748b1 100644
--- a/upb/decode_fast.c
+++ b/upb/decode_fast.c
@@ -244,7 +244,7 @@
UPB_FORCEINLINE
static void fastdecode_commitarr(void* dst, fastdecode_arr* farr,
int valbytes) {
- farr->arr->len =
+ farr->arr->size =
(size_t)((char*)dst - (char*)_upb_array_ptr(farr->arr)) / valbytes;
}
@@ -315,7 +315,7 @@
begin = _upb_array_ptr(farr->arr);
farr->end = begin + (farr->arr->capacity * valbytes);
*data = fastdecode_loadtag(ptr);
- return begin + (farr->arr->len * valbytes);
+ return begin + (farr->arr->size * valbytes);
}
default:
UPB_UNREACHABLE();
@@ -600,7 +600,7 @@
\
char* dst = _upb_array_ptr(arr); \
memcpy(dst, ptr, size); \
- arr->len = elems; \
+ arr->size = elems; \
\
ptr += size; \
UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
diff --git a/upb/encode.c b/upb/encode.c
index 048ecd2..32565bd 100644
--- a/upb/encode.c
+++ b/upb/encode.c
@@ -173,7 +173,7 @@
static void encode_fixedarray(upb_encstate* e, const upb_Array* arr,
size_t elem_size, uint32_t tag) {
- size_t bytes = arr->len * elem_size;
+ size_t bytes = arr->size * elem_size;
const char* data = _upb_array_constptr(arr);
const char* ptr = data + bytes - elem_size;
@@ -294,14 +294,14 @@
bool packed = f->mode & kUpb_LabelFlags_IsPacked;
size_t pre_len = e->limit - e->ptr;
- if (arr == NULL || arr->len == 0) {
+ if (arr == NULL || arr->size == 0) {
return;
}
#define VARINT_CASE(ctype, encode) \
{ \
const ctype* start = _upb_array_constptr(arr); \
- const ctype* ptr = start + arr->len; \
+ const ctype* ptr = start + arr->size; \
uint32_t tag = packed ? 0 : (f->number << 3) | kUpb_WireType_Varint; \
do { \
ptr--; \
@@ -345,7 +345,7 @@
case kUpb_FieldType_String:
case kUpb_FieldType_Bytes: {
const upb_StringView* start = _upb_array_constptr(arr);
- const upb_StringView* ptr = start + arr->len;
+ const upb_StringView* ptr = start + arr->size;
do {
ptr--;
encode_bytes(e, ptr->data, ptr->size);
@@ -356,7 +356,7 @@
}
case kUpb_FieldType_Group: {
const void* const* start = _upb_array_constptr(arr);
- const void* const* ptr = start + arr->len;
+ const void* const* ptr = start + arr->size;
const upb_MiniTable* subm = subs[f->submsg_index].submsg;
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
do {
@@ -371,7 +371,7 @@
}
case kUpb_FieldType_Message: {
const void* const* start = _upb_array_constptr(arr);
- const void* const* ptr = start + arr->len;
+ const void* const* ptr = start + arr->size;
const upb_MiniTable* subm = subs[f->submsg_index].submsg;
if (--e->depth == 0) encode_err(e, kUpb_EncodeStatus_MaxDepthExceeded);
do {
diff --git a/upb/msg.c b/upb/msg.c
index 1cb55f2..42225df 100644
--- a/upb/msg.c
+++ b/upb/msg.c
@@ -220,7 +220,7 @@
upb_Array* arr = getorcreate_array(arr_ptr, elem_size_lg2, arena);
if (!arr) return false;
- size_t elems = arr->len;
+ size_t elems = arr->size;
if (!_upb_Array_Resize(arr, elems + 1, arena)) {
return false;
diff --git a/upb/msg_internal.h b/upb/msg_internal.h
index 1155c32..ff68606 100644
--- a/upb/msg_internal.h
+++ b/upb/msg_internal.h
@@ -412,7 +412,7 @@
/* Our internal representation for repeated fields. */
typedef struct {
uintptr_t data; /* Tagged ptr: low 3 bits of ptr are lg2(elem size). */
- size_t len; /* Measured in elements. */
+ size_t size; /* The number of elements in the array. */
size_t capacity; /* Allocated storage. Measured in elements. */
uint64_t junk;
} upb_Array;
@@ -444,7 +444,7 @@
upb_Array* arr = (upb_Array*)upb_Arena_Malloc(a, bytes);
if (!arr) return NULL;
arr->data = _upb_tag_arrptr(UPB_PTR_AT(arr, arr_size, void), elem_size_lg2);
- arr->len = 0;
+ arr->size = 0;
arr->capacity = init_capacity;
return arr;
}
@@ -467,7 +467,7 @@
UPB_INLINE bool _upb_Array_Resize(upb_Array* arr, size_t size,
upb_Arena* arena) {
if (!_upb_array_reserve(arr, size, arena)) return false;
- arr->len = size;
+ arr->size = size;
return true;
}
@@ -479,7 +479,7 @@
size_t* size) {
const upb_Array* arr = *UPB_PTR_AT(msg, ofs, const upb_Array*);
if (arr) {
- if (size) *size = arr->len;
+ if (size) *size = arr->size;
return _upb_array_constptr(arr);
} else {
if (size) *size = 0;
@@ -491,7 +491,7 @@
size_t* size) {
upb_Array* arr = *UPB_PTR_AT(msg, ofs, upb_Array*);
if (arr) {
- if (size) *size = arr->len;
+ if (size) *size = arr->size;
return _upb_array_ptr(arr);
} else {
if (size) *size = 0;
@@ -507,7 +507,7 @@
if (!arr || arr->capacity < size) {
return _upb_Array_Resize_fallback(arr_ptr, size, elem_size_lg2, arena);
}
- arr->len = size;
+ arr->size = size;
return _upb_array_ptr(arr);
}
@@ -519,12 +519,12 @@
size_t elem_size = 1 << elem_size_lg2;
upb_Array* arr = *arr_ptr;
void* ptr;
- if (!arr || arr->len == arr->capacity) {
+ if (!arr || arr->size == arr->capacity) {
return _upb_Array_Append_fallback(arr_ptr, value, elem_size_lg2, arena);
}
ptr = _upb_array_ptr(arr);
- memcpy(UPB_PTR_AT(ptr, arr->len * elem_size, char), value, elem_size);
- arr->len++;
+ memcpy(UPB_PTR_AT(ptr, arr->size * elem_size, char), value, elem_size);
+ arr->size++;
return true;
}