From 7c071a13646ae3ac9b89de60915c08b1cf85f0a4 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 30 Nov 2009 17:51:02 +0300 Subject: [PATCH] fix infinite loop when printing (IDEADEV-11874) --- .../src/com/intellij/codeEditor/printing/TextPainter.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeEditor/printing/TextPainter.java b/platform/lang-impl/src/com/intellij/codeEditor/printing/TextPainter.java index 5966df3b2a..dc7a66d105 100644 --- a/platform/lang-impl/src/com/intellij/codeEditor/printing/TextPainter.java +++ b/platform/lang-impl/src/com/intellij/codeEditor/printing/TextPainter.java @@ -230,12 +230,16 @@ public class TextPainter implements Printable { private void drawText(Graphics2D g, Rectangle2D clip) { float lineHeight = getLineHeight(g); HighlighterIterator hIterator = myHighlighter.createIterator(myOffset); - if (hIterator.atEnd()) + if (hIterator.atEnd()) { + myOffset = mySegmentEnd; return; + } LineIterator lIterator = myDocument.createLineIterator(); lIterator.start(myOffset); - if (lIterator.atEnd()) + if (lIterator.atEnd()) { + myOffset = mySegmentEnd; return; + } TextAttributes attributes = hIterator.getTextAttributes(); Color currentColor = attributes.getForegroundColor(); Color backColor = attributes.getBackgroundColor(); -- 2.11.4.GIT