summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmokrov <[email protected]>2025-04-21 13:59:39 +0300
committerkmokrov <[email protected]>2025-04-21 14:13:40 +0300
commit4893a627c1747524edcc766ea1e1b6907999c1c3 (patch)
tree1e82ed19dd5b2e9630b36046b6b98e800e464bb1
parentbec56a4851da142085dcc9727c51127a20de0742 (diff)
YTORM: Use (From|To)Proto methods from yt/yt/core
commit_hash:73c27f665b4988fbc1db7e192fc14aa22125f76c
-rw-r--r--yt/yt/core/misc/protobuf_helpers-inl.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/yt/yt/core/misc/protobuf_helpers-inl.h b/yt/yt/core/misc/protobuf_helpers-inl.h
index dc73588308f..cfc774c563e 100644
--- a/yt/yt/core/misc/protobuf_helpers-inl.h
+++ b/yt/yt/core/misc/protobuf_helpers-inl.h
@@ -486,8 +486,8 @@ void ToProto(
{
serializedMap->clear();
for (const auto& [key, value] : originalMap) {
- auto [_, inserted] = serializedMap->insert(std::pair(ToProto<TSerializedKey>(key), ToProto<TSerializedValue>(value)));
- if (!inserted) {
+ auto [_, emplaced] = serializedMap->emplace(ToProto<TSerializedKey>(key), ToProto<TSerializedValue>(value));
+ if (!emplaced) {
THROW_ERROR_EXCEPTION("Found duplicate key during protobuf map serialization")
<< TErrorAttribute("key", key)
<< TErrorAttribute("serialized_key", ToProto<TSerializedKey>(key));
@@ -537,10 +537,12 @@ void FromProto(
const ::google::protobuf::Map<TSerializedKey, TSerializedValue>& serializedMap)
{
originalMap->clear();
+ originalMap->reserve(serializedMap.size());
for (const auto& [serializedKey, serializedValue] : serializedMap) {
- auto [_, inserted] = originalMap->emplace(FromProto<TKey>(serializedKey), FromProto<TValue>(serializedValue));
- if (!inserted) {
+ auto [_, emplaced] = originalMap->emplace(FromProto<TKey>(serializedKey), FromProto<TValue>(serializedValue));
+ if (!emplaced) {
THROW_ERROR_EXCEPTION("Found duplicate key during protobuf map deserialization")
+ << TErrorAttribute("serialized_key", serializedKey)
<< TErrorAttribute("key", FromProto<TKey>(serializedKey));
}
}