Explorar o código

Merge pull request #98 from mcclure/safestring

NULL-safe String methods
Ivan Safrin %!s(int64=13) %!d(string=hai) anos
pai
achega
8b142fc40d
Modificáronse 1 ficheiros con 10 adicións e 4 borrados
  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) {
 String::String(const wchar_t *str) {
-	wstrToUtf8(contents, str);
+	if (str)
+		wstrToUtf8(contents, str);
 }
 }
 
 
 String::String(const char *str) {
 String::String(const char *str) {
-	contents = str;
+	if (str)
+		contents = str;
 }
 }
 
 
 String::String(const char *str, size_t n) {
 String::String(const char *str, size_t n) {
-	contents = string(str, n);
+	if (str)
+		contents = string(str, n);
 }
 }
 
 
 String::String(const string& str) {
 String::String(const string& str) {
@@ -76,7 +79,10 @@ const char *String::getDataWithEncoding(int encoding) const {
 void String::setDataWithEncoding(char *data, int encoding) {
 void String::setDataWithEncoding(char *data, int encoding) {
 	switch(encoding) {
 	switch(encoding) {
 		case ENCODING_UTF8: {
 		case ENCODING_UTF8: {
-			contents = data;
+			if (data)
+				contents = data;
+			else
+				contents = std::string();
 		}
 		}
 		default:
 		default:
 			break;
 			break;