From f951e5356b7b6fb1126e367e641882f1e5192f76 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Thu, 17 Oct 2013 22:39:06 +0200
Subject: fs/Charset: don't allow nullptr arguments

---
 src/fs/Charset.cxx | 5 +++--
 src/fs/Charset.hxx | 6 +++---
 src/fs/Path.hxx    | 4 ++--
 3 files changed, 8 insertions(+), 7 deletions(-)

(limited to 'src')

diff --git a/src/fs/Charset.cxx b/src/fs/Charset.cxx
index 5a06bf949..b75001043 100644
--- a/src/fs/Charset.cxx
+++ b/src/fs/Charset.cxx
@@ -79,8 +79,7 @@ GetFSCharset()
 std::string
 PathToUTF8(const char *path_fs)
 {
-	if (path_fs == nullptr)
-		return std::string();
+	assert(path_fs != nullptr);
 
 	GIConv conv = g_iconv_open("utf-8", fs_charset.c_str());
 	if (conv == reinterpret_cast<GIConv>(-1))
@@ -107,6 +106,8 @@ PathToUTF8(const char *path_fs)
 char *
 PathFromUTF8(const char *path_utf8)
 {
+	assert(path_utf8 != nullptr);
+
 	return g_convert(path_utf8, -1,
 			 fs_charset.c_str(), "utf-8",
 			 nullptr, nullptr, nullptr);
diff --git a/src/fs/Charset.hxx b/src/fs/Charset.hxx
index 58b5a090a..19dabeb2b 100644
--- a/src/fs/Charset.hxx
+++ b/src/fs/Charset.hxx
@@ -37,13 +37,13 @@ SetFSCharset(const char *charset);
 
 /**
  * Convert the path to UTF-8.
- * Returns empty string on error or if #path_fs is null pointer.
+ * Returns empty string on error.
  */
-gcc_pure
+gcc_pure gcc_nonnull_all
 std::string
 PathToUTF8(const char *path_fs);
 
-gcc_malloc
+gcc_malloc gcc_nonnull_all
 char *
 PathFromUTF8(const char *path_utf8);
 
diff --git a/src/fs/Path.hxx b/src/fs/Path.hxx
index 38112feee..d5b96f407 100644
--- a/src/fs/Path.hxx
+++ b/src/fs/Path.hxx
@@ -123,10 +123,10 @@ public:
 	 * Convert a UTF-8 C string to a #Path instance.
 	 * Returns return a "nulled" instance on error.
 	 */
-	gcc_pure
+	gcc_pure gcc_nonnull_all
 	static Path FromUTF8(const char *path_utf8);
 
-	gcc_pure
+	gcc_pure gcc_nonnull_all
 	static Path FromUTF8(const char *path_utf8, Error &error);
 
 	/**
-- 
cgit v1.2.3