aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-07-19 09:43:28 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-07-19 09:43:28 +0000
commit1e601163ea2a32cc0043cdfcb74dc9572ee87672 (patch)
tree8981423c18a3f80d67a85381248a8053d6767c87 /library/cpp
parenta12ce1c32f4ce8e9461b627f85a814b32f58a32d (diff)
parentcc6fbb0ddda7fdd63033840536eea785946b40d9 (diff)
downloadydb-1e601163ea2a32cc0043cdfcb74dc9572ee87672.tar.gz
Merge branch 'rightlib' into mergelibs-240719-0942
Diffstat (limited to 'library/cpp')
-rw-r--r--library/cpp/codecs/zstd_dict_codec.cpp2
-rw-r--r--library/cpp/tld/tlds-alpha-by-domain.txt3
-rw-r--r--library/cpp/yt/backtrace/cursors/frame_pointer/frame_pointer_cursor.h4
-rw-r--r--library/cpp/yt/backtrace/cursors/interop/interop.cpp4
-rw-r--r--library/cpp/yt/memory/atomic_intrusive_ptr-inl.h5
-rw-r--r--library/cpp/yt/memory/unittests/atomic_intrusive_ptr_ut.cpp8
-rw-r--r--library/cpp/yt/misc/cast-inl.h4
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;