diff options
author | Albert Astals Cid <aacid@kde.org> | 2021-12-14 12:37:20 +0100 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2021-12-14 12:38:10 +0100 |
commit | 87b2436275c19b23dd3b50c5ed2cc83cc0a514f6 (patch) | |
tree | 513dc38867fb69ee107e31730e75a0c4562ba8ef | |
parent | 4aca8d65fd073667433e4426c5c08d7e9ea68d64 (diff) |
LinkResetForm: Also understand strings in the Fields field
-rw-r--r-- | poppler/Link.cc | 10 |
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"); } } } |