aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorinnokentii <innokentii@yandex-team.com>2023-01-19 14:20:43 +0300
committerinnokentii <innokentii@yandex-team.com>2023-01-19 14:20:43 +0300
commit64efe8477d2d908de83e31792cbd8a6d374216ef (patch)
tree40f92d9ffcd03eadd46fd7be8f0fb106aec2b0af
parentdff1e2c3d473c7b3e6ec749ae02f3a825c029488 (diff)
downloadydb-64efe8477d2d908de83e31792cbd8a6d374216ef.tar.gz
Fix valgrind build TRcBuf calls,
fix valgrind build
-rw-r--r--library/cpp/actors/util/rc_buf.h58
-rw-r--r--ydb/core/base/blobstorage.h2
-rw-r--r--ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h7
3 files changed, 42 insertions, 25 deletions
diff --git a/library/cpp/actors/util/rc_buf.h b/library/cpp/actors/util/rc_buf.h
index 1a492064ee..23d9ad4881 100644
--- a/library/cpp/actors/util/rc_buf.h
+++ b/library/cpp/actors/util/rc_buf.h
@@ -32,61 +32,69 @@ namespace NContiguousDataDetails {
class TContiguousSpan
{
private:
- const char *Data = nullptr;
- size_t Size = 0;
+ const char *Data_ = nullptr;
+ size_t Size_ = 0;
public:
TContiguousSpan() = default;
TContiguousSpan(const char *data, size_t size)
- : Data(data)
- , Size(size)
+ : Data_(data)
+ , Size_(size)
{}
TContiguousSpan(const TString& str)
- : Data(str.data())
- , Size(str.size())
+ : Data_(str.data())
+ , Size_(str.size())
{}
TContiguousSpan(const TStringBuf& str)
- : Data(str.data())
- , Size(str.size())
+ : Data_(str.data())
+ , Size_(str.size())
{}
TContiguousSpan(const TArrayRef<char>& ref)
- : Data(ref.data())
- , Size(ref.size())
+ : Data_(ref.data())
+ , Size_(ref.size())
{}
TContiguousSpan(const TArrayRef<const char>& ref)
- : Data(ref.data())
- , Size(ref.size())
+ : Data_(ref.data())
+ , Size_(ref.size())
{}
TContiguousSpan(const NActors::TSharedData& data)
- : Data(data.data())
- , Size(data.size())
+ : Data_(data.data())
+ , Size_(data.size())
{}
const char& operator[](size_t index) const {
- Y_VERIFY_DEBUG(index < Size);
- return Data[index];
+ Y_VERIFY_DEBUG(index < Size_);
+ return Data_[index];
}
const char *data() const noexcept {
- return Data;
+ return Data_;
}
size_t size() const noexcept {
- return Size;
+ return Size_;
}
const char *GetData() const noexcept {
- return Data;
+ return Data_;
}
size_t GetSize() const noexcept {
- return Size;
+ return Size_;
+ }
+
+ const char *Data() const noexcept {
+ return Data_;
+ }
+
+ size_t Size() const noexcept {
+ return Size_;
}
TContiguousSpan SubSpan(size_t pos, size_t n) const noexcept {
@@ -100,8 +108,8 @@ public:
{
static_assert(Index < 2,
"Index out of bounds for TContiguousSpan");
- if constexpr (Index == 0) return Data;
- if constexpr (Index == 1) return Size;
+ if constexpr (Index == 0) return Data_;
+ if constexpr (Index == 1) return Size_;
}
friend bool operator==(const TContiguousSpan& x, const TContiguousSpan& y) { return Compare(x, y) == 0; }
@@ -120,6 +128,8 @@ private:
}
};
+
+
namespace std
{
template<>
@@ -956,6 +966,10 @@ public:
return GetData();
}
+ const char* Data() const {
+ return GetData();
+ }
+
const char* begin() const {
return Begin;
}
diff --git a/ydb/core/base/blobstorage.h b/ydb/core/base/blobstorage.h
index 0d1adfdf56..555baa1213 100644
--- a/ydb/core/base/blobstorage.h
+++ b/ydb/core/base/blobstorage.h
@@ -932,7 +932,7 @@ struct TEvBlobStorage {
"EvPut invalid: LogoBlobId# %s buffer.Size# %zu",
id.ToString().data(), Buffer.size());
REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(&id, sizeof(id));
- REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(Buffer.GetContiguousSpan.Data(), Buffer.size());
+ REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(Buffer.GetContiguousSpan().Data(), Buffer.size());
REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(&deadline, sizeof(deadline));
REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(&handleClass, sizeof(handleClass));
REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(&tactic, sizeof(tactic));
diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h b/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h
index b9ef53f45a..2695ea1ea8 100644
--- a/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h
+++ b/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h
@@ -178,8 +178,11 @@ public:
TBlobInfo& blob = Blobs[blobIdx];
Blackboard.RegisterBlobForPut(blob.BlobId, &blob.ExtraBlockChecks, &blob.Span);
for (ui32 i = 0; i < totalParts; ++i) {
- REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(partSets[blobIdx].Parts[i].OwnedString.Data(),
- partSets[blobIdx].Parts[i].OwnedString.Size());
+#ifdef WITH_VALGRIND
+ for (auto [data, size] : partSets[blobIdx].Parts[i].OwnedString) {
+ REQUEST_VALGRIND_CHECK_MEM_IS_DEFINED(data, size);
+ }
+#endif
Blackboard.AddPartToPut(blob.BlobId, i, partSets[blobIdx].Parts[i].OwnedString);
}
Blackboard.MarkBlobReadyToPut(blob.BlobId, blobIdx);