aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFObjectHandle.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-12-21 14:14:05 +0100
committerJay Berkenbilt <jberkenbilt@users.noreply.github.com>2022-12-31 15:31:07 +0100
commit6cbc55a5b5ac4a1c44906ed9dd9ad5c50cd93ea1 (patch)
treea25947aaeaa00011c954354f58e5495f0fb7e5a9 /libqpdf/QPDFObjectHandle.cc
parentb0457b37e2af4d782f38532f41d50418236e6780 (diff)
downloadqpdf-6cbc55a5b5ac4a1c44906ed9dd9ad5c50cd93ea1.tar.zst
Add new virtual method QPDFObject::getStringValue
Avoid dynamic casting.
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r--libqpdf/QPDFObjectHandle.cc50
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;
}