summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2018-06-07 17:26:49 +0200
committerAndré Nusser <andre.nusser@googlemail.com>2018-06-07 17:26:49 +0200
commit93fe142f21e501a9ff12432d35fbf89b87135f9c (patch)
tree45b79d80073f429e7315ca1a2a8de61ed74d664d
parentf9541d8b78bb59713eede3748a4e1bb5776ef87c (diff)
Actually remove throw in versionstr and replace C-array by std::array.
-rw-r--r--src/versionstr.cc16
-rw-r--r--src/versionstr.h4
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};
};