From 338e66af5f0a645e5d161ca83d048b27c3095165 Mon Sep 17 00:00:00 2001
From: Craig Robbins <kde.psych@gmail.com>
Date: Fri, 27 Feb 2015 13:40:27 +1000
Subject: [PATCH] Fix minor memory leak (Android)

---
 src/util/string.cpp | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/util/string.cpp b/src/util/string.cpp
index 8861981b2..9e2123d59 100644
--- a/src/util/string.cpp
+++ b/src/util/string.cpp
@@ -40,6 +40,7 @@ static bool parseHexColorString(const std::string &value, video::SColor &color);
 static bool parseNamedColorString(const std::string &value, video::SColor &color);
 
 #ifdef __ANDROID__
+
 const wchar_t* wide_chars =
 	L" !\"#$%&'()*+,-./0123456789:;<=>?@"
 	L"ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`"
@@ -62,14 +63,18 @@ int wctomb(char *s, wchar_t wc)
 
 int mbtowc(wchar_t *pwc, const char *s, size_t n)
 {
+	if (s == NULL || *s == '\0')
+		return -1;
+
 	const wchar_t *tmp = narrow_to_wide_c(s);
+	bool success = tmp[0] != '\0';
 
-	if (tmp[0] != '\0') {
+	if (success)
 		*pwc = tmp[0];
-		return 1;
-	} else {
-		return -1;
-	}
+
+	delete tmp;
+
+	return success ? 1 : -1;
 }
 
 // You must free the returned string!
-- 
GitLab