2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-05-29 08:20:53 +00:00
qpdf/libqpdf/QPDF_Unresolved.cc
Jay Berkenbilt dba61da1bf Create a special "destroyed" type rather than using null
When a QPDF is destroyed, changing indirect objects to direct nulls
makes them effectively disappear silently when they sneak into other
places. Instead, we should treat this as an error. Adding a destroyed
object type makes this possible.
2022-09-08 10:36:39 -04:00

39 lines
850 B
C++

#include <qpdf/QPDF_Unresolved.hh>
#include <stdexcept>
QPDF_Unresolved::QPDF_Unresolved(QPDF* qpdf, QPDFObjGen const& og) :
QPDFValue(::ot_unresolved, "unresolved", qpdf, og)
{
}
std::shared_ptr<QPDFValueProxy>
QPDF_Unresolved::create(QPDF* qpdf, QPDFObjGen const& og)
{
return do_create(new QPDF_Unresolved(qpdf, og));
}
std::shared_ptr<QPDFValueProxy>
QPDF_Unresolved::shallowCopy()
{
throw std::logic_error(
"attempted to shallow copy an unresolved QPDFObjectHandle");
return nullptr;
}
std::string
QPDF_Unresolved::unparse()
{
throw std::logic_error(
"attempted to unparse an unresolved QPDFObjectHandle");
return "";
}
JSON
QPDF_Unresolved::getJSON(int json_version)
{
throw std::logic_error(
"attempted to get JSON from an unresolved QPDFObjectHandle");
return JSON::makeNull();
}