changeset 14524:02ddea71c644 draft

(svn r19095) -Fix: segfault when a baseset has an empty metadata field
author yexo <yexo@openttd.org>
date Thu, 11 Feb 2010 15:08:55 +0000
parents f475a3b90d22
children 9843e2e409f4
files src/base_media_func.h src/music.cpp
diffstat 2 files changed, 2 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/base_media_func.h
+++ b/src/base_media_func.h
@@ -24,7 +24,7 @@
  */
 #define fetch_metadata(name) \
 	item = metadata->GetItem(name, false); \
-	if (item == NULL || strlen(item->value) == 0) { \
+	if (item == NULL || StrEmpty(item->value)) { \
 		DEBUG(grf, 0, "Base " SET_TYPE "set detail loading: %s field missing", name); \
 		return false; \
 	}
--- a/src/music.cpp
+++ b/src/music.cpp
@@ -56,17 +56,6 @@
 	return BaseMedia<Tbase_set>::used_set != NULL;
 }
 
-/**
- * Try to read a single piece of metadata and return false if it doesn't exist.
- * @param name the name of the item to fetch.
- */
-#define fetch_name(name) \
-	item = metadata->GetItem(name, false); \
-	if (item == NULL || strlen(item->value) == 0) { \
-		DEBUG(grf, 0, "Base " SET_TYPE "set detail loading: %s field missing", name); \
-		return false; \
-	}
-
 bool MusicSet::FillSetDetails(IniFile *ini, const char *path)
 {
 	bool ret = this->BaseSet<MusicSet, NUM_SONGS_AVAILABLE, GM_DIR>::FillSetDetails(ini, path);
@@ -81,7 +70,7 @@
 			}
 
 			IniItem *item = names->GetItem(filename, false);
-			if (item == NULL || strlen(item->value) == 0) {
+			if (item == NULL || StrEmpty(item->value)) {
 				DEBUG(grf, 0, "Base music set song name missing: %s", filename);
 				return false;
 			}