diff options
author | Hakan Sandell <hakan.sandell@home.se> | 2010-10-02 17:06:59 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2010-10-02 17:40:27 +0200 |
commit | 92eec8e87a5bb7403eb3128cfb87c26a5d1bbb37 (patch) | |
tree | 4f6e6ea766134cbea05bdf7ac36c3d5bd83ea76d | |
parent | 156dbd62fa3d65e4ee1f4a97e77e7705edefb03b (diff) | |
download | rpg-92eec8e87a5bb7403eb3128cfb87c26a5d1bbb37.tar.gz rpg-92eec8e87a5bb7403eb3128cfb87c26a5d1bbb37.tar.bz2 |
Fixed bug FS2030 JpegMeta dies on parsing XMP
-rw-r--r-- | inc/JpegMeta.php | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index 98453131e..fa05f6859 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -1488,6 +1488,8 @@ class JpegMeta { * @author Hakan Sandell <hakan.sandell@mydata.se> */ function _parseXmpNode($values, &$i, &$meta) { + if ($values[$i]['type'] == 'close') return; + if ($values[$i]['type'] == 'complete') { // Simple Type property $meta = $values[$i]['value']; @@ -1501,14 +1503,16 @@ class JpegMeta { while ($values[++$i]['tag'] == 'rdf:li') { $this->_parseXmpNode($values, $i, $meta[]); } - $i++; // skip closing tag + $i++; // skip closing Bag/Seq tag } elseif ($values[$i]['tag'] == 'rdf:Alt') { // Language Alternative property, only the first (default) value is used - $i++; - $this->_parseXmpNode($values, $i, $meta); - while ($values[++$i]['tag'] != 'rdf:Alt'); - $i++; // skip closing tag + if ($values[$i]['type'] == 'open') { + $i++; + $this->_parseXmpNode($values, $i, $meta); + while ($values[++$i]['tag'] != 'rdf:Alt'); + $i++; // skip closing Alt tag + } } else { // Structure property |