From 93fe142f21e501a9ff12432d35fbf89b87135f9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Nusser?= Date: Thu, 7 Jun 2018 17:26:49 +0200 Subject: Actually remove throw in versionstr and replace C-array by std::array. --- src/versionstr.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/versionstr.cc') diff --git a/src/versionstr.cc b/src/versionstr.cc index a46f221..be6913b 100644 --- a/src/versionstr.cc +++ b/src/versionstr.cc @@ -1,5 +1,4 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set et sw=2 ts=2: */ /*************************************************************************** * versionstr.cc * @@ -31,6 +30,8 @@ #include #include +#include + // Workaround - major, minor and patch are defined as macros when using // _GNU_SOURCES #ifdef major @@ -45,7 +46,6 @@ VersionStr::VersionStr(const std::string& v) { - memset(version, 0, sizeof(version)); set(v); } @@ -66,7 +66,9 @@ void VersionStr::set(const std::string& v) { if(idx > 2) { - throw "Version string is too long."; + version = {0, 0, 0}; + ERR(version, "Version string is too long."); + return; } version[idx] = atoi(num.c_str()); idx++; @@ -78,12 +80,16 @@ void VersionStr::set(const std::string& v) } else { - throw "Version string contains illegal character."; + version = {0, 0, 0}; + ERR(version, "Version string contains illegal character."); + return; } } if(idx > 2) { - throw "Version string is too long."; + version = {0, 0, 0}; + ERR(version, "Version string is too long."); + return; } version[idx] = atoi(num.c_str()); } -- cgit v1.2.3