aboutsummaryrefslogtreecommitdiffstats
path: root/util/system/filemap.h
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-11-20 17:37:57 +0000
committerGitHub <noreply@github.com>2024-11-20 17:37:57 +0000
commitf76323e9b295c15751e51e3443aa47a36bee8023 (patch)
tree4113c8cad473a33e0f746966e0cf087252fa1d7a /util/system/filemap.h
parent753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff)
parenta7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff)
downloadydb-f76323e9b295c15751e51e3443aa47a36bee8023.tar.gz
Merge pull request #11788 from ydb-platform/mergelibs-241120-1113
Library import 241120-1113
Diffstat (limited to 'util/system/filemap.h')
-rw-r--r--util/system/filemap.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/util/system/filemap.h b/util/system/filemap.h
index 25a7911715..200774593b 100644
--- a/util/system/filemap.h
+++ b/util/system/filemap.h
@@ -233,8 +233,9 @@ public:
return Size_;
}
const T& GetAt(size_t pos) const {
- if (pos < Size_)
+ if (pos < Size_) {
return Ptr_[pos];
+ }
return Dummy();
}
void SetDummy(const T& n_Dummy) {
@@ -334,8 +335,9 @@ public:
TMappedArray(size_t siz = 0)
: TMappedAllocation(0)
{
- if (siz)
+ if (siz) {
Create(siz);
+ }
}
~TMappedArray() {
Destroy();
@@ -343,18 +345,21 @@ public:
T* Create(size_t siz) {
Y_ASSERT(MappedSize() == 0 && Ptr() == nullptr);
T* arr = (T*)Alloc((sizeof(T) * siz));
- if (!arr)
+ if (!arr) {
return nullptr;
+ }
Y_ASSERT(MappedSize() == sizeof(T) * siz);
- for (size_t n = 0; n < siz; n++)
+ for (size_t n = 0; n < siz; n++) {
new (&arr[n]) T();
+ }
return arr;
}
void Destroy() {
T* arr = (T*)Ptr();
if (arr) {
- for (size_t n = 0; n < size(); n++)
+ for (size_t n = 0; n < size(); n++) {
arr[n].~T();
+ }
Dealloc();
}
}