Commit 6a48534e53e07ac9ee9dfbed1c7484aeff3891b9

Authored by Jay Berkenbilt
Committed by GitHub
2 parents b3cfa101 3df4ce6d

Merge pull request #896 from m-holger/jrod

Refactor setting of object descriptions in QPDF::JSONReactor
Showing 1 changed file with 27 additions and 46 deletions
libqpdf/QPDF_json.cc
... ... @@ -226,7 +226,15 @@ provide_data(
226 226 class QPDF::JSONReactor: public JSON::Reactor
227 227 {
228 228 public:
229   - JSONReactor(QPDF&, std::shared_ptr<InputSource> is, bool must_be_complete);
  229 + JSONReactor(
  230 + QPDF& pdf, std::shared_ptr<InputSource> is, bool must_be_complete) :
  231 + pdf(pdf),
  232 + is(is),
  233 + must_be_complete(must_be_complete),
  234 + descr(std::make_shared<QPDFValue::Description>(QPDFValue::JSON_Descr(
  235 + std::make_shared<std::string>(is->getName()), "")))
  236 + {
  237 + }
230 238 virtual ~JSONReactor() = default;
231 239 virtual void dictionaryStart() override;
232 240 virtual void arrayStart() override;
... ... @@ -265,57 +273,30 @@ class QPDF::JSONReactor: public JSON::Reactor
265 273  
266 274 QPDF& pdf;
267 275 std::shared_ptr<InputSource> is;
268   - bool must_be_complete;
  276 + bool must_be_complete{true};
269 277 std::shared_ptr<QPDFValue::Description> descr;
270   - bool errors;
271   - bool parse_error;
272   - bool saw_qpdf;
273   - bool saw_qpdf_meta;
274   - bool saw_objects;
275   - bool saw_json_version;
276   - bool saw_pdf_version;
277   - bool saw_trailer;
278   - state_e state;
279   - state_e next_state;
  278 + bool errors{false};
  279 + bool parse_error{false};
  280 + bool saw_qpdf{false};
  281 + bool saw_qpdf_meta{false};
  282 + bool saw_objects{false};
  283 + bool saw_json_version{false};
  284 + bool saw_pdf_version{false};
  285 + bool saw_trailer{false};
  286 + state_e state{st_initial};
  287 + state_e next_state{st_top};
280 288 std::string cur_object;
281   - bool saw_value;
282   - bool saw_stream;
283   - bool saw_dict;
284   - bool saw_data;
285   - bool saw_datafile;
286   - bool this_stream_needs_data;
287   - std::vector<state_e> state_stack;
  289 + bool saw_value{false};
  290 + bool saw_stream{false};
  291 + bool saw_dict{false};
  292 + bool saw_data{false};
  293 + bool saw_datafile{false};
  294 + bool this_stream_needs_data{false};
  295 + std::vector<state_e> state_stack{st_initial};
288 296 std::vector<QPDFObjectHandle> object_stack;
289 297 std::set<QPDFObjGen> reserved;
290 298 };
291 299  
292   -QPDF::JSONReactor::JSONReactor(
293   - QPDF& pdf, std::shared_ptr<InputSource> is, bool must_be_complete) :
294   - pdf(pdf),
295   - is(is),
296   - must_be_complete(must_be_complete),
297   - descr(std::make_shared<QPDFValue::Description>(QPDFValue::JSON_Descr(
298   - std::make_shared<std::string>(is->getName()), ""))),
299   - errors(false),
300   - parse_error(false),
301   - saw_qpdf(false),
302   - saw_qpdf_meta(false),
303   - saw_objects(false),
304   - saw_json_version(false),
305   - saw_pdf_version(false),
306   - saw_trailer(false),
307   - state(st_initial),
308   - next_state(st_top),
309   - saw_value(false),
310   - saw_stream(false),
311   - saw_dict(false),
312   - saw_data(false),
313   - saw_datafile(false),
314   - this_stream_needs_data(false)
315   -{
316   - state_stack.push_back(st_initial);
317   -}
318   -
319 300 void
320 301 QPDF::JSONReactor::error(qpdf_offset_t offset, std::string const& msg)
321 302 {
... ...