Skip to content

Commit 6b9d5c4

Browse files
honglookercopybara-github
authored andcommitted
hpb: when parsing T*'s, delegate to the canonical Ptr<T>
PiperOrigin-RevId: 698458386
1 parent c8c9cf3 commit 6b9d5c4

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

hpb/hpb.h

+5-13
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ ABSL_MUST_USE_RESULT bool Parse(Ptr<T> message, absl::string_view bytes) {
9595
arena) == kUpb_DecodeStatus_Ok;
9696
}
9797

98+
template <typename T>
99+
ABSL_MUST_USE_RESULT bool Parse(T* message, absl::string_view bytes) {
100+
return Parse(Ptr(message), bytes);
101+
}
102+
98103
template <typename T>
99104
absl::StatusOr<T> Parse(absl::string_view bytes, int options = 0) {
100105
T message;
@@ -109,19 +114,6 @@ absl::StatusOr<T> Parse(absl::string_view bytes, int options = 0) {
109114
return MessageDecodeError(status);
110115
}
111116

112-
template <typename T>
113-
ABSL_MUST_USE_RESULT bool Parse(T* message, absl::string_view bytes) {
114-
static_assert(!std::is_const_v<T>);
115-
upb_Message_Clear(hpb::interop::upb::GetMessage(message),
116-
::hpb::interop::upb::GetMiniTable(message));
117-
auto* arena = hpb::interop::upb::GetArena(message);
118-
return upb_Decode(bytes.data(), bytes.size(),
119-
hpb::interop::upb::GetMessage(message),
120-
::hpb::interop::upb::GetMiniTable(message),
121-
/* extreg= */ nullptr, /* options= */ 0,
122-
arena) == kUpb_DecodeStatus_Ok;
123-
}
124-
125117
template <typename T>
126118
absl::StatusOr<T> Parse(absl::string_view bytes,
127119
const ::hpb::ExtensionRegistry& extension_registry,

0 commit comments

Comments
 (0)