summaryrefslogtreecommitdiff
path: root/inc/JpegMeta.php
diff options
context:
space:
mode:
authorHakan Sandell <hakan.sandell@home.se>2010-10-02 17:06:59 +0200
committerHakan Sandell <hakan.sandell@home.se>2010-10-02 17:06:59 +0200
commit831c10d03192413b75ee2be21fb314e0797fdc23 (patch)
treec88c90b09c5dbb6743540635fb009f939a00f239 /inc/JpegMeta.php
parentb5205b2538d729ce5fa3fa3fb94920a08a102b5b (diff)
downloadrpg-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.php14
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