Ver Fonte

Check String inputs for NULL, so that passing in a NULL c string results in an empty string and not a crash

mcc há 14 anos atrás
pai
commit
9de8332077
1 ficheiros alterados com 10 adições e 4 exclusões
  1. 10 4
      Core/Contents/Source/PolyString.cpp

+ 10 - 4
Core/Contents/Source/PolyString.cpp

@@ -29,15 +29,18 @@ String::String() {
 }
 
 String::String(const wchar_t *str) {
-	wstrToUtf8(contents, str);
+	if (str)
+		wstrToUtf8(contents, str);
 }
 
 String::String(const char *str) {
-	contents = str;
+	if (str)
+		contents = str;
 }
 
 String::String(const char *str, size_t n) {
-	contents = string(str, n);
+	if (str)
+		contents = string(str, n);
 }
 
 String::String(const string& str) {
@@ -76,7 +79,10 @@ const char *String::getDataWithEncoding(int encoding) const {
 void String::setDataWithEncoding(char *data, int encoding) {
 	switch(encoding) {
 		case ENCODING_UTF8: {
-			contents = data;
+			if (data)
+				contents = data;
+			else
+				contents = std::string();
 		}
 		default:
 			break;