Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType
Commits:
-
09ae6eb6
by Alexei Podtelezhnikov (Алексей Подтележников) at 2023-10-22T08:13:35-04:00
1 changed file:
Changes:
... | ... | @@ -609,19 +609,24 @@ |
609 | 609 | static Bool
|
610 | 610 | Insert_Y_Turn( RAS_ARGS Int y )
|
611 | 611 | {
|
612 | - PLong y_turns;
|
|
613 | - Int n;
|
|
612 | + Int n = ras.numTurns;
|
|
613 | + PLong y_turns = ras.maxBuff;
|
|
614 | 614 | |
615 | 615 | |
616 | - n = ras.numTurns - 1;
|
|
617 | - y_turns = ras.sizeBuff - ras.numTurns;
|
|
618 | - |
|
619 | 616 | /* look for first y value that is <= */
|
620 | - while ( n >= 0 && y < y_turns[n] )
|
|
621 | - n--;
|
|
617 | + while ( n-- && y < y_turns[n] )
|
|
618 | + ;
|
|
622 | 619 | |
623 | 620 | /* if it is <, simply insert it, ignore if == */
|
624 | - if ( n >= 0 && y > y_turns[n] )
|
|
621 | + if ( n < 0 || y > y_turns[n] )
|
|
622 | + {
|
|
623 | + ras.maxBuff--;
|
|
624 | + if ( ras.maxBuff <= ras.top )
|
|
625 | + {
|
|
626 | + ras.error = FT_THROW( Raster_Overflow );
|
|
627 | + return FAILURE;
|
|
628 | + }
|
|
629 | + |
|
625 | 630 | do
|
626 | 631 | {
|
627 | 632 | Int y2 = (Int)y_turns[n];
|
... | ... | @@ -629,18 +634,9 @@ |
629 | 634 | |
630 | 635 | y_turns[n] = y;
|
631 | 636 | y = y2;
|
632 | - } while ( --n >= 0 );
|
|
637 | + } while ( n-- >= 0 );
|
|
633 | 638 | |
634 | - if ( n < 0 )
|
|
635 | - {
|
|
636 | - ras.maxBuff--;
|
|
637 | - if ( ras.maxBuff <= ras.top )
|
|
638 | - {
|
|
639 | - ras.error = FT_THROW( Raster_Overflow );
|
|
640 | - return FAILURE;
|
|
641 | - }
|
|
642 | 639 | ras.numTurns++;
|
643 | - ras.sizeBuff[-ras.numTurns] = y;
|
|
644 | 640 | }
|
645 | 641 | |
646 | 642 | return SUCCESS;
|