[fanart] use FirstChild()->Value() rather than unchecked GetText().
authorJonathan Marshall <jmarshall@xbmc.org>
Tue, 15 Jul 2014 04:21:04 +0000 (16:21 +1200)
committerJonathan Marshall <jmarshall@xbmc.org>
Tue, 15 Jul 2014 04:21:06 +0000 (16:21 +1200)
NOTE: Potential change in behaviour in that if a url attribute is specified in the <fanart>
node and <thumb> children are specified without a value, it used to just take url as the
url.  This was not intended, however, as url is supposed to be the base url, not the full url.

xbmc/utils/Fanart.cpp

index 1527972..d7bde1d 100644 (file)
@@ -67,21 +67,24 @@ bool CFanart::Unpack()
     TiXmlElement *fanartThumb = fanart->FirstChildElement("thumb");
     while (fanartThumb)
     {
-      SFanartData data;
-      if (url.empty())
+      if (!fanartThumb->NoChildren())
       {
-        data.strImage = fanartThumb->GetText();
-        data.strPreview = XMLUtils::GetAttribute(fanartThumb, "preview");
+        SFanartData data;
+        if (url.empty())
+        {
+          data.strImage = fanartThumb->FirstChild()->ValueStr();
+          data.strPreview = XMLUtils::GetAttribute(fanartThumb, "preview");
+        }
+        else
+        {
+          data.strImage = URIUtils::AddFileToFolder(url, fanartThumb->FirstChild()->ValueStr());
+          if (fanartThumb->Attribute("preview"))
+            data.strPreview = URIUtils::AddFileToFolder(url, fanartThumb->Attribute("preview"));
+        }
+        data.strResolution = XMLUtils::GetAttribute(fanartThumb, "dim");
+        ParseColors(XMLUtils::GetAttribute(fanartThumb, "colors"), data.strColors);
+        m_fanart.push_back(data);
       }
-      else
-      {
-        data.strImage = URIUtils::AddFileToFolder(url, fanartThumb->GetText());
-        if (fanartThumb->Attribute("preview"))
-          data.strPreview = URIUtils::AddFileToFolder(url, fanartThumb->Attribute("preview"));
-      }
-      data.strResolution = XMLUtils::GetAttribute(fanartThumb, "dim");
-      ParseColors(XMLUtils::GetAttribute(fanartThumb, "colors"), data.strColors);
-      m_fanart.push_back(data);
       fanartThumb = fanartThumb->NextSiblingElement("thumb");
     }
     fanart = fanart->NextSiblingElement("fanart");