summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/nrex/nrex.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/nrex/nrex.cpp b/drivers/nrex/nrex.cpp
index ac19c71408..69e04285e3 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);
}
};