From 6d458db48b9524786a38ac7df9a10dbbd488311a Mon Sep 17 00:00:00 2001 From: Eric Salo Date: Mon, 21 Aug 2023 18:55:24 -0700 Subject: [PATCH] upb: dedup upb/message/ Remove message/message.h as a hdr from :message_internal Lock down the visibility of :message_types to upb-only message/types.h is not an internal header because the definitions there are part of the public surface. But the fact that it needs to exist is an implementation detail that should remain opaque, so make it a private dep. PiperOrigin-RevId: 558960776 --- BUILD | 14 +++++++++----- protos/BUILD | 7 +++---- protos/protos.cc | 1 - protos/protos_internal.h | 2 +- upb/message/BUILD | 18 ++++++++++++------ upb/message/copy.c | 1 - upb/message/message.h | 1 + upb/message/tagged_ptr.h | 2 +- upb/message/{typedef.h => types.h} | 8 ++++---- upb/mini_table/BUILD | 4 ++-- upb/mini_table/internal/message.h | 2 +- upb/wire/BUILD | 3 ++- 12 files changed, 36 insertions(+), 27 deletions(-) rename upb/message/{typedef.h => types.h} (90%) diff --git a/BUILD b/BUILD index 8bf279b946..bbbba8b31c 100644 --- a/BUILD +++ b/BUILD @@ -119,6 +119,7 @@ cc_library( ":collections", ":collections_internal", ":mem", + ":message", ":message_accessors", ":message_accessors_internal", ":message_internal", @@ -387,8 +388,8 @@ alias( ) alias( - name = "message_typedef", - actual = "//upb/message:typedef", + name = "message_types", + actual = "//upb/message:types", visibility = ["//visibility:public"], ) @@ -523,11 +524,12 @@ upb_amalgamation( ":lex", ":mem", ":mem_internal", + ":message", ":message_accessors", ":message_internal", ":message_rep_internal", ":message_tagged_ptr", - ":message_typedef", + ":message_types", ":mini_descriptor", ":mini_descriptor_internal", ":mini_table", @@ -569,11 +571,12 @@ upb_amalgamation( ":lex", ":mem", ":mem_internal", + ":message", ":message_accessors", ":message_internal", ":message_rep_internal", ":message_tagged_ptr", - ":message_typedef", + ":message_types", ":mini_descriptor", ":mini_descriptor_internal", ":mini_table", @@ -616,11 +619,12 @@ upb_amalgamation( ":lex", ":mem", ":mem_internal", + ":message", ":message_accessors", ":message_internal", ":message_rep_internal", ":message_tagged_ptr", - ":message_typedef", + ":message_types", ":mini_descriptor", ":mini_descriptor_internal", ":mini_table", diff --git a/protos/BUILD b/protos/BUILD index 767ddb264e..be9736181a 100644 --- a/protos/BUILD +++ b/protos/BUILD @@ -79,7 +79,6 @@ cc_library( "//:message_copy", "//:message_internal", "//:message_promote", - "//:message_typedef", "//:mini_table", "//:wire", "@com_google_absl//absl/base:core_headers", @@ -108,7 +107,7 @@ cc_library( deps = [ ":protos", "//:mem", - "//:message_typedef", + "//:message", "//:mini_table", "@com_google_absl//absl/status", "@com_google_absl//absl/status:statusor", @@ -123,7 +122,7 @@ cc_library( copts = UPB_DEFAULT_CPPOPTS, visibility = ["//visibility:public"], deps = [ - "//:message_typedef", + "//:message", "@com_google_absl//absl/base:core_headers", "@com_google_absl//absl/synchronization", ], @@ -142,7 +141,7 @@ cc_library( ":protos_internal", ":repeated_field", "//:mem", - "//:message_typedef", + "//:message", ], ) diff --git a/protos/protos.cc b/protos/protos.cc index c4b44dd866..79535f5eef 100644 --- a/protos/protos.cc +++ b/protos/protos.cc @@ -42,7 +42,6 @@ #include "upb/message/copy.h" #include "upb/message/internal/extension.h" #include "upb/message/promote.h" -#include "upb/message/typedef.h" #include "upb/mini_table/extension.h" #include "upb/mini_table/extension_registry.h" #include "upb/mini_table/message.h" diff --git a/protos/protos_internal.h b/protos/protos_internal.h index 1a5f3d7f1f..0a1f194d3a 100644 --- a/protos/protos_internal.h +++ b/protos/protos_internal.h @@ -32,7 +32,7 @@ #define UPB_PROTOS_PROTOS_INTERNAL_H_ #include "upb/mem/arena.h" -#include "upb/message/typedef.h" +#include "upb/message/message.h" namespace protos::internal { diff --git a/upb/message/BUILD b/upb/message/BUILD index 6058e15325..b9f5d15d78 100644 --- a/upb/message/BUILD +++ b/upb/message/BUILD @@ -43,6 +43,7 @@ cc_library( visibility = ["//visibility:public"], deps = [ ":internal", + ":message", "//:base", "//:collections", "//:collections_internal", @@ -83,7 +84,8 @@ cc_library( deps = [ ":accessors", ":internal", - ":typedef", + ":message", + ":types", "//:base", "//:collections_internal", "//:mem", @@ -97,15 +99,16 @@ cc_library( name = "internal", srcs = [ "message.c", + "message.h", ], hdrs = [ "internal/extension.h", "internal/message.h", - "message.h", ], copts = UPB_DEFAULT_COPTS, visibility = ["//visibility:public"], deps = [ + ":types", "//:base", "//:base_internal", "//:hash", @@ -124,6 +127,7 @@ cc_library( visibility = ["//visibility:public"], deps = [ ":internal", + ":types", "//:base", "//:mem", "//:mini_table", @@ -144,7 +148,8 @@ cc_library( deps = [ ":accessors", ":internal", - ":typedef", + ":message", + ":types", "//:base", "//:collections", "//:collections_internal", @@ -190,15 +195,15 @@ cc_library( copts = UPB_DEFAULT_COPTS, visibility = ["//visibility:public"], deps = [ - ":typedef", + ":types", "//:port", ], ) cc_library( - name = "typedef", + name = "types", hdrs = [ - "typedef.h", + "types.h", ], copts = UPB_DEFAULT_COPTS, visibility = ["//visibility:public"], @@ -254,6 +259,7 @@ cc_test( ":accessors", ":copy", ":internal", + ":message", "//:base", "//:collections", "//:mem", diff --git a/upb/message/copy.c b/upb/message/copy.c index 23989e1038..de528c5f7b 100644 --- a/upb/message/copy.c +++ b/upb/message/copy.c @@ -39,7 +39,6 @@ #include "upb/message/accessors.h" #include "upb/message/internal/message.h" #include "upb/message/message.h" -#include "upb/message/typedef.h" #include "upb/mini_table/field.h" #include "upb/mini_table/internal/field.h" diff --git a/upb/message/message.h b/upb/message/message.h index 95a697c300..d04b1e5aa0 100644 --- a/upb/message/message.h +++ b/upb/message/message.h @@ -36,6 +36,7 @@ #define UPB_MESSAGE_MESSAGE_H_ #include "upb/mem/arena.h" +#include "upb/message/types.h" #include "upb/mini_table/message.h" // Must be last. diff --git a/upb/message/tagged_ptr.h b/upb/message/tagged_ptr.h index f2a7664f5b..2ae3a09fb5 100644 --- a/upb/message/tagged_ptr.h +++ b/upb/message/tagged_ptr.h @@ -33,7 +33,7 @@ #include -#include "upb/message/typedef.h" +#include "upb/message/types.h" // Must be last. #include "upb/port/def.inc" diff --git a/upb/message/typedef.h b/upb/message/types.h similarity index 90% rename from upb/message/typedef.h rename to upb/message/types.h index 422b3a9f25..a014272f5f 100644 --- a/upb/message/typedef.h +++ b/upb/message/types.h @@ -28,11 +28,11 @@ // (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_TYPEDEF_H_ -#define UPB_MESSAGE_TYPEDEF_H_ +#ifndef UPB_MESSAGE_TYPES_H_ +#define UPB_MESSAGE_TYPES_H_ -// This typedef needs its own header to resolve a circular dependency between +// This typedef is in a leaf header to resolve a circular dependency between // messages and mini tables. typedef void upb_Message; -#endif /* UPB_MESSAGE_TYPEDEF_H_ */ +#endif /* UPB_MESSAGE_TYPES_H_ */ diff --git a/upb/mini_table/BUILD b/upb/mini_table/BUILD index 74171beda8..0f44350c1f 100644 --- a/upb/mini_table/BUILD +++ b/upb/mini_table/BUILD @@ -50,7 +50,7 @@ cc_library( "//:base", "//:hash", "//:mem", - "//:message_typedef", + "//:message_types", "//:port", ], ) @@ -71,7 +71,7 @@ cc_library( visibility = ["//visibility:public"], deps = [ "//:base", - "//:message_typedef", + "//:message_types", "//:port", ], ) diff --git a/upb/mini_table/internal/message.h b/upb/mini_table/internal/message.h index 2019694c48..fc672034d9 100644 --- a/upb/mini_table/internal/message.h +++ b/upb/mini_table/internal/message.h @@ -31,7 +31,7 @@ #ifndef UPB_MINI_TABLE_INTERNAL_MESSAGE_H_ #define UPB_MINI_TABLE_INTERNAL_MESSAGE_H_ -#include "upb/message/typedef.h" +#include "upb/message/types.h" #include "upb/mini_table/internal/field.h" // Must be last. diff --git a/upb/wire/BUILD b/upb/wire/BUILD index 2cccde2ba5..5e916e5b8b 100644 --- a/upb/wire/BUILD +++ b/upb/wire/BUILD @@ -39,7 +39,7 @@ cc_library( deps = [ ":internal", "//:mem", - "//:message_internal", + "//:message", "//:mini_table", "//:port", ], @@ -71,6 +71,7 @@ cc_library( "//:collections_internal", "//:mem", "//:mem_internal", + "//:message", "//:message_accessors_internal", "//:message_internal", "//:message_rep_internal",