From 6f25f5d9390ae247970ad886dc51d55435285831 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Mon, 27 Sep 2010 22:40:40 +0200 Subject: Centralized String to bool conversion into the client. The former XML::getBoolProperty() had a potential memleak and was unsafe when dealing with unknown values. Reviewed-by: CodyMartin. Resolves: Mana-Mantis #213. --- src/utils/xml.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/utils/xml.cpp') diff --git a/src/utils/xml.cpp b/src/utils/xml.cpp index 2bcb6f24..65eb1370 100644 --- a/src/utils/xml.cpp +++ b/src/utils/xml.cpp @@ -32,6 +32,7 @@ #include "resources/resourcemanager.h" +#include "utils/stringutils.h" #include "utils/zlib.h" namespace XML @@ -135,11 +136,14 @@ namespace XML bool getBoolProperty(xmlNodePtr node, const char* name, bool def) { + bool ret = def; xmlChar *prop = xmlGetProp(node, BAD_CAST name); - - if (xmlStrEqual(prop, BAD_CAST "true" ) ) return true; - if (xmlStrEqual(prop, BAD_CAST "false") ) return false; - return def; + if (prop) + { + ret = getBoolFromString((char*) prop, def); + xmlFree(prop); + } + return ret; } xmlNodePtr findFirstChildByName(xmlNodePtr parent, const char *name) -- cgit v1.2.3-70-g09d2