Commit 3b60224bae16f36e0b6caf13fe1e119b9fa1f6b1
1 parent
b74e7989
JSONHandler: pass JSON object to array start function
Showing
4 changed files
with
12 additions
and
7 deletions
libqpdf/JSONHandler.cc
| ... | ... | @@ -69,7 +69,7 @@ JSONHandler::addFallbackDictHandler(std::shared_ptr<JSONHandler> fdh) |
| 69 | 69 | } |
| 70 | 70 | |
| 71 | 71 | void |
| 72 | -JSONHandler::addArrayHandlers(void_handler_t start_fn, | |
| 72 | +JSONHandler::addArrayHandlers(json_handler_t start_fn, | |
| 73 | 73 | void_handler_t end_fn, |
| 74 | 74 | std::shared_ptr<JSONHandler> ah) |
| 75 | 75 | { |
| ... | ... | @@ -144,7 +144,7 @@ JSONHandler::handle(std::string const& path, JSON j) |
| 144 | 144 | } |
| 145 | 145 | if (this->m->h.array_start_handler && j.isArray()) |
| 146 | 146 | { |
| 147 | - this->m->h.array_start_handler(path); | |
| 147 | + this->m->h.array_start_handler(path, j); | |
| 148 | 148 | size_t i = 0; |
| 149 | 149 | j.forEachArrayItem([&i, &path, this](JSON v) { |
| 150 | 150 | this->m->h.array_item_handler->handle( | ... | ... |
libqpdf/qpdf/JSONHandler.hh
| ... | ... | @@ -66,7 +66,7 @@ class JSONHandler |
| 66 | 66 | void addFallbackDictHandler(std::shared_ptr<JSONHandler>); |
| 67 | 67 | |
| 68 | 68 | QPDF_DLL |
| 69 | - void addArrayHandlers(void_handler_t start_fn, | |
| 69 | + void addArrayHandlers(json_handler_t start_fn, | |
| 70 | 70 | void_handler_t end_fn, |
| 71 | 71 | std::shared_ptr<JSONHandler> item_handlers); |
| 72 | 72 | |
| ... | ... | @@ -102,7 +102,7 @@ class JSONHandler |
| 102 | 102 | bool_handler_t bool_handler; |
| 103 | 103 | json_handler_t dict_start_handler; |
| 104 | 104 | void_handler_t dict_end_handler; |
| 105 | - void_handler_t array_start_handler; | |
| 105 | + json_handler_t array_start_handler; | |
| 106 | 106 | void_handler_t array_end_handler; |
| 107 | 107 | void_handler_t final_handler; |
| 108 | 108 | std::map<std::string, std::shared_ptr<JSONHandler>> dict_handlers; | ... | ... |
libtests/json_handler.cc
| ... | ... | @@ -71,8 +71,7 @@ static std::shared_ptr<JSONHandler> make_all_handler() |
| 71 | 71 | auto h5s = std::make_shared<JSONHandler>(); |
| 72 | 72 | h->addDictKeyHandler("five", h5s); |
| 73 | 73 | h5s->addArrayHandlers( |
| 74 | - make_print_message("array begin"), | |
| 75 | - make_print_message("array end"), | |
| 74 | + print_json, make_print_message("array end"), | |
| 76 | 75 | h5); |
| 77 | 76 | auto h6 = std::make_shared<JSONHandler>(); |
| 78 | 77 | h6->addDictHandlers( | ... | ... |
libtests/qtest/json_handler/json_handler.out