diff options
author | Alexander Smirnov <alex@ydb.tech> | 2024-07-19 09:43:28 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2024-07-19 09:43:28 +0000 |
commit | 1e601163ea2a32cc0043cdfcb74dc9572ee87672 (patch) | |
tree | 8981423c18a3f80d67a85381248a8053d6767c87 /library/cpp | |
parent | a12ce1c32f4ce8e9461b627f85a814b32f58a32d (diff) | |
parent | cc6fbb0ddda7fdd63033840536eea785946b40d9 (diff) | |
download | ydb-1e601163ea2a32cc0043cdfcb74dc9572ee87672.tar.gz |
Merge branch 'rightlib' into mergelibs-240719-0942
Diffstat (limited to 'library/cpp')
7 files changed, 19 insertions, 11 deletions
diff --git a/library/cpp/codecs/zstd_dict_codec.cpp b/library/cpp/codecs/zstd_dict_codec.cpp index c42a2879e6c..ab2a7b4e1a3 100644 --- a/library/cpp/codecs/zstd_dict_codec.cpp +++ b/library/cpp/codecs/zstd_dict_codec.cpp @@ -131,11 +131,13 @@ namespace NCodecs { rawSz -= szSz; if (!datSz) { + outbuf.ReserveExactNeverCallMeInSaneCode(rawSz); outbuf.Resize(rawSz); memcpy(outbuf.data(), rawBeg, rawSz); } else { // size_t zSz = ZSTD_getDecompressedSize(rawBeg, rawSz); // Y_ENSURE_EX(datSz == zSz, TCodecException() << datSz << " != " << zSz); + outbuf.ReserveExactNeverCallMeInSaneCode(datSz); outbuf.Resize(datSz); TDCtx ctx{CheckPtr(ZSTD_createDCtx(), __LOCATION__)}; CheckSize(ZSTD_decompress_usingDDict( diff --git a/library/cpp/tld/tlds-alpha-by-domain.txt b/library/cpp/tld/tlds-alpha-by-domain.txt index c67951257d9..fcf3c4ec29d 100644 --- a/library/cpp/tld/tlds-alpha-by-domain.txt +++ b/library/cpp/tld/tlds-alpha-by-domain.txt @@ -1,4 +1,4 @@ -# Version 2024070400, Last Updated Thu Jul 4 07:07:02 2024 UTC +# Version 2024071000, Last Updated Wed Jul 10 07:07:01 2024 UTC AAA AARP ABB @@ -1038,7 +1038,6 @@ SG SH SHANGRILA SHARP -SHAW SHELL SHIA SHIKSHA diff --git a/library/cpp/yt/backtrace/cursors/frame_pointer/frame_pointer_cursor.h b/library/cpp/yt/backtrace/cursors/frame_pointer/frame_pointer_cursor.h index 7a6eaf431b8..526b41d94b0 100644 --- a/library/cpp/yt/backtrace/cursors/frame_pointer/frame_pointer_cursor.h +++ b/library/cpp/yt/backtrace/cursors/frame_pointer/frame_pointer_cursor.h @@ -6,6 +6,10 @@ namespace NYT::NBacktrace { //////////////////////////////////////////////////////////////////////////////// +#ifndef _x86_64_ +#error Unsupported platform +#endif + struct TFramePointerCursorContext { ui64 Rip; diff --git a/library/cpp/yt/backtrace/cursors/interop/interop.cpp b/library/cpp/yt/backtrace/cursors/interop/interop.cpp index b4e6cfbe6ed..5ef38f326d3 100644 --- a/library/cpp/yt/backtrace/cursors/interop/interop.cpp +++ b/library/cpp/yt/backtrace/cursors/interop/interop.cpp @@ -6,13 +6,13 @@ namespace NYT::NBacktrace { TFramePointerCursorContext FramePointerCursorContextFromUcontext(const ucontext_t& ucontext) { -#if defined(_linux_) +#if defined(_linux_) && defined(_x86_64_) return { .Rip = static_cast<ui64>(ucontext.uc_mcontext.gregs[REG_RIP]), .Rsp = static_cast<ui64>(ucontext.uc_mcontext.gregs[REG_RSP]), .Rbp = static_cast<ui64>(ucontext.uc_mcontext.gregs[REG_RBP]), }; -#elif defined(_darwin_) +#elif defined(_darwin_) && defined(_x86_64_) return { .Rip = static_cast<ui64>(ucontext.uc_mcontext->__ss.__rip), .Rsp = static_cast<ui64>(ucontext.uc_mcontext->__ss.__rsp), diff --git a/library/cpp/yt/memory/atomic_intrusive_ptr-inl.h b/library/cpp/yt/memory/atomic_intrusive_ptr-inl.h index ae8704ae192..21cd8b94120 100644 --- a/library/cpp/yt/memory/atomic_intrusive_ptr-inl.h +++ b/library/cpp/yt/memory/atomic_intrusive_ptr-inl.h @@ -70,7 +70,10 @@ TIntrusivePtr<T> TAtomicIntrusivePtr<T>::Acquire() const } // Can not Ref(obj) here because it can be destroyed. - if (Ptr_.compare_exchange_weak(ptr, TTaggedPtr(obj, newLocalRefs).Pack())) { + auto newPtr = TTaggedPtr(obj, newLocalRefs).Pack(); + if (Ptr_.compare_exchange_weak(ptr, newPtr)) { + ptr = newPtr; + if (Y_UNLIKELY(newLocalRefs > ReservedRefCount / 2)) { Ref(obj, ReservedRefCount / 2); diff --git a/library/cpp/yt/memory/unittests/atomic_intrusive_ptr_ut.cpp b/library/cpp/yt/memory/unittests/atomic_intrusive_ptr_ut.cpp index 4811d208824..68489fcdf7c 100644 --- a/library/cpp/yt/memory/unittests/atomic_intrusive_ptr_ut.cpp +++ b/library/cpp/yt/memory/unittests/atomic_intrusive_ptr_ut.cpp @@ -272,10 +272,10 @@ TEST(TAtomicPtrTest, Acquire) { auto tmp = atomicPtr.Acquire(); - EXPECT_THAT(object, HasRefCounts( RRC + RRC / 2, RRC - 1, 0)); + EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC / 2, 0)); } - EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC, 0)); + EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC / 2 + 1, 0)); } EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC + RRC / 2, 1)); @@ -298,10 +298,10 @@ TEST(TAtomicPtrTest, AcquireConst) { auto tmp = atomicPtr.Acquire(); - EXPECT_THAT(object, HasRefCounts( RRC + RRC / 2, RRC - 1, 0)); + EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC / 2, 0)); } - EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC, 0)); + EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC / 2 + 1, 0)); } EXPECT_THAT(object, HasRefCounts(RRC + RRC / 2, RRC + RRC / 2, 1)); diff --git a/library/cpp/yt/misc/cast-inl.h b/library/cpp/yt/misc/cast-inl.h index 59be41ac1cf..a694394f88d 100644 --- a/library/cpp/yt/misc/cast-inl.h +++ b/library/cpp/yt/misc/cast-inl.h @@ -21,7 +21,7 @@ template <class T, class S> bool IsInIntegralRange(S value) requires std::is_signed_v<T> && std::is_signed_v<S> { - return value >= std::numeric_limits<T>::min() && value <= std::numeric_limits<T>::max(); + return value >= std::numeric_limits<T>::lowest() && value <= std::numeric_limits<T>::max(); } template <class T, class S> @@ -98,7 +98,7 @@ T CheckedIntegralCast(S value) TypeName<S>().c_str(), NYT::NDetail::FormatInvalidCastValue(value).c_str(), TypeName<T>().c_str(), - ::ToString(std::numeric_limits<T>::min()).c_str(), + ::ToString(std::numeric_limits<T>::lowest()).c_str(), ::ToString(std::numeric_limits<T>::max()).c_str())); } return result; |