diff --git a/upb/message/BUILD b/upb/message/BUILD index 102bf87003..d5dc0d0a4b 100644 --- a/upb/message/BUILD +++ b/upb/message/BUILD @@ -99,10 +99,8 @@ cc_library( ":internal", ":message", "//upb:base", - "//upb:mem", "//upb:mini_table", "//upb:port", - "//upb:wire", "//upb/mini_table:internal", ], ) diff --git a/upb/message/compare.c b/upb/message/compare.c index 20d97945c7..acd06b2529 100644 --- a/upb/message/compare.c +++ b/upb/message/compare.c @@ -7,10 +7,9 @@ #include "upb/message/compare.h" -#include +#include #include "upb/base/descriptor_constants.h" -#include "upb/mem/arena.h" #include "upb/message/accessors.h" #include "upb/message/array.h" #include "upb/message/internal/accessors.h" @@ -22,7 +21,6 @@ #include "upb/mini_table/field.h" #include "upb/mini_table/internal/field.h" #include "upb/mini_table/message.h" -#include "upb/wire/encode.h" // Must be last. #include "upb/port/def.inc" @@ -237,28 +235,3 @@ bool upb_Message_IsEqual(const upb_Message* msg1, const upb_Message* msg2, return UPB_PRIVATE(_upb_Message_UnknownFieldsAreEqual)( uf1, usize1, uf2, usize2, 100) == kUpb_UnknownCompareResult_Equal; } - -bool upb_Message_IsExactlyEqual(const upb_Message* msg1, - const upb_Message* msg2, - const upb_MiniTable* m) { - if (msg1 == msg2) return true; - - int opts = kUpb_EncodeOption_SkipUnknown | kUpb_EncodeOption_Deterministic; - upb_Arena* a = upb_Arena_New(); - - // Compare deterministically serialized payloads with no unknown fields. - size_t size1, size2; - char *data1, *data2; - upb_EncodeStatus status1 = upb_Encode(msg1, m, opts, a, &data1, &size1); - upb_EncodeStatus status2 = upb_Encode(msg2, m, opts, a, &data2, &size2); - - if (status1 != kUpb_EncodeStatus_Ok || status2 != kUpb_EncodeStatus_Ok) { - // TODO: How should we fail here? (In Ruby we throw an exception.) - upb_Arena_Free(a); - return false; - } - - const bool ret = (size1 == size2) && (memcmp(data1, data2, size1) == 0); - upb_Arena_Free(a); - return ret; -} diff --git a/upb/message/compare.h b/upb/message/compare.h index 892147108c..00822fbe44 100644 --- a/upb/message/compare.h +++ b/upb/message/compare.h @@ -32,11 +32,6 @@ UPB_API bool upb_Message_IsEqual(const upb_Message* msg1, const upb_Message* msg2, const upb_MiniTable* m); -// Compares two messages by serializing them and calling memcmp(). -UPB_API bool upb_Message_IsExactlyEqual(const upb_Message* msg1, - const upb_Message* msg2, - const upb_MiniTable* m); - // If |ctype| is a message then |m| must point to its minitable. UPB_API_INLINE bool upb_MessageValue_IsEqual(upb_MessageValue val1, upb_MessageValue val2,