Auto-generate files after cl/585733953

pull/14857/head
Protobuf Team Bot 1 year ago
parent f6b38b5838
commit 91cfce9936
  1. 27
      php/ext/google/protobuf/php-upb.c
  2. 27
      php/ext/google/protobuf/php-upb.h
  3. 27
      ruby/ext/google/protobuf_c/ruby-upb.c
  4. 27
      ruby/ext/google/protobuf_c/ruby-upb.h

@ -6714,6 +6714,9 @@ size_t upb_Message_ExtensionCount(const upb_Message* msg) {
} }
#include <stddef.h>
#include <stdint.h>
// Must be last. // Must be last.
@ -6739,26 +6742,27 @@ static upb_MiniTableEnum* _upb_MiniTable_AddEnumDataMember(upb_MdEnumDecoder* d,
d->enum_table = upb_Arena_Realloc(d->arena, d->enum_table, old_sz, new_sz); d->enum_table = upb_Arena_Realloc(d->arena, d->enum_table, old_sz, new_sz);
upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table); upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table);
} }
d->enum_table->data[d->enum_data_count++] = val; d->enum_table->UPB_PRIVATE(data)[d->enum_data_count++] = val;
return d->enum_table; return d->enum_table;
} }
static void upb_MiniTableEnum_BuildValue(upb_MdEnumDecoder* d, uint32_t val) { static void upb_MiniTableEnum_BuildValue(upb_MdEnumDecoder* d, uint32_t val) {
upb_MiniTableEnum* table = d->enum_table; upb_MiniTableEnum* table = d->enum_table;
d->enum_value_count++; d->enum_value_count++;
if (table->value_count || (val > 512 && d->enum_value_count < val / 32)) { if (table->UPB_PRIVATE(value_count) ||
if (table->value_count == 0) { (val > 512 && d->enum_value_count < val / 32)) {
assert(d->enum_data_count == table->mask_limit / 32); if (table->UPB_PRIVATE(value_count) == 0) {
UPB_ASSERT(d->enum_data_count == table->UPB_PRIVATE(mask_limit) / 32);
} }
table = _upb_MiniTable_AddEnumDataMember(d, val); table = _upb_MiniTable_AddEnumDataMember(d, val);
table->value_count++; table->UPB_PRIVATE(value_count)++;
} else { } else {
uint32_t new_mask_limit = ((val / 32) + 1) * 32; uint32_t new_mask_limit = ((val / 32) + 1) * 32;
while (table->mask_limit < new_mask_limit) { while (table->UPB_PRIVATE(mask_limit) < new_mask_limit) {
table = _upb_MiniTable_AddEnumDataMember(d, 0); table = _upb_MiniTable_AddEnumDataMember(d, 0);
table->mask_limit += 32; table->UPB_PRIVATE(mask_limit) += 32;
} }
table->data[val / 32] |= 1ULL << (val % 32); table->UPB_PRIVATE(data)[val / 32] |= 1ULL << (val % 32);
} }
} }
@ -6776,11 +6780,11 @@ static upb_MiniTableEnum* upb_MtDecoder_DoBuildMiniTableEnum(
upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table); upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table);
// Guarantee at least 64 bits of mask without checking mask size. // Guarantee at least 64 bits of mask without checking mask size.
d->enum_table->mask_limit = 64; d->enum_table->UPB_PRIVATE(mask_limit) = 64;
d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0); d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0);
d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0); d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0);
d->enum_table->value_count = 0; d->enum_table->UPB_PRIVATE(value_count) = 0;
const char* ptr = data; const char* ptr = data;
uint32_t base = 0; uint32_t base = 0;
@ -6808,7 +6812,8 @@ static upb_MiniTableEnum* upb_MtDecoder_DoBuildMiniTableEnum(
} }
static upb_MiniTableEnum* upb_MtDecoder_BuildMiniTableEnum( static upb_MiniTableEnum* upb_MtDecoder_BuildMiniTableEnum(
upb_MdEnumDecoder* const decoder, const char* const data, size_t const len) { upb_MdEnumDecoder* const decoder, const char* const data,
size_t const len) {
if (UPB_SETJMP(decoder->base.err) != 0) return NULL; if (UPB_SETJMP(decoder->base.err) != 0) return NULL;
return upb_MtDecoder_DoBuildMiniTableEnum(decoder, data, len); return upb_MtDecoder_DoBuildMiniTableEnum(decoder, data, len);
} }

@ -933,9 +933,9 @@ UPB_API void* upb_Array_MutableDataPtr(upb_Array* arr);
// Must be last. // Must be last.
struct upb_MiniTableEnum { struct upb_MiniTableEnum {
uint32_t mask_limit; // Limit enum value that can be tested with mask. uint32_t UPB_PRIVATE(mask_limit); // Highest that can be tested with mask.
uint32_t value_count; // Number of values after the bitfield. uint32_t UPB_PRIVATE(value_count); // Number of values after the bitfield.
uint32_t data[]; // Bitmask + enumerated values follow. uint32_t UPB_PRIVATE(data)[]; // Bitmask + enumerated values follow.
}; };
#ifdef __cplusplus #ifdef __cplusplus
@ -945,19 +945,22 @@ extern "C" {
UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableEnum_CheckValue)( UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableEnum_CheckValue)(
const struct upb_MiniTableEnum* e, uint32_t val) { const struct upb_MiniTableEnum* e, uint32_t val) {
if (UPB_LIKELY(val < 64)) { if (UPB_LIKELY(val < 64)) {
const uint64_t mask = e->data[0] | ((uint64_t)e->data[1] << 32); const uint64_t mask =
e->UPB_PRIVATE(data)[0] | ((uint64_t)e->UPB_PRIVATE(data)[1] << 32);
const uint64_t bit = 1ULL << val; const uint64_t bit = 1ULL << val;
return (mask & bit) != 0; return (mask & bit) != 0;
} }
if (UPB_LIKELY(val < e->mask_limit)) { if (UPB_LIKELY(val < e->UPB_PRIVATE(mask_limit))) {
const uint32_t mask = e->data[val / 32]; const uint32_t mask = e->UPB_PRIVATE(data)[val / 32];
const uint32_t bit = 1ULL << (val % 32); const uint32_t bit = 1ULL << (val % 32);
return (mask & bit) != 0; return (mask & bit) != 0;
} }
// OPT: binary search long lists? // OPT: binary search long lists?
const uint32_t* start = &e->data[e->mask_limit / 32]; const uint32_t* start =
const uint32_t* limit = &e->data[e->mask_limit / 32 + e->value_count]; &e->UPB_PRIVATE(data)[e->UPB_PRIVATE(mask_limit) / 32];
const uint32_t* limit = &e->UPB_PRIVATE(
data)[e->UPB_PRIVATE(mask_limit) / 32 + e->UPB_PRIVATE(value_count)];
for (const uint32_t* p = start; p < limit; p++) { for (const uint32_t* p = start; p < limit; p++) {
if (*p == val) return true; if (*p == val) return true;
} }
@ -12170,10 +12173,6 @@ bool _upb_mapsorter_pushexts(_upb_mapsorter* s,
#endif /* UPB_COLLECTIONS_INTERNAL_MAP_SORTER_H_ */ #endif /* UPB_COLLECTIONS_INTERNAL_MAP_SORTER_H_ */
#ifndef UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
#define UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
#ifndef UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_ #ifndef UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
#define UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_ #define UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
@ -12228,6 +12227,10 @@ UPB_INLINE const char* _upb_Base92_DecodeVarint(const char* ptr,
#endif // UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_ #endif // UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
#ifndef UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
#define UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
// Must be last. // Must be last.
// upb_MdDecoder: used internally for decoding MiniDescriptors for messages, // upb_MdDecoder: used internally for decoding MiniDescriptors for messages,

@ -6229,6 +6229,9 @@ size_t upb_Message_ExtensionCount(const upb_Message* msg) {
} }
#include <stddef.h>
#include <stdint.h>
// Must be last. // Must be last.
@ -6254,26 +6257,27 @@ static upb_MiniTableEnum* _upb_MiniTable_AddEnumDataMember(upb_MdEnumDecoder* d,
d->enum_table = upb_Arena_Realloc(d->arena, d->enum_table, old_sz, new_sz); d->enum_table = upb_Arena_Realloc(d->arena, d->enum_table, old_sz, new_sz);
upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table); upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table);
} }
d->enum_table->data[d->enum_data_count++] = val; d->enum_table->UPB_PRIVATE(data)[d->enum_data_count++] = val;
return d->enum_table; return d->enum_table;
} }
static void upb_MiniTableEnum_BuildValue(upb_MdEnumDecoder* d, uint32_t val) { static void upb_MiniTableEnum_BuildValue(upb_MdEnumDecoder* d, uint32_t val) {
upb_MiniTableEnum* table = d->enum_table; upb_MiniTableEnum* table = d->enum_table;
d->enum_value_count++; d->enum_value_count++;
if (table->value_count || (val > 512 && d->enum_value_count < val / 32)) { if (table->UPB_PRIVATE(value_count) ||
if (table->value_count == 0) { (val > 512 && d->enum_value_count < val / 32)) {
assert(d->enum_data_count == table->mask_limit / 32); if (table->UPB_PRIVATE(value_count) == 0) {
UPB_ASSERT(d->enum_data_count == table->UPB_PRIVATE(mask_limit) / 32);
} }
table = _upb_MiniTable_AddEnumDataMember(d, val); table = _upb_MiniTable_AddEnumDataMember(d, val);
table->value_count++; table->UPB_PRIVATE(value_count)++;
} else { } else {
uint32_t new_mask_limit = ((val / 32) + 1) * 32; uint32_t new_mask_limit = ((val / 32) + 1) * 32;
while (table->mask_limit < new_mask_limit) { while (table->UPB_PRIVATE(mask_limit) < new_mask_limit) {
table = _upb_MiniTable_AddEnumDataMember(d, 0); table = _upb_MiniTable_AddEnumDataMember(d, 0);
table->mask_limit += 32; table->UPB_PRIVATE(mask_limit) += 32;
} }
table->data[val / 32] |= 1ULL << (val % 32); table->UPB_PRIVATE(data)[val / 32] |= 1ULL << (val % 32);
} }
} }
@ -6291,11 +6295,11 @@ static upb_MiniTableEnum* upb_MtDecoder_DoBuildMiniTableEnum(
upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table); upb_MdDecoder_CheckOutOfMemory(&d->base, d->enum_table);
// Guarantee at least 64 bits of mask without checking mask size. // Guarantee at least 64 bits of mask without checking mask size.
d->enum_table->mask_limit = 64; d->enum_table->UPB_PRIVATE(mask_limit) = 64;
d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0); d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0);
d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0); d->enum_table = _upb_MiniTable_AddEnumDataMember(d, 0);
d->enum_table->value_count = 0; d->enum_table->UPB_PRIVATE(value_count) = 0;
const char* ptr = data; const char* ptr = data;
uint32_t base = 0; uint32_t base = 0;
@ -6323,7 +6327,8 @@ static upb_MiniTableEnum* upb_MtDecoder_DoBuildMiniTableEnum(
} }
static upb_MiniTableEnum* upb_MtDecoder_BuildMiniTableEnum( static upb_MiniTableEnum* upb_MtDecoder_BuildMiniTableEnum(
upb_MdEnumDecoder* const decoder, const char* const data, size_t const len) { upb_MdEnumDecoder* const decoder, const char* const data,
size_t const len) {
if (UPB_SETJMP(decoder->base.err) != 0) return NULL; if (UPB_SETJMP(decoder->base.err) != 0) return NULL;
return upb_MtDecoder_DoBuildMiniTableEnum(decoder, data, len); return upb_MtDecoder_DoBuildMiniTableEnum(decoder, data, len);
} }

@ -935,9 +935,9 @@ UPB_API void* upb_Array_MutableDataPtr(upb_Array* arr);
// Must be last. // Must be last.
struct upb_MiniTableEnum { struct upb_MiniTableEnum {
uint32_t mask_limit; // Limit enum value that can be tested with mask. uint32_t UPB_PRIVATE(mask_limit); // Highest that can be tested with mask.
uint32_t value_count; // Number of values after the bitfield. uint32_t UPB_PRIVATE(value_count); // Number of values after the bitfield.
uint32_t data[]; // Bitmask + enumerated values follow. uint32_t UPB_PRIVATE(data)[]; // Bitmask + enumerated values follow.
}; };
#ifdef __cplusplus #ifdef __cplusplus
@ -947,19 +947,22 @@ extern "C" {
UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableEnum_CheckValue)( UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableEnum_CheckValue)(
const struct upb_MiniTableEnum* e, uint32_t val) { const struct upb_MiniTableEnum* e, uint32_t val) {
if (UPB_LIKELY(val < 64)) { if (UPB_LIKELY(val < 64)) {
const uint64_t mask = e->data[0] | ((uint64_t)e->data[1] << 32); const uint64_t mask =
e->UPB_PRIVATE(data)[0] | ((uint64_t)e->UPB_PRIVATE(data)[1] << 32);
const uint64_t bit = 1ULL << val; const uint64_t bit = 1ULL << val;
return (mask & bit) != 0; return (mask & bit) != 0;
} }
if (UPB_LIKELY(val < e->mask_limit)) { if (UPB_LIKELY(val < e->UPB_PRIVATE(mask_limit))) {
const uint32_t mask = e->data[val / 32]; const uint32_t mask = e->UPB_PRIVATE(data)[val / 32];
const uint32_t bit = 1ULL << (val % 32); const uint32_t bit = 1ULL << (val % 32);
return (mask & bit) != 0; return (mask & bit) != 0;
} }
// OPT: binary search long lists? // OPT: binary search long lists?
const uint32_t* start = &e->data[e->mask_limit / 32]; const uint32_t* start =
const uint32_t* limit = &e->data[e->mask_limit / 32 + e->value_count]; &e->UPB_PRIVATE(data)[e->UPB_PRIVATE(mask_limit) / 32];
const uint32_t* limit = &e->UPB_PRIVATE(
data)[e->UPB_PRIVATE(mask_limit) / 32 + e->UPB_PRIVATE(value_count)];
for (const uint32_t* p = start; p < limit; p++) { for (const uint32_t* p = start; p < limit; p++) {
if (*p == val) return true; if (*p == val) return true;
} }
@ -11942,10 +11945,6 @@ bool _upb_mapsorter_pushexts(_upb_mapsorter* s,
#endif /* UPB_COLLECTIONS_INTERNAL_MAP_SORTER_H_ */ #endif /* UPB_COLLECTIONS_INTERNAL_MAP_SORTER_H_ */
#ifndef UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
#define UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
#ifndef UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_ #ifndef UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
#define UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_ #define UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
@ -12000,6 +11999,10 @@ UPB_INLINE const char* _upb_Base92_DecodeVarint(const char* ptr,
#endif // UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_ #endif // UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
#ifndef UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
#define UPB_MINI_DESCRIPTOR_INTERNAL_DECODER_H_
// Must be last. // Must be last.
// upb_MdDecoder: used internally for decoding MiniDescriptors for messages, // upb_MdDecoder: used internally for decoding MiniDescriptors for messages,

Loading…
Cancel
Save