diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:17 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:17 +0300 |
commit | d3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch) | |
tree | dd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/cpp/protobuf/util/merge.cpp | |
parent | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff) | |
download | ydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/protobuf/util/merge.cpp')
-rw-r--r-- | library/cpp/protobuf/util/merge.cpp | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/library/cpp/protobuf/util/merge.cpp b/library/cpp/protobuf/util/merge.cpp index 258cbb737f..dc2b9cc806 100644 --- a/library/cpp/protobuf/util/merge.cpp +++ b/library/cpp/protobuf/util/merge.cpp @@ -6,41 +6,41 @@ #include <library/cpp/protobuf/util/proto/merge.pb.h> namespace NProtoBuf { - void RewriteMerge(const Message& src, Message& dst) { - const Descriptor* d = src.GetDescriptor(); - Y_ASSERT(d == dst.GetDescriptor()); + void RewriteMerge(const Message& src, Message& dst) { + const Descriptor* d = src.GetDescriptor(); + Y_ASSERT(d == dst.GetDescriptor()); - for (int i = 0; i < d->field_count(); ++i) { - if (TConstField(src, d->field(i)).Has()) - TMutableField(dst, d->field(i)).Clear(); - } + for (int i = 0; i < d->field_count(); ++i) { + if (TConstField(src, d->field(i)).Has()) + TMutableField(dst, d->field(i)).Clear(); + } - dst.MergeFrom(src); + dst.MergeFrom(src); } - static void ClearNonMergeable(const Message& src, Message& dst) { - const Descriptor* d = src.GetDescriptor(); - if (d->options().GetExtension(DontMerge)) { - dst.Clear(); - return; - } - - for (int i = 0; i < d->field_count(); ++i) { - const FieldDescriptor* fd = d->field(i); - TConstField srcField(src, fd); - if (srcField.Has()) { - TMutableField dstField(dst, fd); - if (fd->options().GetExtension(DontMergeField)) - dstField.Clear(); - else if (!fd->is_repeated() && dstField.IsMessage() && dstField.Has()) - ClearNonMergeable(*srcField.Get<const Message*>(), *dstField.MutableMessage()); - } - } + static void ClearNonMergeable(const Message& src, Message& dst) { + const Descriptor* d = src.GetDescriptor(); + if (d->options().GetExtension(DontMerge)) { + dst.Clear(); + return; + } + + for (int i = 0; i < d->field_count(); ++i) { + const FieldDescriptor* fd = d->field(i); + TConstField srcField(src, fd); + if (srcField.Has()) { + TMutableField dstField(dst, fd); + if (fd->options().GetExtension(DontMergeField)) + dstField.Clear(); + else if (!fd->is_repeated() && dstField.IsMessage() && dstField.Has()) + ClearNonMergeable(*srcField.Get<const Message*>(), *dstField.MutableMessage()); + } + } } - void CustomMerge(const Message& src, Message& dst) { - ClearNonMergeable(src, dst); - dst.MergeFrom(src); + void CustomMerge(const Message& src, Message& dst) { + ClearNonMergeable(src, dst); + dst.MergeFrom(src); } } |