summaryrefslogtreecommitdiffstats
path: root/src/WorldStorage
diff options
context:
space:
mode:
Diffstat (limited to 'src/WorldStorage')
-rw-r--r--src/WorldStorage/FastNBT.cpp56
-rw-r--r--src/WorldStorage/FastNBT.h35
2 files changed, 41 insertions, 50 deletions
diff --git a/src/WorldStorage/FastNBT.cpp b/src/WorldStorage/FastNBT.cpp
index 237773733..99148e126 100644
--- a/src/WorldStorage/FastNBT.cpp
+++ b/src/WorldStorage/FastNBT.cpp
@@ -35,6 +35,35 @@ static const int MAX_LIST_ITEMS = 10000;
////////////////////////////////////////////////////////////////////////////////
// cNBTParseErrorCategory:
+namespace
+{
+
+class cNBTParseErrorCategory final :
+ public std::error_category
+{
+ cNBTParseErrorCategory() = default;
+public:
+ /** Category name */
+ virtual const char * name() const NOEXCEPT override
+ {
+ return "NBT parse error";
+ }
+
+ /** Maps a parse error code to an error message */
+ virtual AString message(int a_Condition) const override;
+
+ /** Returns the canonical error category instance. */
+ static const cNBTParseErrorCategory & Get() NOEXCEPT
+ {
+ static cNBTParseErrorCategory Category;
+ return Category;
+ }
+};
+
+
+
+
+
AString cNBTParseErrorCategory::message(int a_Condition) const
{
switch (static_cast<eNBTParseError>(a_Condition))
@@ -91,22 +120,19 @@ AString cNBTParseErrorCategory::message(int a_Condition) const
{
return "Unknown tag";
}
+ }
+ UNREACHABLE("Unsupported nbt parse error");
+}
- #ifdef __clang__
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Wcovered-switch-default"
- #pragma clang diagnostic ignored "-Wunreachable-code"
- #endif
+} // namespace (anonymous)
- default:
- {
- return "<unrecognized error>";
- }
- #ifdef __clang__
- #pragma clang diagnostic pop
- #endif
- }
+
+
+
+std::error_code make_error_code(eNBTParseError a_Err) NOEXCEPT
+{
+ return { static_cast<int>(a_Err), cNBTParseErrorCategory::Get() };
}
@@ -337,14 +363,12 @@ eNBTParseError cParsedNBT::ReadTag(void)
return eNBTParseError::npSuccess;
}
- #if !defined(__clang__)
- default:
- #endif
case TAG_Min:
{
return eNBTParseError::npUnknownTag;
}
} // switch (iType)
+ UNREACHABLE("Unsupported nbt tag type");
}
#undef CASE_SIMPLE_TAG
diff --git a/src/WorldStorage/FastNBT.h b/src/WorldStorage/FastNBT.h
index 1894903ac..0185a49ec 100644
--- a/src/WorldStorage/FastNBT.h
+++ b/src/WorldStorage/FastNBT.h
@@ -125,41 +125,8 @@ enum class eNBTParseError
npUnknownTag,
};
-
-
-
-
-class cNBTParseErrorCategory final:
- public std::error_category
-{
- cNBTParseErrorCategory() = default;
-public:
- /** Category name */
- virtual const char * name() const NOEXCEPT override
- {
- return "NBT parse error";
- }
-
- /** Maps a parse error code to an error message */
- virtual AString message(int a_Condition) const override;
-
- /** Returns the canonical error category instance. */
- static const cNBTParseErrorCategory & Get()
- {
- static cNBTParseErrorCategory Category;
- return Category;
- }
-};
-
-
-
-
-
// The following is required to make an error_code constructible from an eNBTParseError
-inline std::error_code make_error_code(eNBTParseError a_Err) NOEXCEPT
-{
- return { static_cast<int>(a_Err), cNBTParseErrorCategory::Get() };
-}
+std::error_code make_error_code(eNBTParseError a_Err) NOEXCEPT;
namespace std
{