summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2021-12-14 12:37:20 +0100
committerAlbert Astals Cid <aacid@kde.org>2021-12-14 12:38:10 +0100
commit87b2436275c19b23dd3b50c5ed2cc83cc0a514f6 (patch)
tree513dc38867fb69ee107e31730e75a0c4562ba8ef
parent4aca8d65fd073667433e4426c5c08d7e9ea68d64 (diff)
LinkResetForm: Also understand strings in the Fields field
-rw-r--r--poppler/Link.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/poppler/Link.cc b/poppler/Link.cc
index a4f05f3d..11ef879b 100644
--- a/poppler/Link.cc
+++ b/poppler/Link.cc
@@ -16,7 +16,7 @@
// Copyright (C) 2006, 2008 Pino Toscano <pino@kde.org>
// Copyright (C) 2007, 2010, 2011 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2008 Hugo Mercier <hmercier31@gmail.com>
-// Copyright (C) 2008-2010, 2012-2014, 2016-2020 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008-2010, 2012-2014, 2016-2021 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009 Kovid Goyal <kovid@kovidgoyal.net>
// Copyright (C) 2009 Ilya Gorenbein <igorenbein@finjan.com>
// Copyright (C) 2012 Tobias Koening <tobias.koenig@kdab.com>
@@ -859,13 +859,17 @@ LinkResetForm::LinkResetForm(const Object *obj)
fields.resize(obj1.arrayGetLength());
for (int i = 0; i < obj1.arrayGetLength(); ++i) {
const Object &obj2 = obj1.arrayGetNF(i);
- if (obj2.isName())
+ if (obj2.isName()) {
fields[i] = std::string(obj2.getName());
- else if (obj2.isRef()) {
+ } else if (obj2.isString()) {
+ fields[i] = obj2.getString()->toStr();
+ } else if (obj2.isRef()) {
fields[i] = std::to_string(obj2.getRef().num);
fields[i].append(" ");
fields[i].append(std::to_string(obj2.getRef().gen));
fields[i].append(" R");
+ } else {
+ error(errSyntaxWarning, -1, "LinkResetForm: unexpected Field type");
}
}
}