mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
invertRect should handle negative x or y values
two-column mode combined with showing links in pdf files triggers this bug
This commit is contained in:
committed by
Qingping Hou
parent
49112513a4
commit
66efe66f61
23
blitbuffer.c
23
blitbuffer.c
@@ -394,6 +394,29 @@ static int invertRect(lua_State *L) {
|
||||
uint8_t *dstptr;
|
||||
|
||||
int cy, cx;
|
||||
|
||||
//printf("## invertRect x=%d y=%d w=%d h=%d\n",x,y,w,h);
|
||||
|
||||
if (x < 0) {
|
||||
if ( x + w > 0 ) {
|
||||
w = w + x;
|
||||
x = 0;
|
||||
} else {
|
||||
//printf("## invertRect x out of bound\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (y < 0) {
|
||||
if ( y + h > 0 ) {
|
||||
h = h + y;
|
||||
y = 0;
|
||||
} else {
|
||||
//printf("## invertRect y out of bound\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(w <= 0 || h <= 0 || x >= dst->w || y >= dst->h) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user