[366720] Poor performance when applying custom syntax highlighting preference when big PHP file is open in the editor
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/style/SemanticHighlightingPresenter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/style/SemanticHighlightingPresenter.java
index 093ec05..79b29bd 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/style/SemanticHighlightingPresenter.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/style/SemanticHighlightingPresenter.java
@@ -783,12 +783,16 @@
 	 * @param highlighting The highlighting
 	 */
 	public void highlightingStyleChanged(HighlightingStyle highlighting) {
-		for (int i= 0, n= fPositions.size(); i < n; i++) {
-			HighlightedPosition position= (HighlightedPosition) fPositions.get(i);
-			if (position.getHighlighting() == highlighting && fSourceViewer instanceof ITextViewerExtension2)
-				((ITextViewerExtension2) fSourceViewer).invalidateTextPresentation(position.getOffset(), position.getLength());
-			else
-				fSourceViewer.invalidateTextPresentation();
+		if (fSourceViewer instanceof ITextViewerExtension2) {
+			final ITextViewerExtension2  viewer = (ITextViewerExtension2) fSourceViewer;
+			for (int i = 0, n = fPositions.size(); i < n; i++) {
+				HighlightedPosition position = (HighlightedPosition) fPositions.get(i);
+				if (position.getHighlighting() == highlighting)
+					viewer.invalidateTextPresentation(position.getOffset(),	position.getLength());
+			}
+		}
+		else {
+			fSourceViewer.invalidateTextPresentation();
 		}
 	}
 
@@ -797,9 +801,10 @@
 	 */
 	private void invalidateTextPresentation() {
 		if (fSourceViewer instanceof ITextViewerExtension2) {
+			final ITextViewerExtension2  viewer = (ITextViewerExtension2) fSourceViewer;
 			for (int i = 0, n = fPositions.size(); i < n; i++) {
 				Position position = (Position) fPositions.get(i);
-				((ITextViewerExtension2) fSourceViewer).invalidateTextPresentation(position.getOffset(), position.getLength());
+				viewer.invalidateTextPresentation(position.getOffset(), position.getLength());
 			}
 		}
 		else {