diff options
Diffstat (limited to 'archival')
-rw-r--r-- | archival/libunarchive/decompress_unzip.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c index e83cd4f45..86969251e 100644 --- a/archival/libunarchive/decompress_unzip.c +++ b/archival/libunarchive/decompress_unzip.c | |||
@@ -1083,8 +1083,7 @@ static uint16_t buffer_read_le_u16(STATE_PARAM_ONLY) | |||
1083 | { | 1083 | { |
1084 | uint16_t res; | 1084 | uint16_t res; |
1085 | #if BB_LITTLE_ENDIAN | 1085 | #if BB_LITTLE_ENDIAN |
1086 | /* gcc 4.2.1 is very clever */ | 1086 | move_from_unaligned16(res, &bytebuffer[bytebuffer_offset]); |
1087 | memcpy(&res, &bytebuffer[bytebuffer_offset], 2); | ||
1088 | #else | 1087 | #else |
1089 | res = bytebuffer[bytebuffer_offset]; | 1088 | res = bytebuffer[bytebuffer_offset]; |
1090 | res |= bytebuffer[bytebuffer_offset + 1] << 8; | 1089 | res |= bytebuffer[bytebuffer_offset + 1] << 8; |
@@ -1097,7 +1096,7 @@ static uint32_t buffer_read_le_u32(STATE_PARAM_ONLY) | |||
1097 | { | 1096 | { |
1098 | uint32_t res; | 1097 | uint32_t res; |
1099 | #if BB_LITTLE_ENDIAN | 1098 | #if BB_LITTLE_ENDIAN |
1100 | memcpy(&res, &bytebuffer[bytebuffer_offset], 4); | 1099 | move_from_unaligned32(res, &bytebuffer[bytebuffer_offset]); |
1101 | #else | 1100 | #else |
1102 | res = bytebuffer[bytebuffer_offset]; | 1101 | res = bytebuffer[bytebuffer_offset]; |
1103 | res |= bytebuffer[bytebuffer_offset + 1] << 8; | 1102 | res |= bytebuffer[bytebuffer_offset + 1] << 8; |