ALL: Failed assertion in AdvMame scaler
|Reported by:||eriktorbjorn||Owned by:||sev-|
Latest ScummVM CVS snapshot
Twice in the last two days, ScummVM has crashed on the following assertion:
Failed assertion in common/scaler/scalebit.cpp
scummvm: common/scaler/scalebit.cpp:118: void scale2x(void*, unsigned int, const void*, unsigned int, unsigned int, unsigned int, unsigned int): Assertion 'height >= 2' failed.
The first time it happened was with Sam & Max, I think. The second time was with Maniac Mansion.
As far as I could tell, it happened during a normal screen update. The simplest explanation, then, would be that it was trying to scale a rectangle that was either 0 or 1 pixels tall.
The addDirtyRect() function is called from:
* addDirtyRgnAuto() * copyRectToOverlay() * copyRectToScreen() * drawMouse() * undrawMouse()
It can't have been addDirtyRgnAuto(). As far as I know only the Simon games use it, and the smallest region it ever dirties is 8x8.
It can't have been copyRectToOverlay(). It was during normal gameplay. And if it was, that function behaves pretty much like copyRectToScreen() when it comes to screen dirtying.
I don't think it could have been copyRectToScreen(). The smallest rectangle it ever dirties is 1x1, and since addDirtyRect() extends the dirty region by one pixel in each direction (unless mouseRect is true), even after re-clipping the rectangle would be at least 2x2 pixels.
It's tempting to blame drawMouse() or undrawMouse(), but I just don't know.
Ticket imported from: #1210836. Ticket imported from: bugs/2052.