aboutsummaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-03-18 17:18:51 +0100
committerFelix Morgner <felix.morgner@ost.ch>2026-03-18 17:18:51 +0100
commitc86c898836b1564de2733330540f5d0cd56e8b10 (patch)
treee64c18cc18512e54602b290ff4d10b59583f990e /libs
parente7ccb96aecae7b231fb05818d7e45a767aebc31d (diff)
downloadteachos-c86c898836b1564de2733330540f5d0cd56e8b10.tar.xz
teachos-c86c898836b1564de2733330540f5d0cd56e8b10.zip
kstd: don't allocate 0-sized memory regions
Diffstat (limited to 'libs')
-rw-r--r--libs/kstd/include/kstd/vector10
1 files changed, 5 insertions, 5 deletions
diff --git a/libs/kstd/include/kstd/vector b/libs/kstd/include/kstd/vector
index 41b380e..6af7c12 100644
--- a/libs/kstd/include/kstd/vector
+++ b/libs/kstd/include/kstd/vector
@@ -40,7 +40,7 @@ namespace kstd
explicit vector(size_type n, value_type initial = value_type{})
: _size(n)
, _capacity(n)
- , _data(new value_type[_capacity]{})
+ , _data(_capacity ? new value_type[_capacity]{} : nullptr)
{
std::ranges::fill(*this, initial);
}
@@ -56,7 +56,7 @@ namespace kstd
explicit vector(InputIterator first, InputIterator last)
: _size(std::distance(first, last))
, _capacity(std::distance(first, last))
- , _data(new value_type[_capacity]{})
+ , _data(_capacity ? new value_type[_capacity]() : nullptr)
{
std::ranges::copy(first, last, _data);
}
@@ -69,7 +69,7 @@ namespace kstd
explicit vector(std::initializer_list<value_type> initializer_list)
: _size(initializer_list.size())
, _capacity(initializer_list.size())
- , _data(new value_type[_capacity]{})
+ , _data(_capacity ? new value_type[_capacity]() : nullptr)
{
std::ranges::copy(initializer_list, _data);
}
@@ -85,7 +85,7 @@ namespace kstd
vector(vector<value_type> const & other)
: _size(other._size)
, _capacity(other._capacity)
- , _data(new value_type[_capacity]())
+ , _data(_capacity ? new value_type[_capacity]() : nullptr)
{
std::ranges::copy(other, _data);
}
@@ -104,7 +104,7 @@ namespace kstd
delete[] _data;
_size = other._size;
_capacity = other._capacity;
- _data = new value_type[_capacity]();
+ _data = _capacity ? new value_type[_capacity]() : nullptr;
std::ranges::copy(other, _data);
return *this;
}