cb1d6121b2
For years we have been writing beyond the end of this array in the VGA code: bx_bool vga_tile_updated[BX_NUM_X_TILES][BX_NUM_Y_TILES]; and doing who-know-how-much damage to other memory structures in the process. I changed every reference to vga_tile_updated[][] into calls to two macros GET_TILE_UPDATED and SET_TILE_UPDATED, and defined the macros to check the bounds of the array before referencing it. At first I used an assert, then a panic, then an error, and now I'm not printing any message at all because there were thousands and thousands of messages during a boot of win95 when it's updating the win95 logo screen. - I couldn't resist cleaning up a few confusing-looking things like "if (condition) { // }". There are no functional changes except for bounds checking on the vga_tile_updated array. |
||
---|---|---|
bochs | ||
bochs-performance | ||
bochs-testing | ||
CVSROOT | ||
sfsite |