Evas filters: Prevent division by 0

While it really shouldn't happen, let's just add a quick if()
and make Coverity shut up.

Fixes:
 - CID 1191912
 - CID 1191911
 - CID 1191910
 - CID 1191909
This commit is contained in:
Jean-Philippe Andre 2014-10-27 21:37:39 +09:00
parent 3550c38080
commit 3f73d20502
2 changed files with 14 additions and 4 deletions

View File

@ -41,7 +41,7 @@ FUNCTION_NAME(const DATA8* restrict srcdata, DATA8* restrict dstdata,
acc += (*s) * weights[j + radius - k];
divider += weights[j + radius - k];
}
//if (!divider) abort();
if (!divider) goto error;
*dst = acc / divider;
}
@ -66,13 +66,18 @@ FUNCTION_NAME(const DATA8* restrict srcdata, DATA8* restrict dstdata,
acc += (*s) * weights[j];
divider += weights[j];
}
//if (!divider) abort();
if (!divider) goto error;
*dst = acc / divider;
}
dstdata += loopstep;
srcdata += loopstep;
}
return;
error:
CRI("Avoided division by 0.");
}
#undef FUNCTION_NAME

View File

@ -43,7 +43,7 @@ FUNCTION_NAME(const DATA32* restrict srcdata, DATA32* restrict dstdata,
acc[BLUE] += B_VAL(s) * weights[weightidx];
divider += weights[weightidx];
}
//if (!divider) abort();
if (!divider) goto error;
A_VAL(dst) = acc[ALPHA] / divider;
R_VAL(dst) = acc[RED] / divider;
G_VAL(dst) = acc[GREEN] / divider;
@ -82,7 +82,7 @@ FUNCTION_NAME(const DATA32* restrict srcdata, DATA32* restrict dstdata,
acc[BLUE] += B_VAL(s) * weights[j];
divider += weights[j];
}
//if (!divider) abort();
if (!divider) goto error;
A_VAL(dst) = acc[ALPHA] / divider;
R_VAL(dst) = acc[RED] / divider;
G_VAL(dst) = acc[GREEN] / divider;
@ -92,6 +92,11 @@ FUNCTION_NAME(const DATA32* restrict srcdata, DATA32* restrict dstdata,
dstdata += loopstep;
srcdata += loopstep;
}
return;
error:
CRI("Avoided division by 0.");
}
#undef FUNCTION_NAME