From 6350cf16e622d12ec2f68d0aa39132731dc7c73f Mon Sep 17 00:00:00 2001 From: m-holger Date: Tue, 27 Sep 2022 12:40:39 +0100 Subject: Remove QPDF_Stream::offset --- libqpdf/QPDF.cc | 7 +++---- libqpdf/QPDF_Stream.cc | 14 +++++++------- libqpdf/qpdf/QPDFValue.hh | 16 +++++++--------- libqpdf/qpdf/QPDF_Stream.hh | 1 - 4 files changed, 17 insertions(+), 21 deletions(-) (limited to 'libqpdf') diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index a821e4bf..bf7a03ea 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -1534,10 +1534,9 @@ QPDF::readObject( throw e; } } - auto stream = - QPDF_Stream::create(this, og, object, stream_offset, length); - stream->setParsedOffset(stream_offset); - object = newIndirect(og, stream); + object = newIndirect( + og, + QPDF_Stream::create(this, og, object, stream_offset, length)); } else { input->seek(cur_offset, SEEK_SET); } diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc index ec22b964..8e48f9fb 100644 --- a/libqpdf/QPDF_Stream.cc +++ b/libqpdf/QPDF_Stream.cc @@ -117,7 +117,6 @@ QPDF_Stream::QPDF_Stream( QPDFValue(::ot_stream, "stream"), filter_on_write(true), stream_dict(stream_dict), - offset(offset), length(length) { if (!stream_dict.isDictionary()) { @@ -126,6 +125,7 @@ QPDF_Stream::QPDF_Stream( } setDescription( qpdf, qpdf->getFilename() + ", stream object " + og.unparse(' ')); + this->parsed_offset = offset; } std::shared_ptr @@ -325,7 +325,7 @@ QPDF_Stream::isDataModified() const qpdf_offset_t QPDF_Stream::getOffset() const { - return this->offset; + return this->parsed_offset; } size_t @@ -357,7 +357,7 @@ QPDF_Stream::getStreamData(qpdf_stream_decode_level_e decode_level) qpdf_e_unsupported, qpdf->getFilename(), "", - this->offset, + this->parsed_offset, "getStreamData called on unfilterable stream"); } QTC::TC("qpdf", "QPDF_Stream getStreamData"); @@ -373,7 +373,7 @@ QPDF_Stream::getRawStreamData() qpdf_e_unsupported, qpdf->getFilename(), "", - this->offset, + this->parsed_offset, "error getting raw stream data"); } QTC::TC("qpdf", "QPDF_Stream getRawStreamData"); @@ -618,7 +618,7 @@ QPDF_Stream::pipeStreamData( this->stream_dict.replaceKey( "/Length", QPDFObjectHandle::newInteger(actual_length)); } - } else if (this->offset == 0) { + } else if (this->parsed_offset == 0) { QTC::TC("qpdf", "QPDF_Stream pipe no stream data"); throw std::logic_error("pipeStreamData called for stream with no data"); } else { @@ -626,7 +626,7 @@ QPDF_Stream::pipeStreamData( if (!QPDF::Pipe::pipeStreamData( this->qpdf, og, - this->offset, + this->parsed_offset, this->length, this->stream_dict, pipeline, @@ -716,5 +716,5 @@ QPDF_Stream::replaceDict(QPDFObjectHandle const& new_dict) void QPDF_Stream::warn(std::string const& message) { - this->qpdf->warn(qpdf_e_damaged_pdf, "", this->offset, message); + this->qpdf->warn(qpdf_e_damaged_pdf, "", this->parsed_offset, message); } diff --git a/libqpdf/qpdf/QPDFValue.hh b/libqpdf/qpdf/QPDFValue.hh index 0f85f79f..17dce933 100644 --- a/libqpdf/qpdf/QPDFValue.hh +++ b/libqpdf/qpdf/QPDFValue.hh @@ -69,11 +69,8 @@ class QPDFValue } protected: - QPDFValue() : - type_code(::ot_uninitialized), - type_name("uninitialized") - { - } + QPDFValue() = default; + QPDFValue(qpdf_object_type_e type_code, char const* type_name) : type_code(type_code), type_name(type_name) @@ -97,13 +94,14 @@ class QPDFValue QPDFValue(QPDFValue const&) = delete; QPDFValue& operator=(QPDFValue const&) = delete; std::string object_description; - qpdf_offset_t parsed_offset{-1}; - const qpdf_object_type_e type_code; - char const* type_name; + + const qpdf_object_type_e type_code{::ot_uninitialized}; + char const* type_name{"uninitialized"}; protected: QPDF* qpdf{nullptr}; - QPDFObjGen og; + QPDFObjGen og{}; + qpdf_offset_t parsed_offset{-1}; }; #endif // QPDFVALUE_HH diff --git a/libqpdf/qpdf/QPDF_Stream.hh b/libqpdf/qpdf/QPDF_Stream.hh index cb5c9256..e58901ba 100644 --- a/libqpdf/qpdf/QPDF_Stream.hh +++ b/libqpdf/qpdf/QPDF_Stream.hh @@ -103,7 +103,6 @@ class QPDF_Stream: public QPDFValue bool filter_on_write; QPDFObjectHandle stream_dict; - qpdf_offset_t offset; size_t length; std::shared_ptr stream_data; std::shared_ptr stream_provider; -- cgit v1.2.3-54-g00ecf