diff options
author | ionagamed <ionagamed@yandex-team.com> | 2023-12-06 11:15:42 +0300 |
---|---|---|
committer | ionagamed <ionagamed@yandex-team.com> | 2023-12-06 11:59:15 +0300 |
commit | bbdd76a9666c19dd2eb27a842909358e8b541a67 (patch) | |
tree | 4dd28e53f070d9f33c58df8631357e0b7125ce54 /library/cpp/yson/json/yson2json_adapter.cpp | |
parent | 19dfab524551ce06a74e89eda1a7dd2c95663e9c (diff) | |
download | ydb-bbdd76a9666c19dd2eb27a842909358e8b541a67.tar.gz |
library/yson: Add NodeFromJsonStringIterative
AI для
Diffstat (limited to 'library/cpp/yson/json/yson2json_adapter.cpp')
-rw-r--r-- | library/cpp/yson/json/yson2json_adapter.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/library/cpp/yson/json/yson2json_adapter.cpp b/library/cpp/yson/json/yson2json_adapter.cpp index b5e7c49d4d..1dbe770e5b 100644 --- a/library/cpp/yson/json/yson2json_adapter.cpp +++ b/library/cpp/yson/json/yson2json_adapter.cpp @@ -1,9 +1,13 @@ #include "yson2json_adapter.h" namespace NYT { - TYson2JsonCallbacksAdapter::TYson2JsonCallbacksAdapter(::NYson::TYsonConsumerBase* impl, bool throwException) + TYson2JsonCallbacksAdapter::TYson2JsonCallbacksAdapter( + ::NYson::TYsonConsumerBase* impl, + bool throwException, + ui64 maxDepth) : NJson::TJsonCallbacks(throwException) , Impl_(impl) + , MaxDepth_(maxDepth) { } @@ -46,6 +50,9 @@ namespace NYT { bool TYson2JsonCallbacksAdapter::OnOpenArray() { WrapIfListItem(); State_.ContextStack.push(true); + if (State_.ContextStack.size() > MaxDepth_) { + return false; + } Impl_->OnBeginList(); return true; } @@ -59,6 +66,9 @@ namespace NYT { bool TYson2JsonCallbacksAdapter::OnOpenMap() { WrapIfListItem(); State_.ContextStack.push(false); + if (State_.ContextStack.size() > MaxDepth_) { + return false; + } Impl_->OnBeginMap(); return true; } |