diff options
| author | Zher Huei Lee | 2016-04-18 10:06:47 +0100 |
|---|---|---|
| committer | Rémi Verschelde | 2016-04-27 08:50:36 +0200 |
| commit | 07fc330241bb762a0c9cdca254ea2fa7cc49261b (patch) | |
| tree | 6f5c2019fca97a4ef4bffe8d486971de9becddc7 | |
| parent | c712e54b63815d28f03340a63c22da6e996408b6 (diff) | |
| download | godot-07fc330241bb762a0c9cdca254ea2fa7cc49261b.tar.gz godot-07fc330241bb762a0c9cdca254ea2fa7cc49261b.tar.zst godot-07fc330241bb762a0c9cdca254ea2fa7cc49261b.zip | |
Fixed zero-length arrays in nrex. Fixes #4346
(cherry picked from commit 48b2dfab9f91bec2fd9a0fc94630e2dae51fbf11)
| -rw-r--r-- | drivers/nrex/nrex.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/nrex/nrex.cpp b/drivers/nrex/nrex.cpp index ac19c7140..69e04285e 100644 --- a/drivers/nrex/nrex.cpp +++ b/drivers/nrex/nrex.cpp @@ -68,9 +68,9 @@ class nrex_array { } - nrex_array(unsigned int size) - : _data(NREX_NEW_ARRAY(T, size)) - , _reserved(size) + nrex_array(unsigned int reserved) + : _data(NREX_NEW_ARRAY(T, reserved ? reserved : 1)) + , _reserved(reserved ? reserved : 1) , _size(0) { } @@ -87,6 +87,12 @@ class nrex_array void reserve(unsigned int size) { + if (size < _size) { + size = _size; + } + if (size == 0) { + size = 1; + } T* old = _data; _data = NREX_NEW_ARRAY(T, size); _reserved = size; @@ -207,8 +213,8 @@ struct nrex_search : str(str) , captures(captures) , end(0) + , lookahead_pos(lookahead) { - lookahead_pos.reserve(lookahead); } }; |
