aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFObjectHandle.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-01-26 09:00:23 +0100
committerJay Berkenbilt <jberkenbilt@users.noreply.github.com>2022-01-27 14:31:12 +0100
commit07db3200cb0ef058b8a66ece8d9757adfba49fd1 (patch)
tree084c94a5778581451bb42e5cd38fffeb36a12e2b /libqpdf/QPDFObjectHandle.cc
parent710d2e54f0762b7702640766d33b7e0977ba69de (diff)
downloadqpdf-07db3200cb0ef058b8a66ece8d9757adfba49fd1.tar.zst
Remove some if statements and simplify some boolean expressions
Use QPDFObjectHandle::isNameAndEquals, isDictionaryOfType and isStreamOfType.
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r--libqpdf/QPDFObjectHandle.cc52
1 files changed, 10 insertions, 42 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc
index 2713eb95..f8d52a7b 100644
--- a/libqpdf/QPDFObjectHandle.cc
+++ b/libqpdf/QPDFObjectHandle.cc
@@ -1055,23 +1055,9 @@ QPDFObjectHandle::getDictAsMap()
bool
QPDFObjectHandle::isOrHasName(std::string const& value)
{
- if (isName() && (getName() == value))
- {
- return true;
- }
- else if (isArray())
- {
- int n = getArrayNItems();
- for (int i = 0; i < n; ++i)
- {
- QPDFObjectHandle item = getArrayItem(0);
- if (item.isName() && (item.getName() == value))
- {
- return true;
- }
- }
- }
- return false;
+ return isNameAndEquals(value) ||
+ (isArray() && (getArrayNItems() > 0) &&
+ getArrayItem(0).isNameAndEquals(value));
}
void
@@ -2520,8 +2506,7 @@ QPDFObjectHandle::parseInternal(PointerHolder<InputSource> input,
}
if (!contents_string.empty() &&
dict.count("/Type") &&
- dict["/Type"].isName() &&
- dict["/Type"].getName() == "/Sig" &&
+ dict["/Type"].isNameAndEquals("/Sig") &&
dict.count("/ByteRange") &&
dict.count("/Contents") &&
dict["/Contents"].isString())
@@ -3237,7 +3222,7 @@ QPDFObjectHandle::isPageObject()
if (this->hasKey("/Type"))
{
QPDFObjectHandle type = this->getKey("/Type");
- if (type.isName() && (type.getName() == "/Page"))
+ if (type.isNameAndEquals("/Page"))
{
return true;
}
@@ -3263,39 +3248,22 @@ QPDFObjectHandle::isPagesObject()
}
// getAllPages repairs /Type when traversing the page tree.
getOwningQPDF()->getAllPages();
- return (this->isDictionary() &&
- this->hasKey("/Type") &&
- this->getKey("/Type").isName() &&
- this->getKey("/Type").getName() == "/Pages");
+ return isDictionaryOfType("/Pages");
}
bool
QPDFObjectHandle::isFormXObject()
{
- if (! this->isStream())
- {
- return false;
- }
- QPDFObjectHandle dict = this->getDict();
- return (dict.getKey("/Type").isName() &&
- ("/XObject" == dict.getKey("/Type").getName()) &&
- dict.getKey("/Subtype").isName() &&
- ("/Form" == dict.getKey("/Subtype").getName()));
+ return isStreamOfType("/XObject", "/Form");
}
bool
QPDFObjectHandle::isImage(bool exclude_imagemask)
{
- if (! this->isStream())
- {
- return false;
- }
- QPDFObjectHandle dict = this->getDict();
- return (dict.hasKey("/Subtype") &&
- (dict.getKey("/Subtype").getName() == "/Image") &&
+ return (isStreamOfType("", "/Image") &&
((! exclude_imagemask) ||
- (! (dict.getKey("/ImageMask").isBool() &&
- dict.getKey("/ImageMask").getBoolValue()))));
+ (! (getDict().getKey("/ImageMask").isBool() &&
+ getDict().getKey("/ImageMask").getBoolValue()))));
}
void