(svn r10453) -Codechange: Allow save/load of empty (unallocated) strings
authorpeter1138
Fri, 06 Jul 2007 08:32:00 +0000
changeset 7675 8ba55fbb0f72
parent 7674 09417b5dfad1
child 7676 7df8af5ef792
(svn r10453) -Codechange: Allow save/load of empty (unallocated) strings
src/saveload.cpp
--- a/src/saveload.cpp	Fri Jul 06 07:29:04 2007 +0000
+++ b/src/saveload.cpp	Fri Jul 06 08:32:00 2007 +0000
@@ -496,6 +496,7 @@
  * @return return the net length of the string */
 static inline size_t SlCalcNetStringLen(const char *ptr, size_t length)
 {
+	if (ptr == NULL) return 0;
 	return minu(strlen(ptr), length - 1);
 }
 
@@ -573,9 +574,13 @@
 			case SLE_VAR_STR:
 			case SLE_VAR_STRQ: // Malloc'd string, free previous incarnation, and allocate
 				free(*(char**)ptr);
-				*(char**)ptr = (char*)malloc(len + 1); // terminating '\0'
-				ptr = *(char**)ptr;
-				SlCopyBytes(ptr, len);
+				if (len == 0) {
+					*(char**)ptr = NULL;
+				} else {
+					*(char**)ptr = (char*)malloc(len + 1); // terminating '\0'
+					ptr = *(char**)ptr;
+					SlCopyBytes(ptr, len);
+				}
 				break;
 		}