diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-09-08 23:32:59 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-09-09 00:08:45 +0100 |
| commit | 75e786256c2bd1d3acdbccb7bf769443679f590d (patch) | |
| tree | 0e615e0b931ffbda8e8944762554c2b622d47571 /jq.pyx | |
| parent | 67294953a9ef2c72584bc6801457f3de2dec5c7f (diff) | |
Update jq to 1.5
Diffstat (limited to 'jq.pyx')
| -rw-r--r-- | jq.pyx | 20 |
1 files changed, 12 insertions, 8 deletions
@@ -141,18 +141,22 @@ cdef class _Program(object): if jv_is_valid(value): self._process(value, results) else: - if jv_invalid_has_msg(jv_copy(value)): - error_message = jv_invalid_get_msg(value) - full_error_message = b"parse error: " + jv_string_value(error_message) + b"\n" - self._error_store.store_error(full_error_message) - jv_free(error_message) - else: - jv_free(value) + self._handle_invalid_jv(value, b"parse error: ") break jv_parser_free(parser) return results + + cdef void _handle_invalid_jv(self, jv value, char* prefix): + if jv_invalid_has_msg(jv_copy(value)): + error_message = jv_invalid_get_msg(value) + full_error_message = prefix + jv_string_value(error_message) + self._error_store.store_error(full_error_message) + jv_free(error_message) + else: + jv_free(value) + cdef void _process(self, jv value, object output): @@ -166,7 +170,7 @@ cdef class _Program(object): while True: result = jq_next(self._jq) if not jv_is_valid(result): - jv_free(result) + self._handle_invalid_jv(result, b"") return else: dumped = jv_dump_string(result, dumpopts) |
