Eliminate internal use of GETJOCTET() macro

Because of 01e3032354 (officially
eliminating support for compilers without unsigned char, since we never
effectively supported those compilers anyhow), GETJOCTET() is now a
no-op.  Since that macro is in jmorecfg.h, it is part of the de facto
libjpeg API and must remain in the public headers.  However, there is no
reason to continue using it internally, and eliminating its internal use
improves code readability.
This commit is contained in:
DRC
2019-12-10 19:10:55 -06:00
parent e821464f79
commit 52fef34928
6 changed files with 108 additions and 111 deletions

View File

@@ -444,7 +444,7 @@ jpeg_getc(j_decompress_ptr cinfo)
ERREXIT(cinfo, JERR_CANT_SUSPEND);
}
datasrc->bytes_in_buffer--;
return GETJOCTET(*datasrc->next_input_byte++);
return *datasrc->next_input_byte++;
}

View File

@@ -80,7 +80,7 @@ get_byte(j_decompress_ptr cinfo)
if (!(*src->fill_input_buffer) (cinfo))
ERREXIT(cinfo, JERR_CANT_SUSPEND);
src->bytes_in_buffer--;
return GETJOCTET(*src->next_input_byte++);
return *src->next_input_byte++;
}

View File

@@ -308,7 +308,7 @@ jpeg_fill_bit_buffer(bitread_working_state *state,
bytes_in_buffer = cinfo->src->bytes_in_buffer;
}
bytes_in_buffer--;
c = GETJOCTET(*next_input_byte++);
c = *next_input_byte++;
/* If it's 0xFF, check and discard stuffed zero byte */
if (c == 0xFF) {
@@ -325,7 +325,7 @@ jpeg_fill_bit_buffer(bitread_working_state *state,
bytes_in_buffer = cinfo->src->bytes_in_buffer;
}
bytes_in_buffer--;
c = GETJOCTET(*next_input_byte++);
c = *next_input_byte++;
} while (c == 0xFF);
if (c == 0) {
@@ -388,8 +388,8 @@ no_more_bytes:
#define GET_BYTE { \
register int c0, c1; \
c0 = GETJOCTET(*buffer++); \
c1 = GETJOCTET(*buffer); \
c0 = *buffer++; \
c1 = *buffer; \
/* Pre-execute most common case */ \
get_buffer = (get_buffer << 8) | c0; \
bits_left += 8; \

32
jdicc.c
View File

@@ -38,18 +38,18 @@ marker_is_icc(jpeg_saved_marker_ptr marker)
marker->marker == ICC_MARKER &&
marker->data_length >= ICC_OVERHEAD_LEN &&
/* verify the identifying string */
GETJOCTET(marker->data[0]) == 0x49 &&
GETJOCTET(marker->data[1]) == 0x43 &&
GETJOCTET(marker->data[2]) == 0x43 &&
GETJOCTET(marker->data[3]) == 0x5F &&
GETJOCTET(marker->data[4]) == 0x50 &&
GETJOCTET(marker->data[5]) == 0x52 &&
GETJOCTET(marker->data[6]) == 0x4F &&
GETJOCTET(marker->data[7]) == 0x46 &&
GETJOCTET(marker->data[8]) == 0x49 &&
GETJOCTET(marker->data[9]) == 0x4C &&
GETJOCTET(marker->data[10]) == 0x45 &&
GETJOCTET(marker->data[11]) == 0x0;
marker->data[0] == 0x49 &&
marker->data[1] == 0x43 &&
marker->data[2] == 0x43 &&
marker->data[3] == 0x5F &&
marker->data[4] == 0x50 &&
marker->data[5] == 0x52 &&
marker->data[6] == 0x4F &&
marker->data[7] == 0x46 &&
marker->data[8] == 0x49 &&
marker->data[9] == 0x4C &&
marker->data[10] == 0x45 &&
marker->data[11] == 0x0;
}
@@ -102,12 +102,12 @@ jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr,
for (marker = cinfo->marker_list; marker != NULL; marker = marker->next) {
if (marker_is_icc(marker)) {
if (num_markers == 0)
num_markers = GETJOCTET(marker->data[13]);
else if (num_markers != GETJOCTET(marker->data[13])) {
num_markers = marker->data[13];
else if (num_markers != marker->data[13]) {
WARNMS(cinfo, JWRN_BOGUS_ICC); /* inconsistent num_markers fields */
return FALSE;
}
seq_no = GETJOCTET(marker->data[12]);
seq_no = marker->data[12];
if (seq_no <= 0 || seq_no > num_markers) {
WARNMS(cinfo, JWRN_BOGUS_ICC); /* bogus sequence number */
return FALSE;
@@ -154,7 +154,7 @@ jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr,
JOCTET FAR *src_ptr;
JOCTET *dst_ptr;
unsigned int length;
seq_no = GETJOCTET(marker->data[12]);
seq_no = marker->data[12];
dst_ptr = icc_data + data_offset[seq_no];
src_ptr = marker->data + ICC_OVERHEAD_LEN;
length = data_length[seq_no];

View File

@@ -151,7 +151,7 @@ typedef my_marker_reader *my_marker_ptr;
#define INPUT_BYTE(cinfo, V, action) \
MAKESTMT( MAKE_BYTE_AVAIL(cinfo, action); \
bytes_in_buffer--; \
V = GETJOCTET(*next_input_byte++); )
V = *next_input_byte++; )
/* As above, but read two bytes interpreted as an unsigned 16-bit integer.
* V should be declared unsigned int or perhaps JLONG.
@@ -159,10 +159,10 @@ typedef my_marker_reader *my_marker_ptr;
#define INPUT_2BYTES(cinfo, V, action) \
MAKESTMT( MAKE_BYTE_AVAIL(cinfo, action); \
bytes_in_buffer--; \
V = ((unsigned int)GETJOCTET(*next_input_byte++)) << 8; \
V = ((unsigned int)(*next_input_byte++)) << 8; \
MAKE_BYTE_AVAIL(cinfo, action); \
bytes_in_buffer--; \
V += GETJOCTET(*next_input_byte++); )
V += *next_input_byte++; )
/*
@@ -608,18 +608,18 @@ examine_app0(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
JLONG totallen = (JLONG)datalen + remaining;
if (datalen >= APP0_DATA_LEN &&
GETJOCTET(data[0]) == 0x4A &&
GETJOCTET(data[1]) == 0x46 &&
GETJOCTET(data[2]) == 0x49 &&
GETJOCTET(data[3]) == 0x46 &&
GETJOCTET(data[4]) == 0) {
data[0] == 0x4A &&
data[1] == 0x46 &&
data[2] == 0x49 &&
data[3] == 0x46 &&
data[4] == 0) {
/* Found JFIF APP0 marker: save info */
cinfo->saw_JFIF_marker = TRUE;
cinfo->JFIF_major_version = GETJOCTET(data[5]);
cinfo->JFIF_minor_version = GETJOCTET(data[6]);
cinfo->density_unit = GETJOCTET(data[7]);
cinfo->X_density = (GETJOCTET(data[8]) << 8) + GETJOCTET(data[9]);
cinfo->Y_density = (GETJOCTET(data[10]) << 8) + GETJOCTET(data[11]);
cinfo->JFIF_major_version = data[5];
cinfo->JFIF_minor_version = data[6];
cinfo->density_unit = data[7];
cinfo->X_density = (data[8] << 8) + data[9];
cinfo->Y_density = (data[10] << 8) + data[11];
/* Check version.
* Major version must be 1, anything else signals an incompatible change.
* (We used to treat this as an error, but now it's a nonfatal warning,
@@ -634,24 +634,22 @@ examine_app0(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
cinfo->JFIF_major_version, cinfo->JFIF_minor_version,
cinfo->X_density, cinfo->Y_density, cinfo->density_unit);
/* Validate thumbnail dimensions and issue appropriate messages */
if (GETJOCTET(data[12]) | GETJOCTET(data[13]))
TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL,
GETJOCTET(data[12]), GETJOCTET(data[13]));
if (data[12] | data[13])
TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL, data[12], data[13]);
totallen -= APP0_DATA_LEN;
if (totallen !=
((JLONG)GETJOCTET(data[12]) * (JLONG)GETJOCTET(data[13]) * (JLONG)3))
if (totallen != ((JLONG)data[12] * (JLONG)data[13] * (JLONG)3))
TRACEMS1(cinfo, 1, JTRC_JFIF_BADTHUMBNAILSIZE, (int)totallen);
} else if (datalen >= 6 &&
GETJOCTET(data[0]) == 0x4A &&
GETJOCTET(data[1]) == 0x46 &&
GETJOCTET(data[2]) == 0x58 &&
GETJOCTET(data[3]) == 0x58 &&
GETJOCTET(data[4]) == 0) {
data[0] == 0x4A &&
data[1] == 0x46 &&
data[2] == 0x58 &&
data[3] == 0x58 &&
data[4] == 0) {
/* Found JFIF "JFXX" extension APP0 marker */
/* The library doesn't actually do anything with these,
* but we try to produce a helpful trace message.
*/
switch (GETJOCTET(data[5])) {
switch (data[5]) {
case 0x10:
TRACEMS1(cinfo, 1, JTRC_THUMB_JPEG, (int)totallen);
break;
@@ -662,8 +660,7 @@ examine_app0(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
TRACEMS1(cinfo, 1, JTRC_THUMB_RGB, (int)totallen);
break;
default:
TRACEMS2(cinfo, 1, JTRC_JFIF_EXTENSION,
GETJOCTET(data[5]), (int)totallen);
TRACEMS2(cinfo, 1, JTRC_JFIF_EXTENSION, data[5], (int)totallen);
break;
}
} else {
@@ -684,16 +681,16 @@ examine_app14(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
unsigned int version, flags0, flags1, transform;
if (datalen >= APP14_DATA_LEN &&
GETJOCTET(data[0]) == 0x41 &&
GETJOCTET(data[1]) == 0x64 &&
GETJOCTET(data[2]) == 0x6F &&
GETJOCTET(data[3]) == 0x62 &&
GETJOCTET(data[4]) == 0x65) {
data[0] == 0x41 &&
data[1] == 0x64 &&
data[2] == 0x6F &&
data[3] == 0x62 &&
data[4] == 0x65) {
/* Found Adobe APP14 marker */
version = (GETJOCTET(data[5]) << 8) + GETJOCTET(data[6]);
flags0 = (GETJOCTET(data[7]) << 8) + GETJOCTET(data[8]);
flags1 = (GETJOCTET(data[9]) << 8) + GETJOCTET(data[10]);
transform = GETJOCTET(data[11]);
version = (data[5] << 8) + data[6];
flags0 = (data[7] << 8) + data[8];
flags1 = (data[9] << 8) + data[10];
transform = data[11];
TRACEMS4(cinfo, 1, JTRC_ADOBE, version, flags0, flags1, transform);
cinfo->saw_Adobe_marker = TRUE;
cinfo->Adobe_transform = (UINT8)transform;

View File

@@ -1190,47 +1190,47 @@ adjust_exif_parameters(JOCTET *data, unsigned int length, JDIMENSION new_width,
if (length < 12) return; /* Length of an IFD entry */
/* Discover byte order */
if (GETJOCTET(data[0]) == 0x49 && GETJOCTET(data[1]) == 0x49)
if (data[0] == 0x49 && data[1] == 0x49)
is_motorola = FALSE;
else if (GETJOCTET(data[0]) == 0x4D && GETJOCTET(data[1]) == 0x4D)
else if (data[0] == 0x4D && data[1] == 0x4D)
is_motorola = TRUE;
else
return;
/* Check Tag Mark */
if (is_motorola) {
if (GETJOCTET(data[2]) != 0) return;
if (GETJOCTET(data[3]) != 0x2A) return;
if (data[2] != 0) return;
if (data[3] != 0x2A) return;
} else {
if (GETJOCTET(data[3]) != 0) return;
if (GETJOCTET(data[2]) != 0x2A) return;
if (data[3] != 0) return;
if (data[2] != 0x2A) return;
}
/* Get first IFD offset (offset to IFD0) */
if (is_motorola) {
if (GETJOCTET(data[4]) != 0) return;
if (GETJOCTET(data[5]) != 0) return;
firstoffset = GETJOCTET(data[6]);
if (data[4] != 0) return;
if (data[5] != 0) return;
firstoffset = data[6];
firstoffset <<= 8;
firstoffset += GETJOCTET(data[7]);
firstoffset += data[7];
} else {
if (GETJOCTET(data[7]) != 0) return;
if (GETJOCTET(data[6]) != 0) return;
firstoffset = GETJOCTET(data[5]);
if (data[7] != 0) return;
if (data[6] != 0) return;
firstoffset = data[5];
firstoffset <<= 8;
firstoffset += GETJOCTET(data[4]);
firstoffset += data[4];
}
if (firstoffset > length - 2) return; /* check end of data segment */
/* Get the number of directory entries contained in this IFD */
if (is_motorola) {
number_of_tags = GETJOCTET(data[firstoffset]);
number_of_tags = data[firstoffset];
number_of_tags <<= 8;
number_of_tags += GETJOCTET(data[firstoffset + 1]);
number_of_tags += data[firstoffset + 1];
} else {
number_of_tags = GETJOCTET(data[firstoffset + 1]);
number_of_tags = data[firstoffset + 1];
number_of_tags <<= 8;
number_of_tags += GETJOCTET(data[firstoffset]);
number_of_tags += data[firstoffset];
}
if (number_of_tags == 0) return;
firstoffset += 2;
@@ -1240,13 +1240,13 @@ adjust_exif_parameters(JOCTET *data, unsigned int length, JDIMENSION new_width,
if (firstoffset > length - 12) return; /* check end of data segment */
/* Get Tag number */
if (is_motorola) {
tagnum = GETJOCTET(data[firstoffset]);
tagnum = data[firstoffset];
tagnum <<= 8;
tagnum += GETJOCTET(data[firstoffset + 1]);
tagnum += data[firstoffset + 1];
} else {
tagnum = GETJOCTET(data[firstoffset + 1]);
tagnum = data[firstoffset + 1];
tagnum <<= 8;
tagnum += GETJOCTET(data[firstoffset]);
tagnum += data[firstoffset];
}
if (tagnum == 0x8769) break; /* found ExifSubIFD offset Tag */
if (--number_of_tags == 0) return;
@@ -1255,29 +1255,29 @@ adjust_exif_parameters(JOCTET *data, unsigned int length, JDIMENSION new_width,
/* Get the ExifSubIFD offset */
if (is_motorola) {
if (GETJOCTET(data[firstoffset + 8]) != 0) return;
if (GETJOCTET(data[firstoffset + 9]) != 0) return;
offset = GETJOCTET(data[firstoffset + 10]);
if (data[firstoffset + 8] != 0) return;
if (data[firstoffset + 9] != 0) return;
offset = data[firstoffset + 10];
offset <<= 8;
offset += GETJOCTET(data[firstoffset + 11]);
offset += data[firstoffset + 11];
} else {
if (GETJOCTET(data[firstoffset + 11]) != 0) return;
if (GETJOCTET(data[firstoffset + 10]) != 0) return;
offset = GETJOCTET(data[firstoffset + 9]);
if (data[firstoffset + 11] != 0) return;
if (data[firstoffset + 10] != 0) return;
offset = data[firstoffset + 9];
offset <<= 8;
offset += GETJOCTET(data[firstoffset + 8]);
offset += data[firstoffset + 8];
}
if (offset > length - 2) return; /* check end of data segment */
/* Get the number of directory entries contained in this SubIFD */
if (is_motorola) {
number_of_tags = GETJOCTET(data[offset]);
number_of_tags = data[offset];
number_of_tags <<= 8;
number_of_tags += GETJOCTET(data[offset + 1]);
number_of_tags += data[offset + 1];
} else {
number_of_tags = GETJOCTET(data[offset + 1]);
number_of_tags = data[offset + 1];
number_of_tags <<= 8;
number_of_tags += GETJOCTET(data[offset]);
number_of_tags += data[offset];
}
if (number_of_tags < 2) return;
offset += 2;
@@ -1287,13 +1287,13 @@ adjust_exif_parameters(JOCTET *data, unsigned int length, JDIMENSION new_width,
if (offset > length - 12) return; /* check end of data segment */
/* Get Tag number */
if (is_motorola) {
tagnum = GETJOCTET(data[offset]);
tagnum = data[offset];
tagnum <<= 8;
tagnum += GETJOCTET(data[offset + 1]);
tagnum += data[offset + 1];
} else {
tagnum = GETJOCTET(data[offset + 1]);
tagnum = data[offset + 1];
tagnum <<= 8;
tagnum += GETJOCTET(data[offset]);
tagnum += data[offset];
}
if (tagnum == 0xA002 || tagnum == 0xA003) {
if (tagnum == 0xA002)
@@ -1411,12 +1411,12 @@ jtransform_adjust_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
if (srcinfo->marker_list != NULL &&
srcinfo->marker_list->marker == JPEG_APP0 + 1 &&
srcinfo->marker_list->data_length >= 6 &&
GETJOCTET(srcinfo->marker_list->data[0]) == 0x45 &&
GETJOCTET(srcinfo->marker_list->data[1]) == 0x78 &&
GETJOCTET(srcinfo->marker_list->data[2]) == 0x69 &&
GETJOCTET(srcinfo->marker_list->data[3]) == 0x66 &&
GETJOCTET(srcinfo->marker_list->data[4]) == 0 &&
GETJOCTET(srcinfo->marker_list->data[5]) == 0) {
srcinfo->marker_list->data[0] == 0x45 &&
srcinfo->marker_list->data[1] == 0x78 &&
srcinfo->marker_list->data[2] == 0x69 &&
srcinfo->marker_list->data[3] == 0x66 &&
srcinfo->marker_list->data[4] == 0 &&
srcinfo->marker_list->data[5] == 0) {
/* Suppress output of JFIF marker */
dstinfo->write_JFIF_header = FALSE;
/* Adjust Exif image parameters */
@@ -1607,20 +1607,20 @@ jcopy_markers_execute(j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
if (dstinfo->write_JFIF_header &&
marker->marker == JPEG_APP0 &&
marker->data_length >= 5 &&
GETJOCTET(marker->data[0]) == 0x4A &&
GETJOCTET(marker->data[1]) == 0x46 &&
GETJOCTET(marker->data[2]) == 0x49 &&
GETJOCTET(marker->data[3]) == 0x46 &&
GETJOCTET(marker->data[4]) == 0)
marker->data[0] == 0x4A &&
marker->data[1] == 0x46 &&
marker->data[2] == 0x49 &&
marker->data[3] == 0x46 &&
marker->data[4] == 0)
continue; /* reject duplicate JFIF */
if (dstinfo->write_Adobe_marker &&
marker->marker == JPEG_APP0 + 14 &&
marker->data_length >= 5 &&
GETJOCTET(marker->data[0]) == 0x41 &&
GETJOCTET(marker->data[1]) == 0x64 &&
GETJOCTET(marker->data[2]) == 0x6F &&
GETJOCTET(marker->data[3]) == 0x62 &&
GETJOCTET(marker->data[4]) == 0x65)
marker->data[0] == 0x41 &&
marker->data[1] == 0x64 &&
marker->data[2] == 0x6F &&
marker->data[3] == 0x62 &&
marker->data[4] == 0x65)
continue; /* reject duplicate Adobe */
jpeg_write_marker(dstinfo, marker->marker,
marker->data, marker->data_length);