diff options
author | André Nusser <andre.nusser@googlemail.com> | 2018-06-07 17:26:49 +0200 |
---|---|---|
committer | André Nusser <andre.nusser@googlemail.com> | 2018-06-07 17:26:49 +0200 |
commit | 93fe142f21e501a9ff12432d35fbf89b87135f9c (patch) | |
tree | 45b79d80073f429e7315ca1a2a8de61ed74d664d | |
parent | f9541d8b78bb59713eede3748a4e1bb5776ef87c (diff) |
Actually remove throw in versionstr and replace C-array by std::array.
-rw-r--r-- | src/versionstr.cc | 16 | ||||
-rw-r--r-- | src/versionstr.h | 4 |
2 files changed, 13 insertions, 7 deletions
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 <stdlib.h> #include <stdio.h> +#include <hugin.hpp> + // 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()); } diff --git a/src/versionstr.h b/src/versionstr.h index 48eb40a..9fc2fcd 100644 --- a/src/versionstr.h +++ b/src/versionstr.h @@ -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.h * @@ -27,6 +26,7 @@ */ #pragma once +#include <array> #include <string> // Workaround - major, minor and patch are defined as macros when using @@ -108,5 +108,5 @@ public: private: void set(const std::string& v); - size_t version[3]; + std::array<size_t, 3> version = {0, 0, 0}; }; |