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 +++++++++++----- 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 #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()); } 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 #include // 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 version = {0, 0, 0}; }; -- cgit v1.2.3