Commit 0b77f2cf2646019331d3adc21985052319bdba4c

Authored by Jay Berkenbilt
1 parent f68e25c7

Revert non-binary-compatible handleWarning change -- see TODO (ABI)

ChangeLog
... ... @@ -51,10 +51,6 @@
51 51 bugs where it removes unreferenced resources that it isn't
52 52 supposed to.
53 53  
54   - * QPDFObjectHandle::ParserCallbacks: add virtual handleWarning
55   - method, and provide default (empty) implementation of it and
56   - handleEOF().
57   -
58 54 * Add QPDF::numWarnings() -- useful to tell whether any warnings
59 55 were issued by a specific bit of code.
60 56  
... ...
... ... @@ -164,6 +164,11 @@ Comments appear in the code prefixed by "ABI"
164 164 * Consider having addArrayItem, replaceKey, etc. return the new value
165 165 so you can say
166 166 auto oh = dict.replaceKey("/Key", QPDFObjectHandle::newSomething());
  167 +* Added QPDFObjectHandle::ParserCallbacks::handleWarning but had to
  168 + revert because it was not binary compatible. Consider re-adding. The
  169 + commit that added this comment includes the reverting of the change.
  170 + The previous commit removes the code that was calling and using
  171 + handleWarning.
167 172  
168 173 Page splitting/merging
169 174 ======================
... ...
include/qpdf/QPDFObjectHandle.hh
... ... @@ -224,16 +224,7 @@ class QPDFObjectHandle
224 224 virtual void handleObject(
225 225 QPDFObjectHandle, size_t offset, size_t length);
226 226  
227   - // handleWarning is called if a warning was issued during the
228   - // parsing of the most recent object. There's no good way to
229   - // get information about the warning, but implementors can use
230   - // this to become aware that there was some problem while
231   - // parsing this content stream.
232   - QPDF_DLL
233   - virtual void handleWarning();
234   -
235   - QPDF_DLL
236   - virtual void handleEOF();
  227 + virtual void handleEOF() = 0;
237 228  
238 229 // Override this if you want to know the full size of the
239 230 // contents, possibly after concatenation of multiple streams.
... ...
libqpdf/QPDFObjectHandle.cc
... ... @@ -152,16 +152,6 @@ QPDFObjectHandle::ParserCallbacks::handleObject(
152 152 }
153 153  
154 154 void
155   -QPDFObjectHandle::ParserCallbacks::handleWarning()
156   -{
157   -}
158   -
159   -void
160   -QPDFObjectHandle::ParserCallbacks::handleEOF()
161   -{
162   -}
163   -
164   -void
165 155 QPDFObjectHandle::ParserCallbacks::contentSize(size_t)
166 156 {
167 157 // Ignore by default; overriding this is optional.
... ... @@ -1983,15 +1973,9 @@ QPDFObjectHandle::parseContentStream_data(
1983 1973 tokenizer.readToken(input, "content", true);
1984 1974 qpdf_offset_t offset = input->getLastOffset();
1985 1975 input->seek(offset, SEEK_SET);
1986   - size_t before_nwarnings = (context ? context->numWarnings() : 0);
1987 1976 QPDFObjectHandle obj =
1988 1977 parseInternal(input, "content", tokenizer,
1989 1978 empty, 0, context, true);
1990   - size_t after_nwarnings = (context ? context->numWarnings() : 0);
1991   - if (after_nwarnings > before_nwarnings)
1992   - {
1993   - callbacks->handleWarning();
1994   - }
1995 1979 if (! obj.isInitialized())
1996 1980 {
1997 1981 // EOF
... ... @@ -2018,7 +2002,6 @@ QPDFObjectHandle::parseContentStream_data(
2018 2002 QPDFExc(qpdf_e_damaged_pdf, input->getName(),
2019 2003 "stream data", input->tell(),
2020 2004 "EOF found while reading inline image"));
2021   - callbacks->handleWarning();
2022 2005 }
2023 2006 else
2024 2007 {
... ...
manual/qpdf-manual.xml
... ... @@ -5127,15 +5127,6 @@ print "\n";
5127 5127 </listitem>
5128 5128 <listitem>
5129 5129 <para>
5130   - The virtual method
5131   - <function>QPDFObjectHandle::ParserCallbacks::handleWarning</function>
5132   - is now called whenever a warning is encountered while
5133   - parsing a content stream. Prior to this, the caller had no
5134   - way to know if this had happened.
5135   - </para>
5136   - </listitem>
5137   - <listitem>
5138   - <para>
5139 5130 The method <function>QPDF::numWarnings</function> was added
5140 5131 so that you can tell whether any warnings happened during a
5141 5132 specific block of code.
... ...