diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-12-21 14:14:05 +0100 |
---|---|---|
committer | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2022-12-31 15:31:07 +0100 |
commit | 6cbc55a5b5ac4a1c44906ed9dd9ad5c50cd93ea1 (patch) | |
tree | a25947aaeaa00011c954354f58e5495f0fb7e5a9 /libqpdf/QPDFObjectHandle.cc | |
parent | b0457b37e2af4d782f38532f41d50418236e6780 (diff) | |
download | qpdf-6cbc55a5b5ac4a1c44906ed9dd9ad5c50cd93ea1.tar.zst |
Add new virtual method QPDFObject::getStringValue
Avoid dynamic casting.
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 50 |
1 files changed, 20 insertions, 30 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index f86167b6..169a930d 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -639,9 +639,8 @@ QPDFObjectHandle::getValueAsUInt(unsigned int& value) std::string QPDFObjectHandle::getRealValue() { - auto real = asReal(); - if (real) { - return real->getVal(); + if (isReal()) { + return obj->getStringValue(); } else { typeWarning("real", "returning 0.0"); QTC::TC("qpdf", "QPDFObjectHandle real returning 0.0"); @@ -652,11 +651,10 @@ QPDFObjectHandle::getRealValue() bool QPDFObjectHandle::getValueAsReal(std::string& value) { - auto real = asReal(); - if (real == nullptr) { + if (!isReal()) { return false; } - value = real->getVal(); + value = obj->getStringValue(); return true; } @@ -665,9 +663,8 @@ QPDFObjectHandle::getValueAsReal(std::string& value) std::string QPDFObjectHandle::getName() { - auto name = asName(); - if (name) { - return name->getName(); + if (isName()) { + return obj->getStringValue(); } else { typeWarning("name", "returning dummy name"); QTC::TC("qpdf", "QPDFObjectHandle name returning dummy name"); @@ -678,11 +675,10 @@ QPDFObjectHandle::getName() bool QPDFObjectHandle::getValueAsName(std::string& value) { - auto name = asName(); - if (name == nullptr) { + if (!isName()) { return false; } - value = name->getName(); + value = obj->getStringValue(); return true; } @@ -691,9 +687,8 @@ QPDFObjectHandle::getValueAsName(std::string& value) std::string QPDFObjectHandle::getStringValue() { - auto str = asString(); - if (str) { - return str->getVal(); + if (isString()) { + return obj->getStringValue(); } else { typeWarning("string", "returning empty string"); QTC::TC("qpdf", "QPDFObjectHandle string returning empty string"); @@ -704,11 +699,10 @@ QPDFObjectHandle::getStringValue() bool QPDFObjectHandle::getValueAsString(std::string& value) { - auto str = asString(); - if (str == nullptr) { + if (!isString()) { return false; } - value = str->getVal(); + value = obj->getStringValue(); return true; } @@ -741,9 +735,8 @@ QPDFObjectHandle::getValueAsUTF8(std::string& value) std::string QPDFObjectHandle::getOperatorValue() { - auto op = asOperator(); - if (op) { - return op->getVal(); + if (isOperator()) { + return obj->getStringValue(); } else { typeWarning("operator", "returning fake value"); QTC::TC("qpdf", "QPDFObjectHandle operator returning fake value"); @@ -754,20 +747,18 @@ QPDFObjectHandle::getOperatorValue() bool QPDFObjectHandle::getValueAsOperator(std::string& value) { - auto op = asOperator(); - if (op == nullptr) { + if (!isOperator()) { return false; } - value = op->getVal(); + value = obj->getStringValue(); return true; } std::string QPDFObjectHandle::getInlineImageValue() { - auto image = asInlineImage(); - if (image) { - return image->getVal(); + if (isInlineImage()) { + return obj->getStringValue(); } else { typeWarning("inlineimage", "returning empty data"); QTC::TC("qpdf", "QPDFObjectHandle inlineimage returning empty data"); @@ -778,11 +769,10 @@ QPDFObjectHandle::getInlineImageValue() bool QPDFObjectHandle::getValueAsInlineImage(std::string& value) { - auto image = asInlineImage(); - if (image == nullptr) { + if (!isInlineImage()) { return false; } - value = image->getVal(); + value = obj->getStringValue(); return true; } |