upb: merge ":collections" into ":message"

PiperOrigin-RevId: 569594353
pull/14258/head
Eric Salo 2 years ago committed by Copybara-Service
parent e42c1780a0
commit 07fba1da07
  1. 2
      lua/msg.c
  2. 2
      protos/BUILD
  3. 2
      protos/repeated_field.h
  4. 2
      protos/repeated_field_iterator.h
  5. 2
      python/BUILD
  6. 2
      python/convert.c
  7. 2
      python/map.c
  8. 29
      upb/BUILD
  9. 73
      upb/collections/BUILD
  10. 97
      upb/collections/array.h
  11. 146
      upb/collections/map.h
  12. 6
      upb/generated_code_support.h
  13. 2
      upb/json/BUILD
  14. 2
      upb/json/decode.c
  15. 2
      upb/json/encode.c
  16. 50
      upb/message/BUILD
  17. 6
      upb/message/accessors.c
  18. 8
      upb/message/accessors.h
  19. 2
      upb/message/accessors_test.cc
  20. 2
      upb/message/array.c
  21. 98
      upb/message/array.h
  22. 8
      upb/message/array_split64.h
  23. 2
      upb/message/array_test.cc
  24. 4
      upb/message/copy.h
  25. 2
      upb/message/copy_test.cc
  26. 2
      upb/message/internal/accessors.h
  27. 8
      upb/message/internal/array.h
  28. 2
      upb/message/internal/map.h
  29. 0
      upb/message/internal/map_entry.h
  30. 4
      upb/message/internal/map_sorter.h
  31. 4
      upb/message/map.c
  32. 147
      upb/message/map.h
  33. 8
      upb/message/map_gencode_util.h
  34. 2
      upb/message/map_sorter.c
  35. 2
      upb/message/map_test.cc
  36. 6
      upb/message/promote.c
  37. 4
      upb/message/promote.h
  38. 2
      upb/message/promote_test.cc
  39. 2
      upb/message/value.h
  40. 2
      upb/reflection/message.c
  41. 2
      upb/reflection/message.h
  42. 2
      upb/test/BUILD
  43. 2
      upb/test/test_generated_code.cc
  44. 4
      upb/text/BUILD
  45. 4
      upb/text/encode.c
  46. 6
      upb/upb_so.c
  47. 2
      upb/util/BUILD
  48. 4
      upb/util/required_fields.c
  49. 2
      upb/wire/BUILD
  50. 10
      upb/wire/decode.c
  51. 3
      upb/wire/decode_fast.c
  52. 10
      upb/wire/encode.c

@ -40,9 +40,9 @@
#include "lauxlib.h"
#include "lua/upb.h"
#include "upb/collections/map.h"
#include "upb/json/decode.h"
#include "upb/json/encode.h"
#include "upb/message/map.h"
#include "upb/message/message.h"
#include "upb/port/def.inc"
#include "upb/reflection/message.h"

@ -32,8 +32,8 @@ cc_library(
":protos",
":protos_traits",
"//upb:base",
"//upb:collections",
"//upb:mem",
"//upb:message",
"//upb:message_copy",
"//upb:message_types",
"//upb:port",

@ -40,8 +40,8 @@
#include "protos/protos_traits.h"
#include "protos/repeated_field_iterator.h"
#include "upb/base/string_view.h"
#include "upb/collections/array.h"
#include "upb/mem/arena.h"
#include "upb/message/array.h"
#include "upb/message/copy.h"
#include "upb/message/types.h"

@ -38,8 +38,8 @@
#include "absl/strings/string_view.h"
#include "protos/protos.h"
#include "upb/base/string_view.h"
#include "upb/collections/array.h"
#include "upb/mem/arena.h"
#include "upb/message/array.h"
#include "upb/message/copy.h"
// Must be last:

@ -190,10 +190,10 @@ py_extension(
],
target_compatible_with = select(_message_target_compatible_with),
deps = [
"//upb:collections",
"//upb:descriptor_upb_proto_reflection",
"//upb:eps_copy_input_stream",
"//upb:hash",
"//upb:message",
"//upb:message_copy",
"//upb:port",
"//upb:reflection",

@ -32,7 +32,7 @@
#include "python/message.h"
#include "python/protobuf.h"
#include "upb/collections/map.h"
#include "upb/message/map.h"
#include "upb/reflection/message.h"
#include "upb/util/compare.h"

@ -33,7 +33,7 @@
#include "python/convert.h"
#include "python/message.h"
#include "python/protobuf.h"
#include "upb/collections/map.h"
#include "upb/message/map.h"
#include "upb/reflection/def.h"
// -----------------------------------------------------------------------------

@ -81,14 +81,13 @@ package_group(
packages = ["//..."],
)
# This is a stub library to keep gRPC happy. Do not use it for any reason,
# use the smaller targets below instead.
cc_library(
name = "upb",
hdrs = [
"upb.hpp",
],
copts = UPB_DEFAULT_COPTS,
deprecation = "use upb:base and/or upb:mem instead",
visibility = ["//visibility:public"],
deps = [
":base",
@ -112,8 +111,6 @@ cc_library(
visibility = ["//visibility:public"],
deps = [
":base",
":collections",
":collections_internal",
":mem",
":message",
":message_accessors",
@ -200,8 +197,8 @@ bootstrap_cc_library(
visibility = ["//visibility:public"],
deps = [
":base",
":collections",
":mem",
":message",
":message_types",
":message_value",
":port",
@ -269,7 +266,6 @@ bootstrap_cc_library(
visibility = ["//visibility:public"],
deps = [
":base",
":collections",
":hash",
":mem",
":message",
@ -301,18 +297,7 @@ alias(
alias(
name = "collections",
actual = "//upb/collections",
visibility = ["//visibility:public"],
)
alias(
name = "collections_internal",
actual = "//upb/collections:internal",
visibility = ["//visibility:public"],
)
alias(
name = "collections_split64",
actual = "//upb/collections:split64",
deprecation = "use upb:message instead",
visibility = ["//visibility:public"],
)
@ -516,8 +501,6 @@ cc_binary(
linkstatic = 1,
visibility = ["//visibility:public"],
deps = [
":collections",
":collections_split64",
":mem",
":message",
":message_accessors",
@ -541,8 +524,6 @@ upb_amalgamation(
libs = [
":base",
":base_internal",
":collections",
":collections_internal",
":descriptor_upb_minitable_proto",
":descriptor_upb_proto",
":eps_copy_input_stream",
@ -591,8 +572,6 @@ upb_amalgamation(
libs = [
":base",
":base_internal",
":collections",
":collections_internal",
":descriptor_upb_minitable_proto",
":descriptor_upb_proto_reflection",
":descriptor_upb_proto",
@ -644,8 +623,6 @@ upb_amalgamation(
libs = [
":base",
":base_internal",
":collections",
":collections_internal",
":descriptor_upb_minitable_proto",
":descriptor_upb_proto",
":eps_copy_input_stream",

@ -16,77 +16,7 @@ cc_library(
copts = UPB_DEFAULT_COPTS,
visibility = ["//visibility:public"],
deps = [
":internal",
"//upb:base",
"//upb:mem",
"//upb:message_value",
"//upb:port",
],
)
cc_library(
name = "internal",
srcs = [
"array.c",
"array.h",
"map.c",
"map.h",
"map_sorter.c",
],
hdrs = [
"internal/array.h",
"internal/map.h",
"internal/map_entry.h",
"internal/map_sorter.h",
"map_gencode_util.h",
],
copts = UPB_DEFAULT_COPTS,
visibility = ["//visibility:public"],
deps = [
"//upb:base",
"//upb:base_internal",
"//upb:hash",
"//upb:mem",
"//upb:message_internal",
"//upb:message_internal_types",
"//upb:message_types",
"//upb:message_value",
"//upb:port",
],
)
cc_library(
name = "split64",
hdrs = [
"array_split64.h",
],
copts = UPB_DEFAULT_COPTS,
visibility = ["//visibility:public"],
deps = [
":collections",
"//upb:port",
],
)
cc_test(
name = "array_test",
srcs = ["array_test.cc"],
deps = [
":collections",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:mem",
],
)
cc_test(
name = "map_test",
srcs = ["map_test.cc"],
deps = [
":collections",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:mem",
"//upb:message",
],
)
@ -95,7 +25,6 @@ filegroup(
name = "source_files",
srcs = glob(
[
"**/*.c",
"**/*.h",
],
),

@ -1,98 +1,17 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2023 Google LLC. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
// Temporary hack to fix gRPC. Do not use.
#ifndef UPB_COLLECTIONS_ARRAY_H_
#define UPB_COLLECTIONS_ARRAY_H_
#include <stddef.h>
#include "upb/base/descriptor_constants.h"
#include "upb/mem/arena.h"
#include "upb/message/value.h" // IWYU pragma: export
// Must be last.
#include "upb/port/def.inc"
typedef struct upb_Array upb_Array;
#ifdef __cplusplus
extern "C" {
#endif
// Creates a new array on the given arena that holds elements of this type.
UPB_API upb_Array* upb_Array_New(upb_Arena* a, upb_CType type);
// Returns the number of elements in the array.
UPB_API size_t upb_Array_Size(const upb_Array* arr);
// Returns the given element, which must be within the array's current size.
UPB_API upb_MessageValue upb_Array_Get(const upb_Array* arr, size_t i);
// Sets the given element, which must be within the array's current size.
UPB_API void upb_Array_Set(upb_Array* arr, size_t i, upb_MessageValue val);
// Appends an element to the array. Returns false on allocation failure.
UPB_API bool upb_Array_Append(upb_Array* array, upb_MessageValue val,
upb_Arena* arena);
// Moves elements within the array using memmove().
// Like memmove(), the source and destination elements may be overlapping.
UPB_API void upb_Array_Move(upb_Array* array, size_t dst_idx, size_t src_idx,
size_t count);
// Inserts one or more empty elements into the array.
// Existing elements are shifted right.
// The new elements have undefined state and must be set with `upb_Array_Set()`.
// REQUIRES: `i <= upb_Array_Size(arr)`
UPB_API bool upb_Array_Insert(upb_Array* array, size_t i, size_t count,
upb_Arena* arena);
// Deletes one or more elements from the array.
// Existing elements are shifted left.
// REQUIRES: `i + count <= upb_Array_Size(arr)`
UPB_API void upb_Array_Delete(upb_Array* array, size_t i, size_t count);
// Changes the size of a vector. New elements are initialized to NULL/0.
// Returns false on allocation failure.
UPB_API bool upb_Array_Resize(upb_Array* array, size_t size, upb_Arena* arena);
// Returns pointer to array data.
UPB_API const void* upb_Array_DataPtr(const upb_Array* arr);
// Returns mutable pointer to array data.
UPB_API void* upb_Array_MutableDataPtr(upb_Array* arr);
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "upb/port/undef.inc"
// IWYU pragma: begin_exports
#include "upb/message/array.h"
// IWYU pragma: end_exports
#endif /* UPB_COLLECTIONS_ARRAY_H_ */

@ -1,147 +1,17 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2023 Google LLC. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
// Temporary hack to fix gRPC. Do not use.
#ifndef UPB_COLLECTIONS_MAP_H_
#define UPB_COLLECTIONS_MAP_H_
#include <stddef.h>
#include "upb/base/descriptor_constants.h"
#include "upb/mem/arena.h"
#include "upb/message/value.h" // IWYU pragma: export
// Must be last.
#include "upb/port/def.inc"
typedef struct upb_Map upb_Map;
#ifdef __cplusplus
extern "C" {
#endif
// Creates a new map on the given arena with the given key/value size.
UPB_API upb_Map* upb_Map_New(upb_Arena* a, upb_CType key_type,
upb_CType value_type);
// Returns the number of entries in the map.
UPB_API size_t upb_Map_Size(const upb_Map* map);
// Stores a value for the given key into |*val| (or the zero value if the key is
// not present). Returns whether the key was present. The |val| pointer may be
// NULL, in which case the function tests whether the given key is present.
UPB_API bool upb_Map_Get(const upb_Map* map, upb_MessageValue key,
upb_MessageValue* val);
// Removes all entries in the map.
UPB_API void upb_Map_Clear(upb_Map* map);
typedef enum {
kUpb_MapInsertStatus_Inserted = 0,
kUpb_MapInsertStatus_Replaced = 1,
kUpb_MapInsertStatus_OutOfMemory = 2,
} upb_MapInsertStatus;
// Sets the given key to the given value, returning whether the key was inserted
// or replaced. If the key was inserted, then any existing iterators will be
// invalidated.
UPB_API upb_MapInsertStatus upb_Map_Insert(upb_Map* map, upb_MessageValue key,
upb_MessageValue val,
upb_Arena* arena);
// Sets the given key to the given value. Returns false if memory allocation
// failed. If the key is newly inserted, then any existing iterators will be
// invalidated.
UPB_API_INLINE bool upb_Map_Set(upb_Map* map, upb_MessageValue key,
upb_MessageValue val, upb_Arena* arena) {
return upb_Map_Insert(map, key, val, arena) !=
kUpb_MapInsertStatus_OutOfMemory;
}
// Deletes this key from the table. Returns true if the key was present.
// If present and |val| is non-NULL, stores the deleted value.
UPB_API bool upb_Map_Delete(upb_Map* map, upb_MessageValue key,
upb_MessageValue* val);
// (DEPRECATED and going away soon. Do not use.)
UPB_INLINE bool upb_Map_Delete2(upb_Map* map, upb_MessageValue key,
upb_MessageValue* val) {
return upb_Map_Delete(map, key, val);
}
// Map iteration:
//
// size_t iter = kUpb_Map_Begin;
// upb_MessageValue key, val;
// while (upb_Map_Next(map, &key, &val, &iter)) {
// ...
// }
#define kUpb_Map_Begin ((size_t)-1)
// Advances to the next entry. Returns false if no more entries are present.
// Otherwise returns true and populates both *key and *value.
UPB_API bool upb_Map_Next(const upb_Map* map, upb_MessageValue* key,
upb_MessageValue* val, size_t* iter);
// Sets the value for the entry pointed to by iter.
// WARNING: this does not currently work for string values!
UPB_API void upb_Map_SetEntryValue(upb_Map* map, size_t iter,
upb_MessageValue val);
// DEPRECATED iterator, slated for removal.
/* Map iteration:
*
* size_t iter = kUpb_Map_Begin;
* while (upb_MapIterator_Next(map, &iter)) {
* upb_MessageValue key = upb_MapIterator_Key(map, iter);
* upb_MessageValue val = upb_MapIterator_Value(map, iter);
* }
*/
// Advances to the next entry. Returns false if no more entries are present.
UPB_API bool upb_MapIterator_Next(const upb_Map* map, size_t* iter);
// Returns true if the iterator still points to a valid entry, or false if the
// iterator is past the last element. It is an error to call this function with
// kUpb_Map_Begin (you must call next() at least once first).
UPB_API bool upb_MapIterator_Done(const upb_Map* map, size_t iter);
// Returns the key and value for this entry of the map.
UPB_API upb_MessageValue upb_MapIterator_Key(const upb_Map* map, size_t iter);
UPB_API upb_MessageValue upb_MapIterator_Value(const upb_Map* map, size_t iter);
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "upb/port/undef.inc"
// IWYU pragma: begin_exports
#include "upb/message/map.h"
// IWYU pragma: end_exports
#endif /* UPB_COLLECTIONS_MAP_H_ */

@ -9,13 +9,13 @@
#define UPB_GENERATED_CODE_SUPPORT_H_
// IWYU pragma: begin_exports
#include "upb/collections/array.h"
#include "upb/collections/internal/array.h"
#include "upb/collections/map_gencode_util.h"
#include "upb/message/accessors.h"
#include "upb/message/array.h"
#include "upb/message/internal/accessors.h"
#include "upb/message/internal/array.h"
#include "upb/message/internal/extension.h"
#include "upb/message/internal/message.h"
#include "upb/message/map_gencode_util.h"
#include "upb/message/message.h"
#include "upb/mini_descriptor/decode.h"
#include "upb/mini_table/enum.h"

@ -20,8 +20,8 @@ cc_library(
copts = UPB_DEFAULT_COPTS,
visibility = ["//visibility:public"],
deps = [
"//upb:collections",
"//upb:lex",
"//upb:message",
"//upb:port",
"//upb:reflection",
"//upb:wire",

@ -38,9 +38,9 @@
#include <stdlib.h>
#include <string.h>
#include "upb/collections/map.h"
#include "upb/lex/atoi.h"
#include "upb/lex/unicode.h"
#include "upb/message/map.h"
#include "upb/reflection/message.h"
#include "upb/wire/encode.h"

@ -37,8 +37,8 @@
#include <stdarg.h>
#include <string.h>
#include "upb/collections/map.h"
#include "upb/lex/round_trip.h"
#include "upb/message/map.h"
#include "upb/port/vsnprintf_compat.h"
#include "upb/reflection/message.h"
#include "upb/wire/decode.h"

@ -27,8 +27,6 @@ cc_library(
":internal",
":message",
"//upb:base",
"//upb:collections",
"//upb:collections_internal",
"//upb:eps_copy_input_stream",
"//upb:mini_table",
"//upb:mini_table_internal",
@ -47,7 +45,6 @@ cc_library(
visibility = ["//visibility:public"],
deps = [
":internal",
"//upb:collections_internal",
"//upb:mini_table_internal",
"//upb:port",
],
@ -69,7 +66,6 @@ cc_library(
":message",
":types",
"//upb:base",
"//upb:collections",
"//upb:mem",
"//upb:mini_table",
"//upb:mini_table_internal",
@ -80,20 +76,32 @@ cc_library(
cc_library(
name = "internal",
srcs = [
"array.c",
"array.h",
"map.c",
"map.h",
"map_sorter.c",
"message.c",
"message.h",
],
hdrs = [
"internal/array.h",
"internal/extension.h",
"internal/map.h",
"internal/map_entry.h",
"internal/map_sorter.h",
"internal/message.h",
"map_gencode_util.h",
],
copts = UPB_DEFAULT_COPTS,
visibility = ["//visibility:public"],
deps = [
":internal_types",
":types",
":value",
"//upb:base",
"//upb:base_internal",
"//upb:hash",
"//upb:mem",
"//upb:mini_table",
"//upb:port",
@ -114,6 +122,8 @@ cc_library(
cc_library(
name = "message",
hdrs = [
"array.h",
"map.h",
"message.h",
],
copts = UPB_DEFAULT_COPTS,
@ -121,6 +131,7 @@ cc_library(
deps = [
":internal",
":types",
":value",
"//upb:base",
"//upb:mem",
"//upb:mini_table",
@ -145,8 +156,6 @@ cc_library(
":message",
":types",
"//upb:base",
"//upb:collections",
"//upb:collections_internal",
"//upb:eps_copy_input_stream",
"//upb:mem",
"//upb:message_tagged_ptr",
@ -163,11 +172,13 @@ cc_library(
name = "split64",
hdrs = [
"accessors_split64.h",
"array_split64.h",
],
copts = UPB_DEFAULT_COPTS,
visibility = ["//visibility:public"],
deps = [
":accessors",
":message",
"//upb:port",
],
)
@ -231,10 +242,10 @@ cc_test(
srcs = ["accessors_test.cc"],
deps = [
":accessors",
":message",
"//:protobuf",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:collections",
"//upb:mini_descriptor",
"//upb:mini_descriptor_internal",
"//upb:mini_table",
@ -247,6 +258,17 @@ cc_test(
],
)
cc_test(
name = "array_test",
srcs = ["array_test.cc"],
deps = [
":message",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:mem",
],
)
cc_test(
name = "copy_test",
srcs = ["copy_test.cc"],
@ -258,7 +280,6 @@ cc_test(
"//:protobuf",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:collections",
"//upb:mem",
"//upb:mini_table",
"//upb:wire",
@ -269,17 +290,28 @@ cc_test(
],
)
cc_test(
name = "map_test",
srcs = ["map_test.cc"],
deps = [
":message",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:mem",
],
)
cc_test(
name = "promote_test",
srcs = ["promote_test.cc"],
deps = [
":accessors",
":copy",
":message",
":promote",
"//:protobuf",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:collections",
"//upb:mem",
"//upb:mini_descriptor_internal",
"//upb:mini_table",

@ -7,9 +7,9 @@
#include "upb/message/accessors.h"
#include "upb/collections/array.h"
#include "upb/collections/internal/array.h"
#include "upb/collections/map.h"
#include "upb/message/array.h"
#include "upb/message/internal/array.h"
#include "upb/message/map.h"
#include "upb/message/message.h"
#include "upb/mini_table/field.h"
#include "upb/wire/decode.h"

@ -9,12 +9,12 @@
#define UPB_MESSAGE_ACCESSORS_H_
#include "upb/base/descriptor_constants.h"
#include "upb/collections/array.h"
#include "upb/collections/internal/array.h"
#include "upb/collections/internal/map.h"
#include "upb/collections/map.h"
#include "upb/message/array.h"
#include "upb/message/internal/accessors.h"
#include "upb/message/internal/array.h"
#include "upb/message/internal/map.h"
#include "upb/message/internal/message.h"
#include "upb/message/map.h"
#include "upb/mini_table/enum.h"
#include "upb/mini_table/field.h"

@ -19,7 +19,7 @@
#include "google/protobuf/test_messages_proto2.upb.h"
#include "google/protobuf/test_messages_proto3.upb.h"
#include "upb/base/string_view.h"
#include "upb/collections/array.h"
#include "upb/message/array.h"
#include "upb/mini_descriptor/decode.h"
#include "upb/mini_descriptor/internal/encode.hpp"
#include "upb/mini_descriptor/internal/modifiers.h"

@ -28,7 +28,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "upb/collections/internal/array.h"
#include "upb/message/internal/array.h"
#include <string.h>

@ -0,0 +1,98 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2023 Google LLC. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef UPB_MESSAGE_ARRAY_H_
#define UPB_MESSAGE_ARRAY_H_
#include <stddef.h>
#include "upb/base/descriptor_constants.h"
#include "upb/mem/arena.h"
#include "upb/message/value.h" // IWYU pragma: export
// Must be last.
#include "upb/port/def.inc"
typedef struct upb_Array upb_Array;
#ifdef __cplusplus
extern "C" {
#endif
// Creates a new array on the given arena that holds elements of this type.
UPB_API upb_Array* upb_Array_New(upb_Arena* a, upb_CType type);
// Returns the number of elements in the array.
UPB_API size_t upb_Array_Size(const upb_Array* arr);
// Returns the given element, which must be within the array's current size.
UPB_API upb_MessageValue upb_Array_Get(const upb_Array* arr, size_t i);
// Sets the given element, which must be within the array's current size.
UPB_API void upb_Array_Set(upb_Array* arr, size_t i, upb_MessageValue val);
// Appends an element to the array. Returns false on allocation failure.
UPB_API bool upb_Array_Append(upb_Array* array, upb_MessageValue val,
upb_Arena* arena);
// Moves elements within the array using memmove().
// Like memmove(), the source and destination elements may be overlapping.
UPB_API void upb_Array_Move(upb_Array* array, size_t dst_idx, size_t src_idx,
size_t count);
// Inserts one or more empty elements into the array.
// Existing elements are shifted right.
// The new elements have undefined state and must be set with `upb_Array_Set()`.
// REQUIRES: `i <= upb_Array_Size(arr)`
UPB_API bool upb_Array_Insert(upb_Array* array, size_t i, size_t count,
upb_Arena* arena);
// Deletes one or more elements from the array.
// Existing elements are shifted left.
// REQUIRES: `i + count <= upb_Array_Size(arr)`
UPB_API void upb_Array_Delete(upb_Array* array, size_t i, size_t count);
// Changes the size of a vector. New elements are initialized to NULL/0.
// Returns false on allocation failure.
UPB_API bool upb_Array_Resize(upb_Array* array, size_t size, upb_Arena* arena);
// Returns pointer to array data.
UPB_API const void* upb_Array_DataPtr(const upb_Array* arr);
// Returns mutable pointer to array data.
UPB_API void* upb_Array_MutableDataPtr(upb_Array* arr);
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "upb/port/undef.inc"
#endif /* UPB_MESSAGE_ARRAY_H_ */

@ -28,10 +28,10 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef UPB_COLLECTIONS_ARRAY_SPLIT64_H_
#define UPB_COLLECTIONS_ARRAY_SPLIT64_H_
#ifndef UPB_MESSAGE_ARRAY_SPLIT64_H_
#define UPB_MESSAGE_ARRAY_SPLIT64_H_
#include "upb/collections/array.h"
#include "upb/message/array.h"
// Must be last.
#include "upb/port/def.inc"
@ -90,4 +90,4 @@ UPB_API_INLINE bool upb_Array_AppendUInt64Split(upb_Array* array, uint32_t hi,
#include "upb/port/undef.inc"
#endif /* UPB_COLLECTIONS_ARRAY_SPLIT64_H_ */
#endif /* UPB_MESSAGE_ARRAY_SPLIT64_H_ */

@ -28,7 +28,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "upb/collections/array.h"
#include "upb/message/array.h"
#include <gtest/gtest.h>
#include "upb/base/status.hpp"

@ -8,9 +8,9 @@
#ifndef UPB_MESSAGE_COPY_H_
#define UPB_MESSAGE_COPY_H_
#include "upb/collections/array.h"
#include "upb/collections/map.h"
#include "upb/mem/arena.h"
#include "upb/message/array.h"
#include "upb/message/map.h"
#include "upb/mini_table/message.h"
// Must be last.

@ -22,10 +22,10 @@
#include <gtest/gtest.h>
#include "google/protobuf/test_messages_proto2.upb.h"
#include "upb/base/string_view.h"
#include "upb/collections/map.h"
#include "upb/mem/arena.h"
#include "upb/message/accessors.h"
#include "upb/message/internal/message.h"
#include "upb/message/map.h"
#include "upb/message/message.h"
#include "upb/mini_table/message.h"
#include "upb/wire/encode.h"

@ -8,8 +8,8 @@
#ifndef UPB_MESSAGE_INTERNAL_ACCESSORS_H_
#define UPB_MESSAGE_INTERNAL_ACCESSORS_H_
#include "upb/collections/internal/map.h"
#include "upb/message/internal/extension.h"
#include "upb/message/internal/map.h"
#include "upb/message/internal/message.h"
#include "upb/mini_table/internal/field.h"

@ -28,12 +28,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef UPB_COLLECTIONS_INTERNAL_ARRAY_H_
#define UPB_COLLECTIONS_INTERNAL_ARRAY_H_
#ifndef UPB_MESSAGE_INTERNAL_ARRAY_H_
#define UPB_MESSAGE_INTERNAL_ARRAY_H_
#include <string.h>
#include "upb/collections/array.h"
#include "upb/message/array.h"
// Must be last.
#include "upb/port/def.inc"
@ -135,4 +135,4 @@ UPB_INLINE void _upb_array_detach(const void* msg, size_t ofs) {
#include "upb/port/undef.inc"
#endif /* UPB_COLLECTIONS_INTERNAL_ARRAY_H_ */
#endif /* UPB_MESSAGE_INTERNAL_ARRAY_H_ */

@ -34,9 +34,9 @@
#define UPB_COLLECTIONS_INTERNAL_MAP_H_
#include "upb/base/string_view.h"
#include "upb/collections/map.h"
#include "upb/hash/str_table.h"
#include "upb/mem/arena.h"
#include "upb/message/map.h"
// Must be last.
#include "upb/port/def.inc"

@ -35,9 +35,9 @@
#include <stdlib.h>
#include "upb/collections/internal/map.h"
#include "upb/collections/internal/map_entry.h"
#include "upb/message/internal/extension.h"
#include "upb/message/internal/map.h"
#include "upb/message/internal/map_entry.h"
// Must be last.
#include "upb/port/def.inc"

@ -28,12 +28,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "upb/collections/map.h"
#include "upb/message/map.h"
#include <string.h>
#include "upb/collections/internal/map.h"
#include "upb/mem/arena.h"
#include "upb/message/internal/map.h"
// Must be last.
#include "upb/port/def.inc"

@ -0,0 +1,147 @@
// Protocol Buffers - Google's data interchange format
// Copyright 2023 Google LLC. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef UPB_MESSAGE_MAP_H_
#define UPB_MESSAGE_MAP_H_
#include <stddef.h>
#include "upb/base/descriptor_constants.h"
#include "upb/mem/arena.h"
#include "upb/message/value.h" // IWYU pragma: export
// Must be last.
#include "upb/port/def.inc"
typedef struct upb_Map upb_Map;
#ifdef __cplusplus
extern "C" {
#endif
// Creates a new map on the given arena with the given key/value size.
UPB_API upb_Map* upb_Map_New(upb_Arena* a, upb_CType key_type,
upb_CType value_type);
// Returns the number of entries in the map.
UPB_API size_t upb_Map_Size(const upb_Map* map);
// Stores a value for the given key into |*val| (or the zero value if the key is
// not present). Returns whether the key was present. The |val| pointer may be
// NULL, in which case the function tests whether the given key is present.
UPB_API bool upb_Map_Get(const upb_Map* map, upb_MessageValue key,
upb_MessageValue* val);
// Removes all entries in the map.
UPB_API void upb_Map_Clear(upb_Map* map);
typedef enum {
kUpb_MapInsertStatus_Inserted = 0,
kUpb_MapInsertStatus_Replaced = 1,
kUpb_MapInsertStatus_OutOfMemory = 2,
} upb_MapInsertStatus;
// Sets the given key to the given value, returning whether the key was inserted
// or replaced. If the key was inserted, then any existing iterators will be
// invalidated.
UPB_API upb_MapInsertStatus upb_Map_Insert(upb_Map* map, upb_MessageValue key,
upb_MessageValue val,
upb_Arena* arena);
// Sets the given key to the given value. Returns false if memory allocation
// failed. If the key is newly inserted, then any existing iterators will be
// invalidated.
UPB_API_INLINE bool upb_Map_Set(upb_Map* map, upb_MessageValue key,
upb_MessageValue val, upb_Arena* arena) {
return upb_Map_Insert(map, key, val, arena) !=
kUpb_MapInsertStatus_OutOfMemory;
}
// Deletes this key from the table. Returns true if the key was present.
// If present and |val| is non-NULL, stores the deleted value.
UPB_API bool upb_Map_Delete(upb_Map* map, upb_MessageValue key,
upb_MessageValue* val);
// (DEPRECATED and going away soon. Do not use.)
UPB_INLINE bool upb_Map_Delete2(upb_Map* map, upb_MessageValue key,
upb_MessageValue* val) {
return upb_Map_Delete(map, key, val);
}
// Map iteration:
//
// size_t iter = kUpb_Map_Begin;
// upb_MessageValue key, val;
// while (upb_Map_Next(map, &key, &val, &iter)) {
// ...
// }
#define kUpb_Map_Begin ((size_t)-1)
// Advances to the next entry. Returns false if no more entries are present.
// Otherwise returns true and populates both *key and *value.
UPB_API bool upb_Map_Next(const upb_Map* map, upb_MessageValue* key,
upb_MessageValue* val, size_t* iter);
// Sets the value for the entry pointed to by iter.
// WARNING: this does not currently work for string values!
UPB_API void upb_Map_SetEntryValue(upb_Map* map, size_t iter,
upb_MessageValue val);
// DEPRECATED iterator, slated for removal.
/* Map iteration:
*
* size_t iter = kUpb_Map_Begin;
* while (upb_MapIterator_Next(map, &iter)) {
* upb_MessageValue key = upb_MapIterator_Key(map, iter);
* upb_MessageValue val = upb_MapIterator_Value(map, iter);
* }
*/
// Advances to the next entry. Returns false if no more entries are present.
UPB_API bool upb_MapIterator_Next(const upb_Map* map, size_t* iter);
// Returns true if the iterator still points to a valid entry, or false if the
// iterator is past the last element. It is an error to call this function with
// kUpb_Map_Begin (you must call next() at least once first).
UPB_API bool upb_MapIterator_Done(const upb_Map* map, size_t iter);
// Returns the key and value for this entry of the map.
UPB_API upb_MessageValue upb_MapIterator_Key(const upb_Map* map, size_t iter);
UPB_API upb_MessageValue upb_MapIterator_Value(const upb_Map* map, size_t iter);
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "upb/port/undef.inc"
#endif /* UPB_MESSAGE_MAP_H_ */

@ -30,10 +30,10 @@
// These functions are only used by generated code.
#ifndef UPB_COLLECTIONS_MAP_GENCODE_UTIL_H_
#define UPB_COLLECTIONS_MAP_GENCODE_UTIL_H_
#ifndef UPB_MESSAGE_MAP_GENCODE_UTIL_H_
#define UPB_MESSAGE_MAP_GENCODE_UTIL_H_
#include "upb/collections/internal/map.h"
#include "upb/message/internal/map.h"
// Must be last.
#include "upb/port/def.inc"
@ -78,4 +78,4 @@ UPB_INLINE void _upb_msg_map_set_value(void* msg, const void* val,
#include "upb/port/undef.inc"
#endif /* UPB_COLLECTIONS_MAP_GENCODE_UTIL_H_ */
#endif /* UPB_MESSAGE_MAP_GENCODE_UTIL_H_ */

@ -28,7 +28,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "upb/collections/internal/map_sorter.h"
#include "upb/message/internal/map_sorter.h"
#include "upb/base/internal/log2.h"

@ -28,7 +28,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "upb/collections/map.h"
#include "upb/message/map.h"
#include <gtest/gtest.h>
#include "upb/base/string_view.h"

@ -12,14 +12,14 @@
#include <string.h>
#include "upb/base/descriptor_constants.h"
#include "upb/collections/array.h"
#include "upb/collections/internal/array.h"
#include "upb/collections/map.h"
#include "upb/mem/arena.h"
#include "upb/message/accessors.h"
#include "upb/message/array.h"
#include "upb/message/internal/accessors.h"
#include "upb/message/internal/array.h"
#include "upb/message/internal/extension.h"
#include "upb/message/internal/message.h"
#include "upb/message/map.h"
#include "upb/message/message.h"
#include "upb/message/tagged_ptr.h"
#include "upb/mini_table/extension.h"

@ -8,9 +8,9 @@
#ifndef UPB_MESSAGE_PROMOTE_H_
#define UPB_MESSAGE_PROMOTE_H_
#include "upb/collections/array.h"
#include "upb/collections/map.h"
#include "upb/message/array.h"
#include "upb/message/internal/extension.h"
#include "upb/message/map.h"
#include "upb/wire/decode.h"
// Must be last.

@ -19,9 +19,9 @@
#include "google/protobuf/test_messages_proto2.upb.h"
#include "google/protobuf/test_messages_proto3.upb.h"
#include "upb/base/string_view.h"
#include "upb/collections/array.h"
#include "upb/mem/arena.hpp"
#include "upb/message/accessors.h"
#include "upb/message/array.h"
#include "upb/message/copy.h"
#include "upb/mini_descriptor/internal/encode.hpp"
#include "upb/mini_descriptor/internal/modifiers.h"

@ -6,7 +6,7 @@
// https://developers.google.com/open-source/licenses/bsd
// Users should include array.h or map.h instead.
// IWYU pragma: private, include "upb/collections/array.h"
// IWYU pragma: private, include "upb/message/array.h"
#ifndef UPB_MESSAGE_VALUE_H_
#define UPB_MESSAGE_VALUE_H_

@ -9,9 +9,9 @@
#include <string.h>
#include "upb/collections/map.h"
#include "upb/hash/common.h"
#include "upb/message/accessors.h"
#include "upb/message/map.h"
#include "upb/message/message.h"
#include "upb/mini_table/field.h"
#include "upb/reflection/def.h"

@ -10,8 +10,8 @@
#include <stddef.h>
#include "upb/collections/map.h"
#include "upb/mem/arena.h"
#include "upb/message/map.h"
#include "upb/message/types.h"
#include "upb/message/value.h" // IWYU pragma: export
#include "upb/reflection/common.h"

@ -169,8 +169,8 @@ cc_test(
":test_upb_proto",
"@com_google_googletest//:gtest_main",
"//upb:base",
"//upb:collections",
"//upb:mem",
"//upb:message",
"//upb:port",
],
)

@ -18,8 +18,8 @@
#include "google/protobuf/test_messages_proto3.upb.h"
#include "upb/base/status.h"
#include "upb/base/string_view.h"
#include "upb/collections/array.h"
#include "upb/mem/arena.hpp"
#include "upb/message/array.h"
#include "upb/test/test.upb.h"
// Must be last.

@ -18,10 +18,10 @@ cc_library(
copts = UPB_DEFAULT_COPTS,
visibility = ["//visibility:public"],
deps = [
"//upb:collections",
"//upb:collections_internal",
"//upb:eps_copy_input_stream",
"//upb:lex",
"//upb:message",
"//upb:message_internal",
"//upb:port",
"//upb:reflection",
"//upb:wire",

@ -13,9 +13,9 @@
#include <stdarg.h>
#include <string.h>
#include "upb/collections/internal/map_sorter.h"
#include "upb/collections/map.h"
#include "upb/lex/round_trip.h"
#include "upb/message/internal/map_sorter.h"
#include "upb/message/map.h"
#include "upb/port/vsnprintf_compat.h"
#include "upb/reflection/message.h"
#include "upb/wire/eps_copy_input_stream.h"

@ -7,8 +7,10 @@
// These headers form a spanning tree for the upb defs needed by FFI layers.
#include "upb/collections/array_split64.h"
#include "upb/collections/map.h"
// IWYU pragma: begin_exports
#include "upb/message/accessors_split64.h"
#include "upb/message/array_split64.h"
#include "upb/message/map.h"
#include "upb/message/message.h"
#include "upb/mini_descriptor/decode.h"
// IWYU pragma: end_exports

@ -98,7 +98,7 @@ cc_library(
visibility = ["//visibility:public"],
deps = [
"//upb:base",
"//upb:collections",
"//upb:message",
"//upb:message_types",
"//upb:port",
"//upb:reflection",

@ -17,8 +17,8 @@
#include <string.h>
#include "upb/base/descriptor_constants.h"
#include "upb/collections/array.h"
#include "upb/collections/map.h"
#include "upb/message/array.h"
#include "upb/message/map.h"
#include "upb/message/types.h"
#include "upb/port/vsnprintf_compat.h"
#include "upb/reflection/def.h"

@ -49,8 +49,6 @@ cc_library(
":reader",
":types",
"//upb:base",
"//upb:collections",
"//upb:collections_internal",
"//upb:hash",
"//upb:mem",
"//upb:mem_internal",

@ -15,17 +15,17 @@
#include "upb/base/descriptor_constants.h"
#include "upb/base/string_view.h"
#include "upb/collections/array.h"
#include "upb/collections/internal/array.h"
#include "upb/collections/internal/map.h"
#include "upb/collections/internal/map_entry.h"
#include "upb/collections/map.h"
#include "upb/hash/common.h"
#include "upb/mem/arena.h"
#include "upb/mem/internal/arena.h"
#include "upb/message/array.h"
#include "upb/message/internal/accessors.h"
#include "upb/message/internal/array.h"
#include "upb/message/internal/extension.h"
#include "upb/message/internal/map.h"
#include "upb/message/internal/map_entry.h"
#include "upb/message/internal/message.h"
#include "upb/message/map.h"
#include "upb/message/message.h"
#include "upb/message/tagged_ptr.h"
#include "upb/mini_table/enum.h"

@ -17,7 +17,8 @@
#include "upb/wire/decode_fast.h"
#include "upb/collections/internal/array.h"
#include "upb/message/array.h"
#include "upb/message/internal/array.h"
#include "upb/message/internal/types.h"
#include "upb/wire/internal/decode.h"

@ -16,16 +16,16 @@
#include "upb/base/descriptor_constants.h"
#include "upb/base/string_view.h"
#include "upb/collections/array.h"
#include "upb/collections/internal/array.h"
#include "upb/collections/internal/map.h"
#include "upb/collections/internal/map_entry.h"
#include "upb/collections/internal/map_sorter.h"
#include "upb/hash/common.h"
#include "upb/hash/str_table.h"
#include "upb/mem/arena.h"
#include "upb/message/array.h"
#include "upb/message/internal/accessors.h"
#include "upb/message/internal/array.h"
#include "upb/message/internal/extension.h"
#include "upb/message/internal/map.h"
#include "upb/message/internal/map_entry.h"
#include "upb/message/internal/map_sorter.h"
#include "upb/message/message.h"
#include "upb/message/tagged_ptr.h"
#include "upb/mini_table/field.h"

Loading…
Cancel
Save