Bug 89971 [Viewers] Viewers that use IViewerLabelProvider do too many instanceof checks
M6 Checking our viewer the calls to buildLabel are doing too many instanceof checks. As a result certain viewers (such as the table viewer) are twice as slow as they were in 3.0 due to these checks. I have written some performance suites to test the Table, Tree, List and Combo viewers. Table and Tree have this issue.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java
*/
	protected void internalUpdate(Widget widget, Object element, String[] properties) {
		boolean needsRefilter = false;
		if (properties != null) {
			for (int i = 0; i < properties.length; ++i) {
				needsRefilter = needsRefilter(element, properties[i]);
				if (needsRefilter)
					break;
			}
		}
		if (needsRefilter) {
			refresh();
			return;
		}
		boolean needsUpdate;
		if (properties == null) {
			needsUpdate = true;
		} else {
			needsUpdate = false;
			IBaseLabelProvider labelProvider = getLabelProvider();
			for (int i = 0; i < properties.length; ++i) {
				needsUpdate = labelProvider.isLabelProperty(element, properties[i]);
				if (needsUpdate)
					break;
			}
		}
		if (needsUpdate) {
			updateItem(widget, element);
		}
	}