aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-03-28 12:56:11 +0000
committerTor Brede Vekterli <vekterli@yahooinc.com>2022-03-28 12:56:11 +0000
commit9caf7f7cd6e0bb5672c407dbf871114e894afab7 (patch)
tree166cb2b9883ed2510ab9c4926ca4876786202f18 /config
parentf586464b27375f090d85b030bd8294fd2db51de2 (diff)
Don't take ref of 1st vector element when empty
Ref isn't used, but still undefined behavior.
Diffstat (limited to 'config')
-rw-r--r--config/src/vespa/config/common/configparser.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/config/src/vespa/config/common/configparser.h b/config/src/vespa/config/common/configparser.h
index 42ee684eb59..48db4b8e16a 100644
--- a/config/src/vespa/config/common/configparser.h
+++ b/config/src/vespa/config/common/configparser.h
@@ -17,14 +17,17 @@ public:
class Cfg {
public:
Cfg(const std::vector<vespalib::string> & v)
- : _cfg(&v[0]), _sz(v.size())
+ : _cfg(v.empty() ? nullptr : &v[0]),
+ _sz(v.size())
{ }
Cfg(const std::vector<vespalib::string, vespalib::allocator_large<vespalib::string>> & v) :
- _cfg(&v[0]),
+ _cfg(v.empty() ? nullptr : &v[0]),
_sz(v.size())
{ }
- size_t size() const { return _sz; }
- const vespalib::string & operator[] (size_t idx) const { return _cfg[idx]; }
+ size_t size() const noexcept { return _sz; }
+ const vespalib::string & operator[] (size_t idx) const noexcept {
+ return _cfg[idx];
+ }
private:
const vespalib::string * _cfg;
size_t _sz;