Commit 6a48534e53e07ac9ee9dfbed1c7484aeff3891b9
Committed by
GitHub
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,7 +226,15 @@ provide_data( | ||
| 226 | class QPDF::JSONReactor: public JSON::Reactor | 226 | class QPDF::JSONReactor: public JSON::Reactor |
| 227 | { | 227 | { |
| 228 | public: | 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 | virtual ~JSONReactor() = default; | 238 | virtual ~JSONReactor() = default; |
| 231 | virtual void dictionaryStart() override; | 239 | virtual void dictionaryStart() override; |
| 232 | virtual void arrayStart() override; | 240 | virtual void arrayStart() override; |
| @@ -265,57 +273,30 @@ class QPDF::JSONReactor: public JSON::Reactor | @@ -265,57 +273,30 @@ class QPDF::JSONReactor: public JSON::Reactor | ||
| 265 | 273 | ||
| 266 | QPDF& pdf; | 274 | QPDF& pdf; |
| 267 | std::shared_ptr<InputSource> is; | 275 | std::shared_ptr<InputSource> is; |
| 268 | - bool must_be_complete; | 276 | + bool must_be_complete{true}; |
| 269 | std::shared_ptr<QPDFValue::Description> descr; | 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 | std::string cur_object; | 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 | std::vector<QPDFObjectHandle> object_stack; | 296 | std::vector<QPDFObjectHandle> object_stack; |
| 289 | std::set<QPDFObjGen> reserved; | 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 | void | 300 | void |
| 320 | QPDF::JSONReactor::error(qpdf_offset_t offset, std::string const& msg) | 301 | QPDF::JSONReactor::error(qpdf_offset_t offset, std::string const& msg) |
| 321 | { | 302 | { |