fix for the latest rasterizer optimization

This commit is contained in:
David Turner 2006-09-04 16:42:44 +00:00
parent 2d8629b393
commit aa557a908a
2 changed files with 13 additions and 6 deletions

View File

@ -1,3 +1,7 @@
2006-09-04 David Turner <david@freetype.org>
* src/smooth/ftgrays.c: fix for the latest rasterizer optimization
2006-09-03 Werner Lemberg <wl@gnu.org> 2006-09-03 Werner Lemberg <wl@gnu.org>
* devel/ftoption.h: Synchronize with * devel/ftoption.h: Synchronize with

View File

@ -1651,21 +1651,21 @@ typedef struct TCell_
{ {
PCell cells_max; PCell cells_max;
int yindex; int yindex;
long cell_start, cell_mod; long cell_start, cell_end, cell_mod;
ras.ycells = (PCell*)ras.buffer; ras.ycells = (PCell*)ras.buffer;
ras.ycount = band->max - band->min; ras.ycount = band->max - band->min;
for ( yindex = 0; yindex < ras.ycount; yindex++ )
ras.ycells[yindex] = NULL;
cell_start = sizeof ( PCell ) * ras.ycount; cell_start = sizeof ( PCell ) * ras.ycount;
cell_mod = cell_start % sizeof ( TCell ); cell_mod = cell_start % sizeof ( TCell );
if ( cell_mod > 0 ) if ( cell_mod > 0 )
cell_start += sizeof ( TCell ) - cell_mod; cell_start += sizeof ( TCell ) - cell_mod;
cells_max = (PCell)( (char*)ras.buffer + ras.buffer_size ); cell_end = ras.buffer_size;
cell_end -= cell_end % sizeof( TCell );
cells_max = (PCell)( (char*)ras.buffer + cell_end );
ras.cells = (PCell)( (char*)ras.buffer + cell_start ); ras.cells = (PCell)( (char*)ras.buffer + cell_start );
if ( ras.cells >= cells_max ) if ( ras.cells >= cells_max )
goto ReduceBands; goto ReduceBands;
@ -1673,6 +1673,9 @@ typedef struct TCell_
ras.max_cells = cells_max - ras.cells; ras.max_cells = cells_max - ras.cells;
if ( ras.max_cells < 2 ) if ( ras.max_cells < 2 )
goto ReduceBands; goto ReduceBands;
for ( yindex = 0; yindex < ras.ycount; yindex++ )
ras.ycells[yindex] = NULL;
} }
ras.num_cells = 0; ras.num_cells = 0;