diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2020-03-11 16:35:53 +0800 |
---|---|---|
committer | Sebastian Rasmussen <sebras@gmail.com> | 2020-03-20 20:49:02 +0800 |
commit | 9b5008aa2bc1c6a6acb2c6f90d1ef8d6bad9e66a (patch) | |
tree | c49fc2a1cf205cbb13bd5690d9f5c2f0f3e9684d /base/sjbig2.c | |
parent | ea9b3a676a516a603fabb593085d14a67356db6f (diff) | |
download | ghostpdl-9b5008aa2bc1c6a6acb2c6f90d1ef8d6bad9e66a.tar.gz |
jbig2dec: Pass segment numbers as unsigned values to error callback.
According to the JBIG2 specification segments numbers are 32 bit unsigned
integer. Previously any segment numbers larger than INT32_MAX would be passed
as negative numbers.
Some parts of the decoder do not yet know, or do not have access to the
currently decoded segment number, and this needs to be specially indicated.
Therefore jbig2dec appropriates the unlikely segment number 0xffffffff to
indicate an unknown segment number.
This is a change of the public API.
Diffstat (limited to 'base/sjbig2.c')
-rw-r--r-- | base/sjbig2.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/base/sjbig2.c b/base/sjbig2.c index 6a573d6cb..490df7c65 100644 --- a/base/sjbig2.c +++ b/base/sjbig2.c @@ -42,7 +42,7 @@ private_st_jbig2decode_state(); /* creates a gc object for our state, defined in /* error callback for jbig2 decoder */ static void s_jbig2decode_error(void *callback_data, const char *msg, Jbig2Severity severity, - int32_t seg_idx) + uint32_t seg_idx) { s_jbig2_callback_data_t *error_data = (s_jbig2_callback_data_t *)callback_data; const char *type; @@ -62,7 +62,7 @@ s_jbig2decode_error(void *callback_data, const char *msg, Jbig2Severity severity break;; default: type = "unknown message:"; break;; } - if (seg_idx == -1) segment[0] = '\0'; + if (seg_idx == JBIG2_UNKNOWN_SEGMENT_NUMBER) segment[0] = '\0'; else gs_sprintf(segment, "(segment 0x%02x)", seg_idx); if (error_data) |