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:
2
djpeg.c
2
djpeg.c
@@ -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++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
8
jdhuff.c
8
jdhuff.c
@@ -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
32
jdicc.c
@@ -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];
|
||||
|
||||
67
jdmarker.c
67
jdmarker.c
@@ -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;
|
||||
|
||||
108
transupp.c
108
transupp.c
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user