summaryrefslogtreecommitdiff
path: root/base/sjbig2.c
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2020-03-11 16:35:53 +0800
committerSebastian Rasmussen <sebras@gmail.com>2020-03-20 20:49:02 +0800
commit9b5008aa2bc1c6a6acb2c6f90d1ef8d6bad9e66a (patch)
treec49fc2a1cf205cbb13bd5690d9f5c2f0f3e9684d /base/sjbig2.c
parentea9b3a676a516a603fabb593085d14a67356db6f (diff)
downloadghostpdl-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.c4
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)