diff options
author | Hakan Sandell <hakan.sandell@home.se> | 2010-10-02 17:06:59 +0200 |
---|---|---|
committer | Hakan Sandell <hakan.sandell@home.se> | 2010-10-02 17:06:59 +0200 |
commit | 831c10d03192413b75ee2be21fb314e0797fdc23 (patch) | |
tree | c88c90b09c5dbb6743540635fb009f939a00f239 /inc/JpegMeta.php | |
parent | b5205b2538d729ce5fa3fa3fb94920a08a102b5b (diff) | |
download | rpg-831c10d03192413b75ee2be21fb314e0797fdc23.tar.gz rpg-831c10d03192413b75ee2be21fb314e0797fdc23.tar.bz2 |
Fixed bug FS2030 JpegMeta dies on parsing XMP
Diffstat (limited to 'inc/JpegMeta.php')
-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 |