mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 14:18:21 +01:00
Remove ubsan errors.
'upper' could be NULL and it would be increased. But that is for predictor zero that does not use 'upper'. Change-Id: Icd4ae6792cc55ea021b4f828c3dbdb5f03e120d8
This commit is contained in:
parent
78881b769c
commit
bb7bc40b6d
@ -167,15 +167,20 @@ static uint32_t Predictor13_C(uint32_t left, const uint32_t* const top) {
|
|||||||
return pred;
|
return pred;
|
||||||
}
|
}
|
||||||
|
|
||||||
GENERATE_PREDICTOR_ADD(Predictor0_C, PredictorAdd0_C)
|
static void PredictorAdd0_C(const uint32_t* in, const uint32_t* upper,
|
||||||
|
int num_pixels, uint32_t* out) {
|
||||||
|
int x;
|
||||||
|
(void)upper;
|
||||||
|
for (x = 0; x < num_pixels; ++x) out[x] = VP8LAddPixels(in[x], ARGB_BLACK);
|
||||||
|
}
|
||||||
static void PredictorAdd1_C(const uint32_t* in, const uint32_t* upper,
|
static void PredictorAdd1_C(const uint32_t* in, const uint32_t* upper,
|
||||||
int num_pixels, uint32_t* out) {
|
int num_pixels, uint32_t* out) {
|
||||||
int i;
|
int i;
|
||||||
uint32_t left = out[-1];
|
uint32_t left = out[-1];
|
||||||
|
(void)upper;
|
||||||
for (i = 0; i < num_pixels; ++i) {
|
for (i = 0; i < num_pixels; ++i) {
|
||||||
out[i] = left = VP8LAddPixels(in[i], left);
|
out[i] = left = VP8LAddPixels(in[i], left);
|
||||||
}
|
}
|
||||||
(void)upper;
|
|
||||||
}
|
}
|
||||||
GENERATE_PREDICTOR_ADD(Predictor2_C, PredictorAdd2_C)
|
GENERATE_PREDICTOR_ADD(Predictor2_C, PredictorAdd2_C)
|
||||||
GENERATE_PREDICTOR_ADD(Predictor3_C, PredictorAdd3_C)
|
GENERATE_PREDICTOR_ADD(Predictor3_C, PredictorAdd3_C)
|
||||||
|
@ -177,6 +177,7 @@ uint32_t VP8LSubPixels(uint32_t a, uint32_t b) {
|
|||||||
static void PREDICTOR_ADD(const uint32_t* in, const uint32_t* upper, \
|
static void PREDICTOR_ADD(const uint32_t* in, const uint32_t* upper, \
|
||||||
int num_pixels, uint32_t* out) { \
|
int num_pixels, uint32_t* out) { \
|
||||||
int x; \
|
int x; \
|
||||||
|
assert(upper != NULL); \
|
||||||
for (x = 0; x < num_pixels; ++x) { \
|
for (x = 0; x < num_pixels; ++x) { \
|
||||||
const uint32_t pred = (PREDICTOR)(out[x - 1], upper + x); \
|
const uint32_t pred = (PREDICTOR)(out[x - 1], upper + x); \
|
||||||
out[x] = VP8LAddPixels(in[x], pred); \
|
out[x] = VP8LAddPixels(in[x], pred); \
|
||||||
@ -189,6 +190,7 @@ static void PREDICTOR_ADD(const uint32_t* in, const uint32_t* upper, \
|
|||||||
static void PREDICTOR_SUB(const uint32_t* in, const uint32_t* upper, \
|
static void PREDICTOR_SUB(const uint32_t* in, const uint32_t* upper, \
|
||||||
int num_pixels, uint32_t* out) { \
|
int num_pixels, uint32_t* out) { \
|
||||||
int x; \
|
int x; \
|
||||||
|
assert(upper != NULL); \
|
||||||
for (x = 0; x < num_pixels; ++x) { \
|
for (x = 0; x < num_pixels; ++x) { \
|
||||||
const uint32_t pred = (PREDICTOR)(in[x - 1], upper + x); \
|
const uint32_t pred = (PREDICTOR)(in[x - 1], upper + x); \
|
||||||
out[x] = VP8LSubPixels(in[x], pred); \
|
out[x] = VP8LSubPixels(in[x], pred); \
|
||||||
|
Loading…
Reference in New Issue
Block a user