8009199: Printed text become garbage on Mac OSX

Reviewed-by: bae, prr
This commit is contained in:
Jennifer Godinez 2013-04-25 10:14:24 -07:00
parent aa18572940
commit cd7abd927f

View File

@ -143,6 +143,8 @@ void JavaCT_DrawGlyphVector
CGContextRef cgRef = qsdo->cgRef;
CGAffineTransform ctmText = CGContextGetTextMatrix(cgRef);
BOOL saved = false;
/* Save and restore of graphics context is done before the iteration.
This seems to work using our test case (see bug ID 7158350) so we are restoring it at
the end of the for loop. If we find out that save/restore outside the loop
@ -175,10 +177,19 @@ void JavaCT_DrawGlyphVector
CFRelease(fallback);
if (cgFallback) {
if (!saved) {
CGContextSaveGState(cgRef);
saved = true;
}
CGContextSetFont(cgRef, cgFallback);
CFRelease(cgFallback);
}
}
} else {
if (saved) {
CGContextRestoreGState(cgRef);
saved = false;
}
}
// if we have per-glyph transformations