Просмотр исходного кода

Merge pull request #98 from mcclure/safestring

NULL-safe String methods
Ivan Safrin 13 лет назад
Родитель
Сommit
8b142fc40d
1 измененных файлов с 10 добавлено и 4 удалено
  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;