diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-03-18 17:18:51 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-03-18 17:18:51 +0100 |
| commit | c86c898836b1564de2733330540f5d0cd56e8b10 (patch) | |
| tree | e64c18cc18512e54602b290ff4d10b59583f990e /libs | |
| parent | e7ccb96aecae7b231fb05818d7e45a767aebc31d (diff) | |
| download | teachos-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/vector | 10 |
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; } |
