Commit 6350cf16e622d12ec2f68d0aa39132731dc7c73f

Authored by m-holger
Committed by Jay Berkenbilt
1 parent 3a86b893

Remove QPDF_Stream::offset

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&amp; new_dict) @@ -716,5 +716,5 @@ QPDF_Stream::replaceDict(QPDFObjectHandle const&amp; 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;