Commit 6350cf16e622d12ec2f68d0aa39132731dc7c73f
Committed by
Jay Berkenbilt
1 parent
3a86b893
Remove QPDF_Stream::offset
Showing
4 changed files
with
17 additions
and
21 deletions
libqpdf/QPDF.cc
| @@ -1534,10 +1534,9 @@ QPDF::readObject( | @@ -1534,10 +1534,9 @@ QPDF::readObject( | ||
| 1534 | throw e; | 1534 | throw e; |
| 1535 | } | 1535 | } |
| 1536 | } | 1536 | } |
| 1537 | - auto stream = | ||
| 1538 | - QPDF_Stream::create(this, og, object, stream_offset, length); | ||
| 1539 | - stream->setParsedOffset(stream_offset); | ||
| 1540 | - object = newIndirect(og, stream); | 1537 | + object = newIndirect( |
| 1538 | + og, | ||
| 1539 | + QPDF_Stream::create(this, og, object, stream_offset, length)); | ||
| 1541 | } else { | 1540 | } else { |
| 1542 | input->seek(cur_offset, SEEK_SET); | 1541 | input->seek(cur_offset, SEEK_SET); |
| 1543 | } | 1542 | } |
libqpdf/QPDF_Stream.cc
| @@ -117,7 +117,6 @@ QPDF_Stream::QPDF_Stream( | @@ -117,7 +117,6 @@ QPDF_Stream::QPDF_Stream( | ||
| 117 | QPDFValue(::ot_stream, "stream"), | 117 | QPDFValue(::ot_stream, "stream"), |
| 118 | filter_on_write(true), | 118 | filter_on_write(true), |
| 119 | stream_dict(stream_dict), | 119 | stream_dict(stream_dict), |
| 120 | - offset(offset), | ||
| 121 | length(length) | 120 | length(length) |
| 122 | { | 121 | { |
| 123 | if (!stream_dict.isDictionary()) { | 122 | if (!stream_dict.isDictionary()) { |
| @@ -126,6 +125,7 @@ QPDF_Stream::QPDF_Stream( | @@ -126,6 +125,7 @@ QPDF_Stream::QPDF_Stream( | ||
| 126 | } | 125 | } |
| 127 | setDescription( | 126 | setDescription( |
| 128 | qpdf, qpdf->getFilename() + ", stream object " + og.unparse(' ')); | 127 | qpdf, qpdf->getFilename() + ", stream object " + og.unparse(' ')); |
| 128 | + this->parsed_offset = offset; | ||
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | std::shared_ptr<QPDFObject> | 131 | std::shared_ptr<QPDFObject> |
| @@ -325,7 +325,7 @@ QPDF_Stream::isDataModified() const | @@ -325,7 +325,7 @@ QPDF_Stream::isDataModified() const | ||
| 325 | qpdf_offset_t | 325 | qpdf_offset_t |
| 326 | QPDF_Stream::getOffset() const | 326 | QPDF_Stream::getOffset() const |
| 327 | { | 327 | { |
| 328 | - return this->offset; | 328 | + return this->parsed_offset; |
| 329 | } | 329 | } |
| 330 | 330 | ||
| 331 | size_t | 331 | size_t |
| @@ -357,7 +357,7 @@ QPDF_Stream::getStreamData(qpdf_stream_decode_level_e decode_level) | @@ -357,7 +357,7 @@ QPDF_Stream::getStreamData(qpdf_stream_decode_level_e decode_level) | ||
| 357 | qpdf_e_unsupported, | 357 | qpdf_e_unsupported, |
| 358 | qpdf->getFilename(), | 358 | qpdf->getFilename(), |
| 359 | "", | 359 | "", |
| 360 | - this->offset, | 360 | + this->parsed_offset, |
| 361 | "getStreamData called on unfilterable stream"); | 361 | "getStreamData called on unfilterable stream"); |
| 362 | } | 362 | } |
| 363 | QTC::TC("qpdf", "QPDF_Stream getStreamData"); | 363 | QTC::TC("qpdf", "QPDF_Stream getStreamData"); |
| @@ -373,7 +373,7 @@ QPDF_Stream::getRawStreamData() | @@ -373,7 +373,7 @@ QPDF_Stream::getRawStreamData() | ||
| 373 | qpdf_e_unsupported, | 373 | qpdf_e_unsupported, |
| 374 | qpdf->getFilename(), | 374 | qpdf->getFilename(), |
| 375 | "", | 375 | "", |
| 376 | - this->offset, | 376 | + this->parsed_offset, |
| 377 | "error getting raw stream data"); | 377 | "error getting raw stream data"); |
| 378 | } | 378 | } |
| 379 | QTC::TC("qpdf", "QPDF_Stream getRawStreamData"); | 379 | QTC::TC("qpdf", "QPDF_Stream getRawStreamData"); |
| @@ -618,7 +618,7 @@ QPDF_Stream::pipeStreamData( | @@ -618,7 +618,7 @@ QPDF_Stream::pipeStreamData( | ||
| 618 | this->stream_dict.replaceKey( | 618 | this->stream_dict.replaceKey( |
| 619 | "/Length", QPDFObjectHandle::newInteger(actual_length)); | 619 | "/Length", QPDFObjectHandle::newInteger(actual_length)); |
| 620 | } | 620 | } |
| 621 | - } else if (this->offset == 0) { | 621 | + } else if (this->parsed_offset == 0) { |
| 622 | QTC::TC("qpdf", "QPDF_Stream pipe no stream data"); | 622 | QTC::TC("qpdf", "QPDF_Stream pipe no stream data"); |
| 623 | throw std::logic_error("pipeStreamData called for stream with no data"); | 623 | throw std::logic_error("pipeStreamData called for stream with no data"); |
| 624 | } else { | 624 | } else { |
| @@ -626,7 +626,7 @@ QPDF_Stream::pipeStreamData( | @@ -626,7 +626,7 @@ QPDF_Stream::pipeStreamData( | ||
| 626 | if (!QPDF::Pipe::pipeStreamData( | 626 | if (!QPDF::Pipe::pipeStreamData( |
| 627 | this->qpdf, | 627 | this->qpdf, |
| 628 | og, | 628 | og, |
| 629 | - this->offset, | 629 | + this->parsed_offset, |
| 630 | this->length, | 630 | this->length, |
| 631 | this->stream_dict, | 631 | this->stream_dict, |
| 632 | pipeline, | 632 | pipeline, |
| @@ -716,5 +716,5 @@ QPDF_Stream::replaceDict(QPDFObjectHandle const& new_dict) | @@ -716,5 +716,5 @@ QPDF_Stream::replaceDict(QPDFObjectHandle const& new_dict) | ||
| 716 | void | 716 | void |
| 717 | QPDF_Stream::warn(std::string const& message) | 717 | QPDF_Stream::warn(std::string const& message) |
| 718 | { | 718 | { |
| 719 | - this->qpdf->warn(qpdf_e_damaged_pdf, "", this->offset, message); | 719 | + this->qpdf->warn(qpdf_e_damaged_pdf, "", this->parsed_offset, message); |
| 720 | } | 720 | } |
libqpdf/qpdf/QPDFValue.hh
| @@ -69,11 +69,8 @@ class QPDFValue | @@ -69,11 +69,8 @@ class QPDFValue | ||
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | protected: | 71 | protected: |
| 72 | - QPDFValue() : | ||
| 73 | - type_code(::ot_uninitialized), | ||
| 74 | - type_name("uninitialized") | ||
| 75 | - { | ||
| 76 | - } | 72 | + QPDFValue() = default; |
| 73 | + | ||
| 77 | QPDFValue(qpdf_object_type_e type_code, char const* type_name) : | 74 | QPDFValue(qpdf_object_type_e type_code, char const* type_name) : |
| 78 | type_code(type_code), | 75 | type_code(type_code), |
| 79 | type_name(type_name) | 76 | type_name(type_name) |
| @@ -97,13 +94,14 @@ class QPDFValue | @@ -97,13 +94,14 @@ class QPDFValue | ||
| 97 | QPDFValue(QPDFValue const&) = delete; | 94 | QPDFValue(QPDFValue const&) = delete; |
| 98 | QPDFValue& operator=(QPDFValue const&) = delete; | 95 | QPDFValue& operator=(QPDFValue const&) = delete; |
| 99 | std::string object_description; | 96 | std::string object_description; |
| 100 | - qpdf_offset_t parsed_offset{-1}; | ||
| 101 | - const qpdf_object_type_e type_code; | ||
| 102 | - char const* type_name; | 97 | + |
| 98 | + const qpdf_object_type_e type_code{::ot_uninitialized}; | ||
| 99 | + char const* type_name{"uninitialized"}; | ||
| 103 | 100 | ||
| 104 | protected: | 101 | protected: |
| 105 | QPDF* qpdf{nullptr}; | 102 | QPDF* qpdf{nullptr}; |
| 106 | - QPDFObjGen og; | 103 | + QPDFObjGen og{}; |
| 104 | + qpdf_offset_t parsed_offset{-1}; | ||
| 107 | }; | 105 | }; |
| 108 | 106 | ||
| 109 | #endif // QPDFVALUE_HH | 107 | #endif // QPDFVALUE_HH |
libqpdf/qpdf/QPDF_Stream.hh
| @@ -103,7 +103,6 @@ class QPDF_Stream: public QPDFValue | @@ -103,7 +103,6 @@ class QPDF_Stream: public QPDFValue | ||
| 103 | 103 | ||
| 104 | bool filter_on_write; | 104 | bool filter_on_write; |
| 105 | QPDFObjectHandle stream_dict; | 105 | QPDFObjectHandle stream_dict; |
| 106 | - qpdf_offset_t offset; | ||
| 107 | size_t length; | 106 | size_t length; |
| 108 | std::shared_ptr<Buffer> stream_data; | 107 | std::shared_ptr<Buffer> stream_data; |
| 109 | std::shared_ptr<QPDFObjectHandle::StreamDataProvider> stream_provider; | 108 | std::shared_ptr<QPDFObjectHandle::StreamDataProvider> stream_provider; |