Merge
authortbell
Wed, 07 Oct 2009 14:15:01 -0700
changeset 3965 63aae8ce7f47
parent 3940 c6231c81f65c (diff)
parent 3964 cf913644be58 (current diff)
child 3984 f294fe995b86
Merge
jdk/src/share/classes/java/awt/Toolkit.java
jdk/src/share/classes/java/awt/Window.java
--- a/jdk/.hgtags	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/.hgtags	Wed Oct 07 14:15:01 2009 -0700
@@ -47,3 +47,4 @@
 893bcca951b747ddcf6986362b877f0e1dbb835b jdk7-b70
 b3f3240135f0c10b9f2481c174b81b7fcf0daa60 jdk7-b71
 460639b036f327282832a4fe52b7aa45688afd50 jdk7-b72
+f708138c9aca4b389872838fe6773872fce3609e jdk7-b73
--- a/jdk/make/sun/awt/FILES_export_windows.gmk	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/awt/FILES_export_windows.gmk	Wed Oct 07 14:15:01 2009 -0700
@@ -1,249 +1,250 @@
-#
-# Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Sun designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Sun in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-# CA 95054 USA or visit www.sun.com if you need additional information or
-# have any questions.
-#
-
-# FILES_export definitions for Win32
-
-FILES_export = \
-	java/awt/AlphaComposite.java \
-	java/awt/MouseInfo.java \
-        java/awt/Graphics.java \
-        java/awt/Color.java \
-        java/awt/Image.java \
-        java/awt/Rectangle.java \
-        java/awt/Event.java \
-        java/awt/Font.java \
-        java/awt/FontMetrics.java \
-        java/awt/Toolkit.java \
-        java/awt/Component.java \
-        java/awt/Container.java \
-        java/awt/Canvas.java \
-        java/awt/Button.java \
-        java/awt/List.java \
-	java/awt/Adjustable.java \
-        java/awt/Scrollbar.java \
-        java/awt/ScrollPane.java \
-        java/awt/ScrollPaneAdjustable.java \
-        java/awt/Transparency.java \
-	java/awt/Window.java \
-        java/awt/TextField.java \
-        java/awt/Label.java \
-        java/awt/Choice.java \
-        java/awt/TextComponent.java \
-        java/awt/TextArea.java \
-        java/awt/MenuBar.java \
-        java/awt/Menu.java \
-	java/awt/Dialog.java \
-	java/awt/FileDialog.java \
-        java/awt/MenuItem.java \
-	java/awt/MenuComponent.java \
-        java/awt/Checkbox.java \
-        java/awt/CheckboxGroup.java \
-        java/awt/CheckboxMenuItem.java \
-        java/awt/Frame.java \
-	java/awt/Insets.java \
-	java/awt/Cursor.java \
-	java/awt/Dimension.java \
-	java/awt/PopupMenu.java \
-        java/awt/AWTEvent.java \
-        java/awt/AWTException.java \
-        java/awt/AWTKeyStroke.java \
-        java/awt/KeyboardFocusManager.java \
-	java/awt/DisplayMode.java \
-        java/awt/TrayIcon.java \
-	java/awt/datatransfer/StringSelection.java \
-	java/awt/datatransfer/Transferable.java \
-	java/awt/dnd/DnDConstants.java \
-	java/awt/event/ActionEvent.java \
-	java/awt/event/AdjustmentEvent.java \
-	java/awt/event/ComponentEvent.java \
-	java/awt/event/FocusEvent.java \
-	java/awt/event/ItemEvent.java \
-	java/awt/event/InputEvent.java \
-	java/awt/event/InvocationEvent.java \
-	java/awt/event/KeyEvent.java \
-	java/awt/event/MouseEvent.java \
-	java/awt/event/MouseWheelEvent.java \
-	java/awt/event/WindowEvent.java \
-	java/awt/event/InputMethodEvent.java \
-	java/awt/im/InputMethodHighlight.java \
-	java/awt/im/spi/InputMethod.java \
-	java/awt/font/TextHitInfo.java \
-	java/text/AttributedCharacterIterator.java \
-	java/text/AttributedString.java \
-        java/awt/geom/PathIterator.java \
-	java/awt/image/AffineTransformOp.java \
-	java/awt/image/ImageConsumer.java \
-	java/awt/image/ImageObserver.java \
-        java/awt/image/BufferedImage.java \
-        java/awt/image/ColorModel.java \
-        java/awt/image/ConvolveOp.java \
-        java/awt/image/DirectColorModel.java \
-        java/awt/image/IndexColorModel.java \
-        java/awt/image/Raster.java \
-        java/awt/color/ColorSpace.java \
-        java/awt/color/ICC_Profile.java \
-	java/awt/peer/ComponentPeer.java \
-	java/awt/peer/MenuComponentPeer.java \
-        java/io/InputStream.java
-
-FILES_export2 = \
-	sun/awt/im/InputMethodContext.java \
-	sun/awt/EmbeddedFrame.java \
-	sun/awt/KeyboardFocusManagerPeerImpl.java \
-	sun/awt/windows/WEmbeddedFrame.java \
-	sun/awt/windows/WEmbeddedFramePeer.java \
-        sun/awt/Win32GraphicsEnvironment.java \
-        sun/awt/Win32GraphicsDevice.java \
-        sun/awt/Win32GraphicsConfig.java \
-        sun/java2d/SunGraphicsEnvironment.java \
-        sun/java2d/SunGraphics2D.java \
-        sun/java2d/SurfaceData.java \
-        sun/awt/image/IntegerComponentRaster.java \
-        sun/awt/image/ImagingLib.java \
-	sun/awt/image/BufImgSurfaceData.java \
-	sun/awt/image/DataBufferNative.java \
-        sun/awt/shell/Win32ShellFolder2.java \
-	sun/java2d/windows/GDIBlitLoops.java \
-	sun/java2d/windows/GDIRenderer.java \
-	sun/java2d/windows/GDIWindowSurfaceData.java \
-        sun/java2d/windows/WindowsFlags.java \
-	sun/java2d/loops/Blit.java \
-	sun/java2d/loops/BlitBg.java \
-	sun/java2d/loops/ScaledBlit.java \
-	sun/java2d/loops/FillRect.java \
-	sun/java2d/loops/FillSpans.java \
-        sun/java2d/loops/DrawGlyphList.java \
-        sun/java2d/loops/DrawGlyphListAA.java \
-        sun/java2d/loops/DrawGlyphListLCD.java \
-	sun/java2d/loops/DrawLine.java \
-	sun/java2d/loops/DrawRect.java \
-	sun/java2d/loops/DrawPolygons.java \
-        sun/java2d/loops/DrawPath.java \
-        sun/java2d/loops/FillPath.java \
-	sun/java2d/loops/MaskBlit.java \
-	sun/java2d/loops/MaskFill.java \
-	sun/java2d/loops/TransformHelper.java \
-	sun/java2d/loops/GraphicsPrimitiveMgr.java \
-        sun/java2d/loops/GraphicsPrimitive.java \
-        sun/java2d/cmm/CMSManager.java \
-        sun/java2d/cmm/PCMM.java \
-        sun/java2d/cmm/ColorTransform.java \
-        sun/awt/ScrollPaneWheelScroller.java \
-        sun/awt/datatransfer/DataTransferer.java \
-	sun/awt/datatransfer/SunClipboard.java \
-	sun/awt/dnd/SunDragSourceContextPeer.java \
-        sun/awt/windows/WToolkitThreadBlockedHandler.java
-
-FILES_export3 = \
-        java/awt/CheckboxMenuItem.java \
-        java/awt/Menu.java \
-	java/awt/MenuBar.java \
-	java/awt/MenuComponent.java \
-        java/awt/MenuItem.java \
-	sun/awt/PlatformFont.java \
-	sun/awt/FontDescriptor.java \
-	sun/awt/CharsetString.java \
-	java/awt/image/DataBuffer.java \
-        sun/awt/image/GifImageDecoder.java \
-	sun/awt/image/ImageRepresentation.java \
-	sun/awt/windows/WCustomCursor.java \
-	sun/awt/windows/WDefaultFontCharset.java \
-	sun/awt/windows/WButtonPeer.java \
-	sun/awt/windows/WCanvasPeer.java \
-	sun/awt/windows/WCheckboxPeer.java \
-	sun/awt/windows/WCheckboxMenuItemPeer.java \
-	sun/awt/windows/WChoicePeer.java \
-	sun/awt/windows/WClipboard.java \
-	sun/awt/windows/WColor.java \
-	sun/awt/windows/WDataTransferer.java \
-	sun/awt/windows/WDesktopPeer.java \
-	sun/awt/windows/WDesktopProperties.java \
-	sun/awt/windows/WDialogPeer.java \
-	sun/awt/windows/WDragSourceContextPeer.java \
-	sun/awt/windows/WDropTargetContextPeer.java \
-	sun/awt/windows/WFileDialogPeer.java \
-	sun/awt/windows/WFontPeer.java \
-	sun/awt/windows/WFontMetrics.java \
-	sun/awt/windows/WFramePeer.java \
-	sun/awt/windows/WGlobalCursorManager.java \
-	sun/awt/windows/WInputMethod.java \
-	sun/awt/windows/WInputMethodDescriptor.java \
-        sun/awt/windows/WComponentPeer.java \
-        sun/awt/windows/WLabelPeer.java \
-        sun/awt/windows/WListPeer.java \
-	sun/awt/windows/WMenuBarPeer.java \
-	sun/awt/windows/WMenuItemPeer.java \
-	sun/awt/windows/WMenuPeer.java \
-	sun/awt/windows/WObjectPeer.java \
-	sun/awt/windows/WPopupMenuPeer.java \
-	sun/awt/windows/WPrintDialog.java \
-	sun/awt/windows/WPrintDialogPeer.java \
-	sun/awt/windows/WPrinterJob.java \
-        sun/awt/windows/WRobotPeer.java \
-        sun/awt/windows/WScrollbarPeer.java \
-        sun/awt/windows/WScrollPanePeer.java \
-        sun/awt/windows/WTextAreaPeer.java \
-        sun/awt/windows/WTextComponentPeer.java \
-        sun/awt/windows/WTextFieldPeer.java \
-	sun/awt/windows/WPanelPeer.java \
-        sun/awt/windows/WToolkit.java \
-        sun/awt/windows/WWindowPeer.java \
-        sun/awt/windows/ThemeReader.java \
-	sun/awt/windows/WBufferStrategy.java \
-	sun/awt/windows/WTrayIconPeer.java \
-	sun/awt/image/ImagingLib.java \
-	sun/awt/ExtendedKeyCodes.java \
-        sun/java2d/pipe/hw/AccelSurface.java \
-        sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
-        sun/java2d/pipe/hw/ContextCapabilities.java \
-        sun/java2d/pipe/BufferedContext.java \
-        sun/java2d/pipe/BufferedMaskBlit.java \
-        sun/java2d/pipe/BufferedOpCodes.java \
-        sun/java2d/pipe/BufferedPaints.java \
-        sun/java2d/pipe/BufferedRenderPipe.java \
-        sun/java2d/pipe/BufferedTextPipe.java \
-        sun/java2d/pipe/RenderBuffer.java \
-	sun/java2d/pipe/ShapeSpanIterator.java \
-	sun/java2d/pipe/SpanClipRenderer.java \
-	sun/java2d/pipe/RegionIterator.java \
-	sun/java2d/opengl/OGLBlitLoops.java \
-	sun/java2d/opengl/OGLContext.java \
-	sun/java2d/opengl/OGLMaskFill.java \
-	sun/java2d/opengl/OGLPaints.java \
-	sun/java2d/opengl/OGLRenderQueue.java \
-	sun/java2d/opengl/OGLRenderer.java \
-	sun/java2d/opengl/OGLSurfaceData.java \
-	sun/java2d/opengl/OGLTextRenderer.java \
-	sun/java2d/opengl/WGLGraphicsConfig.java \
-	sun/java2d/opengl/WGLSurfaceData.java \
-	sun/java2d/d3d/D3DBlitLoops.java \
-	sun/java2d/d3d/D3DGraphicsDevice.java \
-	sun/java2d/d3d/D3DSurfaceData.java \
-	sun/java2d/d3d/D3DMaskFill.java \
-	sun/java2d/d3d/D3DPaints.java \
-	sun/java2d/d3d/D3DRenderQueue.java \
-	sun/java2d/d3d/D3DRenderer.java \
-	sun/java2d/d3d/D3DTextRenderer.java \
-	sun/java2d/d3d/D3DContext.java
+#
+# Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# FILES_export definitions for Win32
+
+FILES_export = \
+	java/awt/AlphaComposite.java \
+	java/awt/MouseInfo.java \
+        java/awt/Graphics.java \
+        java/awt/Color.java \
+        java/awt/Image.java \
+        java/awt/Rectangle.java \
+        java/awt/Event.java \
+        java/awt/Font.java \
+        java/awt/FontMetrics.java \
+        java/awt/Toolkit.java \
+        java/awt/Component.java \
+        java/awt/Container.java \
+        java/awt/Canvas.java \
+        java/awt/Button.java \
+        java/awt/List.java \
+	java/awt/Adjustable.java \
+        java/awt/Scrollbar.java \
+        java/awt/ScrollPane.java \
+        java/awt/ScrollPaneAdjustable.java \
+        java/awt/Transparency.java \
+	java/awt/Window.java \
+        java/awt/TextField.java \
+        java/awt/Label.java \
+        java/awt/Choice.java \
+        java/awt/TextComponent.java \
+        java/awt/TextArea.java \
+        java/awt/MenuBar.java \
+        java/awt/Menu.java \
+	java/awt/Dialog.java \
+	java/awt/FileDialog.java \
+        java/awt/MenuItem.java \
+	java/awt/MenuComponent.java \
+        java/awt/Checkbox.java \
+        java/awt/CheckboxGroup.java \
+        java/awt/CheckboxMenuItem.java \
+        java/awt/Frame.java \
+	java/awt/Insets.java \
+	java/awt/Cursor.java \
+	java/awt/Dimension.java \
+	java/awt/PopupMenu.java \
+        java/awt/AWTEvent.java \
+        java/awt/AWTException.java \
+        java/awt/AWTKeyStroke.java \
+        java/awt/KeyboardFocusManager.java \
+	java/awt/DisplayMode.java \
+        java/awt/TrayIcon.java \
+	java/awt/datatransfer/StringSelection.java \
+	java/awt/datatransfer/Transferable.java \
+	java/awt/dnd/DnDConstants.java \
+	java/awt/event/ActionEvent.java \
+	java/awt/event/AdjustmentEvent.java \
+	java/awt/event/ComponentEvent.java \
+	java/awt/event/FocusEvent.java \
+	java/awt/event/ItemEvent.java \
+	java/awt/event/InputEvent.java \
+	java/awt/event/InvocationEvent.java \
+	java/awt/event/KeyEvent.java \
+	java/awt/event/MouseEvent.java \
+	java/awt/event/MouseWheelEvent.java \
+	java/awt/event/WindowEvent.java \
+	java/awt/event/InputMethodEvent.java \
+	java/awt/im/InputMethodHighlight.java \
+	java/awt/im/spi/InputMethod.java \
+	java/awt/font/TextHitInfo.java \
+	java/text/AttributedCharacterIterator.java \
+	java/text/AttributedString.java \
+        java/awt/geom/PathIterator.java \
+	java/awt/image/AffineTransformOp.java \
+	java/awt/image/ImageConsumer.java \
+	java/awt/image/ImageObserver.java \
+        java/awt/image/BufferedImage.java \
+        java/awt/image/ColorModel.java \
+        java/awt/image/ConvolveOp.java \
+        java/awt/image/DirectColorModel.java \
+        java/awt/image/IndexColorModel.java \
+        java/awt/image/Raster.java \
+        java/awt/color/ColorSpace.java \
+        java/awt/color/ICC_Profile.java \
+	java/awt/peer/ComponentPeer.java \
+	java/awt/peer/MenuComponentPeer.java \
+        java/io/InputStream.java
+
+FILES_export2 = \
+	sun/awt/im/InputMethodContext.java \
+	sun/awt/EmbeddedFrame.java \
+	sun/awt/KeyboardFocusManagerPeerImpl.java \
+	sun/awt/windows/WEmbeddedFrame.java \
+	sun/awt/windows/WEmbeddedFramePeer.java \
+	sun/awt/Win32FontManager.java \
+        sun/awt/Win32GraphicsEnvironment.java \
+        sun/awt/Win32GraphicsDevice.java \
+        sun/awt/Win32GraphicsConfig.java \
+        sun/java2d/SunGraphicsEnvironment.java \
+        sun/java2d/SunGraphics2D.java \
+        sun/java2d/SurfaceData.java \
+        sun/awt/image/IntegerComponentRaster.java \
+        sun/awt/image/ImagingLib.java \
+	sun/awt/image/BufImgSurfaceData.java \
+	sun/awt/image/DataBufferNative.java \
+        sun/awt/shell/Win32ShellFolder2.java \
+	sun/java2d/windows/GDIBlitLoops.java \
+	sun/java2d/windows/GDIRenderer.java \
+	sun/java2d/windows/GDIWindowSurfaceData.java \
+        sun/java2d/windows/WindowsFlags.java \
+	sun/java2d/loops/Blit.java \
+	sun/java2d/loops/BlitBg.java \
+	sun/java2d/loops/ScaledBlit.java \
+	sun/java2d/loops/FillRect.java \
+	sun/java2d/loops/FillSpans.java \
+        sun/java2d/loops/DrawGlyphList.java \
+        sun/java2d/loops/DrawGlyphListAA.java \
+        sun/java2d/loops/DrawGlyphListLCD.java \
+	sun/java2d/loops/DrawLine.java \
+	sun/java2d/loops/DrawRect.java \
+	sun/java2d/loops/DrawPolygons.java \
+        sun/java2d/loops/DrawPath.java \
+        sun/java2d/loops/FillPath.java \
+	sun/java2d/loops/MaskBlit.java \
+	sun/java2d/loops/MaskFill.java \
+	sun/java2d/loops/TransformHelper.java \
+	sun/java2d/loops/GraphicsPrimitiveMgr.java \
+        sun/java2d/loops/GraphicsPrimitive.java \
+        sun/java2d/cmm/CMSManager.java \
+        sun/java2d/cmm/PCMM.java \
+        sun/java2d/cmm/ColorTransform.java \
+        sun/awt/ScrollPaneWheelScroller.java \
+        sun/awt/datatransfer/DataTransferer.java \
+	sun/awt/datatransfer/SunClipboard.java \
+	sun/awt/dnd/SunDragSourceContextPeer.java \
+        sun/awt/windows/WToolkitThreadBlockedHandler.java
+
+FILES_export3 = \
+        java/awt/CheckboxMenuItem.java \
+        java/awt/Menu.java \
+	java/awt/MenuBar.java \
+	java/awt/MenuComponent.java \
+        java/awt/MenuItem.java \
+	sun/awt/PlatformFont.java \
+	sun/awt/FontDescriptor.java \
+	sun/awt/CharsetString.java \
+	java/awt/image/DataBuffer.java \
+        sun/awt/image/GifImageDecoder.java \
+	sun/awt/image/ImageRepresentation.java \
+	sun/awt/windows/WCustomCursor.java \
+	sun/awt/windows/WDefaultFontCharset.java \
+	sun/awt/windows/WButtonPeer.java \
+	sun/awt/windows/WCanvasPeer.java \
+	sun/awt/windows/WCheckboxPeer.java \
+	sun/awt/windows/WCheckboxMenuItemPeer.java \
+	sun/awt/windows/WChoicePeer.java \
+	sun/awt/windows/WClipboard.java \
+	sun/awt/windows/WColor.java \
+	sun/awt/windows/WDataTransferer.java \
+	sun/awt/windows/WDesktopPeer.java \
+	sun/awt/windows/WDesktopProperties.java \
+	sun/awt/windows/WDialogPeer.java \
+	sun/awt/windows/WDragSourceContextPeer.java \
+	sun/awt/windows/WDropTargetContextPeer.java \
+	sun/awt/windows/WFileDialogPeer.java \
+	sun/awt/windows/WFontPeer.java \
+	sun/awt/windows/WFontMetrics.java \
+	sun/awt/windows/WFramePeer.java \
+	sun/awt/windows/WGlobalCursorManager.java \
+	sun/awt/windows/WInputMethod.java \
+	sun/awt/windows/WInputMethodDescriptor.java \
+        sun/awt/windows/WComponentPeer.java \
+        sun/awt/windows/WLabelPeer.java \
+        sun/awt/windows/WListPeer.java \
+	sun/awt/windows/WMenuBarPeer.java \
+	sun/awt/windows/WMenuItemPeer.java \
+	sun/awt/windows/WMenuPeer.java \
+	sun/awt/windows/WObjectPeer.java \
+	sun/awt/windows/WPopupMenuPeer.java \
+	sun/awt/windows/WPrintDialog.java \
+	sun/awt/windows/WPrintDialogPeer.java \
+	sun/awt/windows/WPrinterJob.java \
+        sun/awt/windows/WRobotPeer.java \
+        sun/awt/windows/WScrollbarPeer.java \
+        sun/awt/windows/WScrollPanePeer.java \
+        sun/awt/windows/WTextAreaPeer.java \
+        sun/awt/windows/WTextComponentPeer.java \
+        sun/awt/windows/WTextFieldPeer.java \
+	sun/awt/windows/WPanelPeer.java \
+        sun/awt/windows/WToolkit.java \
+        sun/awt/windows/WWindowPeer.java \
+        sun/awt/windows/ThemeReader.java \
+	sun/awt/windows/WBufferStrategy.java \
+	sun/awt/windows/WTrayIconPeer.java \
+	sun/awt/image/ImagingLib.java \
+	sun/awt/ExtendedKeyCodes.java \
+        sun/java2d/pipe/hw/AccelSurface.java \
+        sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
+        sun/java2d/pipe/hw/ContextCapabilities.java \
+        sun/java2d/pipe/BufferedContext.java \
+        sun/java2d/pipe/BufferedMaskBlit.java \
+        sun/java2d/pipe/BufferedOpCodes.java \
+        sun/java2d/pipe/BufferedPaints.java \
+        sun/java2d/pipe/BufferedRenderPipe.java \
+        sun/java2d/pipe/BufferedTextPipe.java \
+        sun/java2d/pipe/RenderBuffer.java \
+	sun/java2d/pipe/ShapeSpanIterator.java \
+	sun/java2d/pipe/SpanClipRenderer.java \
+	sun/java2d/pipe/RegionIterator.java \
+	sun/java2d/opengl/OGLBlitLoops.java \
+	sun/java2d/opengl/OGLContext.java \
+	sun/java2d/opengl/OGLMaskFill.java \
+	sun/java2d/opengl/OGLPaints.java \
+	sun/java2d/opengl/OGLRenderQueue.java \
+	sun/java2d/opengl/OGLRenderer.java \
+	sun/java2d/opengl/OGLSurfaceData.java \
+	sun/java2d/opengl/OGLTextRenderer.java \
+	sun/java2d/opengl/WGLGraphicsConfig.java \
+	sun/java2d/opengl/WGLSurfaceData.java \
+	sun/java2d/d3d/D3DBlitLoops.java \
+	sun/java2d/d3d/D3DGraphicsDevice.java \
+	sun/java2d/d3d/D3DSurfaceData.java \
+	sun/java2d/d3d/D3DMaskFill.java \
+	sun/java2d/d3d/D3DPaints.java \
+	sun/java2d/d3d/D3DRenderQueue.java \
+	sun/java2d/d3d/D3DRenderer.java \
+	sun/java2d/d3d/D3DTextRenderer.java \
+	sun/java2d/d3d/D3DContext.java
--- a/jdk/make/sun/awt/make.depend	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/awt/make.depend	Wed Oct 07 14:15:01 2009 -0700
@@ -1,351 +1,351 @@
-$(OBJDIR)/AccelGlyphCache.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/AlphaMacros.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AlphaMath.obj::	../../../src/share/native/sun/java2d/loops/AlphaMath.h
-
-$(OBJDIR)/Any3Byte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Any4Byte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AnyByte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AnyInt.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/AnyShort.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_BitmapUtil.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Desktop.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_ImageRep.obj::	$(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/awt_ImagingLib.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
-
-$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Mlib.obj::	$(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_parseImage.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
-
-$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/BlitBg.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_BlitBg.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Blit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/BufferedMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedMaskBlit.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/BufferedRenderPipe.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/BufImgSurfaceData.obj::	$(CLASSHDRDIR)/sun_awt_image_BufImgSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/BufImgSurfaceData.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/img_util_md.h
-
-$(OBJDIR)/ByteBinary1Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary1Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteBinary2Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary2Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteBinary4Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary4Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ByteIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DShaders.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DGlyphCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DMaskCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DMaskFill.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/D3DVertexCacher.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/DataBufferNative.obj::	$(CLASSHDRDIR)/sun_awt_image_DataBufferNative.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_assert.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_mem.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/Disposer.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/dither.obj::	../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/windows/native/sun/windows/colordata.h
-
-$(OBJDIR)/DllUtil.obj::	../../../src/windows/native/sun/windows/DllUtil.h
-
-$(OBJDIR)/DrawLine.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawLine.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/DrawPath.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/DrawPolygons.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPolygons.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/DrawRect.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FillPath.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FillRect.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FillSpans.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillSpans.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FourByteAbgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgr.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/FourByteAbgrPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/gifdecoder.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/GraphicsPrimitiveMgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/imageInitIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/img_colors.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/img_globals.obj::	$(CLASSHDRDIR)/java_awt_image_DirectColorModel.h $(CLASSHDRDIR)/java_awt_image_IndexColorModel.h $(CLASSHDRDIR)/java_awt_Transparency.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/windows/javavm/export/jni_md.h
-
-$(OBJDIR)/Index12Gray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Index8Gray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/initIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/IntArgbBm.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntArgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntArgbPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntRgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/IntRgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/IntRgbx.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/MaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/MaskFill.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/OGLBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLFuncs.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLMaskFill.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedPaints.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLRenderer.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/OGLVertexCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
-
-$(OBJDIR)/ProcessPath.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Region.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/RenderBuffer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RenderBuffer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/ScaledBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_ScaledBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ShapeSpanIterator.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/SpanClipRenderer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/SurfaceData.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/ThreeByteBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
-
-$(OBJDIR)/TransformHelper.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort4444Argb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort555Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort555Rgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgbx.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/Ushort565Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/UshortGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/UshortIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/loops/UshortIndexed.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
-
-$(OBJDIR)/WGLGraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLGraphicsConfig.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
-
-$(OBJDIR)/WGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
-
-$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
-
-$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+$(OBJDIR)/AccelGlyphCache.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/AlphaMacros.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AlphaMath.obj::	../../../src/share/native/sun/java2d/loops/AlphaMath.h
+
+$(OBJDIR)/Any3Byte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Any4Byte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyByte.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyInt.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/AnyShort.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_BitmapUtil.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Desktop.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_ImageRep.obj::	$(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/awt_ImagingLib.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
+
+$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Mlib.obj::	$(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_parseImage.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
+
+$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_Win32FontManager.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/BlitBg.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_BlitBg.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Blit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/BufferedMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedMaskBlit.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/BufferedRenderPipe.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/BufImgSurfaceData.obj::	$(CLASSHDRDIR)/sun_awt_image_BufImgSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/BufImgSurfaceData.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/img_util_md.h
+
+$(OBJDIR)/ByteBinary1Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary1Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteBinary2Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary2Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteBinary4Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary4Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ByteIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DShaders.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DGlyphCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DMaskCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DMaskFill.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/D3DVertexCacher.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/DataBufferNative.obj::	$(CLASSHDRDIR)/sun_awt_image_DataBufferNative.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_assert.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_mem.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/Disposer.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/dither.obj::	../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/windows/native/sun/windows/colordata.h
+
+$(OBJDIR)/DllUtil.obj::	../../../src/windows/native/sun/windows/DllUtil.h
+
+$(OBJDIR)/DrawLine.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawLine.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawPath.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawPolygons.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPolygons.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/DrawRect.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillPath.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillRect.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillRect.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FillSpans.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillSpans.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FourByteAbgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgr.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/FourByteAbgrPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/gifdecoder.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/GraphicsPrimitiveMgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/imageInitIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/img_colors.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/img_globals.obj::	$(CLASSHDRDIR)/java_awt_image_DirectColorModel.h $(CLASSHDRDIR)/java_awt_image_IndexColorModel.h $(CLASSHDRDIR)/java_awt_Transparency.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/windows/javavm/export/jni_md.h
+
+$(OBJDIR)/Index12Gray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Index8Gray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/initIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/IntArgbBm.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntArgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntArgbPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntRgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/IntRgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/IntRgbx.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MaskFill.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/OGLBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLFuncs.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLMaskFill.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedPaints.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLRenderer.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/OGLVertexCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
+
+$(OBJDIR)/ProcessPath.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Region.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/RenderBuffer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RenderBuffer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/ScaledBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_ScaledBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ShapeSpanIterator.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/SpanClipRenderer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/SurfaceData.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/ThreeByteBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
+
+$(OBJDIR)/TransformHelper.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort4444Argb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort555Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort555Rgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgbx.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/Ushort565Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/UshortGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/UshortIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/loops/UshortIndexed.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
+
+$(OBJDIR)/WGLGraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLGraphicsConfig.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
+
+$(OBJDIR)/WGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
+
+$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
+
+$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
--- a/jdk/make/sun/awt/mapfile-mawt-vers	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/awt/mapfile-mawt-vers	Wed Oct 07 14:15:01 2009 -0700
@@ -477,11 +477,11 @@
 
 		X11SurfaceData_GetOps;
 		getDefaultConfig;
-                Java_sun_font_FontManager_getFontConfig;
-                Java_sun_font_FontManager_getFontConfigAASettings;
-		Java_sun_font_FontManager_getFontPath;
-		Java_sun_font_FontManager_setNativeFontPath;
-		Java_sun_font_FontManager_populateFontFileNameMap;
+                Java_sun_font_FontConfigManager_getFontConfig;
+                Java_sun_font_FontConfigManager_getFontConfigAASettings;
+		Java_sun_awt_X11FontManager_getFontPath;
+		Java_sun_awt_X11FontManager_setNativeFontPath;
+		Java_sun_font_SunFontManager_populateFontFileNameMap;
 
 		# CDE private entry point
 		Java_sun_awt_motif_XsessionWMcommand;
--- a/jdk/make/sun/awt/mapfile-vers-linux	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/awt/mapfile-vers-linux	Wed Oct 07 14:15:01 2009 -0700
@@ -533,11 +533,11 @@
 
 		X11SurfaceData_GetOps;
 		getDefaultConfig;
-                Java_sun_font_FontManager_getFontConfig;
-                Java_sun_font_FontManager_getFontConfigAASettings;
-		Java_sun_font_FontManager_getFontPath;
-		Java_sun_font_FontManager_setNativeFontPath;
-		Java_sun_font_FontManager_populateFontFileNameMap;
+                Java_sun_font_FontConfigManager_getFontConfig;
+                Java_sun_font_FontConfigManager_getFontConfigAASettings;
+		Java_sun_awt_X11FontManager_getFontPath;
+		Java_sun_awt_X11FontManager_setNativeFontPath;
+		Java_sun_font_SunFontManager_populateFontFileNameMap;
 
 		# CDE private entry point
 		Java_sun_awt_motif_XsessionWMcommand;
--- a/jdk/make/sun/font/Makefile	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/font/Makefile	Wed Oct 07 14:15:01 2009 -0700
@@ -199,3 +199,7 @@
 CPPFLAGS += -I$(PLATFORM_SRC)/native/sun/windows
 endif
 
+# Make the Layout Engine build standalone
+CPPFLAGS += -DLE_STANDALONE
+
+
--- a/jdk/make/sun/font/mapfile-vers	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/font/mapfile-vers	Wed Oct 07 14:15:01 2009 -0700
@@ -33,12 +33,7 @@
                 isNullScalerContext;
                 Java_sun_font_NullFontScaler_getNullScalerContext;
                 Java_sun_font_NullFontScaler_getGlyphImage;
-                Java_sun_font_FontManager_getPlatformFontVar;
-                Java_sun_font_FontManager_initIDs;
-                Java_sun_font_FontManager_getFont2D;
-                Java_sun_font_FontManager_setFont2D;
-                Java_sun_font_FontManager_isCreatedFont;
-                Java_sun_font_FontManager_setCreatedFont;
+                Java_sun_font_SunFontManager_initIDs;
                 Java_sun_font_StrikeCache_getGlyphCacheDescription;
                 Java_sun_font_StrikeCache_freeIntPointer;
                 Java_sun_font_StrikeCache_freeLongPointer;
--- a/jdk/make/sun/font/mapfile-vers.openjdk	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/font/mapfile-vers.openjdk	Wed Oct 07 14:15:01 2009 -0700
@@ -35,12 +35,7 @@
                 isNullScalerContext;
                 Java_sun_font_NullFontScaler_getNullScalerContext;
                 Java_sun_font_NullFontScaler_getGlyphImage;
-                Java_sun_font_FontManager_getPlatformFontVar;
-                Java_sun_font_FontManager_initIDs;
-                Java_sun_font_FontManager_getFont2D;
-                Java_sun_font_FontManager_setFont2D;
-                Java_sun_font_FontManager_isCreatedFont;
-                Java_sun_font_FontManager_setCreatedFont;
+                Java_sun_font_SunFontManager_initIDs;
                 Java_sun_font_StrikeCache_getGlyphCacheDescription;
                 Java_sun_font_StrikeCache_freeIntPointer;
                 Java_sun_font_StrikeCache_freeLongPointer;
--- a/jdk/make/sun/headless/mapfile-vers	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/headless/mapfile-vers	Wed Oct 07 14:15:01 2009 -0700
@@ -59,12 +59,10 @@
 
 		X11SurfaceData_GetOps;
 		Java_java_awt_Font_initIDs;
-                Java_sun_font_FontManager_getFontConfig;
-                Java_sun_font_FontManager_getFontConfigVersion;
-                Java_sun_font_FontManager_getFontConfigAASettings;
-		Java_sun_font_FontManager_getFontPath;
-		Java_sun_font_FontManager_setNativeFontPath;
-		Java_sun_font_FontManager_populateFontFileNameMap;
+                Java_sun_font_FontConfigManager_getFontConfig;
+                Java_sun_font_FontConfigManager_getFontConfigAASettings;
+                Java_sun_font_FontConfigManager_getFontConfigVersion;
+		Java_sun_awt_X11FontManager_getFontPath;
 
 		Java_sun_awt_FontDescriptor_initIDs;
 		Java_sun_awt_PlatformFont_initIDs;
--- a/jdk/make/sun/xawt/mapfile-vers	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/make/sun/xawt/mapfile-vers	Wed Oct 07 14:15:01 2009 -0700
@@ -182,12 +182,11 @@
         Java_java_awt_ScrollPane_initIDs;
         Java_java_awt_TextField_initIDs;
         Java_java_awt_TrayIcon_initIDs;
-        Java_sun_font_FontManager_getFontConfig;
-        Java_sun_font_FontManager_getFontConfigVersion;
-        Java_sun_font_FontManager_getFontConfigAASettings;
-	Java_sun_font_FontManager_getFontPath;
-	Java_sun_font_FontManager_setNativeFontPath;
-	Java_sun_font_FontManager_populateFontFileNameMap;
+        Java_sun_font_FontConfigManager_getFontConfig;
+        Java_sun_font_FontConfigManager_getFontConfigAASettings;
+        Java_sun_font_FontConfigManager_getFontConfigVersion;
+	Java_sun_awt_X11FontManager_getFontPath;
+	Java_sun_font_X11FontManager_setNativeFontPath;
         Java_sun_awt_X11GraphicsEnvironment_initDisplay;
         Java_sun_awt_X11GraphicsEnvironment_initGLX;
         Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,7 +29,9 @@
 import java.awt.geom.AffineTransform;
 import javax.swing.plaf.FontUIResource;
 import java.util.StringTokenizer;
-import sun.font.FontManager;
+
+import sun.font.FontConfigManager;
+import sun.font.FontUtilities;
 
 /**
  * @author Shannon Hickey
@@ -193,13 +195,13 @@
         }
 
         String fcFamilyLC = family.toLowerCase();
-        if (FontManager.mapFcName(fcFamilyLC) != null) {
+        if (FontUtilities.mapFcName(fcFamilyLC) != null) {
             /* family is a Fc/Pango logical font which we need to expand. */
-           return FontManager.getFontConfigFUIR(fcFamilyLC, style, size);
+           return FontUtilities.getFontConfigFUIR(fcFamilyLC, style, size);
         } else {
             /* It's a physical font which we will create with a fallback */
             Font font = new FontUIResource(family, style, size);
-            return FontManager.getCompositeFontUIResource(font);
+            return FontUtilities.getCompositeFontUIResource(font);
         }
     }
 
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java	Wed Oct 07 14:15:01 2009 -0700
@@ -63,7 +63,7 @@
 import sun.awt.SunToolkit;
 import sun.awt.OSInfo;
 import sun.awt.shell.ShellFolder;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
 import sun.security.action.GetPropertyAction;
 
 import sun.swing.DefaultLayoutStyle;
@@ -2289,13 +2289,14 @@
                                                   font.getStyle(), size);
                     }
                 }
-                if (FontManager.fontSupportsDefaultEncoding(font)) {
+
+                if (FontUtilities.fontSupportsDefaultEncoding(font)) {
                     if (!(font instanceof UIResource)) {
                         font = new FontUIResource(font);
                     }
                 }
                 else {
-                    font = FontManager.getCompositeFontUIResource(font);
+                    font = FontUtilities.getCompositeFontUIResource(font);
                 }
                 return font;
 
--- a/jdk/src/share/classes/java/awt/AWTEvent.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/AWTEvent.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,9 +30,8 @@
 import java.awt.peer.ComponentPeer;
 import java.awt.peer.LightweightPeer;
 import java.lang.reflect.Field;
-import java.util.logging.Logger;
-import java.util.logging.Level;
 import sun.awt.AWTAccessor;
+import sun.util.logging.PlatformLogger;
 
 /**
  * The root event class for all AWT events.
@@ -76,7 +75,7 @@
  * @since 1.1
  */
 public abstract class AWTEvent extends EventObject {
-    private static final Logger log = Logger.getLogger("java.awt.AWTEvent");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.AWTEvent");
     private byte bdata[];
 
     /**
@@ -252,12 +251,12 @@
                                     field.setAccessible(true);
                                     return field;
                                 } catch (SecurityException e) {
-                                    if (log.isLoggable(Level.FINE)) {
-                                        log.log(Level.FINE, "AWTEvent.get_InputEvent_CanAccessSystemClipboard() got SecurityException ", e);
+                                    if (log.isLoggable(PlatformLogger.FINE)) {
+                                        log.fine("AWTEvent.get_InputEvent_CanAccessSystemClipboard() got SecurityException ", e);
                                     }
                                 } catch (NoSuchFieldException e) {
-                                    if (log.isLoggable(Level.FINE)) {
-                                        log.log(Level.FINE, "AWTEvent.get_InputEvent_CanAccessSystemClipboard() got NoSuchFieldException ", e);
+                                    if (log.isLoggable(PlatformLogger.FINE)) {
+                                        log.fine("AWTEvent.get_InputEvent_CanAccessSystemClipboard() got NoSuchFieldException ", e);
                                     }
                                 }
                                 return null;
@@ -549,8 +548,8 @@
                     boolean b = field.getBoolean(this);
                     field.setBoolean(that, b);
                 } catch(IllegalAccessException e) {
-                    if (log.isLoggable(Level.FINE)) {
-                        log.log(Level.FINE, "AWTEvent.copyPrivateDataInto() got IllegalAccessException ", e);
+                    if (log.isLoggable(PlatformLogger.FINE)) {
+                        log.fine("AWTEvent.copyPrivateDataInto() got IllegalAccessException ", e);
                     }
                 }
             }
@@ -564,8 +563,8 @@
                 try {
                     field.setBoolean(this, false);
                 } catch(IllegalAccessException e) {
-                    if (log.isLoggable(Level.FINE)) {
-                        log.log(Level.FINE, "AWTEvent.dispatched() got IllegalAccessException ", e);
+                    if (log.isLoggable(PlatformLogger.FINE)) {
+                        log.fine("AWTEvent.dispatched() got IllegalAccessException ", e);
                     }
                 }
             }
--- a/jdk/src/share/classes/java/awt/AttributeValue.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/AttributeValue.java	Wed Oct 07 14:15:01 2009 -0700
@@ -25,21 +25,21 @@
 
 package java.awt;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 abstract class AttributeValue {
-    private static final Logger log = Logger.getLogger("java.awt.AttributeValue");
-
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.AttributeValue");
     private final int value;
     private final String[] names;
 
     protected AttributeValue(int value, String[] names) {
-        if (log.isLoggable(Level.FINEST)) {
-            log.log(Level.FINEST, "value = " + value + ", names = " + names);
+        if (log.isLoggable(PlatformLogger.FINEST)) {
+            log.finest("value = " + value + ", names = " + names);
         }
-        if (log.isLoggable(Level.FINER)) {
+
+        if (log.isLoggable(PlatformLogger.FINER)) {
             if ((value < 0) || (names == null) || (value >= names.length)) {
-                log.log(Level.FINER, "Assertion failed");
+                log.finer("Assertion failed");
             }
         }
         this.value = value;
--- a/jdk/src/share/classes/java/awt/Component.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Component.java	Wed Oct 07 14:15:01 2009 -0700
@@ -60,7 +60,6 @@
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import javax.accessibility.*;
-import java.util.logging.*;
 import java.applet.Applet;
 
 import sun.security.action.GetPropertyAction;
@@ -74,6 +73,9 @@
 import sun.awt.EmbeddedFrame;
 import sun.awt.dnd.SunDropTargetEvent;
 import sun.awt.im.CompositionArea;
+import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.SunFontManager;
 import sun.java2d.SunGraphics2D;
 import sun.java2d.pipe.Region;
 import sun.awt.image.VSyncedBSManager;
@@ -81,6 +83,7 @@
 import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.*;
 import sun.awt.RequestFocusController;
 import sun.java2d.SunGraphicsEnvironment;
+import sun.util.logging.PlatformLogger;
 
 /**
  * A <em>component</em> is an object having a graphical representation
@@ -175,10 +178,10 @@
                                            Serializable
 {
 
-    private static final Logger log = Logger.getLogger("java.awt.Component");
-    private static final Logger eventLog = Logger.getLogger("java.awt.event.Component");
-    private static final Logger focusLog = Logger.getLogger("java.awt.focus.Component");
-    private static final Logger mixingLog = Logger.getLogger("java.awt.mixing.Component");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Component");
+    private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.Component");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("java.awt.focus.Component");
+    private static final PlatformLogger mixingLog = PlatformLogger.getLogger("java.awt.mixing.Component");
 
     /**
      * The peer of the component. The peer implements the component's
@@ -2848,8 +2851,12 @@
      * @since     JDK1.0
      */
     public FontMetrics getFontMetrics(Font font) {
-        // REMIND: PlatformFont flag should be obsolete soon...
-        if (sun.font.FontManager.usePlatformFontMetrics()) {
+        // This is an unsupported hack, but left in for a customer.
+        // Do not remove.
+        FontManager fm = FontManagerFactory.getInstance();
+        if (fm instanceof SunFontManager
+            && ((SunFontManager) fm).usePlatformFontMetrics()) {
+
             if (peer != null &&
                 !(peer instanceof LightweightPeer)) {
                 return peer.getFontMetrics(font);
@@ -4471,13 +4478,13 @@
         // Check that this component belongs to this app-context
         AppContext compContext = appContext;
         if (compContext != null && !compContext.equals(AppContext.getAppContext())) {
-            if (eventLog.isLoggable(Level.FINE)) {
-                eventLog.log(Level.FINE, "Event " + e + " is being dispatched on the wrong AppContext");
-            }
-        }
-
-        if (eventLog.isLoggable(Level.FINEST)) {
-            eventLog.log(Level.FINEST, "{0}", e);
+            if (eventLog.isLoggable(PlatformLogger.FINE)) {
+                eventLog.fine("Event " + e + " is being dispatched on the wrong AppContext");
+            }
+        }
+
+        if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+            eventLog.finest("{0}", e);
         }
 
         /*
@@ -4512,8 +4519,8 @@
                 return;
             }
         }
-        if ((e instanceof FocusEvent) && focusLog.isLoggable(Level.FINEST)) {
-            focusLog.log(Level.FINEST, "" + e);
+        if ((e instanceof FocusEvent) && focusLog.isLoggable(PlatformLogger.FINEST)) {
+            focusLog.finest("" + e);
         }
         // MouseWheel may need to be retargeted here so that
         // AWTEventListener sees the event go to the correct
@@ -4570,8 +4577,8 @@
                 if (inputContext != null) {
                     inputContext.dispatchEvent(e);
                     if (e.isConsumed()) {
-                        if ((e instanceof FocusEvent) && focusLog.isLoggable(Level.FINEST)) {
-                            focusLog.log(Level.FINEST, "3579: Skipping " + e);
+                        if ((e instanceof FocusEvent) && focusLog.isLoggable(PlatformLogger.FINEST)) {
+                            focusLog.finest("3579: Skipping " + e);
                         }
                         return;
                     }
@@ -4605,8 +4612,8 @@
               if (p != null) {
                   p.preProcessKeyEvent((KeyEvent)e);
                   if (e.isConsumed()) {
-                        if (focusLog.isLoggable(Level.FINEST)) {
-                            focusLog.log(Level.FINEST, "Pre-process consumed event");
+                        if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                            focusLog.finest("Pre-process consumed event");
                         }
                       return;
                   }
@@ -4738,9 +4745,9 @@
                                   // position relative to its parent.
         MouseWheelEvent newMWE;
 
-        if (eventLog.isLoggable(Level.FINEST)) {
-            eventLog.log(Level.FINEST, "dispatchMouseWheelToAncestor");
-            eventLog.log(Level.FINEST, "orig event src is of " + e.getSource().getClass());
+        if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+            eventLog.finest("dispatchMouseWheelToAncestor");
+            eventLog.finest("orig event src is of " + e.getSource().getClass());
         }
 
         /* parent field for Window refers to the owning Window.
@@ -4761,8 +4768,8 @@
                 }
             }
 
-            if (eventLog.isLoggable(Level.FINEST)) {
-                eventLog.log(Level.FINEST, "new event src is " + anc.getClass());
+            if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+                eventLog.finest("new event src is " + anc.getClass());
             }
 
             if (anc != null && anc.eventEnabled(e)) {
@@ -5257,11 +5264,11 @@
     // Should only be called while holding the tree lock
     int numListening(long mask) {
         // One mask or the other, but not neither or both.
-        if (eventLog.isLoggable(Level.FINE)) {
+        if (eventLog.isLoggable(PlatformLogger.FINE)) {
             if ((mask != AWTEvent.HIERARCHY_EVENT_MASK) &&
                 (mask != AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK))
             {
-                eventLog.log(Level.FINE, "Assertion failed");
+                eventLog.fine("Assertion failed");
             }
         }
         if ((mask == AWTEvent.HIERARCHY_EVENT_MASK &&
@@ -5298,9 +5305,9 @@
               break;
           case HierarchyEvent.ANCESTOR_MOVED:
           case HierarchyEvent.ANCESTOR_RESIZED:
-              if (eventLog.isLoggable(Level.FINE)) {
+              if (eventLog.isLoggable(PlatformLogger.FINE)) {
                   if (changeFlags != 0) {
-                      eventLog.log(Level.FINE, "Assertion (changeFlags == 0) failed");
+                      eventLog.fine("Assertion (changeFlags == 0) failed");
                   }
               }
               if (hierarchyBoundsListener != null ||
@@ -5314,8 +5321,8 @@
               break;
           default:
               // assert false
-              if (eventLog.isLoggable(Level.FINE)) {
-                  eventLog.log(Level.FINE, "This code must never be reached");
+              if (eventLog.isLoggable(PlatformLogger.FINE)) {
+                  eventLog.fine("This code must never be reached");
               }
               break;
         }
@@ -7376,8 +7383,8 @@
                                      CausedFocusEvent.Cause cause)
     {
         if (!isRequestFocusAccepted(temporary, focusedWindowChangeAllowed, cause)) {
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "requestFocus is not accepted");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("requestFocus is not accepted");
             }
             return false;
         }
@@ -7388,8 +7395,8 @@
         Component window = this;
         while ( (window != null) && !(window instanceof Window)) {
             if (!window.isVisible()) {
-                if (focusLog.isLoggable(Level.FINEST)) {
-                    focusLog.log(Level.FINEST, "component is recurively invisible");
+                if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                    focusLog.finest("component is recurively invisible");
                 }
                 return false;
             }
@@ -7400,15 +7407,15 @@
         Component heavyweight = (peer instanceof LightweightPeer)
             ? getNativeContainer() : this;
         if (heavyweight == null || !heavyweight.isVisible()) {
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "Component is not a part of visible hierarchy");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("Component is not a part of visible hierarchy");
             }
             return false;
         }
         peer = heavyweight.peer;
         if (peer == null) {
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "Peer is null");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("Peer is null");
             }
             return false;
         }
@@ -7420,12 +7427,12 @@
         if (!success) {
             KeyboardFocusManager.getCurrentKeyboardFocusManager
                 (appContext).dequeueKeyEvents(time, this);
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "Peer request failed");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("Peer request failed");
             }
         } else {
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "Pass for " + this);
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("Pass for " + this);
             }
         }
         return success;
@@ -7436,24 +7443,24 @@
                                            CausedFocusEvent.Cause cause)
     {
         if (!isFocusable() || !isVisible()) {
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "Not focusable or not visible");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("Not focusable or not visible");
             }
             return false;
         }
 
         ComponentPeer peer = this.peer;
         if (peer == null) {
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "peer is null");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("peer is null");
             }
             return false;
         }
 
         Window window = getContainingWindow();
         if (window == null || !((Window)window).isFocusableWindow()) {
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "Component doesn't have toplevel");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("Component doesn't have toplevel");
             }
             return false;
         }
@@ -7474,8 +7481,8 @@
             // Controller is supposed to verify focus transfers and for this it
             // should know both from and to components.  And it shouldn't verify
             // transfers from when these components are equal.
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "focus owner is null or this");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("focus owner is null or this");
             }
             return true;
         }
@@ -7487,8 +7494,8 @@
             // most recent focus owner.  But most recent focus owner can be
             // changed by requestFocsuXXX() call only, so this transfer has
             // been already approved.
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "cause is activation");
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("cause is activation");
             }
             return true;
         }
@@ -7498,8 +7505,8 @@
                                                                           temporary,
                                                                           focusedWindowChangeAllowed,
                                                                           cause);
-        if (focusLog.isLoggable(Level.FINEST)) {
-            focusLog.log(Level.FINEST, "RequestFocusController returns {0}", ret);
+        if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+            focusLog.finest("RequestFocusController returns {0}", ret);
         }
 
         return ret;
@@ -7590,7 +7597,7 @@
     }
 
     boolean transferFocus(boolean clearOnFailure) {
-        if (focusLog.isLoggable(Level.FINER)) {
+        if (focusLog.isLoggable(PlatformLogger.FINER)) {
             focusLog.finer("clearOnFailure = " + clearOnFailure);
         }
         Component toFocus = getNextFocusCandidate();
@@ -7599,12 +7606,12 @@
             res = toFocus.requestFocusInWindow(CausedFocusEvent.Cause.TRAVERSAL_FORWARD);
         }
         if (clearOnFailure && !res) {
-            if (focusLog.isLoggable(Level.FINER)) {
+            if (focusLog.isLoggable(PlatformLogger.FINER)) {
                 focusLog.finer("clear global focus owner");
             }
             KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
         }
-        if (focusLog.isLoggable(Level.FINER)) {
+        if (focusLog.isLoggable(PlatformLogger.FINER)) {
             focusLog.finer("returning result: " + res);
         }
         return res;
@@ -7619,19 +7626,19 @@
             comp = rootAncestor;
             rootAncestor = comp.getFocusCycleRootAncestor();
         }
-        if (focusLog.isLoggable(Level.FINER)) {
+        if (focusLog.isLoggable(PlatformLogger.FINER)) {
             focusLog.finer("comp = " + comp + ", root = " + rootAncestor);
         }
         Component candidate = null;
         if (rootAncestor != null) {
             FocusTraversalPolicy policy = rootAncestor.getFocusTraversalPolicy();
             Component toFocus = policy.getComponentAfter(rootAncestor, comp);
-            if (focusLog.isLoggable(Level.FINER)) {
+            if (focusLog.isLoggable(PlatformLogger.FINER)) {
                 focusLog.finer("component after is " + toFocus);
             }
             if (toFocus == null) {
                 toFocus = policy.getDefaultComponent(rootAncestor);
-                if (focusLog.isLoggable(Level.FINER)) {
+                if (focusLog.isLoggable(PlatformLogger.FINER)) {
                     focusLog.finer("default component is " + toFocus);
                 }
             }
@@ -7643,7 +7650,7 @@
             }
             candidate = toFocus;
         }
-        if (focusLog.isLoggable(Level.FINER)) {
+        if (focusLog.isLoggable(PlatformLogger.FINER)) {
             focusLog.finer("Focus transfer candidate: " + candidate);
         }
         return candidate;
@@ -7680,12 +7687,12 @@
             }
         }
         if (!res) {
-            if (focusLog.isLoggable(Level.FINER)) {
+            if (focusLog.isLoggable(PlatformLogger.FINER)) {
                 focusLog.finer("clear global focus owner");
             }
             KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
         }
-        if (focusLog.isLoggable(Level.FINER)) {
+        if (focusLog.isLoggable(PlatformLogger.FINER)) {
             focusLog.finer("returning result: " + res);
         }
         return res;
@@ -9441,7 +9448,7 @@
         checkTreeLock();
 
         if (!areBoundsValid()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
             }
             return;
@@ -9477,7 +9484,7 @@
                     }
                     this.compoundShape = shape;
                     Point compAbsolute = getLocationOnWindow();
-                    if (mixingLog.isLoggable(Level.FINER)) {
+                    if (mixingLog.isLoggable(PlatformLogger.FINER)) {
                         mixingLog.fine("this = " + this +
                                 "; compAbsolute=" + compAbsolute + "; shape=" + shape);
                     }
@@ -9611,7 +9618,7 @@
         checkTreeLock();
         Region s = getNormalShape();
 
-        if (mixingLog.isLoggable(Level.FINE)) {
+        if (mixingLog.isLoggable(PlatformLogger.FINE)) {
             mixingLog.fine("this = " + this + "; normalShape=" + s);
         }
 
@@ -9645,7 +9652,7 @@
             }
         }
 
-        if (mixingLog.isLoggable(Level.FINE)) {
+        if (mixingLog.isLoggable(PlatformLogger.FINE)) {
             mixingLog.fine("currentShape=" + s);
         }
 
@@ -9655,12 +9662,12 @@
     void applyCurrentShape() {
         checkTreeLock();
         if (!areBoundsValid()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
             }
             return; // Because applyCompoundShape() ignores such components anyway
         }
-        if (mixingLog.isLoggable(Level.FINE)) {
+        if (mixingLog.isLoggable(PlatformLogger.FINE)) {
             mixingLog.fine("this = " + this);
         }
         applyCompoundShape(calculateCurrentShape());
@@ -9669,7 +9676,7 @@
     final void subtractAndApplyShape(Region s) {
         checkTreeLock();
 
-        if (mixingLog.isLoggable(Level.FINE)) {
+        if (mixingLog.isLoggable(PlatformLogger.FINE)) {
             mixingLog.fine("this = " + this + "; s=" + s);
         }
 
@@ -9716,7 +9723,7 @@
 
     void mixOnShowing() {
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this);
             }
             if (!isMixingNeeded()) {
@@ -9734,7 +9741,7 @@
         // We cannot be sure that the peer exists at this point, so we need the argument
         //    to find out whether the hiding component is (well, actually was) a LW or a HW.
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this + "; isLightweight = " + isLightweight);
             }
             if (!isMixingNeeded()) {
@@ -9748,7 +9755,7 @@
 
     void mixOnReshaping() {
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this);
             }
             if (!isMixingNeeded()) {
@@ -9767,7 +9774,7 @@
             boolean becameHigher = newZorder < oldZorder;
             Container parent = getContainer();
 
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this +
                     "; oldZorder=" + oldZorder + "; newZorder=" + newZorder + "; parent=" + parent);
             }
@@ -9811,13 +9818,13 @@
 
     final boolean isMixingNeeded() {
         if (SunToolkit.getSunAwtDisableMixing()) {
-            if (mixingLog.isLoggable(Level.FINEST)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINEST)) {
                 mixingLog.finest("this = " + this + "; Mixing disabled via sun.awt.disableMixing");
             }
             return false;
         }
         if (!areBoundsValid()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
             }
             return false;
@@ -9825,7 +9832,7 @@
         Window window = getContainingWindow();
         if (window != null) {
             if (!window.hasHeavyweightDescendants() || !window.hasLightweightDescendants()) {
-                if (mixingLog.isLoggable(Level.FINE)) {
+                if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                     mixingLog.fine("containing window = " + window +
                             "; has h/w descendants = " + window.hasHeavyweightDescendants() +
                             "; has l/w descendants = " + window.hasLightweightDescendants());
@@ -9833,8 +9840,8 @@
                 return false;
             }
         } else {
-            if (mixingLog.isLoggable(Level.FINE)) {
-                mixingLog.finest("this = " + this + "; containing window is null");
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
+                mixingLog.fine("this = " + this + "; containing window is null");
             }
             return false;
         }
--- a/jdk/src/share/classes/java/awt/Container.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Container.java	Wed Oct 07 14:15:01 2009 -0700
@@ -46,10 +46,10 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import java.util.logging.*;
-
 import javax.accessibility.*;
 
+import sun.util.logging.PlatformLogger;
+
 import sun.awt.AppContext;
 import sun.awt.CausedFocusEvent;
 import sun.awt.PeerEvent;
@@ -85,8 +85,8 @@
  */
 public class Container extends Component {
 
-    private static final Logger log = Logger.getLogger("java.awt.Container");
-    private static final Logger eventLog = Logger.getLogger("java.awt.event.Container");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Container");
+    private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.Container");
 
     private static final Component[] EMPTY_ARRAY = new Component[0];
 
@@ -201,7 +201,7 @@
     private transient int numOfHWComponents = 0;
     private transient int numOfLWComponents = 0;
 
-    private static final Logger mixingLog = Logger.getLogger("java.awt.mixing.Container");
+    private static final PlatformLogger mixingLog = PlatformLogger.getLogger("java.awt.mixing.Container");
 
     /**
      * @serialField ncomponents                     int
@@ -1287,33 +1287,33 @@
         int superListening = super.numListening(mask);
 
         if (mask == AWTEvent.HIERARCHY_EVENT_MASK) {
-            if (eventLog.isLoggable(Level.FINE)) {
+            if (eventLog.isLoggable(PlatformLogger.FINE)) {
                 // Verify listeningChildren is correct
                 int sum = 0;
                 for (Component comp : component) {
                     sum += comp.numListening(mask);
                 }
                 if (listeningChildren != sum) {
-                    eventLog.log(Level.FINE, "Assertion (listeningChildren == sum) failed");
+                    eventLog.fine("Assertion (listeningChildren == sum) failed");
                 }
             }
             return listeningChildren + superListening;
         } else if (mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) {
-            if (eventLog.isLoggable(Level.FINE)) {
+            if (eventLog.isLoggable(PlatformLogger.FINE)) {
                 // Verify listeningBoundsChildren is correct
                 int sum = 0;
                 for (Component comp : component) {
                     sum += comp.numListening(mask);
                 }
                 if (listeningBoundsChildren != sum) {
-                    eventLog.log(Level.FINE, "Assertion (listeningBoundsChildren == sum) failed");
+                    eventLog.fine("Assertion (listeningBoundsChildren == sum) failed");
                 }
             }
             return listeningBoundsChildren + superListening;
         } else {
             // assert false;
-            if (eventLog.isLoggable(Level.FINE)) {
-                eventLog.log(Level.FINE, "This code must never be reached");
+            if (eventLog.isLoggable(PlatformLogger.FINE)) {
+                eventLog.fine("This code must never be reached");
             }
             return superListening;
         }
@@ -1321,13 +1321,13 @@
 
     // Should only be called while holding tree lock
     void adjustListeningChildren(long mask, int num) {
-        if (eventLog.isLoggable(Level.FINE)) {
+        if (eventLog.isLoggable(PlatformLogger.FINE)) {
             boolean toAssert = (mask == AWTEvent.HIERARCHY_EVENT_MASK ||
                                 mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK ||
                                 mask == (AWTEvent.HIERARCHY_EVENT_MASK |
                                          AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK));
             if (!toAssert) {
-                eventLog.log(Level.FINE, "Assertion failed");
+                eventLog.fine("Assertion failed");
             }
         }
 
@@ -1362,14 +1362,14 @@
 
     // Should only be called while holding tree lock
     int countHierarchyMembers() {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             // Verify descendantsCount is correct
             int sum = 0;
             for (Component comp : component) {
                 sum += comp.countHierarchyMembers();
             }
             if (descendantsCount != sum) {
-                log.log(Level.FINE, "Assertion (descendantsCount == sum) failed");
+                log.fine("Assertion (descendantsCount == sum) failed");
             }
         }
         return descendantsCount + 1;
@@ -3924,7 +3924,7 @@
 
     final void recursiveSubtractAndApplyShape(Region shape, int fromZorder, int toZorder) {
         checkTreeLock();
-        if (mixingLog.isLoggable(Level.FINE)) {
+        if (mixingLog.isLoggable(PlatformLogger.FINE)) {
             mixingLog.fine("this = " + this +
                 "; shape=" + shape + "; fromZ=" + fromZorder + "; toZ=" + toZorder);
         }
@@ -3961,7 +3961,7 @@
 
     final void recursiveApplyCurrentShape(int fromZorder, int toZorder) {
         checkTreeLock();
-        if (mixingLog.isLoggable(Level.FINE)) {
+        if (mixingLog.isLoggable(PlatformLogger.FINE)) {
             mixingLog.fine("this = " + this +
                 "; fromZ=" + fromZorder + "; toZ=" + toZorder);
         }
@@ -4065,7 +4065,7 @@
     @Override
     void mixOnShowing() {
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this);
             }
 
@@ -4090,7 +4090,7 @@
     @Override
     void mixOnHiding(boolean isLightweight) {
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this +
                         "; isLightweight=" + isLightweight);
             }
@@ -4104,7 +4104,7 @@
     @Override
     void mixOnReshaping() {
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this);
             }
 
@@ -4139,7 +4139,7 @@
     @Override
     void mixOnZOrderChanging(int oldZorder, int newZorder) {
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this +
                     "; oldZ=" + oldZorder + "; newZ=" + newZorder);
             }
@@ -4160,7 +4160,7 @@
     @Override
     void mixOnValidating() {
         synchronized (getTreeLock()) {
-            if (mixingLog.isLoggable(Level.FINE)) {
+            if (mixingLog.isLoggable(PlatformLogger.FINE)) {
                 mixingLog.fine("this = " + this);
             }
 
@@ -4206,7 +4206,7 @@
      */
     private static final int  LWD_MOUSE_DRAGGED_OVER = 1500;
 
-    private static final Logger eventLog = Logger.getLogger("java.awt.event.LightweightDispatcher");
+    private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.LightweightDispatcher");
 
     LightweightDispatcher(Container nativeContainer) {
         this.nativeContainer = nativeContainer;
@@ -4348,10 +4348,10 @@
             // This may send it somewhere that doesn't have MouseWheelEvents
             // enabled.  In this case, Component.dispatchEventImpl() will
             // retarget the event to a parent that DOES have the events enabled.
-            if (eventLog.isLoggable(Level.FINEST) && (mouseOver != null)) {
-                eventLog.log(Level.FINEST, "retargeting mouse wheel to " +
-                             mouseOver.getName() + ", " +
-                             mouseOver.getClass());
+            if (eventLog.isLoggable(PlatformLogger.FINEST) && (mouseOver != null)) {
+                eventLog.finest("retargeting mouse wheel to " +
+                                mouseOver.getName() + ", " +
+                                mouseOver.getClass());
             }
             retargetMouseEvent(mouseOver, id, e);
         break;
--- a/jdk/src/share/classes/java/awt/ContainerOrderFocusTraversalPolicy.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/ContainerOrderFocusTraversalPolicy.java	Wed Oct 07 14:15:01 2009 -0700
@@ -24,9 +24,9 @@
  */
 package java.awt;
 
-import java.util.logging.*;
 import java.util.List;
 import java.util.ArrayList;
+import sun.util.logging.PlatformLogger;
 
 /**
  * A FocusTraversalPolicy that determines traversal order based on the order
@@ -60,7 +60,7 @@
 public class ContainerOrderFocusTraversalPolicy extends FocusTraversalPolicy
     implements java.io.Serializable
 {
-    private static final Logger log = Logger.getLogger("java.awt.ContainerOrderFocusTraversalPolicy");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.ContainerOrderFocusTraversalPolicy");
 
     final private int FORWARD_TRAVERSAL = 0;
     final private int BACKWARD_TRAVERSAL = 1;
@@ -165,7 +165,7 @@
                 if (getImplicitDownCycleTraversal()) {
                     retComp = cont.getFocusTraversalPolicy().getDefaultComponent(cont);
 
-                    if (retComp != null && log.isLoggable(Level.FINE)) {
+                    if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
                         log.fine("### Transfered focus down-cycle to " + retComp +
                                  " in the focus cycle root " + cont);
                     }
@@ -177,7 +177,7 @@
                            cont.getFocusTraversalPolicy().getDefaultComponent(cont) :
                            cont.getFocusTraversalPolicy().getLastComponent(cont));
 
-                if (retComp != null && log.isLoggable(Level.FINE)) {
+                if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("### Transfered focus to " + retComp + " in the FTP provider " + cont);
                 }
             }
@@ -208,7 +208,7 @@
      *         aComponent is null
      */
     public Component getComponentAfter(Container aContainer, Component aComponent) {
-        if (log.isLoggable(Level.FINE)) log.fine("### Searching in " + aContainer + " for component after " + aComponent);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Searching in " + aContainer + " for component after " + aComponent);
 
         if (aContainer == null || aComponent == null) {
             throw new IllegalArgumentException("aContainer and aComponent cannot be null");
@@ -236,7 +236,7 @@
             // See if the component is inside of policy provider.
             Container provider = getTopmostProvider(aContainer, aComponent);
             if (provider != null) {
-                if (log.isLoggable(Level.FINE)) {
+                if (log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("### Asking FTP " + provider + " for component after " + aComponent);
                 }
 
@@ -247,7 +247,7 @@
                 // Null result means that we overstepped the limit of the FTP's cycle.
                 // In that case we must quit the cycle, otherwise return the component found.
                 if (afterComp != null) {
-                    if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + afterComp);
+                    if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + afterComp);
                     return afterComp;
                 }
                 aComponent = provider;
@@ -255,12 +255,12 @@
 
             List<Component> cycle = getFocusTraversalCycle(aContainer);
 
-            if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
 
             int index = getComponentIndex(cycle, aComponent);
 
             if (index < 0) {
-                if (log.isLoggable(Level.FINE)) {
+                if (log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
                 }
                 return getFirstComponent(aContainer);
@@ -325,7 +325,7 @@
             // See if the component is inside of policy provider.
             Container provider = getTopmostProvider(aContainer, aComponent);
             if (provider != null) {
-                if (log.isLoggable(Level.FINE)) {
+                if (log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("### Asking FTP " + provider + " for component after " + aComponent);
                 }
 
@@ -336,7 +336,7 @@
                 // Null result means that we overstepped the limit of the FTP's cycle.
                 // In that case we must quit the cycle, otherwise return the component found.
                 if (beforeComp != null) {
-                    if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + beforeComp);
+                    if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + beforeComp);
                     return beforeComp;
                 }
                 aComponent = provider;
@@ -349,12 +349,12 @@
 
             List<Component> cycle = getFocusTraversalCycle(aContainer);
 
-            if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
 
             int index = getComponentIndex(cycle, aComponent);
 
             if (index < 0) {
-                if (log.isLoggable(Level.FINE)) {
+                if (log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
                 }
                 return getLastComponent(aContainer);
@@ -401,7 +401,7 @@
     public Component getFirstComponent(Container aContainer) {
         List<Component> cycle;
 
-        if (log.isLoggable(Level.FINE)) log.fine("### Getting first component in " + aContainer);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting first component in " + aContainer);
         if (aContainer == null) {
             throw new IllegalArgumentException("aContainer cannot be null");
 
@@ -420,10 +420,10 @@
             }
 
             if (cycle.size() == 0) {
-                if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
                 return null;
             }
-            if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
 
             for (Component comp : cycle) {
                 if (accept(comp)) {
@@ -451,7 +451,7 @@
      */
     public Component getLastComponent(Container aContainer) {
         List<Component> cycle;
-        if (log.isLoggable(Level.FINE)) log.fine("### Getting last component in " + aContainer);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting last component in " + aContainer);
 
         if (aContainer == null) {
             throw new IllegalArgumentException("aContainer cannot be null");
@@ -470,10 +470,10 @@
             }
 
             if (cycle.size() == 0) {
-                if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
                 return null;
             }
-            if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
 
             for (int i= cycle.size() - 1; i >= 0; i--) {
                 Component comp = cycle.get(i);
--- a/jdk/src/share/classes/java/awt/Cursor.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Cursor.java	Wed Oct 07 14:15:01 2009 -0700
@@ -36,9 +36,9 @@
 import java.util.Properties;
 import java.util.StringTokenizer;
 
-import java.util.logging.*;
+import java.security.AccessController;
 
-import java.security.AccessController;
+import sun.util.logging.PlatformLogger;
 
 /**
  * A class to encapsulate the bitmap representation of the mouse cursor.
@@ -191,7 +191,7 @@
      */
     private static final long serialVersionUID = 8028237497568985504L;
 
-    private static final Logger log = Logger.getLogger("java.awt.Cursor");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Cursor");
 
     static {
         /* ensure that the necessary native libraries are loaded */
@@ -298,8 +298,8 @@
             String key    = prefix + DotFileSuffix;
 
             if (!systemCustomCursorProperties.containsKey(key)) {
-                if (log.isLoggable(Level.FINER)) {
-                    log.log(Level.FINER, "Cursor.getSystemCustomCursor(" + name + ") returned null");
+                if (log.isLoggable(PlatformLogger.FINER)) {
+                    log.finer("Cursor.getSystemCustomCursor(" + name + ") returned null");
                 }
                 return null;
             }
@@ -353,8 +353,8 @@
             }
 
             if (cursor == null) {
-                if (log.isLoggable(Level.FINER)) {
-                    log.log(Level.FINER, "Cursor.getSystemCustomCursor(" + name + ") returned null");
+                if (log.isLoggable(PlatformLogger.FINER)) {
+                    log.finer("Cursor.getSystemCustomCursor(" + name + ") returned null");
                 }
             } else {
                 systemCustomCursors.put(name, cursor);
--- a/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -35,8 +35,7 @@
 import java.util.ListIterator;
 import java.util.Set;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.AppContext;
 import sun.awt.SunToolkit;
@@ -62,7 +61,7 @@
  * @since 1.4
  */
 public class DefaultKeyboardFocusManager extends KeyboardFocusManager {
-    private static final Logger focusLog = Logger.getLogger("java.awt.focus.DefaultKeyboardFocusManager");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("java.awt.focus.DefaultKeyboardFocusManager");
 
     // null weak references to not create too many objects
     private static final WeakReference<Window> NULL_WINDOW_WR =
@@ -275,7 +274,7 @@
      *         <code>false</code> otherwise
      */
     public boolean dispatchEvent(AWTEvent e) {
-        if (focusLog.isLoggable(Level.FINE) && (e instanceof WindowEvent || e instanceof FocusEvent)) focusLog.fine("" + e);
+        if (focusLog.isLoggable(PlatformLogger.FINE) && (e instanceof WindowEvent || e instanceof FocusEvent)) focusLog.fine("" + e);
         switch (e.getID()) {
             case WindowEvent.WINDOW_GAINED_FOCUS: {
                 WindowEvent we = (WindowEvent)e;
@@ -378,9 +377,9 @@
 
                     // The component which last has the focus when this window was focused
                     // should receive focus first
-                    if (focusLog.isLoggable(Level.FINER)) {
-                        focusLog.log(Level.FINER, "tempLost {0}, toFocus {1}",
-                                     new Object[]{tempLost, toFocus});
+                    if (focusLog.isLoggable(PlatformLogger.FINER)) {
+                        focusLog.finer("tempLost {0}, toFocus {1}",
+                                       tempLost, toFocus);
                     }
                     if (tempLost != null) {
                         tempLost.requestFocusInWindow(CausedFocusEvent.Cause.ACTIVATION);
@@ -447,8 +446,8 @@
                 Component oldFocusOwner = getGlobalFocusOwner();
                 Component newFocusOwner = fe.getComponent();
                 if (oldFocusOwner == newFocusOwner) {
-                    if (focusLog.isLoggable(Level.FINE)) {
-                        focusLog.log(Level.FINE, "Skipping {0} because focus owner is the same", new Object[] {e});
+                    if (focusLog.isLoggable(PlatformLogger.FINE)) {
+                        focusLog.fine("Skipping {0} because focus owner is the same", e);
                     }
                     // We can't just drop the event - there could be
                     // type-ahead markers associated with it.
@@ -565,16 +564,16 @@
                 FocusEvent fe = (FocusEvent)e;
                 Component currentFocusOwner = getGlobalFocusOwner();
                 if (currentFocusOwner == null) {
-                    if (focusLog.isLoggable(Level.FINE)) focusLog.log(Level.FINE, "Skipping {0} because focus owner is null",
-                                                                        new Object[] {e});
+                    if (focusLog.isLoggable(PlatformLogger.FINE))
+                        focusLog.fine("Skipping {0} because focus owner is null", e);
                     break;
                 }
                 // Ignore cases where a Component loses focus to itself.
                 // If we make a mistake because of retargeting, then the
                 // FOCUS_GAINED handler will correct it.
                 if (currentFocusOwner == fe.getOppositeComponent()) {
-                    if (focusLog.isLoggable(Level.FINE)) focusLog.log(Level.FINE, "Skipping {0} because current focus owner is equal to opposite",
-                                                                      new Object[] {e});
+                    if (focusLog.isLoggable(PlatformLogger.FINE))
+                        focusLog.fine("Skipping {0} because current focus owner is equal to opposite", e);
                     break;
                 }
 
@@ -642,9 +641,10 @@
                 Window losingFocusWindow = we.getWindow();
                 Window activeWindow = getGlobalActiveWindow();
                 Window oppositeWindow = we.getOppositeWindow();
-                if (focusLog.isLoggable(Level.FINE)) focusLog.log(Level.FINE, "Active {0}, Current focused {1}, losing focus {2} opposite {3}",
-                                                                  new Object[] {activeWindow, currentFocusedWindow,
-                                                                                losingFocusWindow, oppositeWindow});
+                if (focusLog.isLoggable(PlatformLogger.FINE))
+                    focusLog.fine("Active {0}, Current focused {1}, losing focus {2} opposite {3}",
+                                  activeWindow, currentFocusedWindow,
+                                  losingFocusWindow, oppositeWindow);
                 if (currentFocusedWindow == null) {
                     break;
                 }
@@ -828,7 +828,7 @@
                         }
                     }
                     if (ke != null) {
-                        focusLog.log(Level.FINER, "Pumping approved event {0}", new Object[] {ke});
+                        focusLog.finer("Pumping approved event {0}", ke);
                         enqueuedKeyEvents.removeFirst();
                     }
                 }
@@ -843,14 +843,14 @@
      * Dumps the list of type-ahead queue markers to stderr
      */
     void dumpMarkers() {
-        if (focusLog.isLoggable(Level.FINEST)) {
-            focusLog.log(Level.FINEST, ">>> Markers dump, time: {0}", System.currentTimeMillis());
+        if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+            focusLog.finest(">>> Markers dump, time: {0}", System.currentTimeMillis());
             synchronized (this) {
                 if (typeAheadMarkers.size() != 0) {
                     Iterator iter = typeAheadMarkers.iterator();
                     while (iter.hasNext()) {
                         TypeAheadMarker marker = (TypeAheadMarker)iter.next();
-                        focusLog.log(Level.FINEST, "    {0}", marker);
+                        focusLog.finest("    {0}", marker);
                     }
                 }
             }
@@ -878,7 +878,7 @@
                         // The fix is rolled out.
 
                         if (ke.getWhen() > marker.after) {
-                            focusLog.log(Level.FINER, "Storing event {0} because of marker {1}", new Object[] {ke, marker});
+                            focusLog.finer("Storing event {0} because of marker {1}", ke, marker);
                             enqueuedKeyEvents.addLast(ke);
                             return true;
                         }
@@ -890,7 +890,7 @@
             }
 
             case FocusEvent.FOCUS_GAINED:
-                focusLog.log(Level.FINEST, "Markers before FOCUS_GAINED on {0}", new Object[] {target});
+                focusLog.finest("Markers before FOCUS_GAINED on {0}", target);
                 dumpMarkers();
                 // Search the marker list for the first marker tied to
                 // the Component which just gained focus. Then remove
@@ -919,10 +919,10 @@
                         }
                     } else {
                         // Exception condition - event without marker
-                        focusLog.log(Level.FINER, "Event without marker {0}", e);
+                        focusLog.finer("Event without marker {0}", e);
                     }
                 }
-                focusLog.log(Level.FINEST, "Markers after FOCUS_GAINED");
+                focusLog.finest("Markers after FOCUS_GAINED");
                 dumpMarkers();
 
                 redispatchEvent(target, e);
@@ -1159,8 +1159,8 @@
             return;
         }
 
-        focusLog.log(Level.FINER, "Enqueue at {0} for {1}",
-                     new Object[] {after, untilFocused});
+        focusLog.finer("Enqueue at {0} for {1}",
+                       after, untilFocused);
 
         int insertionIndex = 0,
             i = typeAheadMarkers.size();
@@ -1199,8 +1199,8 @@
             return;
         }
 
-        focusLog.log(Level.FINER, "Dequeue at {0} for {1}",
-                     new Object[] {after, untilFocused});
+        focusLog.finer("Dequeue at {0} for {1}",
+                       after, untilFocused);
 
         TypeAheadMarker marker;
         ListIterator iter = typeAheadMarkers.listIterator
--- a/jdk/src/share/classes/java/awt/EventDispatchThread.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/EventDispatchThread.java	Wed Oct 07 14:15:01 2009 -0700
@@ -36,7 +36,7 @@
 import sun.awt.SunToolkit;
 
 import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.dnd.SunDragSourceContextPeer;
 import sun.awt.EventQueueDelegate;
@@ -61,7 +61,7 @@
  * @since 1.1
  */
 class EventDispatchThread extends Thread {
-    private static final Logger eventLog = Logger.getLogger("java.awt.event.EventDispatchThread");
+    private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventDispatchThread");
 
     private EventQueue theQueue;
     private boolean doDispatch = true;
@@ -275,8 +275,8 @@
             }
             while (eventOK == false);
 
-            if (eventLog.isLoggable(Level.FINEST)) {
-                eventLog.log(Level.FINEST, "Dispatching: " + event);
+            if (eventLog.isLoggable(PlatformLogger.FINEST)) {
+                eventLog.finest("Dispatching: " + event);
             }
 
             Object handle = null;
@@ -308,8 +308,8 @@
     }
 
     private void processException(Throwable e) {
-        if (eventLog.isLoggable(Level.FINE)) {
-            eventLog.log(Level.FINE, "Processing exception: " + e);
+        if (eventLog.isLoggable(PlatformLogger.FINE)) {
+            eventLog.fine("Processing exception: " + e);
         }
         getUncaughtExceptionHandler().uncaughtException(this, e);
         // don't rethrow the exception to avoid EDT recreation
--- a/jdk/src/share/classes/java/awt/EventQueue.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/EventQueue.java	Wed Oct 07 14:15:01 2009 -0700
@@ -36,7 +36,7 @@
 import java.security.PrivilegedAction;
 
 import java.util.EmptyStackException;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.AppContext;
 import sun.awt.AWTAutoShutdown;
@@ -153,7 +153,7 @@
 
     private final String name = "AWT-EventQueue-" + nextThreadNum();
 
-    private static final Logger eventLog = Logger.getLogger("java.awt.event.EventQueue");
+    private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue");
 
     static {
         AWTAccessor.setEventQueueAccessor(
@@ -707,8 +707,8 @@
      * @since           1.2
      */
     public synchronized void push(EventQueue newEventQueue) {
-        if (eventLog.isLoggable(Level.FINE)) {
-            eventLog.log(Level.FINE, "EventQueue.push(" + newEventQueue + ")");
+        if (eventLog.isLoggable(PlatformLogger.FINE)) {
+            eventLog.fine("EventQueue.push(" + newEventQueue + ")");
         }
 
         if (nextQueue != null) {
@@ -722,8 +722,8 @@
                 try {
                     newEventQueue.postEventPrivate(getNextEvent());
                 } catch (InterruptedException ie) {
-                    if (eventLog.isLoggable(Level.FINE)) {
-                        eventLog.log(Level.FINE, "Interrupted push", ie);
+                    if (eventLog.isLoggable(PlatformLogger.FINE)) {
+                        eventLog.fine("Interrupted push", ie);
                     }
                 }
             }
@@ -766,8 +766,8 @@
      * @since           1.2
      */
     protected void pop() throws EmptyStackException {
-        if (eventLog.isLoggable(Level.FINE)) {
-            eventLog.log(Level.FINE, "EventQueue.pop(" + this + ")");
+        if (eventLog.isLoggable(PlatformLogger.FINE)) {
+            eventLog.fine("EventQueue.pop(" + this + ")");
         }
 
         // To prevent deadlock, we lock on the previous EventQueue before
@@ -790,8 +790,8 @@
                 try {
                     previousQueue.postEventPrivate(getNextEvent());
                 } catch (InterruptedException ie) {
-                    if (eventLog.isLoggable(Level.FINE)) {
-                        eventLog.log(Level.FINE, "Interrupted pop", ie);
+                    if (eventLog.isLoggable(PlatformLogger.FINE)) {
+                        eventLog.fine("Interrupted pop", ie);
                     }
                 }
             }
--- a/jdk/src/share/classes/java/awt/Font.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Font.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,7 +30,6 @@
 import java.awt.font.LineMetrics;
 import java.awt.font.TextAttribute;
 import java.awt.font.TextLayout;
-import java.awt.font.TransformAttribute;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
@@ -42,21 +41,21 @@
 import java.text.AttributedCharacterIterator.Attribute;
 import java.text.CharacterIterator;
 import java.text.StringCharacterIterator;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Locale;
 import java.util.Map;
 import sun.font.StandardGlyphVector;
-import sun.java2d.FontSupport;
 
 import sun.font.AttributeMap;
 import sun.font.AttributeValues;
-import sun.font.EAttribute;
 import sun.font.CompositeFont;
 import sun.font.CreatedFontTracker;
 import sun.font.Font2D;
 import sun.font.Font2DHandle;
+import sun.font.FontAccess;
 import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
 import sun.font.GlyphLayout;
 import sun.font.FontLineMetrics;
 import sun.font.CoreMetrics;
@@ -223,10 +222,29 @@
  */
 public class Font implements java.io.Serializable
 {
+    private static class FontAccessImpl extends FontAccess {
+        public Font2D getFont2D(Font font) {
+            return font.getFont2D();
+        }
+
+        public void setFont2D(Font font, Font2DHandle handle) {
+            font.font2DHandle = handle;
+        }
+
+        public void setCreatedFont(Font font) {
+            font.createdFont = true;
+        }
+
+        public boolean isCreatedFont(Font font) {
+            return font.createdFont;
+        }
+    }
+
     static {
         /* ensure that the necessary native libraries are loaded */
         Toolkit.loadLibraries();
         initIDs();
+        FontAccess.setFontAccess(new FontAccessImpl());
     }
 
     /**
@@ -464,16 +482,17 @@
     }
 
     private Font2D getFont2D() {
-        if (FontManager.usingPerAppContextComposites &&
+        FontManager fm = FontManagerFactory.getInstance();
+        if (fm.usingPerAppContextComposites() &&
             font2DHandle != null &&
             font2DHandle.font2D instanceof CompositeFont &&
             ((CompositeFont)(font2DHandle.font2D)).isStdComposite()) {
-            return FontManager.findFont2D(name, style,
+            return fm.findFont2D(name, style,
                                           FontManager.LOGICAL_FALLBACK);
         } else if (font2DHandle == null) {
             font2DHandle =
-                FontManager.findFont2D(name, style,
-                                       FontManager.LOGICAL_FALLBACK).handle;
+                fm.findFont2D(name, style,
+                              FontManager.LOGICAL_FALLBACK).handle;
         }
         /* Do not cache the de-referenced font2D. It must be explicitly
          * de-referenced to pick up a valid font in the event that the
@@ -570,8 +589,8 @@
         if (created) {
             if (handle.font2D instanceof CompositeFont &&
                 handle.font2D.getStyle() != style) {
-                this.font2DHandle =
-                    FontManager.getNewComposite(null, style, handle);
+                FontManager fm = FontManagerFactory.getInstance();
+                this.font2DHandle = fm.getNewComposite(null, style, handle);
             } else {
                 this.font2DHandle = handle;
             }
@@ -586,9 +605,9 @@
         /* Font2D instances created by this method track their font file
          * so that when the Font2D is GC'd it can also remove the file.
          */
-        this.font2DHandle =
-            FontManager.createFont2D(fontFile, fontFormat,
-                                     isCopy, tracker).handle;
+        FontManager fm = FontManagerFactory.getInstance();
+        this.font2DHandle = fm.createFont2D(fontFile, fontFormat, isCopy,
+                                            tracker).handle;
         this.name = this.font2DHandle.font2D.getFontName(Locale.getDefault());
         this.style = Font.PLAIN;
         this.size = 1;
@@ -640,8 +659,9 @@
             }
             if (handle.font2D instanceof CompositeFont) {
                 if (newStyle != -1 || newName != null) {
+                    FontManager fm = FontManagerFactory.getInstance();
                     this.font2DHandle =
-                        FontManager.getNewComposite(newName, newStyle, handle);
+                        fm.getNewComposite(newName, newStyle, handle);
                 }
             } else if (newName != null) {
                 this.createdFont = false;
@@ -852,7 +872,6 @@
             throw new IllegalArgumentException ("font format not recognized");
         }
         boolean copiedFontData = false;
-
         try {
             final File tFile = AccessController.doPrivileged(
                 new PrivilegedExceptionAction<File>() {
@@ -2320,7 +2339,7 @@
             (values.getKerning() == 0 && values.getLigatures() == 0 &&
               values.getBaselineTransform() == null);
         if (simple) {
-            simple = !FontManager.isComplexText(chars, beginIndex, limit);
+            simple = ! FontUtilities.isComplexText(chars, beginIndex, limit);
         }
 
         if (simple) {
--- a/jdk/src/share/classes/java/awt/GraphicsEnvironment.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,9 +27,14 @@
 package java.awt;
 
 import java.awt.image.BufferedImage;
+import java.security.AccessController;
 import java.util.Locale;
+
+import sun.font.FontManager;
+import sun.font.FontManagerFactory;
 import sun.java2d.HeadlessGraphicsEnvironment;
 import sun.java2d.SunGraphicsEnvironment;
+import sun.security.action.GetPropertyAction;
 
 /**
  *
@@ -73,35 +78,53 @@
      */
     public static synchronized GraphicsEnvironment getLocalGraphicsEnvironment() {
         if (localEnv == null) {
-            String nm = (String) java.security.AccessController.doPrivileged
-                (new sun.security.action.GetPropertyAction
-                 ("java.awt.graphicsenv", null));
-
-            try {
-//                      long t0 = System.currentTimeMillis();
-                ClassLoader cl = ClassLoader.getSystemClassLoader();
-                Class geCls = Class.forName(nm, true, cl);
-                localEnv = (GraphicsEnvironment)geCls.newInstance();
-//              long t1 = System.currentTimeMillis();
-//              System.out.println("GE creation took " + (t1-t0)+ "ms.");
-                if (isHeadless()) {
-                    localEnv = new HeadlessGraphicsEnvironment(localEnv);
-                }
-            } catch (ClassNotFoundException e) {
-                throw new Error("Could not find class: "+nm);
-            } catch (InstantiationException e) {
-                throw new Error("Could not instantiate Graphics Environment: "
-                                + nm);
-            } catch (IllegalAccessException e) {
-                throw new Error ("Could not access Graphics Environment: "
-                                 + nm);
-            }
+            localEnv = createGE();
         }
 
         return localEnv;
     }
 
     /**
+     * Creates and returns the GraphicsEnvironment, according to the
+     * system property 'java.awt.graphicsenv'.
+     *
+     * @return the graphics environment
+     */
+    private static GraphicsEnvironment createGE() {
+        GraphicsEnvironment ge;
+        String nm = AccessController.doPrivileged(new GetPropertyAction("java.awt.graphicsenv", null));
+        try {
+//          long t0 = System.currentTimeMillis();
+            Class geCls;
+            try {
+                // First we try if the bootclassloader finds the requested
+                // class. This way we can avoid to run in a privileged block.
+                geCls = Class.forName(nm);
+            } catch (ClassNotFoundException ex) {
+                // If the bootclassloader fails, we try again with the
+                // application classloader.
+                ClassLoader cl = ClassLoader.getSystemClassLoader();
+                geCls = Class.forName(nm, true, cl);
+            }
+            ge = (GraphicsEnvironment) geCls.newInstance();
+//          long t1 = System.currentTimeMillis();
+//          System.out.println("GE creation took " + (t1-t0)+ "ms.");
+            if (isHeadless()) {
+                localEnv = new HeadlessGraphicsEnvironment(localEnv);
+            }
+        } catch (ClassNotFoundException e) {
+            throw new Error("Could not find class: "+nm);
+        } catch (InstantiationException e) {
+            throw new Error("Could not instantiate Graphics Environment: "
+                            + nm);
+        } catch (IllegalAccessException e) {
+            throw new Error ("Could not access Graphics Environment: "
+                             + nm);
+        }
+        return ge;
+    }
+
+    /**
      * Tests whether or not a display, keyboard, and mouse can be
      * supported in this environment.  If this method returns true,
      * a HeadlessException is thrown from areas of the Toolkit
@@ -333,7 +356,8 @@
         if (font == null) {
             throw new NullPointerException("font cannot be null.");
         }
-        return sun.font.FontManager.registerFont(font);
+        FontManager fm = FontManagerFactory.getInstance();
+        return fm.registerFont(font);
     }
 
     /**
@@ -357,10 +381,8 @@
      * @since 1.5
      */
     public void preferLocaleFonts() {
-        if (!(this instanceof SunGraphicsEnvironment)) {
-            return;
-        }
-        sun.font.FontManager.preferLocaleFonts();
+        FontManager fm = FontManagerFactory.getInstance();
+        fm.preferLocaleFonts();
     }
 
     /**
@@ -380,10 +402,8 @@
      * @since 1.5
      */
     public void preferProportionalFonts() {
-        if (!(this instanceof SunGraphicsEnvironment)) {
-            return;
-        }
-        sun.font.FontManager.preferProportionalFonts();
+        FontManager fm = FontManagerFactory.getInstance();
+        fm.preferProportionalFonts();
     }
 
     /**
--- a/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -53,8 +53,7 @@
 import java.util.StringTokenizer;
 import java.util.WeakHashMap;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.AppContext;
 import sun.awt.HeadlessToolkit;
@@ -111,7 +110,7 @@
 {
 
     // Shared focus engine logger
-    private static final Logger focusLog = Logger.getLogger("java.awt.focus.KeyboardFocusManager");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("java.awt.focus.KeyboardFocusManager");
 
     static {
         /* ensure that the necessary native libraries are loaded */
@@ -154,7 +153,7 @@
      */
     private static native void initIDs();
 
-    private static final Logger log = Logger.getLogger("java.awt.KeyboardFocusManager");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.KeyboardFocusManager");
 
     /**
      * The identifier for the Forward focus traversal keys.
@@ -504,8 +503,8 @@
             if (this == getCurrentKeyboardFocusManager()) {
                 return focusOwner;
             } else {
-                if (focusLog.isLoggable(Level.FINER)) {
-                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(PlatformLogger.FINER)) {
+                    focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
                 }
                 throw new SecurityException(notPrivileged);
             }
@@ -609,9 +608,9 @@
     }
 
     void setNativeFocusOwner(Component comp) {
-        if (focusLog.isLoggable(Level.FINEST)) {
-            focusLog.log(Level.FINEST, "Calling peer {0} setCurrentFocusOwner for {1}",
-                         new Object[] {peer, comp});
+        if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+            focusLog.finest("Calling peer {0} setCurrentFocusOwner for {1}",
+                            peer, comp);
         }
         peer.setCurrentFocusOwner(comp);
     }
@@ -673,8 +672,8 @@
             if (this == getCurrentKeyboardFocusManager()) {
                 return permanentFocusOwner;
             } else {
-                if (focusLog.isLoggable(Level.FINER)) {
-                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(PlatformLogger.FINER)) {
+                    focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
                 }
                 throw new SecurityException(notPrivileged);
             }
@@ -781,8 +780,8 @@
             if (this == getCurrentKeyboardFocusManager()) {
                return focusedWindow;
             } else {
-                if (focusLog.isLoggable(Level.FINER)) {
-                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(PlatformLogger.FINER)) {
+                    focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
                 }
                 throw new SecurityException(notPrivileged);
             }
@@ -885,8 +884,8 @@
             if (this == getCurrentKeyboardFocusManager()) {
                return activeWindow;
             } else {
-                if (focusLog.isLoggable(Level.FINER)) {
-                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(PlatformLogger.FINER)) {
+                    focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
                 }
                 throw new SecurityException(notPrivileged);
             }
@@ -919,8 +918,8 @@
         Window oldActiveWindow;
         synchronized (KeyboardFocusManager.class) {
             oldActiveWindow = getActiveWindow();
-            if (focusLog.isLoggable(Level.FINER)) {
-                focusLog.log(Level.FINER, "Setting global active window to " + activeWindow + ", old active " + oldActiveWindow);
+            if (focusLog.isLoggable(PlatformLogger.FINER)) {
+                focusLog.finer("Setting global active window to " + activeWindow + ", old active " + oldActiveWindow);
             }
 
             try {
@@ -1215,8 +1214,8 @@
             if (this == getCurrentKeyboardFocusManager()) {
                 return currentFocusCycleRoot;
             } else {
-                if (focusLog.isLoggable(Level.FINER)) {
-                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(PlatformLogger.FINER)) {
+                    focusLog.finer("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
                 }
                 throw new SecurityException(notPrivileged);
             }
@@ -2149,9 +2148,9 @@
 
         HeavyweightFocusRequest(Component heavyweight, Component descendant,
                                 boolean temporary, CausedFocusEvent.Cause cause) {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 if (heavyweight == null) {
-                    log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+                    log.fine("Assertion (heavyweight != null) failed");
                 }
             }
 
@@ -2161,12 +2160,12 @@
         }
         boolean addLightweightRequest(Component descendant,
                                       boolean temporary, CausedFocusEvent.Cause cause) {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 if (this == HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) {
-                    log.log(Level.FINE, "Assertion (this != HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) failed");
+                    log.fine("Assertion (this != HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) failed");
                 }
                 if (descendant == null) {
-                    log.log(Level.FINE, "Assertion (descendant != null) failed");
+                    log.fine("Assertion (descendant != null) failed");
                 }
             }
 
@@ -2339,12 +2338,12 @@
         (Component heavyweight, Component descendant, boolean temporary,
          boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause)
     {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             if (heavyweight == null) {
-                log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+                log.fine("Assertion (heavyweight != null) failed");
             }
             if (time == 0) {
-                log.log(Level.FINE, "Assertion (time != 0) failed");
+                log.fine("Assertion (time != 0) failed");
             }
         }
 
@@ -2361,31 +2360,31 @@
         Component currentFocusOwner = thisManager.getGlobalFocusOwner();
         Component nativeFocusOwner = thisManager.getNativeFocusOwner();
         Window nativeFocusedWindow = thisManager.getNativeFocusedWindow();
-        if (focusLog.isLoggable(Level.FINER)) {
-            focusLog.log(Level.FINER, "SNFH for {0} in {1}",
-                         new Object[] {descendant, heavyweight});
+        if (focusLog.isLoggable(PlatformLogger.FINER)) {
+            focusLog.finer("SNFH for {0} in {1}",
+                           descendant, heavyweight);
         }
-        if (focusLog.isLoggable(Level.FINEST)) {
-            focusLog.log(Level.FINEST, "0. Current focus owner {0}",
-                         currentFocusOwner);
-            focusLog.log(Level.FINEST, "0. Native focus owner {0}",
-                         nativeFocusOwner);
-            focusLog.log(Level.FINEST, "0. Native focused window {0}",
-                         nativeFocusedWindow);
+        if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+            focusLog.finest("0. Current focus owner {0}",
+                            currentFocusOwner);
+            focusLog.finest("0. Native focus owner {0}",
+                            nativeFocusOwner);
+            focusLog.finest("0. Native focused window {0}",
+                            nativeFocusedWindow);
         }
         synchronized (heavyweightRequests) {
             HeavyweightFocusRequest hwFocusRequest = getLastHWRequest();
-            if (focusLog.isLoggable(Level.FINEST)) {
-                focusLog.log(Level.FINEST, "Request {0}", hwFocusRequest);
+            if (focusLog.isLoggable(PlatformLogger.FINEST)) {
+                focusLog.finest("Request {0}", hwFocusRequest);
             }
             if (hwFocusRequest == null &&
                 heavyweight == nativeFocusOwner)
             {
                 if (descendant == currentFocusOwner) {
                     // Redundant request.
-                    if (focusLog.isLoggable(Level.FINEST))
-                        focusLog.log(Level.FINEST, "1. SNFH_FAILURE for {0}",
-                                     descendant);
+                    if (focusLog.isLoggable(PlatformLogger.FINEST))
+                        focusLog.finest("1. SNFH_FAILURE for {0}",
+                                        descendant);
                     return SNFH_FAILURE;
                 }
 
@@ -2417,8 +2416,8 @@
                 // SunToolkit.postPriorityEvent(newFocusOwnerEvent);
                 SunToolkit.postEvent(descendant.appContext, newFocusOwnerEvent);
 
-                if (focusLog.isLoggable(Level.FINEST))
-                    focusLog.log(Level.FINEST, "2. SNFH_HANDLED for {0}", descendant);
+                if (focusLog.isLoggable(PlatformLogger.FINEST))
+                    focusLog.finest("2. SNFH_HANDLED for {0}", descendant);
                 return SNFH_SUCCESS_HANDLED;
             } else if (hwFocusRequest != null &&
                        hwFocusRequest.heavyweight == heavyweight) {
@@ -2431,7 +2430,7 @@
                     manager.enqueueKeyEvents(time, descendant);
                 }
 
-                if (focusLog.isLoggable(Level.FINEST))
+                if (focusLog.isLoggable(PlatformLogger.FINEST))
                     focusLog.finest("3. SNFH_HANDLED for lightweight" +
                                     descendant + " in " + heavyweight);
                 return SNFH_SUCCESS_HANDLED;
@@ -2454,7 +2453,7 @@
                                              (hwFocusRequest != null)
                                              ? hwFocusRequest.heavyweight
                                              : nativeFocusedWindow)) {
-                        if (focusLog.isLoggable(Level.FINEST))
+                        if (focusLog.isLoggable(PlatformLogger.FINEST))
                             focusLog.finest("4. SNFH_FAILURE for " + descendant);
                         return SNFH_FAILURE;
                     }
@@ -2464,7 +2463,7 @@
                 heavyweightRequests.add
                     (new HeavyweightFocusRequest(heavyweight, descendant,
                                                  temporary, cause));
-                if (focusLog.isLoggable(Level.FINEST))
+                if (focusLog.isLoggable(PlatformLogger.FINEST))
                     focusLog.finest("5. SNFH_PROCEED for " + descendant);
                 return SNFH_SUCCESS_PROCEED;
             }
@@ -2855,13 +2854,13 @@
         }
 
         KeyboardFocusManager manager = getCurrentKeyboardFocusManager();
-        if (focusLog.isLoggable(Level.FINER)) {
+        if (focusLog.isLoggable(PlatformLogger.FINER)) {
             if (event instanceof FocusEvent || event instanceof WindowEvent) {
-                focusLog.log(Level.FINER, ">>> {0}", new Object[] {event});
+                focusLog.finer(">>> {0}", event);
             }
-            if (focusLog.isLoggable(Level.FINER) && event instanceof KeyEvent) {
-                focusLog.log(Level.FINER, "    focus owner is {0}", new Object[] {manager.getGlobalFocusOwner()});
-                focusLog.log(Level.FINER, ">>> {0}", new Object[] {event});
+            if (focusLog.isLoggable(PlatformLogger.FINER) && event instanceof KeyEvent) {
+                focusLog.finer("    focus owner is {0}", manager.getGlobalFocusOwner());
+                focusLog.finer(">>> {0}", event);
             }
         }
 
@@ -2945,9 +2944,9 @@
         }
     }
     static void removeLastFocusRequest(Component heavyweight) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             if (heavyweight == null) {
-                log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+                log.fine("Assertion (heavyweight != null) failed");
             }
         }
 
--- a/jdk/src/share/classes/java/awt/SplashScreen.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/SplashScreen.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,8 +29,7 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.io.File;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
 import sun.awt.image.SunWritableRaster;
 
 /**
@@ -204,8 +203,8 @@
                     }
                 }
                 catch(java.net.MalformedURLException e) {
-                    if (log.isLoggable(Level.FINE)) {
-                        log.log(Level.FINE, "MalformedURLException caught in the getImageURL() method", e);
+                    if (log.isLoggable(PlatformLogger.FINE)) {
+                        log.fine("MalformedURLException caught in the getImageURL() method", e);
                     }
                 }
             }
@@ -355,7 +354,7 @@
      */
     private static SplashScreen theInstance = null;
 
-    private static final Logger log = Logger.getLogger("java.awt.SplashScreen");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.SplashScreen");
 
     private native static void _update(long splashPtr, int[] data, int x, int y, int width, int height, int scanlineStride);
     private native static boolean _isVisible(long splashPtr);
--- a/jdk/src/share/classes/java/awt/Toolkit.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Toolkit.java	Wed Oct 07 14:15:01 2009 -0700
@@ -48,7 +48,7 @@
 import java.io.FileInputStream;
 
 import java.util.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
@@ -1956,7 +1956,7 @@
      */
     public abstract boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType modalExclusionType);
 
-    private static final Logger log = Logger.getLogger("java.awt.Toolkit");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Toolkit");
 
     private static final int LONG_BITS = 64;
     private int[] calls = new int[LONG_BITS];
@@ -2123,9 +2123,9 @@
         }
 
     synchronized int countAWTEventListeners(long eventMask) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             if (eventMask == 0) {
-                log.log(Level.FINE, "Assertion (eventMask != 0) failed");
+                log.fine("Assertion (eventMask != 0) failed");
             }
         }
 
--- a/jdk/src/share/classes/java/awt/Window.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/Window.java	Wed Oct 07 14:15:01 2009 -0700
@@ -48,8 +48,6 @@
 import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.concurrent.atomic.AtomicBoolean;
 import javax.accessibility.*;
 import sun.awt.AWTAccessor;
@@ -61,6 +59,7 @@
 import sun.java2d.pipe.Region;
 import sun.security.action.GetPropertyAction;
 import sun.security.util.SecurityConstants;
+import sun.util.logging.PlatformLogger;
 
 /**
  * A <code>Window</code> object is a top-level window with no borders and no
@@ -324,7 +323,7 @@
      */
     private static final long serialVersionUID = 4497834738069338734L;
 
-    private static final Logger log = Logger.getLogger("java.awt.Window");
+    private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Window");
 
     private static final boolean locationByPlatformProp;
 
@@ -2985,7 +2984,7 @@
         }
         synchronized (getTreeLock()) {
             super.setGraphicsConfiguration(gc);
-            if (log.isLoggable(Level.FINER)) {
+            if (log.isLoggable(PlatformLogger.FINER)) {
                 log.finer("+ Window.setGraphicsConfiguration(): new GC is \n+ " + getGraphicsConfiguration_NoClientCode() + "\n+ this is " + this);
             }
         }
--- a/jdk/src/share/classes/java/awt/event/InputEvent.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/java/awt/event/InputEvent.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,8 +29,7 @@
 import java.awt.Component;
 import java.awt.GraphicsEnvironment;
 import java.awt.Toolkit;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
 import java.util.Arrays;
 
 /**
@@ -55,7 +54,7 @@
  * @since 1.1
  */
 public abstract class InputEvent extends ComponentEvent {
-    private static final Logger log = Logger.getLogger("java.awt.event.InputEvent");
+    private static final PlatformLogger logger = PlatformLogger.getLogger("java.awt.event.InputEvent");
 
     /**
      * The Shift key modifier constant.
@@ -344,8 +343,8 @@
                     sm.checkSystemClipboardAccess();
                     b = true;
                 } catch (SecurityException se) {
-                    if (log.isLoggable(Level.FINE)) {
-                        log.log(Level.FINE, "InputEvent.canAccessSystemClipboard() got SecurityException ", se);
+                    if (logger.isLoggable(PlatformLogger.FINE)) {
+                        logger.fine("InputEvent.canAccessSystemClipboard() got SecurityException ", se);
                     }
                 }
             } else {
--- a/jdk/src/share/classes/javax/swing/BufferStrategyPaintManager.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/BufferStrategyPaintManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -32,7 +32,6 @@
 import java.lang.ref.WeakReference;
 import java.security.AccessController;
 import java.util.*;
-import java.util.logging.*;
 
 import com.sun.java.swing.SwingUtilities3;
 
@@ -41,6 +40,7 @@
 import sun.security.action.GetPropertyAction;
 import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
 import sun.awt.SunToolkit;
+import sun.util.logging.PlatformLogger;
 
 /**
  * A PaintManager implementation that uses a BufferStrategy for
@@ -78,7 +78,7 @@
     private static Method COMPONENT_CREATE_BUFFER_STRATEGY_METHOD;
     private static Method COMPONENT_GET_BUFFER_STRATEGY_METHOD;
 
-    private static final Logger LOGGER = Logger.getLogger(
+    private static final PlatformLogger LOGGER = PlatformLogger.getLogger(
                            "javax.swing.BufferStrategyPaintManager");
 
     /**
@@ -222,9 +222,9 @@
     }
 
     private void dispose(java.util.List<BufferInfo> bufferInfos) {
-        if (LOGGER.isLoggable(Level.FINER)) {
-            LOGGER.log(Level.FINER, "BufferStrategyPaintManager disposed",
-                       new RuntimeException());
+        if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+            LOGGER.finer("BufferStrategyPaintManager disposed",
+                         new RuntimeException());
         }
         if (bufferInfos != null) {
             for (BufferInfo bufferInfo : bufferInfos) {
@@ -305,7 +305,7 @@
             }
         }
         // Invalid root, do what Swing has always done.
-        if (LOGGER.isLoggable(Level.FINER)) {
+        if (LOGGER.isLoggable(PlatformLogger.FINER)) {
             LOGGER.finer("prepare failed");
         }
         return super.paint(paintingComponent, bufferComponent, g, x, y, w, h);
@@ -335,7 +335,7 @@
             }
             accumulate(x + xOffset + deltaX, y + yOffset + deltaY, w, h);
         } else {
-            if (LOGGER.isLoggable(Level.FINER)) {
+            if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                 LOGGER.finer("copyArea: prepare failed or not in sync");
             }
             // Prepare failed, or not in sync. By calling super.copyArea
@@ -363,7 +363,7 @@
                 }
             }
         }
-        if (LOGGER.isLoggable(Level.FINEST)) {
+        if (LOGGER.isLoggable(PlatformLogger.FINEST)) {
             LOGGER.finest("beginPaint");
         }
         // Reset the area that needs to be painted.
@@ -371,7 +371,7 @@
     }
 
     public void endPaint() {
-        if (LOGGER.isLoggable(Level.FINEST)) {
+        if (LOGGER.isLoggable(PlatformLogger.FINEST)) {
             LOGGER.finest("endPaint: region " + accumulatedX + " " +
                        accumulatedY + " " +  accumulatedMaxX + " " +
                        accumulatedMaxY);
@@ -420,7 +420,7 @@
                 contentsLost = bufferStrategy.contentsLost();
             }
             if (contentsLost) {
-                if (LOGGER.isLoggable(Level.FINER)) {
+                if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                     LOGGER.finer("endPaint: contents lost");
                 }
                 // Shown region was bogus, mark buffer as out of sync.
@@ -514,7 +514,7 @@
                 contentsLost = true;
                 bufferInfo = new BufferInfo(root);
                 bufferInfos.add(bufferInfo);
-                if (LOGGER.isLoggable(Level.FINER)) {
+                if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                     LOGGER.finer("prepare: new BufferInfo: " + root);
                 }
             }
@@ -525,7 +525,7 @@
                     bsg = bufferStrategy.getDrawGraphics();
                     if (bufferStrategy.contentsRestored()) {
                         contentsLost = true;
-                        if (LOGGER.isLoggable(Level.FINER)) {
+                        if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                             LOGGER.finer(
                                 "prepare: contents restored in prepare");
                         }
@@ -539,7 +539,7 @@
                 if (bufferInfo.getContentsLostDuringExpose()) {
                     contentsLost = true;
                     bufferInfo.setContentsLostDuringExpose(false);
-                    if (LOGGER.isLoggable(Level.FINER)) {
+                    if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                         LOGGER.finer("prepare: contents lost on expose");
                     }
                 }
@@ -642,7 +642,7 @@
             if (biRoot == null) {
                 // Window gc'ed
                 bufferInfos.remove(counter);
-                if (LOGGER.isLoggable(Level.FINER)) {
+                if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                     LOGGER.finer("BufferInfo pruned, root null");
                 }
             }
@@ -748,7 +748,7 @@
                 if (bs != null) {
                     weakBS = new WeakReference<BufferStrategy>(bs);
                 }
-                if (LOGGER.isLoggable(Level.FINER)) {
+                if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                     LOGGER.finer("getBufferStrategy: created bs: " + bs);
                 }
             }
@@ -806,7 +806,7 @@
             BufferStrategy bs = null;
             if (SwingUtilities3.isVsyncRequested(root)) {
                 bs = createBufferStrategy(root, true);
-                if (LOGGER.isLoggable(Level.FINER)) {
+                if (LOGGER.isLoggable(PlatformLogger.FINER)) {
                     LOGGER.finer("createBufferStrategy: using vsynced strategy");
                 }
             }
@@ -848,9 +848,9 @@
                                             invoke(root);
                 } catch (InvocationTargetException ite) {
                     // Type is not supported
-                    if (LOGGER.isLoggable(Level.FINER)) {
-                        LOGGER.log(Level.FINER, "createBufferStratety failed",
-                                   ite);
+                    if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+                        LOGGER.finer("createBufferStratety failed",
+                                     ite);
                     }
                 } catch (IllegalArgumentException iae) {
                     assert false;
@@ -864,9 +864,9 @@
                     bs = ((Window)root).getBufferStrategy();
                 } catch (AWTException e) {
                     // Type not supported
-                    if (LOGGER.isLoggable(Level.FINER)) {
-                        LOGGER.log(Level.FINER, "createBufferStratety failed",
-                                   e);
+                    if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+                        LOGGER.finer("createBufferStratety failed",
+                                     e);
                     }
                 }
             }
@@ -878,8 +878,8 @@
          */
         public void dispose() {
             Container root = getRoot();
-            if (LOGGER.isLoggable(Level.FINER)) {
-                LOGGER.log(Level.FINER, "disposed BufferInfo for: " + root);
+            if (LOGGER.isLoggable(PlatformLogger.FINER)) {
+                LOGGER.finer("disposed BufferInfo for: " + root);
             }
             if (root != null) {
                 root.removeComponentListener(this);
--- a/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,7 +29,7 @@
 import java.awt.Window;
 import java.util.*;
 import java.awt.FocusTraversalPolicy;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 /**
  * A FocusTraversalPolicy that determines traversal order by sorting the
@@ -64,7 +64,7 @@
     private Comparator<? super Component> comparator;
     private boolean implicitDownCycleTraversal = true;
 
-    private Logger log = Logger.getLogger("javax.swing.SortingFocusTraversalPolicy");
+    private PlatformLogger log = PlatformLogger.getLogger("javax.swing.SortingFocusTraversalPolicy");
 
     /**
      * Used by getComponentAfter and getComponentBefore for efficiency. In
@@ -115,8 +115,8 @@
         try {
             index = Collections.binarySearch(cycle, aComponent, comparator);
         } catch (ClassCastException e) {
-            if (log.isLoggable(Level.FINE)) {
-                log.log(Level.FINE, "### During the binary search for " + aComponent + " the exception occured: ", e);
+            if (log.isLoggable(PlatformLogger.FINE)) {
+                log.fine("### During the binary search for " + aComponent + " the exception occured: ", e);
             }
             return -1;
         }
@@ -193,7 +193,7 @@
                 if (getImplicitDownCycleTraversal()) {
                     retComp = cont.getFocusTraversalPolicy().getDefaultComponent(cont);
 
-                    if (retComp != null && log.isLoggable(Level.FINE)) {
+                    if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
                         log.fine("### Transfered focus down-cycle to " + retComp +
                                  " in the focus cycle root " + cont);
                     }
@@ -205,7 +205,7 @@
                            cont.getFocusTraversalPolicy().getDefaultComponent(cont) :
                            cont.getFocusTraversalPolicy().getLastComponent(cont));
 
-                if (retComp != null && log.isLoggable(Level.FINE)) {
+                if (retComp != null && log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("### Transfered focus to " + retComp + " in the FTP provider " + cont);
                 }
             }
@@ -236,7 +236,7 @@
      *         aComponent is null
      */
     public Component getComponentAfter(Container aContainer, Component aComponent) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine("### Searching in " + aContainer + " for component after " + aComponent);
         }
 
@@ -260,7 +260,7 @@
         // See if the component is inside of policy provider.
         Container provider = getTopmostProvider(aContainer, aComponent);
         if (provider != null) {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 log.fine("### Asking FTP " + provider + " for component after " + aComponent);
             }
 
@@ -271,7 +271,7 @@
             // Null result means that we overstepped the limit of the FTP's cycle.
             // In that case we must quit the cycle, otherwise return the component found.
             if (afterComp != null) {
-                if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + afterComp);
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + afterComp);
                 return afterComp;
             }
             aComponent = provider;
@@ -279,12 +279,12 @@
 
         List<Component> cycle = getFocusTraversalCycle(aContainer);
 
-        if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
 
         int index = getComponentIndex(cycle, aComponent);
 
         if (index < 0) {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
             }
             return getFirstComponent(aContainer);
@@ -349,7 +349,7 @@
         // See if the component is inside of policy provider.
         Container provider = getTopmostProvider(aContainer, aComponent);
         if (provider != null) {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 log.fine("### Asking FTP " + provider + " for component after " + aComponent);
             }
 
@@ -360,7 +360,7 @@
             // Null result means that we overstepped the limit of the FTP's cycle.
             // In that case we must quit the cycle, otherwise return the component found.
             if (beforeComp != null) {
-                if (log.isLoggable(Level.FINE)) log.fine("### FTP returned " + beforeComp);
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("### FTP returned " + beforeComp);
                 return beforeComp;
             }
             aComponent = provider;
@@ -373,12 +373,12 @@
 
         List<Component> cycle = getFocusTraversalCycle(aContainer);
 
-        if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle + ", component is " + aComponent);
 
         int index = getComponentIndex(cycle, aComponent);
 
         if (index < 0) {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 log.fine("### Didn't find component " + aComponent + " in a cycle " + aContainer);
             }
             return getLastComponent(aContainer);
@@ -424,7 +424,7 @@
     public Component getFirstComponent(Container aContainer) {
         List<Component> cycle;
 
-        if (log.isLoggable(Level.FINE)) log.fine("### Getting first component in " + aContainer);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting first component in " + aContainer);
         if (aContainer == null) {
             throw new IllegalArgumentException("aContainer cannot be null");
         }
@@ -436,10 +436,10 @@
         }
 
         if (cycle.size() == 0) {
-            if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
             return null;
         }
-        if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
 
         for (Component comp : cycle) {
             if (accept(comp)) {
@@ -466,7 +466,7 @@
      */
     public Component getLastComponent(Container aContainer) {
         List<Component> cycle;
-        if (log.isLoggable(Level.FINE)) log.fine("### Getting last component in " + aContainer);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Getting last component in " + aContainer);
 
         if (aContainer == null) {
             throw new IllegalArgumentException("aContainer cannot be null");
@@ -479,10 +479,10 @@
         }
 
         if (cycle.size() == 0) {
-            if (log.isLoggable(Level.FINE)) log.fine("### Cycle is empty");
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is empty");
             return null;
         }
-        if (log.isLoggable(Level.FINE)) log.fine("### Cycle is " + cycle);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### Cycle is " + cycle);
 
         for (int i= cycle.size() - 1; i >= 0; i--) {
             Component comp = cycle.get(i);
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template	Wed Oct 07 14:15:01 2009 -0700
@@ -26,7 +26,7 @@
 
 import javax.swing.Painter;
 import java.awt.Graphics;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
 import sun.swing.plaf.synth.DefaultSynthStyle;
 import javax.swing.BorderFactory;
 import javax.swing.JComponent;
@@ -131,7 +131,7 @@
         //regions and their states that this class will use for later lookup.
         //Additional regions can be registered later by 3rd party components.
         //These are simply the default registrations.
-        defaultFont = FontManager.getFontConfigFUIR("sans", Font.PLAIN, 12);
+        defaultFont = FontUtilities.getFontConfigFUIR("sans", Font.PLAIN, 12);
         defaultStyle = new DefaultSynthStyle();
         defaultStyle.setFont(defaultFont);
 
--- a/jdk/src/share/classes/javax/swing/text/StyleContext.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/text/StyleContext.java	Wed Oct 07 14:15:01 2009 -0700
@@ -35,7 +35,7 @@
 import java.lang.ref.WeakReference;
 import java.util.WeakHashMap;
 
-import sun.font.FontManager;
+import sun.font.FontUtilities;
 
 /**
  * A pool of styles and their associated resources.  This class determines
@@ -263,8 +263,8 @@
             if (f == null) {
                 f = new Font(family, style, size);
             }
-            if (! FontManager.fontSupportsDefaultEncoding(f)) {
-                f = FontManager.getCompositeFontUIResource(f);
+            if (! FontUtilities.fontSupportsDefaultEncoding(f)) {
+                f = FontUtilities.getCompositeFontUIResource(f);
             }
             FontKey key = new FontKey(family, style, size);
             fontTable.put(key, f);
--- a/jdk/src/share/classes/sun/awt/AWTAutoShutdown.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/AWTAutoShutdown.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,7 +30,7 @@
 import java.util.HashSet;
 import java.util.IdentityHashMap;
 import java.util.Map;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 /**
  * This class is to let AWT shutdown automatically when a user is done
@@ -363,7 +363,7 @@
         }
     }
 
-    final void dumpPeers(final Logger aLog) {
+    final void dumpPeers(final PlatformLogger aLog) {
         synchronized (activationLock) {
             synchronized (mainLock) {
                 aLog.fine("Mapped peers:");
--- a/jdk/src/share/classes/sun/awt/AppContext.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/AppContext.java	Wed Oct 07 14:15:01 2009 -0700
@@ -40,10 +40,9 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.HashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.beans.PropertyChangeSupport;
 import java.beans.PropertyChangeListener;
+import sun.util.logging.PlatformLogger;
 
 /**
  * The AppContext is a table referenced by ThreadGroup which stores
@@ -128,7 +127,7 @@
  * @author  Fred Ecks
  */
 public final class AppContext {
-    private static final Logger log = Logger.getLogger("sun.awt.AppContext");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.AppContext");
 
     /* Since the contents of an AppContext are unique to each Java
      * session, this class should never be serialized. */
@@ -380,9 +379,7 @@
                     try {
                         w.dispose();
                     } catch (Throwable t) {
-                        if (log.isLoggable(Level.FINER)) {
-                            log.log(Level.FINER, "exception occured while disposing app context", t);
-                        }
+                        log.finer("exception occured while disposing app context", t);
                     }
                 }
                 AccessController.doPrivileged(new PrivilegedAction() {
--- a/jdk/src/share/classes/sun/awt/ComponentAccessor.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/ComponentAccessor.java	Wed Oct 07 14:15:01 2009 -0700
@@ -39,8 +39,7 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
 
 import java.security.AccessController;
 import java.security.PrivilegedAction;
@@ -78,7 +77,7 @@
     private static Method methodGetCursorNoClientCode;
     private static Method methodLocationNoClientCode;
 
-    private static final Logger log = Logger.getLogger("sun.awt.ComponentAccessor");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.ComponentAccessor");
 
     private ComponentAccessor() {
     }
@@ -136,13 +135,13 @@
                         methodLocationNoClientCode.setAccessible(true);
                     }
                     catch (NoSuchFieldException e) {
-                        log.log(Level.FINE, "Unable to initialize ComponentAccessor", e);
+                        log.fine("Unable to initialize ComponentAccessor", e);
                     }
                     catch (ClassNotFoundException e) {
-                        log.log(Level.FINE, "Unable to initialize ComponentAccessor", e);
+                        log.fine("Unable to initialize ComponentAccessor", e);
                     }
                     catch (NoSuchMethodException e) {
-                        log.log(Level.FINE, "Unable to initialize ComponentAccessor", e);
+                        log.fine("Unable to initialize ComponentAccessor", e);
                     }
                     // to please javac
                     return null;
@@ -157,7 +156,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -168,7 +167,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -179,7 +178,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -190,7 +189,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -204,7 +203,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -214,7 +213,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return 0;
     }
@@ -225,7 +224,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return 0;
     }
@@ -236,7 +235,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return 0;
     }
@@ -247,7 +246,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return 0;
     }
@@ -258,7 +257,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return false;
     }
@@ -271,10 +270,10 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         catch (InvocationTargetException e) {
-            log.log(Level.FINE, "Unable to invoke on the Component object", e);
+            log.fine("Unable to invoke on the Component object", e);
         }
 
         return parent;
@@ -288,10 +287,10 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         catch (InvocationTargetException e) {
-            log.log(Level.FINE, "Unable to invoke on the Component object", e);
+            log.fine("Unable to invoke on the Component object", e);
         }
 
         return font;
@@ -307,10 +306,10 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         catch (InvocationTargetException e) {
-            log.log(Level.FINE, "Unable to invoke on the Component object", e);
+            log.fine("Unable to invoke on the Component object", e);
         }
     }
 
@@ -322,10 +321,10 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         catch (InvocationTargetException e) {
-            log.log(Level.FINE, "Unable to invoke on the Component object", e);
+            log.fine("Unable to invoke on the Component object", e);
         }
     }
 
@@ -336,7 +335,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -348,7 +347,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return color;
     }
@@ -361,7 +360,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return color;
     }
@@ -372,7 +371,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -384,7 +383,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return f;
     }
@@ -396,7 +395,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return peer;
     }
@@ -406,7 +405,7 @@
             fieldPeer.set(c, peer);
         } catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
     }
 
@@ -415,7 +414,7 @@
             return fieldIgnoreRepaint.getBoolean(comp);
         }
         catch (IllegalAccessException e) {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
 
         return false;
@@ -427,7 +426,7 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         return false;
     }
@@ -439,10 +438,10 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         catch (InvocationTargetException e) {
-            log.log(Level.FINE, "Unable to invoke on the Component object", e);
+            log.fine("Unable to invoke on the Component object", e);
         }
         return enabled;
     }
@@ -455,10 +454,10 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         catch (InvocationTargetException e) {
-            log.log(Level.FINE, "Unable to invoke on the Component object", e);
+            log.fine("Unable to invoke on the Component object", e);
         }
 
         return cursor;
@@ -472,12 +471,13 @@
         }
         catch (IllegalAccessException e)
         {
-            log.log(Level.FINE, "Unable to access the Component object", e);
+            log.fine("Unable to access the Component object", e);
         }
         catch (InvocationTargetException e) {
-            log.log(Level.FINE, "Unable to invoke on the Component object", e);
+            log.fine("Unable to invoke on the Component object", e);
         }
 
         return loc;
     }
+
 }
--- a/jdk/src/share/classes/sun/awt/DebugSettings.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/DebugSettings.java	Wed Oct 07 14:15:01 2009 -0700
@@ -28,7 +28,7 @@
 import java.io.*;
 
 import java.util.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 /*
  * Internal class that manages sun.awt.Debug settings.
@@ -72,7 +72,7 @@
  * the fix for 4638447).
  */
 final class DebugSettings {
-    private static final Logger log = Logger.getLogger("sun.awt.debug.DebugSettings");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.debug.DebugSettings");
 
     /* standard debug property key names */
     static final String PREFIX = "awtdebug";
@@ -128,8 +128,8 @@
         });
 
         // echo the initial property settings to stdout
-        if (log.isLoggable(Level.FINE)) {
-            log.log(Level.FINE, "DebugSettings:\n{0}", this);
+        if (log.isLoggable(PlatformLogger.FINE)) {
+            log.fine("DebugSettings:\n{0}" + this);
         }
     }
 
@@ -258,8 +258,8 @@
     }
 
     private void println(Object object) {
-        if (log.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, object.toString());
+        if (log.isLoggable(PlatformLogger.FINER)) {
+            log.finer(object.toString());
         }
     }
 
--- a/jdk/src/share/classes/sun/awt/FontConfiguration.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/FontConfiguration.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,7 +30,6 @@
 import java.io.DataOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -38,7 +37,6 @@
 import java.nio.charset.CharsetEncoder;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.util.logging.Logger;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
@@ -49,7 +47,10 @@
 import java.util.Set;
 import java.util.Vector;
 import sun.font.CompositeFontDescriptor;
-import sun.java2d.SunGraphicsEnvironment;
+import sun.font.SunFontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
+import sun.util.logging.PlatformLogger;
 
 /**
  * Provides the definitions of the five logical fonts: Serif, SansSerif,
@@ -65,10 +66,10 @@
     protected static Locale startupLocale = null;
     protected static Hashtable localeMap = null;
     private static FontConfiguration fontConfig;
-    private static Logger logger;
+    private static PlatformLogger logger;
     protected static boolean isProperties = true;
 
-    protected SunGraphicsEnvironment environment;
+    protected SunFontManager fontManager;
     protected boolean preferLocaleFonts;
     protected boolean preferPropFonts;
 
@@ -80,11 +81,11 @@
     /* A default FontConfiguration must be created before an alternate
      * one to ensure proper static initialisation takes place.
      */
-    public FontConfiguration(SunGraphicsEnvironment environment) {
-        if (SunGraphicsEnvironment.debugFonts && logger == null) {
-            logger = Logger.getLogger("sun.awt.FontConfiguration");
+    public FontConfiguration(SunFontManager fm) {
+        if (FontUtilities.debugFonts() && logger == null) {
+            logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
         }
-        this.environment = environment;
+        fontManager = fm;
         setOsNameAndVersion();  /* static initialization */
         setEncoding();          /* static initialization */
         /* Separating out the file location from the rest of the
@@ -106,10 +107,10 @@
         return true;
     }
 
-    public FontConfiguration(SunGraphicsEnvironment environment,
+    public FontConfiguration(SunFontManager fm,
                              boolean preferLocaleFonts,
                              boolean preferPropFonts) {
-        this.environment = environment;
+        fontManager = fm;
         this.preferLocaleFonts = preferLocaleFonts;
         this.preferPropFonts = preferPropFonts;
         /* fontConfig should be initialised by default constructor, and
@@ -198,17 +199,17 @@
                     loadBinary(in);
                 }
                 in.close();
-                if (SunGraphicsEnvironment.debugFonts) {
+                if (FontUtilities.debugFonts()) {
                     logger.config("Read logical font configuration from " + f);
                 }
             } catch (IOException e) {
-                if (SunGraphicsEnvironment.debugFonts) {
+                if (FontUtilities.debugFonts()) {
                     logger.config("Failed to read logical font configuration from " + f);
                 }
             }
         }
         String version = getVersion();
-        if (!"1".equals(version) && SunGraphicsEnvironment.debugFonts) {
+        if (!"1".equals(version) && FontUtilities.debugFonts()) {
             logger.config("Unsupported fontconfig version: " + version);
         }
     }
@@ -219,8 +220,8 @@
 
         File fallbackDir = new File(fallbackDirName);
         if (fallbackDir.exists() && fallbackDir.isDirectory()) {
-            String[] ttfs = fallbackDir.list(SunGraphicsEnvironment.ttFilter);
-            String[] t1s = fallbackDir.list(SunGraphicsEnvironment.t1Filter);
+            String[] ttfs = fallbackDir.list(fontManager.getTrueTypeFilter());
+            String[] t1s = fallbackDir.list(fontManager.getType1Filter());
             int numTTFs = (ttfs == null) ? 0 : ttfs.length;
             int numT1s = (t1s == null) ? 0 : t1s.length;
             int len = numTTFs + numT1s;
@@ -236,7 +237,7 @@
                 installedFallbackFontFiles[i+numTTFs] =
                     fallbackDir + File.separator + t1s[i];
             }
-            environment.registerFontsInDir(fallbackDirName);
+            fontManager.registerFontsInDir(fallbackDirName);
         }
     }
 
@@ -365,7 +366,7 @@
         stringTable = new StringBuilder(4096);
 
         if (verbose && logger == null) {
-            logger = Logger.getLogger("sun.awt.FontConfiguration");
+            logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
         }
         new PropertiesHandler().load(in);
 
@@ -465,7 +466,7 @@
                     nameIDs[index] = getComponentFontID(coreScripts[index],
                                                fontIndex, styleIndex);
                     if (preferLocaleFonts && localeMap != null &&
-                        sun.font.FontManager.usingAlternateFontforJALocales()) {
+                            fontManager.usingAlternateFontforJALocales()) {
                         nameIDs[index] = remapLocaleMap(fontIndex, styleIndex,
                                                         coreScripts[index], nameIDs[index]);
                     }
@@ -480,7 +481,7 @@
                     short id = getComponentFontID(fallbackScripts[i],
                                                fontIndex, styleIndex);
                     if (preferLocaleFonts && localeMap != null &&
-                        sun.font.FontManager.usingAlternateFontforJALocales()) {
+                            fontManager.usingAlternateFontforJALocales()) {
                         id = remapLocaleMap(fontIndex, styleIndex, fallbackScripts[i], id);
                     }
                     if (preferPropFonts) {
@@ -973,8 +974,8 @@
     public CompositeFontDescriptor[] get2DCompositeFontInfo() {
         CompositeFontDescriptor[] result =
                 new CompositeFontDescriptor[NUM_FONTS * NUM_STYLES];
-        String defaultFontFile = environment.getDefaultFontFile();
-        String defaultFontFaceName = environment.getDefaultFontFaceName();
+        String defaultFontFile = fontManager.getDefaultFontFile();
+        String defaultFontFaceName = fontManager.getDefaultFontFaceName();
 
         for (int fontIndex = 0; fontIndex < NUM_FONTS; fontIndex++) {
             String fontName = publicFontNames[fontIndex];
@@ -1121,7 +1122,7 @@
      */
     HashMap<String, Boolean> existsMap;
     public boolean needToSearchForFile(String fileName) {
-        if (!environment.isLinux) {
+        if (!FontUtilities.isLinux) {
             return false;
         } else if (existsMap == null) {
            existsMap = new HashMap<String, Boolean>();
@@ -1139,7 +1140,7 @@
             } else {
                 exists = Boolean.valueOf((new File(fileName)).exists());
                 existsMap.put(fileName, exists);
-                if (SunGraphicsEnvironment.debugFonts &&
+                if (FontUtilities.debugFonts() &&
                     exists == Boolean.FALSE) {
                     logger.warning("Couldn't locate font file " + fileName);
                 }
@@ -2067,7 +2068,8 @@
                         throw new Exception();
                     }
                 } catch (Exception e) {
-                    if (SunGraphicsEnvironment.debugFonts && logger != null) {
+                    if (FontUtilities.debugFonts() &&
+                        logger != null) {
                         logger.config("Failed parsing " + key +
                                   " property of font configuration.");
 
--- a/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java	Wed Oct 07 14:15:01 2009 -0700
@@ -39,12 +39,11 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 public abstract class KeyboardFocusManagerPeerImpl implements KeyboardFocusManagerPeer {
 
-    private static final Logger focusLog = Logger.getLogger("sun.awt.focus.KeyboardFocusManagerPeerImpl");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.focus.KeyboardFocusManagerPeerImpl");
 
     private static AWTAccessor.KeyboardFocusManagerAccessor kfmAccessor =
         AWTAccessor.getKeyboardFocusManagerAccessor();
@@ -64,7 +63,8 @@
     public void clearGlobalFocusOwner(Window activeWindow) {
         if (activeWindow != null) {
             Component focusOwner = activeWindow.getFocusOwner();
-            if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Clearing global focus owner " + focusOwner);
+            if (focusLog.isLoggable(PlatformLogger.FINE))
+                focusLog.fine("Clearing global focus owner " + focusOwner);
             if (focusOwner != null) {
                 FocusEvent fl = new CausedFocusEvent(focusOwner, FocusEvent.FOCUS_LOST, false, null,
                                                      CausedFocusEvent.Cause.CLEAR_GLOBAL_FOCUS_OWNER);
@@ -130,14 +130,16 @@
             FocusEvent fl = new CausedFocusEvent(currentOwner, FocusEvent.FOCUS_LOST,
                                                  false, lightweightChild, cause);
 
-            if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Posting focus event: " + fl);
+            if (focusLog.isLoggable(PlatformLogger.FINER))
+                focusLog.finer("Posting focus event: " + fl);
             SunToolkit.postPriorityEvent(fl);
         }
 
         FocusEvent fg = new CausedFocusEvent(lightweightChild, FocusEvent.FOCUS_GAINED,
                                              false, currentOwner, cause);
 
-        if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Posting focus event: " + fg);
+        if (focusLog.isLoggable(PlatformLogger.FINER))
+            focusLog.finer("Posting focus event: " + fg);
         SunToolkit.postPriorityEvent(fg);
         return true;
     }
--- a/jdk/src/share/classes/sun/awt/ScrollPaneWheelScroller.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/ScrollPaneWheelScroller.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,7 +30,7 @@
 import java.awt.Adjustable;
 import java.awt.event.MouseWheelEvent;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 /*
  * ScrollPaneWheelScroller is a helper class for implmenenting mouse wheel
@@ -39,7 +39,7 @@
  */
 public abstract class ScrollPaneWheelScroller {
 
-    private static final Logger log = Logger.getLogger("sun.awt.ScrollPaneWheelScroller");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.ScrollPaneWheelScroller");
 
     private ScrollPaneWheelScroller() {}
 
@@ -47,8 +47,8 @@
      * Called from ScrollPane.processMouseWheelEvent()
      */
     public static void handleWheelScrolling(ScrollPane sp, MouseWheelEvent e) {
-        if (log.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, "x = " + e.getX() + ", y = " + e.getY() + ", src is " + e.getSource());
+        if (log.isLoggable(PlatformLogger.FINER)) {
+            log.finer("x = " + e.getX() + ", y = " + e.getY() + ", src is " + e.getSource());
         }
         int increment = 0;
 
@@ -56,8 +56,8 @@
             Adjustable adj = getAdjustableToScroll(sp);
             if (adj != null) {
                 increment = getIncrementFromAdjustable(adj, e);
-                if (log.isLoggable(Level.FINER)) {
-                    log.log(Level.FINER, "increment from adjustable(" + adj.getClass() + ") : " + increment);
+                if (log.isLoggable(PlatformLogger.FINER)) {
+                    log.finer("increment from adjustable(" + adj.getClass() + ") : " + increment);
                 }
                 scrollAdjustable(adj, increment);
             }
@@ -74,8 +74,8 @@
         // if policy is display always or never, use vert
         if (policy == ScrollPane.SCROLLBARS_ALWAYS ||
             policy == ScrollPane.SCROLLBARS_NEVER) {
-            if (log.isLoggable(Level.FINER)) {
-                log.log(Level.FINER, "using vertical scrolling due to scrollbar policy");
+            if (log.isLoggable(PlatformLogger.FINER)) {
+                log.finer("using vertical scrolling due to scrollbar policy");
             }
             return sp.getVAdjustable();
 
@@ -85,31 +85,31 @@
             Insets ins = sp.getInsets();
             int vertScrollWidth = sp.getVScrollbarWidth();
 
-            if (log.isLoggable(Level.FINER)) {
-                log.log(Level.FINER, "insets: l = " + ins.left + ", r = " + ins.right +
+            if (log.isLoggable(PlatformLogger.FINER)) {
+                log.finer("insets: l = " + ins.left + ", r = " + ins.right +
                  ", t = " + ins.top + ", b = " + ins.bottom);
-                log.log(Level.FINER, "vertScrollWidth = " + vertScrollWidth);
+                log.finer("vertScrollWidth = " + vertScrollWidth);
             }
 
             // Check if scrollbar is showing by examining insets of the
             // ScrollPane
             if (ins.right >= vertScrollWidth) {
-                if (log.isLoggable(Level.FINER)) {
-                    log.log(Level.FINER, "using vertical scrolling because scrollbar is present");
+                if (log.isLoggable(PlatformLogger.FINER)) {
+                    log.finer("using vertical scrolling because scrollbar is present");
                 }
                 return sp.getVAdjustable();
             }
             else {
                 int horizScrollHeight = sp.getHScrollbarHeight();
                 if (ins.bottom >= horizScrollHeight) {
-                    if (log.isLoggable(Level.FINER)) {
-                        log.log(Level.FINER, "using horiz scrolling because scrollbar is present");
+                    if (log.isLoggable(PlatformLogger.FINER)) {
+                        log.finer("using horiz scrolling because scrollbar is present");
                     }
                     return sp.getHAdjustable();
                 }
                 else {
-                    if (log.isLoggable(Level.FINER)) {
-                        log.log(Level.FINER, "using NO scrollbar becsause neither is present");
+                    if (log.isLoggable(PlatformLogger.FINER)) {
+                        log.finer("using NO scrollbar becsause neither is present");
                     }
                     return null;
                 }
@@ -124,9 +124,9 @@
      */
     public static int getIncrementFromAdjustable(Adjustable adj,
                                                  MouseWheelEvent e) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             if (adj == null) {
-                log.log(Level.FINE, "Assertion (adj != null) failed");
+                log.fine("Assertion (adj != null) failed");
             }
         }
 
@@ -146,19 +146,19 @@
      * bounds and sets the new value to the Adjustable.
      */
     public static void scrollAdjustable(Adjustable adj, int amount) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             if (adj == null) {
-                log.log(Level.FINE, "Assertion (adj != null) failed");
+                log.fine("Assertion (adj != null) failed");
             }
             if (amount == 0) {
-                log.log(Level.FINE, "Assertion (amount != 0) failed");
+                log.fine("Assertion (amount != 0) failed");
             }
         }
 
         int current = adj.getValue();
         int upperLimit = adj.getMaximum() - adj.getVisibleAmount();
-        if (log.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, "doScrolling by " + amount);
+        if (log.isLoggable(PlatformLogger.FINER)) {
+            log.finer("doScrolling by " + amount);
         }
 
         if (amount > 0 && current < upperLimit) { // still some room to scroll
--- a/jdk/src/share/classes/sun/awt/SunDisplayChanger.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/SunDisplayChanger.java	Wed Oct 07 14:15:01 2009 -0700
@@ -33,7 +33,7 @@
 import java.util.HashMap;
 import java.util.WeakHashMap;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 /**
  * This class is used to aid in keeping track of DisplayChangedListeners and
@@ -54,7 +54,7 @@
  * screen to another on a system equipped with multiple displays.
  */
 public class SunDisplayChanger {
-    private static final Logger log = Logger.getLogger("sun.awt.multiscreen.SunDisplayChanger");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.multiscreen.SunDisplayChanger");
 
     // Create a new synchronizedMap with initial capacity of one listener.
     // It is asserted that the most common case is to have one GraphicsDevice
@@ -68,13 +68,13 @@
      * notified when the display is changed.
      */
     public void add(DisplayChangedListener theListener) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             if (theListener == null) {
-                log.log(Level.FINE, "Assertion (theListener != null) failed");
+                log.fine("Assertion (theListener != null) failed");
             }
         }
-        if (log.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, "Adding listener: " + theListener);
+        if (log.isLoggable(PlatformLogger.FINER)) {
+            log.finer("Adding listener: " + theListener);
         }
         listeners.put(theListener, null);
     }
@@ -83,13 +83,13 @@
      * Remove the given DisplayChangeListener from this SunDisplayChanger.
      */
     public void remove(DisplayChangedListener theListener) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             if (theListener == null) {
-                log.log(Level.FINE, "Assertion (theListener != null) failed");
+                log.fine("Assertion (theListener != null) failed");
             }
         }
-        if (log.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, "Removing listener: " + theListener);
+        if (log.isLoggable(PlatformLogger.FINER)) {
+            log.finer("Removing listener: " + theListener);
         }
         listeners.remove(theListener);
     }
@@ -99,8 +99,8 @@
      * taken place by calling their displayChanged() methods.
      */
     public void notifyListeners() {
-        if (log.isLoggable(Level.FINEST)) {
-            log.log(Level.FINEST, "notifyListeners");
+        if (log.isLoggable(PlatformLogger.FINEST)) {
+            log.finest("notifyListeners");
         }
     // This method is implemented by making a clone of the set of listeners,
     // and then iterating over the clone.  This is because during the course
@@ -126,8 +126,8 @@
             DisplayChangedListener current =
              (DisplayChangedListener) itr.next();
             try {
-                if (log.isLoggable(Level.FINEST)) {
-                    log.log(Level.FINEST, "displayChanged for listener: " + current);
+                if (log.isLoggable(PlatformLogger.FINEST)) {
+                    log.finest("displayChanged for listener: " + current);
                 }
                 current.displayChanged();
             } catch (IllegalComponentStateException e) {
@@ -146,7 +146,7 @@
      * taken place by calling their paletteChanged() methods.
      */
     public void notifyPaletteChanged() {
-        if (log.isLoggable(Level.FINEST)) {
+        if (log.isLoggable(PlatformLogger.FINEST)) {
             log.finest("notifyPaletteChanged");
         }
     // This method is implemented by making a clone of the set of listeners,
@@ -172,8 +172,8 @@
             DisplayChangedListener current =
              (DisplayChangedListener) itr.next();
             try {
-                if (log.isLoggable(Level.FINEST)) {
-                    log.log(Level.FINEST, "paletteChanged for listener: " + current);
+                if (log.isLoggable(PlatformLogger.FINEST)) {
+                    log.finest("paletteChanged for listener: " + current);
                 }
                 current.paletteChanged();
             } catch (IllegalComponentStateException e) {
--- a/jdk/src/share/classes/sun/awt/SunGraphicsCallback.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/SunGraphicsCallback.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,14 +27,14 @@
 
 import java.awt.*;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 public abstract class SunGraphicsCallback {
     public static final int HEAVYWEIGHTS = 0x1;
     public static final int LIGHTWEIGHTS = 0x2;
     public static final int TWO_PASSES = 0x4;
 
-    private static final Logger log = Logger.getLogger("sun.awt.SunGraphicsCallback");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.SunGraphicsCallback");
 
     public abstract void run(Component comp, Graphics cg);
 
@@ -87,11 +87,11 @@
         int ncomponents = comps.length;
         Shape clip = g.getClip();
 
-        if (log.isLoggable(Level.FINER) && (clip != null)) {
+        if (log.isLoggable(PlatformLogger.FINER) && (clip != null)) {
             Rectangle newrect = clip.getBounds();
-            log.log(Level.FINER, "x = " + newrect.x + ", y = " + newrect.y +
-                                 ", width = " + newrect.width +
-                                 ", height = " + newrect.height);
+            log.finer("x = " + newrect.x + ", y = " + newrect.y +
+                      ", width = " + newrect.width +
+                      ", height = " + newrect.height);
         }
 
         // A seriously sad hack--
--- a/jdk/src/share/classes/sun/awt/SunToolkit.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/SunToolkit.java	Wed Oct 07 14:15:01 2009 -0700
@@ -40,8 +40,7 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 import sun.misc.SoftCache;
 import sun.font.FontDesignMetrics;
 import sun.awt.im.InputContext;
@@ -61,7 +60,7 @@
     implements WindowClosingSupport, WindowClosingListener,
     ComponentFactory, InputMethodSupport, KeyboardFocusManagerPeerProvider {
 
-    private static final Logger log = Logger.getLogger("sun.awt.SunToolkit");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.SunToolkit");
 
     /* Load debug settings for native code */
     static {
@@ -986,9 +985,9 @@
             //with scale factors x1, x3/4, x2/3, xN, x1/N.
             Image im = i.next();
             if (im == null) {
-                if (log.isLoggable(Level.FINER)) {
-                    log.log(Level.FINER, "SunToolkit.getScaledIconImage: " +
-                            "Skipping the image passed into Java because it's null.");
+                if (log.isLoggable(PlatformLogger.FINER)) {
+                    log.finer("SunToolkit.getScaledIconImage: " +
+                              "Skipping the image passed into Java because it's null.");
                 }
                 continue;
             }
@@ -1002,9 +1001,9 @@
                 iw = im.getWidth(null);
                 ih = im.getHeight(null);
             } catch (Exception e){
-                if (log.isLoggable(Level.FINER)) {
-                    log.log(Level.FINER, "SunToolkit.getScaledIconImage: " +
-                            "Perhaps the image passed into Java is broken. Skipping this icon.");
+                if (log.isLoggable(PlatformLogger.FINER)) {
+                    log.finer("SunToolkit.getScaledIconImage: " +
+                              "Perhaps the image passed into Java is broken. Skipping this icon.");
                 }
                 continue;
             }
@@ -1077,8 +1076,8 @@
         try {
             int x = (width - bestWidth) / 2;
             int y = (height - bestHeight) / 2;
-            if (log.isLoggable(Level.FINER)) {
-                log.log(Level.FINER, "WWindowPeer.getScaledIconData() result : " +
+            if (log.isLoggable(PlatformLogger.FINER)) {
+                log.finer("WWindowPeer.getScaledIconData() result : " +
                         "w : " + width + " h : " + height +
                         " iW : " + bestImage.getWidth(null) + " iH : " + bestImage.getHeight(null) +
                         " sim : " + bestSimilarity + " sf : " + bestScaleFactor +
@@ -1095,9 +1094,9 @@
     public static DataBufferInt getScaledIconData(java.util.List<Image> imageList, int width, int height) {
         BufferedImage bimage = getScaledIconImage(imageList, width, height);
         if (bimage == null) {
-             if (log.isLoggable(Level.FINER)) {
-                 log.log(Level.FINER, "SunToolkit.getScaledIconData: " +
-                         "Perhaps the image passed into Java is broken. Skipping this icon.");
+             if (log.isLoggable(PlatformLogger.FINER)) {
+                 log.finer("SunToolkit.getScaledIconData: " +
+                           "Perhaps the image passed into Java is broken. Skipping this icon.");
              }
             return null;
         }
@@ -1913,7 +1912,7 @@
         }
     }
 
-    protected static void dumpPeers(final Logger aLog) {
+    protected static void dumpPeers(final PlatformLogger aLog) {
         AWTAutoShutdown.getInstance().dumpPeers(aLog);
     }
 
--- a/jdk/src/share/classes/sun/awt/WindowAccessor.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/WindowAccessor.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,8 +29,7 @@
 
 import java.lang.reflect.Field;
 
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
 
 import java.security.AccessController;
 import java.security.PrivilegedAction;
@@ -41,7 +40,7 @@
     private static Field fieldIsAutoRequestFocus;
     private static Field fieldIsTrayIconWindow;
 
-    private static final Logger log = Logger.getLogger("sun.awt.WindowAccessor");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.WindowAccessor");
 
     private WindowAccessor() {
     }
@@ -57,9 +56,9 @@
                         fieldIsTrayIconWindow.setAccessible(true);
 
                     } catch (NoSuchFieldException e) {
-                        log.log(Level.FINE, "Unable to initialize WindowAccessor: ", e);
+                        log.fine("Unable to initialize WindowAccessor: ", e);
                     } catch (ClassNotFoundException e) {
-                        log.log(Level.FINE, "Unable to initialize WindowAccessor: ", e);
+                        log.fine("Unable to initialize WindowAccessor: ", e);
                     }
                     return null;
                 }
@@ -71,7 +70,7 @@
             return fieldIsAutoRequestFocus.getBoolean(w);
 
         } catch (IllegalAccessException e) {
-            log.log(Level.FINE, "Unable to access the Window object", e);
+            log.fine("Unable to access the Window object", e);
         }
         return true;
     }
@@ -81,7 +80,7 @@
             return fieldIsTrayIconWindow.getBoolean(w);
 
         } catch (IllegalAccessException e) {
-            log.log(Level.FINE, "Unable to access the Window object", e);
+            log.fine("Unable to access the Window object", e);
         }
         return false;
     }
@@ -91,7 +90,7 @@
             fieldIsTrayIconWindow.set(w, isTrayIconWindow);
 
         } catch (IllegalAccessException e) {
-            log.log(Level.FINE, "Unable to access the Window object", e);
+            log.fine("Unable to access the Window object", e);
         }
     }
 }
--- a/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -89,7 +89,7 @@
 import java.util.TreeMap;
 import java.util.TreeSet;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.AppContext;
 import sun.awt.SunToolkit;
@@ -222,7 +222,7 @@
      */
     private static DataTransferer transferer;
 
-    private static final Logger dtLog = Logger.getLogger("sun.awt.datatransfer.DataTransfer");
+    private static final PlatformLogger dtLog = PlatformLogger.getLogger("sun.awt.datatransfer.DataTransfer");
 
     static {
         Class tCharArrayClass = null, tByteArrayClass = null;
@@ -382,9 +382,9 @@
      * "text".
      */
     public static boolean doesSubtypeSupportCharset(DataFlavor flavor) {
-        if (dtLog.isLoggable(Level.FINE)) {
+        if (dtLog.isLoggable(PlatformLogger.FINE)) {
             if (!"text".equals(flavor.getPrimaryType())) {
-                dtLog.log(Level.FINE, "Assertion (\"text\".equals(flavor.getPrimaryType())) failed");
+                dtLog.fine("Assertion (\"text\".equals(flavor.getPrimaryType())) failed");
             }
         }
 
--- a/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -48,7 +48,7 @@
 import java.util.Map;
 import java.util.Arrays;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -99,7 +99,7 @@
 
     protected static final Object _globalLock = new Object();
 
-    private static final Logger dndLog = Logger.getLogger("sun.awt.dnd.SunDropTargetContextPeer");
+    private static final PlatformLogger dndLog = PlatformLogger.getLogger("sun.awt.dnd.SunDropTargetContextPeer");
 
     /*
      * a primitive mechanism for advertising intra-JVM Transferables
@@ -845,8 +845,8 @@
 
         void registerEvent(SunDropTargetEvent e) {
             handler.lock();
-            if (!eventSet.add(e) && dndLog.isLoggable(Level.FINE)) {
-                dndLog.log(Level.FINE, "Event is already registered: " + e);
+            if (!eventSet.add(e) && dndLog.isLoggable(PlatformLogger.FINE)) {
+                dndLog.fine("Event is already registered: " + e);
             }
             handler.unlock();
         }
--- a/jdk/src/share/classes/sun/awt/im/InputContext.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/im/InputContext.java	Wed Oct 07 14:15:01 2009 -0700
@@ -50,9 +50,9 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Locale;
-import java.util.logging.*;
 import java.util.prefs.BackingStoreException;
 import java.util.prefs.Preferences;
+import sun.util.logging.PlatformLogger;
 import sun.awt.SunToolkit;
 
 /**
@@ -67,7 +67,7 @@
 
 public class InputContext extends java.awt.im.InputContext
                           implements ComponentListener, WindowListener {
-    private static final Logger log = Logger.getLogger("sun.awt.im.InputContext");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.im.InputContext");
     // The current input method is represented by two objects:
     // a locator is used to keep information about the selected
     // input method and locale until we actually need a real input
@@ -386,7 +386,7 @@
             }
             previousInputMethod = null;
 
-            if (log.isLoggable(Level.FINE)) log.fine("Current client component " + currentClientComponent);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("Current client component " + currentClientComponent);
             if (inputMethod instanceof InputMethodAdapter) {
                 ((InputMethodAdapter) inputMethod).setClientComponent(currentClientComponent);
             }
@@ -889,7 +889,7 @@
             {inputMethodLocator.getDescriptor().getInputMethodDisplayName(null, Locale.getDefault()),
              throwable.getLocalizedMessage()};
         MessageFormat mf = new MessageFormat(errorTextFormat);
-        Logger logger = Logger.getLogger("sun.awt.im");
+        PlatformLogger logger = PlatformLogger.getLogger("sun.awt.im");
         logger.config(mf.format(args));
     }
 
--- a/jdk/src/share/classes/sun/font/CMap.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/CMap.java	Wed Oct 07 14:15:01 2009 -0700
@@ -232,7 +232,7 @@
                  * fonts are using gb2312 encoding, have to use this
                  * workaround to make Solaris zh_CN locale work.  -sherman
                  */
-                if (FontManager.isSolaris && font.platName != null &&
+                if (FontUtilities.isSolaris && font.platName != null &&
                     (font.platName.startsWith(
                      "/usr/openwin/lib/locale/zh_CN.EUC/X11/fonts/TrueType") ||
                      font.platName.startsWith(
@@ -407,8 +407,8 @@
             subtableLength = buffer.getInt(offset+4) & INTMASK;
         }
         if (offset+subtableLength > buffer.capacity()) {
-            if (FontManager.logging) {
-                FontManager.logger.warning("Cmap subtable overflows buffer.");
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().warning("Cmap subtable overflows buffer.");
             }
         }
         switch (subtableFormat) {
--- a/jdk/src/share/classes/sun/font/CompositeFont.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/CompositeFont.java	Wed Oct 07 14:15:01 2009 -0700
@@ -60,7 +60,7 @@
     public CompositeFont(String name, String[] compFileNames,
                          String[] compNames, int metricsSlotCnt,
                          int[] exclRanges, int[] maxIndexes,
-                         boolean defer) {
+                         boolean defer, SunFontManager fm) {
 
         handle = new Font2DHandle(this);
         fullName = name;
@@ -85,13 +85,13 @@
          * The caller could be responsible for this, but for now it seems
          * better that it is handled internally to the CompositeFont class.
          */
-        if (FontManager.eudcFont != null) {
+        if (fm.getEUDCFont() != null) {
             numSlots++;
             if (componentNames != null) {
                 componentNames = new String[numSlots];
                 System.arraycopy(compNames, 0, componentNames, 0, numSlots-1);
                 componentNames[numSlots-1] =
-                    FontManager.eudcFont.getFontName(null);
+                    fm.getEUDCFont().getFontName(null);
             }
             if (componentFileNames != null) {
                 componentFileNames = new String[numSlots];
@@ -99,7 +99,7 @@
                                   componentFileNames, 0, numSlots-1);
             }
             components = new PhysicalFont[numSlots];
-            components[numSlots-1] = FontManager.eudcFont;
+            components[numSlots-1] = fm.getEUDCFont();
             deferredInitialisation = new boolean[numSlots];
             if (defer) {
                 for (int i=0; i<numSlots-1; i++) {
@@ -165,7 +165,7 @@
          * it is harmless that we do not know a slot is already initialised
          * and just need to discover that and mark it so.
          */
-        synchronized (FontManager.class) {
+        synchronized (FontManagerFactory.getInstance()) {
             components = new PhysicalFont[numSlots];
             components[0] = physFont;
             System.arraycopy(compFont.components, 0,
@@ -235,7 +235,8 @@
          * This global lock is rarely likely to be an issue as there
          * are only going to be a few calls into this code.
          */
-        synchronized (FontManager.class) {
+        SunFontManager fm = SunFontManager.getInstance();
+        synchronized (fm) {
             if (componentNames == null) {
                 componentNames = new String[numSlots];
             }
@@ -251,22 +252,21 @@
                  */
                 if (componentFileNames != null &&
                     componentFileNames[slot] != null) {
-                    components[slot] = FontManager.initialiseDeferredFont
-                        (componentFileNames[slot]);
+                    components[slot] =
+                        fm.initialiseDeferredFont(componentFileNames[slot]);
                 }
 
                 if (components[slot] == null) {
-                    components[slot] = FontManager.getDefaultPhysicalFont();
+                    components[slot] = fm.getDefaultPhysicalFont();
                 }
                 String name = components[slot].getFontName(null);
                 if (componentNames[slot] == null) {
                     componentNames[slot] = name;
                 } else if (!componentNames[slot].equalsIgnoreCase(name)) {
                     components[slot] =
-                        (PhysicalFont)
-                        FontManager.findFont2D(componentNames[slot],
-                                               style,
-                                               FontManager.PHYSICAL_FALLBACK);
+                        (PhysicalFont) fm.findFont2D(componentNames[slot],
+                                                     style,
+                                                FontManager.PHYSICAL_FALLBACK);
                 }
             }
             deferredInitialisation[slot] = false;
@@ -333,21 +333,22 @@
         if (deferredInitialisation[slot]) {
             doDeferredInitialisation(slot);
         }
+        SunFontManager fm = SunFontManager.getInstance();
         try {
             PhysicalFont font = components[slot];
             if (font == null) {
                 try {
-                    font = (PhysicalFont)FontManager.
+                    font = (PhysicalFont) fm.
                         findFont2D(componentNames[slot], style,
                                    FontManager.PHYSICAL_FALLBACK);
                     components[slot] = font;
                 } catch (ClassCastException cce) {
-                    font = FontManager.getDefaultPhysicalFont();
+                    font = fm.getDefaultPhysicalFont();
                 }
             }
             return font;
         } catch (Exception e) {
-            return FontManager.getDefaultPhysicalFont();
+            return fm.getDefaultPhysicalFont();
         }
     }
 
--- a/jdk/src/share/classes/sun/font/CompositeGlyphMapper.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/CompositeGlyphMapper.java	Wed Oct 07 14:15:01 2009 -0700
@@ -211,10 +211,10 @@
                 glyphs[i] = convertToGlyph(code);
             }
 
-            if (code < FontManager.MIN_LAYOUT_CHARCODE) {
+            if (code < FontUtilities.MIN_LAYOUT_CHARCODE) {
                 continue;
             }
-            else if (FontManager.isComplexCharCode(code)) {
+            else if (FontUtilities.isComplexCharCode(code)) {
                 return true;
             }
             else if (code >= 0x10000) {
--- a/jdk/src/share/classes/sun/font/FileFont.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FileFont.java	Wed Oct 07 14:15:01 2009 -0700
@@ -158,7 +158,8 @@
      * rare maybe it is not worth doing this last part.
      */
     synchronized void deregisterFontAndClearStrikeCache() {
-        FontManager.deRegisterBadFont(this);
+        SunFontManager fm = SunFontManager.getInstance();
+        fm.deRegisterBadFont(this);
 
         for (Reference strikeRef : strikeCache.values()) {
             if (strikeRef != null) {
@@ -172,14 +173,14 @@
             }
         }
         scaler.dispose();
-        scaler = FontManager.getNullScaler();
+        scaler = FontScaler.getNullScaler();
     }
 
     StrikeMetrics getFontMetrics(long pScalerContext) {
         try {
             return getScaler().getFontMetrics(pScalerContext);
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getFontMetrics(pScalerContext);
         }
     }
@@ -188,7 +189,7 @@
         try {
             return getScaler().getGlyphAdvance(pScalerContext, glyphCode);
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getGlyphAdvance(pScalerContext, glyphCode);
         }
     }
@@ -197,7 +198,7 @@
         try {
             getScaler().getGlyphMetrics(pScalerContext, glyphCode, metrics);
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             getGlyphMetrics(pScalerContext, glyphCode, metrics);
         }
     }
@@ -206,7 +207,7 @@
         try {
             return getScaler().getGlyphImage(pScalerContext, glyphCode);
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getGlyphImage(pScalerContext, glyphCode);
         }
     }
@@ -215,7 +216,7 @@
         try {
             return getScaler().getGlyphOutlineBounds(pScalerContext, glyphCode);
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getGlyphOutlineBounds(pScalerContext, glyphCode);
         }
     }
@@ -224,7 +225,7 @@
         try {
             return getScaler().getGlyphOutline(pScalerContext, glyphCode, x, y);
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getGlyphOutline(pScalerContext, glyphCode, x, y);
         }
     }
@@ -233,7 +234,7 @@
         try {
             return getScaler().getGlyphVectorOutline(pScalerContext, glyphs, numGlyphs, x, y);
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getGlyphVectorOutline(pScalerContext, glyphs, numGlyphs, x, y);
         }
     }
@@ -275,7 +276,8 @@
                                    */
                                   fontFile.delete();
                                   /* remove from delete on exit hook list : */
-                                  FontManager.tmpFontFiles.remove(fontFile);
+                                  // FIXME: still need to be refactored
+                                  SunFontManager.getInstance().tmpFontFiles.remove(fontFile);
                               } catch (Exception e) {
                               }
                           }
--- a/jdk/src/share/classes/sun/font/FileFontStrike.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FileFontStrike.java	Wed Oct 07 14:15:01 2009 -0700
@@ -114,7 +114,7 @@
     private static native boolean initNative();
     private static boolean isXPorLater = false;
     static {
-        if (FontManager.isWindows && !FontManager.useT2K &&
+        if (FontUtilities.isWindows && !FontUtilities.useT2K &&
             !GraphicsEnvironment.isHeadless()) {
             isXPorLater = initNative();
         }
@@ -201,7 +201,7 @@
             this.disposer = new FontStrikeDisposer(fileFont, desc);
             initGlyphCache();
             pScalerContext = NullFontScaler.getNullScalerContext();
-            FontManager.deRegisterBadFont(fileFont);
+            SunFontManager.getInstance().deRegisterBadFont(fileFont);
             return;
         }
         /* First, see if native code should be used to create the glyph.
@@ -211,8 +211,8 @@
          * except that the advance returned by GDI is always overwritten by
          * the JDK rasteriser supplied one (see getGlyphImageFromWindows()).
          */
-        if (FontManager.isWindows && isXPorLater &&
-            !FontManager.useT2K &&
+        if (FontUtilities.isWindows && isXPorLater &&
+            !FontUtilities.useT2K &&
             !GraphicsEnvironment.isHeadless() &&
             !fileFont.useJavaRasterizer &&
             (desc.aaHint == INTVAL_TEXT_ANTIALIAS_LCD_HRGB ||
@@ -241,8 +241,8 @@
                 }
             }
         }
-        if (FontManager.logging && FontManager.isWindows) {
-            FontManager.logger.info
+        if (FontUtilities.isLogging() && FontUtilities.isWindows) {
+            FontUtilities.getLogger().info
                 ("Strike for " + fileFont + " at size = " + intPtSize +
                  " use natives = " + useNatives +
                  " useJavaRasteriser = " + fileFont.useJavaRasterizer +
@@ -298,7 +298,7 @@
     }
 
     long getGlyphImageFromNative(int glyphCode) {
-        if (FontManager.isWindows) {
+        if (FontUtilities.isWindows) {
             return getGlyphImageFromWindows(glyphCode);
         } else {
             return getGlyphImageFromX11(glyphCode);
@@ -366,8 +366,8 @@
         } else {
             if (useNatives) {
                 glyphPtr = getGlyphImageFromNative(glyphCode);
-                if (glyphPtr == 0L && FontManager.logging) {
-                    FontManager.logger.info
+                if (glyphPtr == 0L && FontUtilities.isLogging()) {
+                    FontUtilities.getLogger().info
                         ("Strike for " + fileFont +
                          " at size = " + intPtSize +
                          " couldn't get native glyph for code = " + glyphCode);
@@ -528,7 +528,7 @@
 
         if (segmentedCache) {
             int numSegments = (numGlyphs + SEGSIZE-1)/SEGSIZE;
-            if (FontManager.longAddresses) {
+            if (longAddresses) {
                 glyphCacheFormat = SEGLONGARRAY;
                 segLongGlyphImages = new long[numSegments][];
                 this.disposer.segLongGlyphImages = segLongGlyphImages;
@@ -538,7 +538,7 @@
                  this.disposer.segIntGlyphImages = segIntGlyphImages;
              }
         } else {
-            if (FontManager.longAddresses) {
+            if (longAddresses) {
                 glyphCacheFormat = LONGARRAY;
                 longGlyphImages = new long[numGlyphs];
                 this.disposer.longGlyphImages = longGlyphImages;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontAccess.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+
+public abstract class FontAccess {
+
+    private static FontAccess access;
+    public static synchronized void setFontAccess(FontAccess acc) {
+        if (access != null) {
+            throw new InternalError("Attempt to set FontAccessor twice");
+        }
+        access = acc;
+    }
+
+    public static synchronized FontAccess getFontAccess() {
+        return access;
+    }
+
+    public abstract Font2D getFont2D(Font f);
+    public abstract void setFont2D(Font f, Font2DHandle h);
+    public abstract void setCreatedFont(Font f);
+    public abstract boolean isCreatedFont(Font f);
+}
--- a/jdk/src/share/classes/sun/font/FontDesignMetrics.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontDesignMetrics.java	Wed Oct 07 14:15:01 2009 -0700
@@ -261,8 +261,9 @@
          * Note that currently Swing native L&F composites are not handled
          * by this code as they use the metrics of the physical anyway.
          */
-        if (FontManager.maybeUsingAlternateCompositeFonts() &&
-            FontManager.getFont2D(font) instanceof CompositeFont) {
+        SunFontManager fm = SunFontManager.getInstance();
+        if (fm.maybeUsingAlternateCompositeFonts() &&
+            FontUtilities.getFont2D(font) instanceof CompositeFont) {
             return new FontDesignMetrics(font, frc);
         }
 
@@ -353,7 +354,7 @@
 
     private void initMatrixAndMetrics() {
 
-        Font2D font2D = FontManager.getFont2D(font);
+        Font2D font2D = FontUtilities.getFont2D(font);
         fontStrike = font2D.getStrike(font, frc);
         StrikeMetrics metrics = fontStrike.getFontMetrics();
         this.ascent = metrics.getAscent();
@@ -473,7 +474,7 @@
                 char ch = str.charAt(i);
                 if (ch < 0x100) {
                     width += getLatinCharWidth(ch);
-                } else if (FontManager.isNonSimpleChar(ch)) {
+                } else if (FontUtilities.isNonSimpleChar(ch)) {
                     width = new TextLayout(str, font, frc).getAdvance();
                     break;
                 } else {
@@ -504,7 +505,7 @@
                 char ch = data[i];
                 if (ch < 0x100) {
                     width += getLatinCharWidth(ch);
-                } else if (FontManager.isNonSimpleChar(ch)) {
+                } else if (FontUtilities.isNonSimpleChar(ch)) {
                     String str = new String(data, off, len);
                     width = new TextLayout(str, font, frc).getAdvance();
                     break;
--- a/jdk/src/share/classes/sun/font/FontFamily.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontFamily.java	Wed Oct 07 14:15:01 2009 -0700
@@ -107,8 +107,9 @@
 
     public void setFont(Font2D font, int style) {
         if (font.getRank() > familyRank) {
-            if (FontManager.logging) {
-                FontManager.logger.warning("Rejecting adding " + font +
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger()
+                                  .warning("Rejecting adding " + font +
                                            " of lower rank " + font.getRank() +
                                            " to family " + this +
                                            " of rank " + familyRank);
--- a/jdk/src/share/classes/sun/font/FontManager.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -22,3831 +22,124 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
-
 package sun.font;
 
 import java.awt.Font;
-import java.awt.GraphicsEnvironment;
 import java.awt.FontFormatException;
 import java.io.File;
-import java.io.FilenameFilter;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Locale;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
 import java.util.TreeMap;
-import java.util.Vector;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
 import javax.swing.plaf.FontUIResource;
 
-import sun.awt.AppContext;
-import sun.awt.FontConfiguration;
-import sun.awt.SunHints;
-import sun.awt.SunToolkit;
-import sun.java2d.HeadlessGraphicsEnvironment;
-import sun.java2d.SunGraphicsEnvironment;
-
-import java.awt.geom.GeneralPath;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-
-import java.lang.reflect.Constructor;
-
-import sun.java2d.Disposer;
-
-/*
+/**
  * Interface between Java Fonts (java.awt.Font) and the underlying
  * font files/native font resources and the Java and native font scalers.
  */
-public final class FontManager {
-
-    public static final int FONTFORMAT_NONE      = -1;
-    public static final int FONTFORMAT_TRUETYPE  = 0;
-    public static final int FONTFORMAT_TYPE1     = 1;
-    public static final int FONTFORMAT_T2K       = 2;
-    public static final int FONTFORMAT_TTC       = 3;
-    public static final int FONTFORMAT_COMPOSITE = 4;
-    public static final int FONTFORMAT_NATIVE    = 5;
-
-    public static final int NO_FALLBACK         = 0;
-    public static final int PHYSICAL_FALLBACK   = 1;
-    public static final int LOGICAL_FALLBACK    = 2;
-
-    public static final int QUADPATHTYPE = 1;
-    public static final int CUBICPATHTYPE = 2;
-
-    /* Pool of 20 font file channels chosen because some UTF-8 locale
-     * composite fonts can use up to 16 platform fonts (including the
-     * Lucida fall back). This should prevent channel thrashing when
-     * dealing with one of these fonts.
-     * The pool array stores the fonts, rather than directly referencing
-     * the channels, as the font needs to do the open/close work.
-     */
-    private static final int CHANNELPOOLSIZE = 20;
-    private static int lastPoolIndex = 0;
-    private static FileFont fontFileCache[] = new FileFont[CHANNELPOOLSIZE];
-
-    /* Need to implement a simple linked list scheme for fast
-     * traversal and lookup.
-     * Also want to "fast path" dialog so there's minimal overhead.
-     */
-    /* There are at exactly 20 composite fonts: 5 faces (but some are not
-     * usually different), in 4 styles. The array may be auto-expanded
-     * later if more are needed, eg for user-defined composites or locale
-     * variants.
-     */
-    private static int maxCompFont = 0;
-    private static CompositeFont [] compFonts = new CompositeFont[20];
-    private static ConcurrentHashMap<String, CompositeFont>
-        compositeFonts = new ConcurrentHashMap<String, CompositeFont>();
-    private static ConcurrentHashMap<String, PhysicalFont>
-        physicalFonts = new ConcurrentHashMap<String, PhysicalFont>();
-    private static ConcurrentHashMap<String, PhysicalFont>
-        registeredFontFiles = new ConcurrentHashMap<String, PhysicalFont>();
-
-    /* given a full name find the Font. Remind: there's duplication
-     * here in that this contains the content of compositeFonts +
-     * physicalFonts.
-     */
-    private static ConcurrentHashMap<String, Font2D>
-        fullNameToFont = new ConcurrentHashMap<String, Font2D>();
-
-    /* TrueType fonts have localised names. Support searching all
-     * of these before giving up on a name.
-     */
-    private static HashMap<String, TrueTypeFont> localeFullNamesToFont;
-
-    private static PhysicalFont defaultPhysicalFont;
-
-    /* deprecated, unsupported hack - actually invokes a bug! */
-    private static boolean usePlatformFontMetrics = false;
-
-    public static Logger logger = null;
-    public static boolean logging;
-    static boolean longAddresses;
-    static String osName;
-    static boolean useT2K;
-    static boolean isWindows;
-    static boolean isSolaris;
-    public static boolean isSolaris8; // needed to check for JA wavedash fix.
-    public static boolean isSolaris9; // needed to check for songti font usage.
-    private static boolean loaded1dot0Fonts = false;
-    static SunGraphicsEnvironment sgEnv;
-    static boolean loadedAllFonts = false;
-    static boolean loadedAllFontFiles = false;
-    static TrueTypeFont eudcFont;
-    static HashMap<String,String> jreFontMap;
-    static HashSet<String> jreLucidaFontFiles;
-    static String[] jreOtherFontFiles;
-    static boolean noOtherJREFontFiles = false; // initial assumption.
-    static boolean fontConfigFailed = false;
-
-    /* Used to indicate required return type from toArray(..); */
-    private static String[] STR_ARRAY = new String[0];
-
-    private static void initJREFontMap() {
-
-        /* Key is familyname+style value as an int.
-         * Value is filename containing the font.
-         * If no mapping exists, it means there is no font file for the style
-         * If the mapping exists but the file doesn't exist in the deferred
-         * list then it means its not installed.
-         * This looks like a lot of code and strings but if it saves even
-         * a single file being opened at JRE start-up there's a big payoff.
-         * Lucida Sans is probably the only important case as the others
-         * are rarely used. Consider removing the other mappings if there's
-         * no evidence they are useful in practice.
-         */
-        jreFontMap = new HashMap<String,String>();
-        jreLucidaFontFiles = new HashSet<String>();
-        if (SunGraphicsEnvironment.isOpenJDK()) {
-            return;
-        }
-        /* Lucida Sans Family */
-        jreFontMap.put("lucida sans0",   "LucidaSansRegular.ttf");
-        jreFontMap.put("lucida sans1",   "LucidaSansDemiBold.ttf");
-        /* Lucida Sans full names (map Bold and DemiBold to same file) */
-        jreFontMap.put("lucida sans regular0", "LucidaSansRegular.ttf");
-        jreFontMap.put("lucida sans regular1", "LucidaSansDemiBold.ttf");
-        jreFontMap.put("lucida sans bold1", "LucidaSansDemiBold.ttf");
-        jreFontMap.put("lucida sans demibold1", "LucidaSansDemiBold.ttf");
-
-        /* Lucida Sans Typewriter Family */
-        jreFontMap.put("lucida sans typewriter0",
-                       "LucidaTypewriterRegular.ttf");
-        jreFontMap.put("lucida sans typewriter1", "LucidaTypewriterBold.ttf");
-        /* Typewriter full names (map Bold and DemiBold to same file) */
-        jreFontMap.put("lucida sans typewriter regular0",
-                       "LucidaTypewriter.ttf");
-        jreFontMap.put("lucida sans typewriter regular1",
-                       "LucidaTypewriterBold.ttf");
-        jreFontMap.put("lucida sans typewriter bold1",
-                       "LucidaTypewriterBold.ttf");
-        jreFontMap.put("lucida sans typewriter demibold1",
-                       "LucidaTypewriterBold.ttf");
-
-        /* Lucida Bright Family */
-        jreFontMap.put("lucida bright0", "LucidaBrightRegular.ttf");
-        jreFontMap.put("lucida bright1", "LucidaBrightDemiBold.ttf");
-        jreFontMap.put("lucida bright2", "LucidaBrightItalic.ttf");
-        jreFontMap.put("lucida bright3", "LucidaBrightDemiItalic.ttf");
-        /* Lucida Bright full names (map Bold and DemiBold to same file) */
-        jreFontMap.put("lucida bright regular0", "LucidaBrightRegular.ttf");
-        jreFontMap.put("lucida bright regular1", "LucidaBrightDemiBold.ttf");
-        jreFontMap.put("lucida bright regular2", "LucidaBrightItalic.ttf");
-        jreFontMap.put("lucida bright regular3", "LucidaBrightDemiItalic.ttf");
-        jreFontMap.put("lucida bright bold1", "LucidaBrightDemiBold.ttf");
-        jreFontMap.put("lucida bright bold3", "LucidaBrightDemiItalic.ttf");
-        jreFontMap.put("lucida bright demibold1", "LucidaBrightDemiBold.ttf");
-        jreFontMap.put("lucida bright demibold3","LucidaBrightDemiItalic.ttf");
-        jreFontMap.put("lucida bright italic2", "LucidaBrightItalic.ttf");
-        jreFontMap.put("lucida bright italic3", "LucidaBrightDemiItalic.ttf");
-        jreFontMap.put("lucida bright bold italic3",
-                       "LucidaBrightDemiItalic.ttf");
-        jreFontMap.put("lucida bright demibold italic3",
-                       "LucidaBrightDemiItalic.ttf");
-        for (String ffile : jreFontMap.values()) {
-            jreLucidaFontFiles.add(ffile);
-        }
-    }
-
-    static {
-
-        if (SunGraphicsEnvironment.debugFonts) {
-            logger = Logger.getLogger("sun.java2d", null);
-            logging = logger.getLevel() != Level.OFF;
-        }
-        initJREFontMap();
+public interface FontManager {
 
-        java.security.AccessController.doPrivileged(
-                                    new java.security.PrivilegedAction() {
-           public Object run() {
-               FontManagerNativeLibrary.load();
-
-               // JNI throws an exception if a class/method/field is not found,
-               // so there's no need to do anything explicit here.
-               initIDs();
-
-               switch (StrikeCache.nativeAddressSize) {
-               case 8: longAddresses = true; break;
-               case 4: longAddresses = false; break;
-               default: throw new RuntimeException("Unexpected address size");
-               }
-
-               osName = System.getProperty("os.name", "unknownOS");
-               isSolaris = osName.startsWith("SunOS");
-
-               String t2kStr = System.getProperty("sun.java2d.font.scaler");
-               if (t2kStr != null) {
-                   useT2K = "t2k".equals(t2kStr);
-               }
-               if (isSolaris) {
-                   String version = System.getProperty("os.version", "unk");
-                   isSolaris8 = version.equals("5.8");
-                   isSolaris9 = version.equals("5.9");
-               } else {
-                   isWindows = osName.startsWith("Windows");
-                   if (isWindows) {
-                       String eudcFile =
-                           SunGraphicsEnvironment.eudcFontFileName;
-                       if (eudcFile != null) {
-                           try {
-                               eudcFont = new TrueTypeFont(eudcFile, null, 0,
-                                                           true);
-                           } catch (FontFormatException e) {
-                           }
-                       }
-                       String prop =
-                           System.getProperty("java2d.font.usePlatformFont");
-                       if (("true".equals(prop) || getPlatformFontVar())) {
-                           usePlatformFontMetrics = true;
-                           System.out.println("Enabling platform font metrics for win32. This is an unsupported option.");
-                           System.out.println("This yields incorrect composite font metrics as reported by 1.1.x releases.");
-                           System.out.println("It is appropriate only for use by applications which do not use any Java 2");
-                           System.out.println("functionality. This property will be removed in a later release.");
-                       }
-                   }
-               }
-               return null;
-           }
-        });
-    }
-
-    /* Initialise ptrs used by JNI methods */
-    private static native void initIDs();
-
-    public static void addToPool(FileFont font) {
-
-        FileFont fontFileToClose = null;
-        int freeSlot = -1;
-
-        synchronized (fontFileCache) {
-            /* Avoid duplicate entries in the pool, and don't close() it,
-             * since this method is called only from within open().
-             * Seeing a duplicate is most likely to happen if the thread
-             * was interrupted during a read, forcing perhaps repeated
-             * close and open calls and it eventually it ends up pointing
-             * at the same slot.
-             */
-            for (int i=0;i<CHANNELPOOLSIZE;i++) {
-                if (fontFileCache[i] == font) {
-                    return;
-                }
-                if (fontFileCache[i] == null && freeSlot < 0) {
-                    freeSlot = i;
-                }
-            }
-            if (freeSlot >= 0) {
-                fontFileCache[freeSlot] = font;
-                return;
-            } else {
-                /* replace with new font. */
-                fontFileToClose = fontFileCache[lastPoolIndex];
-                fontFileCache[lastPoolIndex] = font;
-                /* lastPoolIndex is updated so that the least recently opened
-                 * file will be closed next.
-                 */
-                lastPoolIndex = (lastPoolIndex+1) % CHANNELPOOLSIZE;
-            }
-        }
-        /* Need to close the font file outside of the synchronized block,
-         * since its possible some other thread is in an open() call on
-         * this font file, and could be holding its lock and the pool lock.
-         * Releasing the pool lock allows that thread to continue, so it can
-         * then release the lock on this font, allowing the close() call
-         * below to proceed.
-         * Also, calling close() is safe because any other thread using
-         * the font we are closing() synchronizes all reading, so we
-         * will not close the file while its in use.
-         */
-        if (fontFileToClose != null) {
-            fontFileToClose.close();
-        }
-    }
-
-    /*
-     * In the normal course of events, the pool of fonts can remain open
-     * ready for quick access to their contents. The pool is sized so
-     * that it is not an excessive consumer of system resources whilst
-     * facilitating performance by providing ready access to the most
-     * recently used set of font files.
-     * The only reason to call removeFromPool(..) is for a Font that
-     * you want to to have GC'd. Currently this would apply only to fonts
-     * created with java.awt.Font.createFont(..).
-     * In this case, the caller is expected to have arranged for the file
-     * to be closed.
-     * REMIND: consider how to know when a createFont created font should
-     * be closed.
-     */
-    public static void removeFromPool(FileFont font) {
-        synchronized (fontFileCache) {
-            for (int i=0; i<CHANNELPOOLSIZE; i++) {
-                if (fontFileCache[i] == font) {
-                    fontFileCache[i] = null;
-                }
-            }
-        }
-    }
-
-    /**
-     * This method is provided for internal and exclusive use by Swing.
-     *
-     * @param font representing a physical font.
-     * @return true if the underlying font is a TrueType or OpenType font
-     * that claims to support the Microsoft Windows encoding corresponding to
-     * the default file.encoding property of this JRE instance.
-     * This narrow value is useful for Swing to decide if the font is useful
-     * for the the Windows Look and Feel, or, if a  composite font should be
-     * used instead.
-     * The information used to make the decision is obtained from
-     * the ulCodePageRange fields in the font.
-     * A caller can use isLogicalFont(Font) in this class before calling
-     * this method and would not need to call this method if that
-     * returns true.
-     */
-//     static boolean fontSupportsDefaultEncoding(Font font) {
-//      String encoding =
-//          (String) java.security.AccessController.doPrivileged(
-//                new sun.security.action.GetPropertyAction("file.encoding"));
-
-//      if (encoding == null || font == null) {
-//          return false;
-//      }
-
-//      encoding = encoding.toLowerCase(Locale.ENGLISH);
-
-//      return FontManager.fontSupportsEncoding(font, encoding);
-//     }
-
-    /* Revise the implementation to in fact mean "font is a composite font.
-     * This ensures that Swing components will always benefit from the
-     * fall back fonts
-     */
-    public static boolean fontSupportsDefaultEncoding(Font font) {
-        return getFont2D(font) instanceof CompositeFont;
-    }
+    // These constants are used in findFont().
+    public static final int NO_FALLBACK = 0;
+    public static final int PHYSICAL_FALLBACK = 1;
+    public static final int LOGICAL_FALLBACK = 2;
 
     /**
-     * This method is provided for internal and exclusive use by Swing.
-     *
-     * It may be used in conjunction with fontSupportsDefaultEncoding(Font)
-     * In the event that a desktop properties font doesn't directly
-     * support the default encoding, (ie because the host OS supports
-     * adding support for the current locale automatically for native apps),
-     * then Swing calls this method to get a font which  uses the specified
-     * font for the code points it covers, but also supports this locale
-     * just as the standard composite fonts do.
-     * Note: this will over-ride any setting where an application
-     * specifies it prefers locale specific composite fonts.
-     * The logic for this, is that this method is used only where the user or
-     * application has specified that the native L&F be used, and that
-     * we should honour that request to use the same font as native apps use.
-     *
-     * The behaviour of this method is to construct a new composite
-     * Font object that uses the specified physical font as its first
-     * component, and adds all the components of "dialog" as fall back
-     * components.
-     * The method currently assumes that only the size and style attributes
-     * are set on the specified font. It doesn't copy the font transform or
-     * other attributes because they aren't set on a font created from
-     * the desktop. This will need to be fixed if use is broadened.
+     * Register a new font. Please, note that {@code null} is not a valid
+     * argument, and it's caller's responsibility to ensure that, but to keep
+     * compatibility, if {@code null} is passed as an argument, {@code false}
+     * is returned, and no {@link NullPointerException}
+     * is thrown.
      *
-     * Operations such as Font.deriveFont will work properly on the
-     * font returned by this method for deriving a different point size.
-     * Additionally it tries to support a different style by calling
-     * getNewComposite() below. That also supports replacing slot zero
-     * with a different physical font but that is expected to be "rare".
-     * Deriving with a different style is needed because its been shown
-     * that some applications try to do this for Swing FontUIResources.
-     * Also operations such as new Font(font.getFontName(..), Font.PLAIN, 14);
-     * will NOT yield the same result, as the new underlying CompositeFont
-     * cannot be "looked up" in the font registry.
-     * This returns a FontUIResource as that is the Font sub-class needed
-     * by Swing.
-     * Suggested usage is something like :
-     * FontUIResource fuir;
-     * Font desktopFont = getDesktopFont(..);
-     * // NOTE even if fontSupportsDefaultEncoding returns true because
-     * // you get Tahoma and are running in an English locale, you may
-     * // still want to just call getCompositeFontUIResource() anyway
-     * // as only then will you get fallback fonts - eg for CJK.
-     * if (FontManager.fontSupportsDefaultEncoding(desktopFont)) {
-     *   fuir = new FontUIResource(..);
-     * } else {
-     *   fuir = FontManager.getCompositeFontUIResource(desktopFont);
-     * }
-     * return fuir;
-     */
-    public static FontUIResource getCompositeFontUIResource(Font font) {
-
-        FontUIResource fuir =
-            new FontUIResource(font.getName(),font.getStyle(),font.getSize());
-        Font2D font2D = getFont2D(font);
-
-        if (!(font2D instanceof PhysicalFont)) {
-            /* Swing should only be calling this when a font is obtained
-             * from desktop properties, so should generally be a physical font,
-             * an exception might be for names like "MS Serif" which are
-             * automatically mapped to "Serif", so there's no need to do
-             * anything special in that case. But note that suggested usage
-             * is first to call fontSupportsDefaultEncoding(Font) and this
-             * method should not be called if that were to return true.
-             */
-             return fuir;
-        }
-
-        CompositeFont dialog2D =
-          (CompositeFont)findFont2D("dialog", font.getStyle(), NO_FALLBACK);
-        if (dialog2D == null) { /* shouldn't happen */
-            return fuir;
-        }
-        PhysicalFont physicalFont = (PhysicalFont)font2D;
-        CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
-        setFont2D(fuir, compFont.handle);
-        /* marking this as a created font is needed as only created fonts
-         * copy their creator's handles.
-         */
-        setCreatedFont(fuir);
-        return fuir;
-    }
-
-    public static Font2DHandle getNewComposite(String family, int style,
-                                               Font2DHandle handle) {
-
-        if (!(handle.font2D instanceof CompositeFont)) {
-            return handle;
-        }
-
-        CompositeFont oldComp = (CompositeFont)handle.font2D;
-        PhysicalFont oldFont = oldComp.getSlotFont(0);
-
-        if (family == null) {
-            family = oldFont.getFamilyName(null);
-        }
-        if (style == -1) {
-            style = oldComp.getStyle();
-        }
-
-        Font2D newFont = findFont2D(family, style, NO_FALLBACK);
-        if (!(newFont instanceof PhysicalFont)) {
-            newFont = oldFont;
-        }
-        PhysicalFont physicalFont = (PhysicalFont)newFont;
-        CompositeFont dialog2D =
-            (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
-        if (dialog2D == null) { /* shouldn't happen */
-            return handle;
-        }
-        CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
-        Font2DHandle newHandle = new Font2DHandle(compFont);
-        return newHandle;
-    }
-
-    public static native void setFont2D(Font font, Font2DHandle font2DHandle);
-
-    private static native boolean isCreatedFont(Font font);
-    private static native void setCreatedFont(Font font);
-
-    public static void registerCompositeFont(String compositeName,
-                                             String[] componentFileNames,
-                                             String[] componentNames,
-                                             int numMetricsSlots,
-                                             int[] exclusionRanges,
-                                             int[] exclusionMaxIndex,
-                                             boolean defer) {
-
-        CompositeFont cf = new CompositeFont(compositeName,
-                                             componentFileNames,
-                                             componentNames,
-                                             numMetricsSlots,
-                                             exclusionRanges,
-                                             exclusionMaxIndex, defer);
-        addCompositeToFontList(cf, Font2D.FONT_CONFIG_RANK);
-        synchronized (compFonts) {
-            compFonts[maxCompFont++] = cf;
-        }
-    }
-
-    /* This variant is used only when the application specifies
-     * a variant of composite fonts which prefers locale specific or
-     * proportional fonts.
-     */
-    public static void registerCompositeFont(String compositeName,
-                                             String[] componentFileNames,
-                                             String[] componentNames,
-                                             int numMetricsSlots,
-                                             int[] exclusionRanges,
-                                             int[] exclusionMaxIndex,
-                                             boolean defer,
-                                             ConcurrentHashMap<String, Font2D>
-                                             altNameCache) {
-
-        CompositeFont cf = new CompositeFont(compositeName,
-                                             componentFileNames,
-                                             componentNames,
-                                             numMetricsSlots,
-                                             exclusionRanges,
-                                             exclusionMaxIndex, defer);
-        /* if the cache has an existing composite for this case, make
-         * its handle point to this new font.
-         * This ensures that when the altNameCache that is passed in
-         * is the global mapNameCache - ie we are running as an application -
-         * that any statically created java.awt.Font instances which already
-         * have a Font2D instance will have that re-directed to the new Font
-         * on subsequent uses. This is particularly important for "the"
-         * default font instance, or similar cases where a UI toolkit (eg
-         * Swing) has cached a java.awt.Font. Note that if Swing is using
-         * a custom composite APIs which update the standard composites have
-         * no effect - this is typically the case only when using the Windows
-         * L&F where these APIs would conflict with that L&F anyway.
-         */
-        Font2D oldFont = (Font2D)
-            altNameCache.get(compositeName.toLowerCase(Locale.ENGLISH));
-        if (oldFont instanceof CompositeFont) {
-            oldFont.handle.font2D = cf;
-        }
-        altNameCache.put(compositeName.toLowerCase(Locale.ENGLISH), cf);
-    }
-
-    private static void addCompositeToFontList(CompositeFont f, int rank) {
-
-        if (logging) {
-            logger.info("Add to Family "+ f.familyName +
-                        ", Font " + f.fullName + " rank="+rank);
-        }
-        f.setRank(rank);
-        compositeFonts.put(f.fullName, f);
-        fullNameToFont.put(f.fullName.toLowerCase(Locale.ENGLISH), f);
-
-        FontFamily family = FontFamily.getFamily(f.familyName);
-        if (family == null) {
-            family = new FontFamily(f.familyName, true, rank);
-        }
-        family.setFont(f, f.style);
-    }
-
-    /*
-     * Systems may have fonts with the same name.
-     * We want to register only one of such fonts (at least until
-     * such time as there might be APIs which can accommodate > 1).
-     * Rank is 1) font configuration fonts, 2) JRE fonts, 3) OT/TT fonts,
-     * 4) Type1 fonts, 5) native fonts.
+     * As additional note, an implementation should ensure that this font
+     * cannot override existing installed fonts.
      *
-     * If the new font has the same name as the old font, the higher
-     * ranked font gets added, replacing the lower ranked one.
-     * If the fonts are of equal rank, then make a special case of
-     * font configuration rank fonts, which are on closer inspection,
-     * OT/TT fonts such that the larger font is registered. This is
-     * a heuristic since a font may be "larger" in the sense of more
-     * code points, or be a larger "file" because it has more bitmaps.
-     * So it is possible that using filesize may lead to less glyphs, and
-     * using glyphs may lead to lower quality display. Probably number
-     * of glyphs is the ideal, but filesize is information we already
-     * have and is good enough for the known cases.
-     * Also don't want to register fonts that match JRE font families
-     * but are coming from a source other than the JRE.
-     * This will ensure that we will algorithmically style the JRE
-     * plain font and get the same set of glyphs for all styles.
-     *
-     * Note that this method returns a value
-     * if it returns the same object as its argument that means this
-     * font was newly registered.
-     * If it returns a different object it means this font already exists,
-     * and you should use that one.
-     * If it returns null means this font was not registered and none
-     * in that name is registered. The caller must find a substitute
+     * @param font
+     * @return {@code true} is the font is successfully registered,
+     * {@code false} otherwise.
      */
-    private static PhysicalFont addToFontList(PhysicalFont f, int rank) {
-
-        String fontName = f.fullName;
-        String familyName = f.familyName;
-        if (fontName == null || "".equals(fontName)) {
-            return null;
-        }
-        if (compositeFonts.containsKey(fontName)) {
-            /* Don't register any font that has the same name as a composite */
-            return null;
-        }
-        f.setRank(rank);
-        if (!physicalFonts.containsKey(fontName)) {
-            if (logging) {
-                logger.info("Add to Family "+familyName +
-                            ", Font " + fontName + " rank="+rank);
-            }
-            physicalFonts.put(fontName, f);
-            FontFamily family = FontFamily.getFamily(familyName);
-            if (family == null) {
-                family = new FontFamily(familyName, false, rank);
-                family.setFont(f, f.style);
-            } else if (family.getRank() >= rank) {
-                family.setFont(f, f.style);
-            }
-            fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH), f);
-            return f;
-        } else {
-            PhysicalFont newFont = f;
-            PhysicalFont oldFont = physicalFonts.get(fontName);
-            if (oldFont == null) {
-                return null;
-            }
-            /* If the new font is of an equal or higher rank, it is a
-             * candidate to replace the current one, subject to further tests.
-             */
-            if (oldFont.getRank() >= rank) {
-
-                /* All fonts initialise their mapper when first
-                 * used. If the mapper is non-null then this font
-                 * has been accessed at least once. In that case
-                 * do not replace it. This may be overly stringent,
-                 * but its probably better not to replace a font that
-                 * someone is already using without a compelling reason.
-                 * Additionally the primary case where it is known
-                 * this behaviour is important is in certain composite
-                 * fonts, and since all the components of a given
-                 * composite are usually initialised together this
-                 * is unlikely. For this to be a problem, there would
-                 * have to be a case where two different composites used
-                 * different versions of the same-named font, and they
-                 * were initialised and used at separate times.
-                 * In that case we continue on and allow the new font to
-                 * be installed, but replaceFont will continue to allow
-                 * the original font to be used in Composite fonts.
-                 */
-                if (oldFont.mapper != null && rank > Font2D.FONT_CONFIG_RANK) {
-                    return oldFont;
-                }
-
-                /* Normally we require a higher rank to replace a font,
-                 * but as a special case, if the two fonts are the same rank,
-                 * and are instances of TrueTypeFont we want the
-                 * more complete (larger) one.
-                 */
-                if (oldFont.getRank() == rank) {
-                    if (oldFont instanceof TrueTypeFont &&
-                        newFont instanceof TrueTypeFont) {
-                        TrueTypeFont oldTTFont = (TrueTypeFont)oldFont;
-                        TrueTypeFont newTTFont = (TrueTypeFont)newFont;
-                        if (oldTTFont.fileSize >= newTTFont.fileSize) {
-                            return oldFont;
-                        }
-                    } else {
-                        return oldFont;
-                    }
-                }
-                /* Don't replace ever JRE fonts.
-                 * This test is in case a font configuration references
-                 * a Lucida font, which has been mapped to a Lucida
-                 * from the host O/S. The assumption here is that any
-                 * such font configuration file is probably incorrect, or
-                 * the host O/S version is for the use of AWT.
-                 * In other words if we reach here, there's a possible
-                 * problem with our choice of font configuration fonts.
-                 */
-                if (oldFont.platName.startsWith(
-                           SunGraphicsEnvironment.jreFontDirName)) {
-                    if (logging) {
-                        logger.warning("Unexpected attempt to replace a JRE " +
-                                       " font " + fontName + " from " +
-                                        oldFont.platName +
-                                       " with " + newFont.platName);
-                    }
-                    return oldFont;
-                }
-
-                if (logging) {
-                    logger.info("Replace in Family " + familyName +
-                                ",Font " + fontName + " new rank="+rank +
-                                " from " + oldFont.platName +
-                                " with " + newFont.platName);
-                }
-                replaceFont(oldFont, newFont);
-                physicalFonts.put(fontName, newFont);
-                fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH),
-                                   newFont);
-
-                FontFamily family = FontFamily.getFamily(familyName);
-                if (family == null) {
-                    family = new FontFamily(familyName, false, rank);
-                    family.setFont(newFont, newFont.style);
-                } else if (family.getRank() >= rank) {
-                    family.setFont(newFont, newFont.style);
-                }
-                return newFont;
-            } else {
-                return oldFont;
-            }
-        }
-    }
-
-    public static Font2D[] getRegisteredFonts() {
-        PhysicalFont[] physFonts = getPhysicalFonts();
-        int mcf = maxCompFont; /* for MT-safety */
-        Font2D[] regFonts = new Font2D[physFonts.length+mcf];
-        System.arraycopy(compFonts, 0, regFonts, 0, mcf);
-        System.arraycopy(physFonts, 0, regFonts, mcf, physFonts.length);
-        return regFonts;
-    }
-
-    public static PhysicalFont[] getPhysicalFonts() {
-        return physicalFonts.values().toArray(new PhysicalFont[0]);
-    }
-
-
-    /* The class FontRegistrationInfo is used when a client says not
-     * to register a font immediately. This mechanism is used to defer
-     * initialisation of all the components of composite fonts at JRE
-     * start-up. The CompositeFont class is "aware" of this and when it
-     * is first used it asks for the registration of its components.
-     * Also in the event that any physical font is requested the
-     * deferred fonts are initialised before triggering a search of the
-     * system.
-     * Two maps are used. One to track the deferred fonts. The
-     * other to track the fonts that have been initialised through this
-     * mechanism.
-     */
-
-    private static final class FontRegistrationInfo {
-
-        String fontFilePath;
-        String[] nativeNames;
-        int fontFormat;
-        boolean javaRasterizer;
-        int fontRank;
-
-        FontRegistrationInfo(String fontPath, String[] names, int format,
-                             boolean useJavaRasterizer, int rank) {
-            this.fontFilePath = fontPath;
-            this.nativeNames = names;
-            this.fontFormat = format;
-            this.javaRasterizer = useJavaRasterizer;
-            this.fontRank = rank;
-        }
-    }
-
-    private static final ConcurrentHashMap<String, FontRegistrationInfo>
-        deferredFontFiles =
-        new ConcurrentHashMap<String, FontRegistrationInfo>();
-    private static final ConcurrentHashMap<String, Font2DHandle>
-        initialisedFonts = new ConcurrentHashMap<String, Font2DHandle>();
-
-    /* Remind: possibly enhance initialiseDeferredFonts() to be
-     * optionally given a name and a style and it could stop when it
-     * finds that font - but this would be a problem if two of the
-     * fonts reference the same font face name (cf the Solaris
-     * euro fonts).
-     */
-    public static synchronized void initialiseDeferredFonts() {
-        for (String fileName : deferredFontFiles.keySet()) {
-            initialiseDeferredFont(fileName);
-        }
-    }
-
-    public static synchronized void registerDeferredJREFonts(String jreDir) {
-        for (FontRegistrationInfo info : deferredFontFiles.values()) {
-            if (info.fontFilePath != null &&
-                info.fontFilePath.startsWith(jreDir)) {
-                initialiseDeferredFont(info.fontFilePath);
-            }
-        }
-    }
-
-    /* We keep a map of the files which contain the Lucida fonts so we
-     * don't need to search for them.
-     * But since we know what fonts these files contain, we can also avoid
-     * opening them to look for a font name we don't recognise - see
-     * findDeferredFont().
-     * For typical cases where the font isn't a JRE one the overhead is
-     * this method call, HashMap.get() and null reference test, then
-     * a boolean test of noOtherJREFontFiles.
-     */
-    private static PhysicalFont findJREDeferredFont(String name, int style) {
-
-        PhysicalFont physicalFont;
-        String nameAndStyle = name.toLowerCase(Locale.ENGLISH) + style;
-        String fileName = jreFontMap.get(nameAndStyle);
-        if (fileName != null) {
-            initSGEnv(); /* ensure jreFontDirName is initialised */
-            fileName = SunGraphicsEnvironment.jreFontDirName +
-                File.separator + fileName;
-            if (deferredFontFiles.get(fileName) != null) {
-                physicalFont = initialiseDeferredFont(fileName);
-                if (physicalFont != null &&
-                    (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
-                     physicalFont.getFamilyName(null).equalsIgnoreCase(name))
-                    && physicalFont.style == style) {
-                    return physicalFont;
-                }
-            }
-        }
-
-        /* Iterate over the deferred font files looking for any in the
-         * jre directory that we didn't recognise, open each of these.
-         * In almost all installations this will quickly fall through
-         * because only the Lucidas will be present and jreOtherFontFiles
-         * will be empty.
-         * noOtherJREFontFiles is used so we can skip this block as soon
-         * as its determined that its not needed - almost always after the
-         * very first time through.
-         */
-        if (noOtherJREFontFiles) {
-            return null;
-        }
-        synchronized (jreLucidaFontFiles) {
-            if (jreOtherFontFiles == null) {
-                HashSet<String> otherFontFiles = new HashSet<String>();
-                for (String deferredFile : deferredFontFiles.keySet()) {
-                    File file = new File(deferredFile);
-                    String dir = file.getParent();
-                    String fname = file.getName();
-                    /* skip names which aren't absolute, aren't in the JRE
-                     * directory, or are known Lucida fonts.
-                     */
-                    if (dir == null ||
-                        !dir.equals(SunGraphicsEnvironment.jreFontDirName) ||
-                        jreLucidaFontFiles.contains(fname)) {
-                        continue;
-                    }
-                    otherFontFiles.add(deferredFile);
-                }
-                jreOtherFontFiles = otherFontFiles.toArray(STR_ARRAY);
-                if (jreOtherFontFiles.length == 0) {
-                    noOtherJREFontFiles = true;
-                }
-            }
+    public boolean registerFont(Font font);
 
-            for (int i=0; i<jreOtherFontFiles.length;i++) {
-                fileName = jreOtherFontFiles[i];
-                if (fileName == null) {
-                    continue;
-                }
-                jreOtherFontFiles[i] = null;
-                physicalFont = initialiseDeferredFont(fileName);
-                if (physicalFont != null &&
-                    (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
-                     physicalFont.getFamilyName(null).equalsIgnoreCase(name))
-                    && physicalFont.style == style) {
-                    return physicalFont;
-                }
-            }
-        }
-
-        return null;
-    }
-
-    /* This skips JRE installed fonts. */
-    private static PhysicalFont findOtherDeferredFont(String name, int style) {
-        for (String fileName : deferredFontFiles.keySet()) {
-            File file = new File(fileName);
-            String dir = file.getParent();
-            String fname = file.getName();
-            if (dir != null &&
-                dir.equals(SunGraphicsEnvironment.jreFontDirName) &&
-                jreLucidaFontFiles.contains(fname)) {
-                continue;
-            }
-            PhysicalFont physicalFont = initialiseDeferredFont(fileName);
-            if (physicalFont != null &&
-                (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
-                physicalFont.getFamilyName(null).equalsIgnoreCase(name)) &&
-                physicalFont.style == style) {
-                return physicalFont;
-            }
-        }
-        return null;
-    }
-
-    private static PhysicalFont findDeferredFont(String name, int style) {
-
-        PhysicalFont physicalFont = findJREDeferredFont(name, style);
-        if (physicalFont != null) {
-            return physicalFont;
-        } else {
-            return findOtherDeferredFont(name, style);
-        }
-    }
-
-    public static void registerDeferredFont(String fileNameKey,
-                                            String fullPathName,
-                                            String[] nativeNames,
-                                            int fontFormat,
-                                            boolean useJavaRasterizer,
-                                            int fontRank) {
-        FontRegistrationInfo regInfo =
-            new FontRegistrationInfo(fullPathName, nativeNames, fontFormat,
-                                     useJavaRasterizer, fontRank);
-        deferredFontFiles.put(fileNameKey, regInfo);
-    }
-
-
-    public static synchronized
-         PhysicalFont initialiseDeferredFont(String fileNameKey) {
-
-        if (fileNameKey == null) {
-            return null;
-        }
-        if (logging) {
-            logger.info("Opening deferred font file " + fileNameKey);
-        }
-
-        PhysicalFont physicalFont;
-        FontRegistrationInfo regInfo = deferredFontFiles.get(fileNameKey);
-        if (regInfo != null) {
-            deferredFontFiles.remove(fileNameKey);
-            physicalFont = registerFontFile(regInfo.fontFilePath,
-                                            regInfo.nativeNames,
-                                            regInfo.fontFormat,
-                                            regInfo.javaRasterizer,
-                                            regInfo.fontRank);
-
-
-            if (physicalFont != null) {
-                /* Store the handle, so that if a font is bad, we
-                 * retrieve the substituted font.
-                 */
-                initialisedFonts.put(fileNameKey, physicalFont.handle);
-            } else {
-                initialisedFonts.put(fileNameKey,
-                                     getDefaultPhysicalFont().handle);
-            }
-        } else {
-            Font2DHandle handle = initialisedFonts.get(fileNameKey);
-            if (handle == null) {
-                /* Probably shouldn't happen, but just in case */
-                physicalFont = getDefaultPhysicalFont();
-            } else {
-                physicalFont = (PhysicalFont)(handle.font2D);
-            }
-        }
-        return physicalFont;
-    }
-
-    /* Note that the return value from this method is not always
-     * derived from this file, and may be null. See addToFontList for
-     * some explanation of this.
-     */
-    public static PhysicalFont registerFontFile(String fileName,
-                                                String[] nativeNames,
-                                                int fontFormat,
-                                                boolean useJavaRasterizer,
-                                                int fontRank) {
-
-        PhysicalFont regFont = registeredFontFiles.get(fileName);
-        if (regFont != null) {
-            return regFont;
-        }
-
-        PhysicalFont physicalFont = null;
-        try {
-            String name;
-
-            switch (fontFormat) {
-
-            case FontManager.FONTFORMAT_TRUETYPE:
-                int fn = 0;
-                TrueTypeFont ttf;
-                do {
-                    ttf = new TrueTypeFont(fileName, nativeNames, fn++,
-                                           useJavaRasterizer);
-                    PhysicalFont pf = addToFontList(ttf, fontRank);
-                    if (physicalFont == null) {
-                        physicalFont = pf;
-                    }
-                }
-                while (fn < ttf.getFontCount());
-                break;
-
-            case FontManager.FONTFORMAT_TYPE1:
-                Type1Font t1f = new Type1Font(fileName, nativeNames);
-                physicalFont = addToFontList(t1f, fontRank);
-                break;
-
-            case FontManager.FONTFORMAT_NATIVE:
-                NativeFont nf = new NativeFont(fileName, false);
-                physicalFont = addToFontList(nf, fontRank);
-            default:
-
-            }
-            if (logging) {
-                logger.info("Registered file " + fileName + " as font " +
-                            physicalFont + " rank="  + fontRank);
-            }
-        } catch (FontFormatException ffe) {
-            if (logging) {
-                logger.warning("Unusable font: " +
-                               fileName + " " + ffe.toString());
-            }
-        }
-        if (physicalFont != null &&
-            fontFormat != FontManager.FONTFORMAT_NATIVE) {
-            registeredFontFiles.put(fileName, physicalFont);
-        }
-        return physicalFont;
-    }
-
-    public static void registerFonts(String[] fileNames,
-                                     String[][] nativeNames,
-                                     int fontCount,
-                                     int fontFormat,
-                                     boolean useJavaRasterizer,
-                                     int fontRank, boolean defer) {
-
-        for (int i=0; i < fontCount; i++) {
-            if (defer) {
-                registerDeferredFont(fileNames[i],fileNames[i], nativeNames[i],
-                                     fontFormat, useJavaRasterizer, fontRank);
-            } else {
-                registerFontFile(fileNames[i], nativeNames[i],
-                                 fontFormat, useJavaRasterizer, fontRank);
-            }
-        }
-    }
-
-    /*
-     * This is the Physical font used when some other font on the system
-     * can't be located. There has to be at least one font or the font
-     * system is not useful and the graphics environment cannot sustain
-     * the Java platform.
-     */
-    public static PhysicalFont getDefaultPhysicalFont() {
-        if (defaultPhysicalFont == null) {
-            /* findFont2D will load all fonts before giving up the search.
-             * If the JRE Lucida isn't found (eg because the JRE fonts
-             * directory is missing), it could find another version of Lucida
-             * from the host system. This is OK because at that point we are
-             * trying to gracefully handle/recover from a system
-             * misconfiguration and this is probably a reasonable substitution.
-             */
-            defaultPhysicalFont = (PhysicalFont)
-                findFont2D("Lucida Sans Regular", Font.PLAIN, NO_FALLBACK);
-            if (defaultPhysicalFont == null) {
-                defaultPhysicalFont = (PhysicalFont)
-                    findFont2D("Arial", Font.PLAIN, NO_FALLBACK);
-            }
-            if (defaultPhysicalFont == null) {
-                /* Because of the findFont2D call above, if we reach here, we
-                 * know all fonts have already been loaded, just accept any
-                 * match at this point. If this fails we are in real trouble
-                 * and I don't know how to recover from there being absolutely
-                 * no fonts anywhere on the system.
-                 */
-                Iterator i = physicalFonts.values().iterator();
-                if (i.hasNext()) {
-                    defaultPhysicalFont = (PhysicalFont)i.next();
-                } else {
-                    throw new Error("Probable fatal error:No fonts found.");
-                }
-            }
-        }
-        return defaultPhysicalFont;
-    }
-
-    public static CompositeFont getDefaultLogicalFont(int style) {
-        return (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
-    }
-
-    /*
-     * return String representation of style prepended with "."
-     * This is useful for performance to avoid unnecessary string operations.
-     */
-    private static String dotStyleStr(int num) {
-        switch(num){
-          case Font.BOLD:
-            return ".bold";
-          case Font.ITALIC:
-            return ".italic";
-          case Font.ITALIC | Font.BOLD:
-            return ".bolditalic";
-          default:
-            return ".plain";
-        }
-    }
-
-    static void initSGEnv() {
-        if (sgEnv == null) {
-            GraphicsEnvironment ge =
-                GraphicsEnvironment.getLocalGraphicsEnvironment();
-            if (ge instanceof HeadlessGraphicsEnvironment) {
-                HeadlessGraphicsEnvironment hgEnv =
-                    (HeadlessGraphicsEnvironment)ge;
-                sgEnv = (SunGraphicsEnvironment)
-                    hgEnv.getSunGraphicsEnvironment();
-            } else {
-                sgEnv = (SunGraphicsEnvironment)ge;
-            }
-        }
-    }
-
-    /* This is implemented only on windows and is called from code that
-     * executes only on windows. This isn't pretty but its not a precedent
-     * in this file. This very probably should be cleaned up at some point.
-     */
-    private static native void
-        populateFontFileNameMap(HashMap<String,String> fontToFileMap,
-                                HashMap<String,String> fontToFamilyNameMap,
-                                HashMap<String,ArrayList<String>>
-                                familyToFontListMap,
-                                Locale locale);
-
-    /* Obtained from Platform APIs (windows only)
-     * Map from lower-case font full name to basename of font file.
-     * Eg "arial bold" -> ARIALBD.TTF.
-     * For TTC files, there is a mapping for each font in the file.
-     */
-    private static HashMap<String,String> fontToFileMap = null;
-
-    /* Obtained from Platform APIs (windows only)
-     * Map from lower-case font full name to the name of its font family
-     * Eg "arial bold" -> "Arial"
-     */
-    private static HashMap<String,String> fontToFamilyNameMap = null;
-
-    /* Obtained from Platform APIs (windows only)
-     * Map from a lower-case family name to a list of full names of
-     * the member fonts, eg:
-     * "arial" -> ["Arial", "Arial Bold", "Arial Italic","Arial Bold Italic"]
-     */
-    private static HashMap<String,ArrayList<String>> familyToFontListMap= null;
-
-    /* The directories which contain platform fonts */
-    private static String[] pathDirs = null;
-
-    private static boolean haveCheckedUnreferencedFontFiles;
-
-    private static String[] getFontFilesFromPath(boolean noType1) {
-        final FilenameFilter filter;
-        if (noType1) {
-            filter = SunGraphicsEnvironment.ttFilter;
-        } else {
-            filter = new SunGraphicsEnvironment.TTorT1Filter();
-        }
-        return (String[])AccessController.doPrivileged(new PrivilegedAction() {
-            public Object run() {
-                if (pathDirs.length == 1) {
-                    File dir = new File(pathDirs[0]);
-                    String[] files = dir.list(filter);
-                    if (files == null) {
-                        return new String[0];
-                    }
-                    for (int f=0; f<files.length; f++) {
-                        files[f] = files[f].toLowerCase();
-                    }
-                    return files;
-                } else {
-                    ArrayList<String> fileList = new ArrayList<String>();
-                    for (int i = 0; i< pathDirs.length; i++) {
-                        File dir = new File(pathDirs[i]);
-                        String[] files = dir.list(filter);
-                        if (files == null) {
-                            continue;
-                        }
-                        for (int f=0; f<files.length ; f++) {
-                            fileList.add(files[f].toLowerCase());
-                        }
-                    }
-                    return fileList.toArray(STR_ARRAY);
-                }
-            }
-        });
-    }
-
-    /* This is needed since some windows registry names don't match
-     * the font names.
-     * - UPC styled font names have a double space, but the
-     * registry entry mapping to a file doesn't.
-     * - Marlett is in a hidden file not listed in the registry
-     * - The registry advertises that the file david.ttf contains a
-     * font with the full name "David Regular" when in fact its
-     * just "David".
-     * Directly fix up these known cases as this is faster.
-     * If a font which doesn't match these known cases has no file,
-     * it may be a font that has been temporarily added to the known set
-     * or it may be an installed font with a missing registry entry.
-     * Installed fonts are those in the windows font directories.
-     * Make a best effort attempt to locate these.
-     * We obtain the list of TrueType fonts in these directories and
-     * filter out all the font files we already know about from the registry.
-     * What remains may be "bad" fonts, duplicate fonts, or perhaps the
-     * missing font(s) we are looking for.
-     * Open each of these files to find out.
-     */
-    private static void resolveWindowsFonts() {
-
-        ArrayList<String> unmappedFontNames = null;
-        for (String font : fontToFamilyNameMap.keySet()) {
-            String file = fontToFileMap.get(font);
-            if (file == null) {
-                if (font.indexOf("  ") > 0) {
-                    String newName = font.replaceFirst("  ", " ");
-                    file = fontToFileMap.get(newName);
-                    /* If this name exists and isn't for a valid name
-                     * replace the mapping to the file with this font
-                     */
-                    if (file != null &&
-                        !fontToFamilyNameMap.containsKey(newName)) {
-                        fontToFileMap.remove(newName);
-                        fontToFileMap.put(font, file);
-                    }
-                } else if (font.equals("marlett")) {
-                    fontToFileMap.put(font, "marlett.ttf");
-                } else if (font.equals("david")) {
-                    file = fontToFileMap.get("david regular");
-                    if (file != null) {
-                        fontToFileMap.remove("david regular");
-                        fontToFileMap.put("david", file);
-                    }
-                } else {
-                    if (unmappedFontNames == null) {
-                        unmappedFontNames = new ArrayList<String>();
-                    }
-                    unmappedFontNames.add(font);
-                }
-            }
-        }
-
-        if (unmappedFontNames != null) {
-            HashSet<String> unmappedFontFiles = new HashSet<String>();
-
-            /* Every font key in fontToFileMap ought to correspond to a
-             * font key in fontToFamilyNameMap. Entries that don't seem
-             * to correspond are likely fonts that were named differently
-             * by GDI than in the registry. One known cause of this is when
-             * Windows has had its regional settings changed so that from
-             * GDI we get a localised (eg Chinese or Japanese) name for the
-             * font, but the registry retains the English version of the name
-             * that corresponded to the "install" locale for windows.
-             * Since we are in this code block because there are unmapped
-             * font names, we can look to find unused font->file mappings
-             * and then open the files to read the names. We don't generally
-             * want to open font files, as its a performance hit, but this
-             * occurs only for a small number of fonts on specific system
-             * configs - ie is believed that a "true" Japanese windows would
-             * have JA names in the registry too.
-             * Clone fontToFileMap and remove from the clone all keys which
-             * match a fontToFamilyNameMap key. What remains maps to the
-             * files we want to open to find the fonts GDI returned.
-             * A font in such a file is added to the fontToFileMap after
-             * checking its one of the unmappedFontNames we are looking for.
-             * The original name that didn't map is removed from fontToFileMap
-             * so essentially this "fixes up" fontToFileMap to use the same
-             * name as GDI.
-             * Also note that typically the fonts for which this occurs in
-             * CJK locales are TTC fonts and not all fonts in a TTC may have
-             * localised names. Eg MSGOTHIC.TTC contains 3 fonts and one of
-             * them "MS UI Gothic" has no JA name whereas the other two do.
-             * So not every font in these files is unmapped or new.
-             */
-            HashMap<String,String> ffmapCopy =
-                (HashMap<String,String>)(fontToFileMap.clone());
-            for (String key : fontToFamilyNameMap.keySet()) {
-                ffmapCopy.remove(key);
-            }
-            for (String key : ffmapCopy.keySet()) {
-                unmappedFontFiles.add(ffmapCopy.get(key));
-                fontToFileMap.remove(key);
-            }
-
-            resolveFontFiles(unmappedFontFiles, unmappedFontNames);
-
-            /* If there are still unmapped font names, this means there's
-             * something that wasn't in the registry. We need to get all
-             * the font files directly and look at the ones that weren't
-             * found in the registry.
-             */
-            if (unmappedFontNames.size() > 0) {
-
-                /* getFontFilesFromPath() returns all lower case names.
-                 * To compare we also need lower case
-                 * versions of the names from the registry.
-                 */
-                ArrayList<String> registryFiles = new ArrayList<String>();
-
-                for (String regFile : fontToFileMap.values()) {
-                    registryFiles.add(regFile.toLowerCase());
-                }
-                /* We don't look for Type1 files here as windows will
-                 * not enumerate these, so aren't useful in reconciling
-                 * GDI's unmapped files. We do find these later when
-                 * we enumerate all fonts.
-                 */
-                for (String pathFile : getFontFilesFromPath(true)) {
-                    if (!registryFiles.contains(pathFile)) {
-                        unmappedFontFiles.add(pathFile);
-                    }
-                }
-
-                resolveFontFiles(unmappedFontFiles, unmappedFontNames);
-            }
-
-            /* remove from the set of names that will be returned to the
-             * user any fonts that can't be mapped to files.
-             */
-            if (unmappedFontNames.size() > 0) {
-                int sz = unmappedFontNames.size();
-                for (int i=0; i<sz; i++) {
-                    String name = unmappedFontNames.get(i);
-                    String familyName = fontToFamilyNameMap.get(name);
-                    if (familyName != null) {
-                        ArrayList family = familyToFontListMap.get(familyName);
-                        if (family != null) {
-                            if (family.size() <= 1) {
-                                familyToFontListMap.remove(familyName);
-                            }
-                        }
-                    }
-                    fontToFamilyNameMap.remove(name);
-                    if (logging) {
-                        logger.info("No file for font:" + name);
-                    }
-                }
-            }
-        }
-    }
+    public void deRegisterBadFont(Font2D font2D);
 
     /**
-     * In some cases windows may have fonts in the fonts folder that
-     * don't show up in the registry or in the GDI calls to enumerate fonts.
-     * The only way to find these is to list the directory. We invoke this
-     * only in getAllFonts/Families, so most searches for a specific
-     * font that is satisfied by the GDI/registry calls don't take the
-     * additional hit of listing the directory. This hit is small enough
-     * that its not significant in these 'enumerate all the fonts' cases.
-     * The basic approach is to cross-reference the files windows found
-     * with the ones in the directory listing approach, and for each
-     * in the latter list that is missing from the former list, register it.
-     */
-    private static synchronized void checkForUnreferencedFontFiles() {
-        if (haveCheckedUnreferencedFontFiles) {
-            return;
-        }
-        haveCheckedUnreferencedFontFiles = true;
-        if (!isWindows) {
-            return;
-        }
-        /* getFontFilesFromPath() returns all lower case names.
-         * To compare we also need lower case
-         * versions of the names from the registry.
-         */
-        ArrayList<String> registryFiles = new ArrayList<String>();
-        for (String regFile : fontToFileMap.values()) {
-            registryFiles.add(regFile.toLowerCase());
-        }
-
-        /* To avoid any issues with concurrent modification, create
-         * copies of the existing maps, add the new fonts into these
-         * and then replace the references to the old ones with the
-         * new maps. ConcurrentHashmap is another option but its a lot
-         * more changes and with this exception, these maps are intended
-         * to be static.
-         */
-        HashMap<String,String> fontToFileMap2 = null;
-        HashMap<String,String> fontToFamilyNameMap2 = null;
-        HashMap<String,ArrayList<String>> familyToFontListMap2 = null;;
-
-        for (String pathFile : getFontFilesFromPath(false)) {
-            if (!registryFiles.contains(pathFile)) {
-                if (logging) {
-                    logger.info("Found non-registry file : " + pathFile);
-                }
-                PhysicalFont f = registerFontFile(getPathName(pathFile));
-                if (f == null) {
-                    continue;
-                }
-                if (fontToFileMap2 == null) {
-                    fontToFileMap2 = new HashMap<String,String>(fontToFileMap);
-                    fontToFamilyNameMap2 =
-                        new HashMap<String,String>(fontToFamilyNameMap);
-                    familyToFontListMap2 = new
-                        HashMap<String,ArrayList<String>>(familyToFontListMap);
-                }
-                String fontName = f.getFontName(null);
-                String family = f.getFamilyName(null);
-                String familyLC = family.toLowerCase();
-                fontToFamilyNameMap2.put(fontName, family);
-                fontToFileMap2.put(fontName, pathFile);
-                ArrayList<String> fonts = familyToFontListMap2.get(familyLC);
-                if (fonts == null) {
-                    fonts = new ArrayList<String>();
-                } else {
-                    fonts = new ArrayList<String>(fonts);
-                }
-                fonts.add(fontName);
-                familyToFontListMap2.put(familyLC, fonts);
-            }
-        }
-        if (fontToFileMap2 != null) {
-            fontToFileMap = fontToFileMap2;
-            familyToFontListMap = familyToFontListMap2;
-            fontToFamilyNameMap = fontToFamilyNameMap2;
-        }
-    }
-
-    private static void resolveFontFiles(HashSet<String> unmappedFiles,
-                                         ArrayList<String> unmappedFonts) {
-
-        Locale l = SunToolkit.getStartupLocale();
-
-        for (String file : unmappedFiles) {
-            try {
-                int fn = 0;
-                TrueTypeFont ttf;
-                String fullPath = getPathName(file);
-                if (logging) {
-                    logger.info("Trying to resolve file " + fullPath);
-                }
-                do {
-                    ttf = new TrueTypeFont(fullPath, null, fn++, true);
-                    //  prefer the font's locale name.
-                    String fontName = ttf.getFontName(l).toLowerCase();
-                    if (unmappedFonts.contains(fontName)) {
-                        fontToFileMap.put(fontName, file);
-                        unmappedFonts.remove(fontName);
-                        if (logging) {
-                            logger.info("Resolved absent registry entry for " +
-                                        fontName + " located in " + fullPath);
-                        }
-                    }
-                }
-                while (fn < ttf.getFontCount());
-            } catch (Exception e) {
-            }
-        }
-    }
-
-    private static synchronized HashMap<String,String> getFullNameToFileMap() {
-        if (fontToFileMap == null) {
-
-            initSGEnv();
-            pathDirs = sgEnv.getPlatformFontDirs();
-
-            fontToFileMap = new HashMap<String,String>(100);
-            fontToFamilyNameMap = new HashMap<String,String>(100);
-            familyToFontListMap = new HashMap<String,ArrayList<String>>(50);
-            populateFontFileNameMap(fontToFileMap,
-                                    fontToFamilyNameMap,
-                                    familyToFontListMap,
-                                    Locale.ENGLISH);
-            if (isWindows) {
-                resolveWindowsFonts();
-            }
-            if (logging) {
-                logPlatformFontInfo();
-            }
-        }
-        return fontToFileMap;
-    }
-
-    private static void logPlatformFontInfo() {
-        for (int i=0; i< pathDirs.length;i++) {
-            logger.info("fontdir="+pathDirs[i]);
-        }
-        for (String keyName : fontToFileMap.keySet()) {
-            logger.info("font="+keyName+" file="+ fontToFileMap.get(keyName));
-        }
-        for (String keyName : fontToFamilyNameMap.keySet()) {
-            logger.info("font="+keyName+" family="+
-                        fontToFamilyNameMap.get(keyName));
-        }
-        for (String keyName : familyToFontListMap.keySet()) {
-            logger.info("family="+keyName+ " fonts="+
-                        familyToFontListMap.get(keyName));
-        }
-    }
-
-    /* Note this return list excludes logical fonts and JRE fonts */
-    public static String[] getFontNamesFromPlatform() {
-        if (getFullNameToFileMap().size() == 0) {
-            return null;
-        }
-        checkForUnreferencedFontFiles();
-        /* This odd code with TreeMap is used to preserve a historical
-         * behaviour wrt the sorting order .. */
-        ArrayList<String> fontNames = new ArrayList<String>();
-        for (ArrayList<String> a : familyToFontListMap.values()) {
-            for (String s : a) {
-                fontNames.add(s);
-            }
-        }
-        return fontNames.toArray(STR_ARRAY);
-    }
-
-    public static boolean gotFontsFromPlatform() {
-        return getFullNameToFileMap().size() != 0;
-    }
-
-    public static String getFileNameForFontName(String fontName) {
-        String fontNameLC = fontName.toLowerCase(Locale.ENGLISH);
-        return fontToFileMap.get(fontNameLC);
-    }
-
-    private static PhysicalFont registerFontFile(String file) {
-        if (new File(file).isAbsolute() &&
-            !registeredFontFiles.contains(file)) {
-            int fontFormat = FONTFORMAT_NONE;
-            int fontRank = Font2D.UNKNOWN_RANK;
-            if (SunGraphicsEnvironment.ttFilter.accept(null, file)) {
-                fontFormat = FONTFORMAT_TRUETYPE;
-                fontRank = Font2D.TTF_RANK;
-            } else if
-                (SunGraphicsEnvironment.t1Filter.accept(null, file)) {
-                fontFormat = FONTFORMAT_TYPE1;
-                fontRank = Font2D.TYPE1_RANK;
-            }
-            if (fontFormat == FONTFORMAT_NONE) {
-                return null;
-            }
-            return registerFontFile(file, null, fontFormat, false, fontRank);
-        }
-        return null;
-    }
-
-    /* Used to register any font files that are found by platform APIs
-     * that weren't previously found in the standard font locations.
-     * the isAbsolute() check is needed since that's whats stored in the
-     * set, and on windows, the fonts in the system font directory that
-     * are in the fontToFileMap are just basenames. We don't want to try
-     * to register those again, but we do want to register other registry
-     * installed fonts.
-     */
-    public static void registerOtherFontFiles(HashSet registeredFontFiles) {
-        if (getFullNameToFileMap().size() == 0) {
-            return;
-        }
-        for (String file : fontToFileMap.values()) {
-            registerFontFile(file);
-        }
-    }
-
-    public static boolean
-        getFamilyNamesFromPlatform(TreeMap<String,String> familyNames,
-                                   Locale requestedLocale) {
-        if (getFullNameToFileMap().size() == 0) {
-            return false;
-        }
-        checkForUnreferencedFontFiles();
-        for (String name : fontToFamilyNameMap.values()) {
-            familyNames.put(name.toLowerCase(requestedLocale), name);
-        }
-        return true;
-    }
-
-    /* Path may be absolute or a base file name relative to one of
-     * the platform font directories
-     */
-    private static String getPathName(final String s) {
-        File f = new File(s);
-        if (f.isAbsolute()) {
-            return s;
-        } else if (pathDirs.length==1) {
-            return pathDirs[0] + File.separator + s;
-        } else {
-            String path = java.security.AccessController.doPrivileged(
-                 new java.security.PrivilegedAction<String>() {
-                     public String run() {
-                         for (int p=0; p<pathDirs.length; p++) {
-                             File f = new File(pathDirs[p] +File.separator+ s);
-                             if (f.exists()) {
-                                 return f.getAbsolutePath();
-                             }
-                         }
-                         return null;
-                     }
-                });
-            if (path != null) {
-                return path;
-            }
-        }
-        return s; // shouldn't happen, but harmless
-    }
-
-    /* lcName is required to be lower case for use as a key.
-     * lcName may be a full name, or a family name, and style may
-     * be specified in addition to either of these. So be sure to
-     * get the right one. Since an app *could* ask for "Foo Regular"
-     * and later ask for "Foo Italic", if we don't register all the
-     * styles, then logic in findFont2D may try to style the original
-     * so we register the entire family if we get a match here.
-     * This is still a big win because this code is invoked where
-     * otherwise we would register all fonts.
-     * It's also useful for the case where "Foo Bold" was specified with
-     * style Font.ITALIC, as we would want in that case to try to return
-     * "Foo Bold Italic" if it exists, and it is only by locating "Foo Bold"
-     * and opening it that we really "know" it's Bold, and can look for
-     * a font that supports that and the italic style.
-     * The code in here is not overtly windows-specific but in fact it
-     * is unlikely to be useful as is on other platforms. It is maintained
-     * in this shared source file to be close to its sole client and
-     * because so much of the logic is intertwined with the logic in
-     * findFont2D.
-     */
-    private static Font2D findFontFromPlatform(String lcName, int style) {
-        if (getFullNameToFileMap().size() == 0) {
-            return null;
-        }
-
-        ArrayList<String> family = null;
-        String fontFile = null;
-        String familyName = fontToFamilyNameMap.get(lcName);
-        if (familyName != null) {
-            fontFile = fontToFileMap.get(lcName);
-            family = familyToFontListMap.get
-                (familyName.toLowerCase(Locale.ENGLISH));
-        } else {
-            family = familyToFontListMap.get(lcName); // is lcName is a family?
-            if (family != null && family.size() > 0) {
-                String lcFontName = family.get(0).toLowerCase(Locale.ENGLISH);
-                if (lcFontName != null) {
-                    familyName = fontToFamilyNameMap.get(lcFontName);
-                }
-            }
-        }
-        if (family == null || familyName == null) {
-            return null;
-        }
-        String [] fontList = (String[])family.toArray(STR_ARRAY);
-        if (fontList.length == 0) {
-            return null;
-        }
-
-        /* first check that for every font in this family we can find
-         * a font file. The specific reason for doing this is that
-         * in at least one case on Windows a font has the face name "David"
-         * but the registry entry is "David Regular". That is the "unique"
-         * name of the font but in other cases the registry contains the
-         * "full" name. See the specifications of name ids 3 and 4 in the
-         * TrueType 'name' table.
-         * In general this could cause a problem that we fail to register
-         * if we all members of a family that we may end up mapping to
-         * the wrong font member: eg return Bold when Plain is needed.
-         */
-        for (int f=0;f<fontList.length;f++) {
-            String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
-            String fileName = fontToFileMap.get(fontNameLC);
-            if (fileName == null) {
-                if (logging) {
-                    logger.info("Platform lookup : No file for font " +
-                                fontList[f] + " in family " +familyName);
-                }
-                return null;
-            }
-        }
-
-        /* Currently this code only looks for TrueType fonts, so format
-         * and rank can be specified without looking at the filename.
-         */
-        PhysicalFont physicalFont = null;
-        if (fontFile != null) {
-            physicalFont = registerFontFile(getPathName(fontFile), null,
-                                            FONTFORMAT_TRUETYPE, false,
-                                            Font2D.TTF_RANK);
-        }
-        /* Register all fonts in this family. */
-        for (int f=0;f<fontList.length;f++) {
-            String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
-            String fileName = fontToFileMap.get(fontNameLC);
-            if (fontFile != null && fontFile.equals(fileName)) {
-                continue;
-            }
-            /* Currently this code only looks for TrueType fonts, so format
-             * and rank can be specified without looking at the filename.
-             */
-            registerFontFile(getPathName(fileName), null,
-                             FONTFORMAT_TRUETYPE, false, Font2D.TTF_RANK);
-        }
-
-        Font2D font = null;
-        FontFamily fontFamily = FontFamily.getFamily(familyName);
-        /* Handle case where request "MyFont Bold", style=Font.ITALIC */
-        if (physicalFont != null) {
-            style |= physicalFont.style;
-        }
-        if (fontFamily != null) {
-            font = fontFamily.getFont(style);
-            if (font == null) {
-                font = fontFamily.getClosestStyle(style);
-            }
-        }
-        return font;
-    }
-
-    private static ConcurrentHashMap<String, Font2D> fontNameCache =
-        new ConcurrentHashMap<String, Font2D>();
-
-    /*
      * The client supplies a name and a style.
      * The name could be a family name, or a full name.
      * A font may exist with the specified style, or it may
      * exist only in some other style. For non-native fonts the scaler
      * may be able to emulate the required style.
      */
-    public static Font2D findFont2D(String name, int style, int fallback) {
-        String lowerCaseName = name.toLowerCase(Locale.ENGLISH);
-        String mapName = lowerCaseName + dotStyleStr(style);
-        Font2D font;
-
-        /* If preferLocaleFonts() or preferProportionalFonts() has been
-         * called we may be using an alternate set of composite fonts in this
-         * app context. The presence of a pre-built name map indicates whether
-         * this is so, and gives access to the alternate composite for the
-         * name.
-         */
-        if (usingPerAppContextComposites) {
-            ConcurrentHashMap<String, Font2D> altNameCache =
-                (ConcurrentHashMap<String, Font2D>)
-                AppContext.getAppContext().get(CompositeFont.class);
-            if (altNameCache != null) {
-                font = (Font2D)altNameCache.get(mapName);
-            } else {
-                font = null;
-            }
-        } else {
-            font = fontNameCache.get(mapName);
-        }
-        if (font != null) {
-            return font;
-        }
-
-        if (logging) {
-            logger.info("Search for font: " + name);
-        }
-
-        // The check below is just so that the bitmap fonts being set by
-        // AWT and Swing thru the desktop properties do not trigger the
-        // the load fonts case. The two bitmap fonts are now mapped to
-        // appropriate equivalents for serif and sansserif.
-        // Note that the cost of this comparison is only for the first
-        // call until the map is filled.
-        if (isWindows) {
-            if (lowerCaseName.equals("ms sans serif")) {
-                name = "sansserif";
-            } else if (lowerCaseName.equals("ms serif")) {
-                name = "serif";
-            }
-        }
-
-        /* This isn't intended to support a client passing in the
-         * string default, but if a client passes in null for the name
-         * the java.awt.Font class internally substitutes this name.
-         * So we need to recognise it here to prevent a loadFonts
-         * on the unrecognised name. The only potential problem with
-         * this is it would hide any real font called "default"!
-         * But that seems like a potential problem we can ignore for now.
-         */
-        if (lowerCaseName.equals("default")) {
-            name = "dialog";
-        }
-
-        /* First see if its a family name. */
-        FontFamily family = FontFamily.getFamily(name);
-        if (family != null) {
-            font = family.getFontWithExactStyleMatch(style);
-            if (font == null) {
-                font = findDeferredFont(name, style);
-            }
-            if (font == null) {
-                font = family.getFont(style);
-            }
-            if (font == null) {
-                font = family.getClosestStyle(style);
-            }
-            if (font != null) {
-                fontNameCache.put(mapName, font);
-                return font;
-            }
-        }
-
-        /* If it wasn't a family name, it should be a full name of
-         * either a composite, or a physical font
-         */
-        font = fullNameToFont.get(lowerCaseName);
-        if (font != null) {
-            /* Check that the requested style matches the matched font's style.
-             * But also match style automatically if the requested style is
-             * "plain". This because the existing behaviour is that the fonts
-             * listed via getAllFonts etc always list their style as PLAIN.
-             * This does lead to non-commutative behaviours where you might
-             * start with "Lucida Sans Regular" and ask for a BOLD version
-             * and get "Lucida Sans DemiBold" but if you ask for the PLAIN
-             * style of "Lucida Sans DemiBold" you get "Lucida Sans DemiBold".
-             * This consistent however with what happens if you have a bold
-             * version of a font and no plain version exists - alg. styling
-             * doesn't "unbolden" the font.
-             */
-            if (font.style == style || style == Font.PLAIN) {
-                fontNameCache.put(mapName, font);
-                return font;
-            } else {
-                /* If it was a full name like "Lucida Sans Regular", but
-                 * the style requested is "bold", then we want to see if
-                 * there's the appropriate match against another font in
-                 * that family before trying to load all fonts, or applying a
-                 * algorithmic styling
-                 */
-                family = FontFamily.getFamily(font.getFamilyName(null));
-                if (family != null) {
-                    Font2D familyFont = family.getFont(style|font.style);
-                    /* We exactly matched the requested style, use it! */
-                    if (familyFont != null) {
-                        fontNameCache.put(mapName, familyFont);
-                        return familyFont;
-                    } else {
-                        /* This next call is designed to support the case
-                         * where bold italic is requested, and if we must
-                         * style, then base it on either bold or italic -
-                         * not on plain!
-                         */
-                        familyFont = family.getClosestStyle(style|font.style);
-                        if (familyFont != null) {
-                            /* The next check is perhaps one
-                             * that shouldn't be done. ie if we get this
-                             * far we have probably as close a match as we
-                             * are going to get. We could load all fonts to
-                             * see if somehow some parts of the family are
-                             * loaded but not all of it.
-                             */
-                            if (familyFont.canDoStyle(style|font.style)) {
-                                fontNameCache.put(mapName, familyFont);
-                                return familyFont;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        /* If reach here its possible that this is in a client which never
-         * loaded the GraphicsEnvironment, so we haven't even loaded ANY of
-         * the fonts from the environment. Do so now and recurse.
-         */
-        if (sgEnv == null) {
-            initSGEnv();
-            return findFont2D(name, style, fallback);
-        }
-
-        if (isWindows) {
-            /* Don't want Windows to return a Lucida Sans font from
-             * C:\Windows\Fonts
-             */
-            if (deferredFontFiles.size() > 0) {
-                font = findJREDeferredFont(lowerCaseName, style);
-                if (font != null) {
-                    fontNameCache.put(mapName, font);
-                    return font;
-                }
-            }
-            font = findFontFromPlatform(lowerCaseName, style);
-            if (font != null) {
-                if (logging) {
-                    logger.info("Found font via platform API for request:\"" +
-                                name + "\":, style="+style+
-                                " found font: " + font);
-                }
-                fontNameCache.put(mapName, font);
-                return font;
-            }
-        }
-
-        /* If reach here and no match has been located, then if there are
-         * uninitialised deferred fonts, load as many of those as needed
-         * to find the deferred font. If none is found through that
-         * search continue on.
-         * There is possibly a minor issue when more than one
-         * deferred font implements the same font face. Since deferred
-         * fonts are only those in font configuration files, this is a
-         * controlled situation, the known case being Solaris euro_fonts
-         * versions of Arial, Times New Roman, Courier New. However
-         * the larger font will transparently replace the smaller one
-         *  - see addToFontList() - when it is needed by the composite font.
-         */
-        if (deferredFontFiles.size() > 0) {
-            font = findDeferredFont(name, style);
-            if (font != null) {
-                fontNameCache.put(mapName, font);
-                return font;
-            }
-        }
-
-        /* Some apps use deprecated 1.0 names such as helvetica and courier. On
-         * Solaris these are Type1 fonts in /usr/openwin/lib/X11/fonts/Type1.
-         * If running on Solaris will register all the fonts in this
-         * directory.
-         * May as well register the whole directory without actually testing
-         * the font name is one of the deprecated names as the next step would
-         * load all fonts which are in this directory anyway.
-         * In the event that this lookup is successful it potentially "hides"
-         * TrueType versions of such fonts that are elsewhere but since they
-         * do not exist on Solaris this is not a problem.
-         * Set a flag to indicate we've done this registration to avoid
-         * repetition and more seriously, to avoid recursion.
-         */
-        if (isSolaris&&!loaded1dot0Fonts) {
-            /* "timesroman" is a special case since that's not the
-             * name of any known font on Solaris or elsewhere.
-             */
-            if (lowerCaseName.equals("timesroman")) {
-                font = findFont2D("serif", style, fallback);
-                fontNameCache.put(mapName, font);
-            }
-            sgEnv.register1dot0Fonts();
-            loaded1dot0Fonts = true;
-            Font2D ff = findFont2D(name, style, fallback);
-            return ff;
-        }
-
-        /* We check for application registered fonts before
-         * explicitly loading all fonts as if necessary the registration
-         * code will have done so anyway. And we don't want to needlessly
-         * load the actual files for all fonts.
-         * Just as for installed fonts we check for family before fullname.
-         * We do not add these fonts to fontNameCache for the
-         * app context case which eliminates the overhead of a per context
-         * cache for these.
-         */
-
-        if (fontsAreRegistered || fontsAreRegisteredPerAppContext) {
-            Hashtable<String, FontFamily> familyTable = null;
-            Hashtable<String, Font2D> nameTable;
-
-            if (fontsAreRegistered) {
-                familyTable = createdByFamilyName;
-                nameTable = createdByFullName;
-            } else {
-                AppContext appContext = AppContext.getAppContext();
-                familyTable =
-                    (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
-                nameTable =
-                    (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
-            }
-
-            family = familyTable.get(lowerCaseName);
-            if (family != null) {
-                font = family.getFontWithExactStyleMatch(style);
-                if (font == null) {
-                    font = family.getFont(style);
-                }
-                if (font == null) {
-                    font = family.getClosestStyle(style);
-                }
-                if (font != null) {
-                    if (fontsAreRegistered) {
-                        fontNameCache.put(mapName, font);
-                    }
-                    return font;
-                }
-            }
-            font = nameTable.get(lowerCaseName);
-            if (font != null) {
-                if (fontsAreRegistered) {
-                    fontNameCache.put(mapName, font);
-                }
-                return font;
-            }
-        }
-
-        /* If reach here and no match has been located, then if all fonts
-         * are not yet loaded, do so, and then recurse.
-         */
-        if (!loadedAllFonts) {
-            if (logging) {
-                logger.info("Load fonts looking for:" + name);
-            }
-            sgEnv.loadFonts();
-            loadedAllFonts = true;
-            return findFont2D(name, style, fallback);
-        }
-
-        if (!loadedAllFontFiles) {
-            if (logging) {
-                logger.info("Load font files looking for:" + name);
-            }
-            sgEnv.loadFontFiles();
-            loadedAllFontFiles = true;
-            return findFont2D(name, style, fallback);
-        }
-
-        /* The primary name is the locale default - ie not US/English but
-         * whatever is the default in this locale. This is the way it always
-         * has been but may be surprising to some developers if "Arial Regular"
-         * were hard-coded in their app and yet "Arial Regular" was not the
-         * default name. Fortunately for them, as a consequence of the JDK
-         * supporting returning names and family names for arbitrary locales,
-         * we also need to support searching all localised names for a match.
-         * But because this case of the name used to reference a font is not
-         * the same as the default for this locale is rare, it makes sense to
-         * search a much shorter list of default locale names and only go to
-         * a longer list of names in the event that no match was found.
-         * So add here code which searches localised names too.
-         * As in 1.4.x this happens only after loading all fonts, which
-         * is probably the right order.
-         */
-        if ((font = findFont2DAllLocales(name, style)) != null) {
-            fontNameCache.put(mapName, font);
-            return font;
-        }
-
-        /* Perhaps its a "compatibility" name - timesroman, helvetica,
-         * or courier, which 1.0 apps used for logical fonts.
-         * We look for these "late" after a loadFonts as we must not
-         * hide real fonts of these names.
-         * Map these appropriately:
-         * On windows this means according to the rules specified by the
-         * FontConfiguration : do it only for encoding==Cp1252
-         *
-         * REMIND: this is something we plan to remove.
-         */
-        if (isWindows) {
-            String compatName =
-                sgEnv.getFontConfiguration().getFallbackFamilyName(name, null);
-            if (compatName != null) {
-                font = findFont2D(compatName, style, fallback);
-                fontNameCache.put(mapName, font);
-                return font;
-            }
-        } else if (lowerCaseName.equals("timesroman")) {
-            font = findFont2D("serif", style, fallback);
-            fontNameCache.put(mapName, font);
-            return font;
-        } else if (lowerCaseName.equals("helvetica")) {
-            font = findFont2D("sansserif", style, fallback);
-            fontNameCache.put(mapName, font);
-            return font;
-        } else if (lowerCaseName.equals("courier")) {
-            font = findFont2D("monospaced", style, fallback);
-            fontNameCache.put(mapName, font);
-            return font;
-        }
-
-        if (logging) {
-            logger.info("No font found for:" + name);
-        }
-
-        switch (fallback) {
-        case PHYSICAL_FALLBACK: return getDefaultPhysicalFont();
-        case LOGICAL_FALLBACK: return getDefaultLogicalFont(style);
-        default: return null;
-        }
-    }
-
-    /* This method can be more efficient as it will only need to
-     * do the lookup once, and subsequent calls on the java.awt.Font
-     * instance can utilise the cached Font2D on that object.
-     * Its unfortunate it needs to be a native method, but the font2D
-     * variable has to be private.
-     */
-    public static native Font2D getFont2D(Font font);
-
-    /* Stuff below was in NativeFontWrapper and needed a new home */
-
-    /*
-     * Workaround for apps which are dependent on a font metrics bug
-     * in JDK 1.1. This is an unsupported win32 private setting.
-     */
-    public static boolean usePlatformFontMetrics() {
-        return usePlatformFontMetrics;
-    }
-
-    static native boolean getPlatformFontVar();
-
-    private static final short US_LCID = 0x0409;  // US English - default
-    private static Map<String, Short> lcidMap;
-
-    // Return a Microsoft LCID from the given Locale.
-    // Used when getting localized font data.
-
-    public static short getLCIDFromLocale(Locale locale) {
-        // optimize for common case
-        if (locale.equals(Locale.US)) {
-            return US_LCID;
-        }
-
-        if (lcidMap == null) {
-            createLCIDMap();
-        }
-
-        String key = locale.toString();
-        while (!"".equals(key)) {
-            Short lcidObject = (Short) lcidMap.get(key);
-            if (lcidObject != null) {
-                return lcidObject.shortValue();
-            }
-            int pos = key.lastIndexOf('_');
-            if (pos < 1) {
-                return US_LCID;
-            }
-            key = key.substring(0, pos);
-        }
-
-        return US_LCID;
-    }
-
-
-    private static void addLCIDMapEntry(Map<String, Short> map,
-                                        String key, short value) {
-        map.put(key, Short.valueOf(value));
-    }
-
-    private static synchronized void createLCIDMap() {
-        if (lcidMap != null) {
-            return;
-        }
-
-        Map<String, Short> map = new HashMap<String, Short>(200);
+    public Font2D findFont2D(String name, int style, int fallback);
 
-        // the following statements are derived from the langIDMap
-        // in src/windows/native/java/lang/java_props_md.c using the following
-        // awk script:
-        //    $1~/\/\*/   { next}
-        //    $3~/\?\?/   { next }
-        //    $3!~/_/     { next }
-        //    $1~/0x0409/ { next }
-        //    $1~/0x0c0a/ { next }
-        //    $1~/0x042c/ { next }
-        //    $1~/0x0443/ { next }
-        //    $1~/0x0812/ { next }
-        //    $1~/0x04/   { print "        addLCIDMapEntry(map, " substr($3, 0, 3) "\", (short) " substr($1, 0, 6) ");" ; next }
-        //    $3~/,/      { print "        addLCIDMapEntry(map, " $3  " (short) " substr($1, 0, 6) ");" ; next }
-        //                { print "        addLCIDMapEntry(map, " $3 ", (short) " substr($1, 0, 6) ");" ; next }
-        // The lines of this script:
-        // - eliminate comments
-        // - eliminate questionable locales
-        // - eliminate language-only locales
-        // - eliminate the default LCID value
-        // - eliminate a few other unneeded LCID values
-        // - print language-only locale entries for x04* LCID values
-        //   (apparently Microsoft doesn't use language-only LCID values -
-        //   see http://www.microsoft.com/OpenType/otspec/name.htm
-        // - print complete entries for all other LCID values
-        // Run
-        //     awk -f awk-script langIDMap > statements
-        addLCIDMapEntry(map, "ar", (short) 0x0401);
-        addLCIDMapEntry(map, "bg", (short) 0x0402);
-        addLCIDMapEntry(map, "ca", (short) 0x0403);
-        addLCIDMapEntry(map, "zh", (short) 0x0404);
-        addLCIDMapEntry(map, "cs", (short) 0x0405);
-        addLCIDMapEntry(map, "da", (short) 0x0406);
-        addLCIDMapEntry(map, "de", (short) 0x0407);
-        addLCIDMapEntry(map, "el", (short) 0x0408);
-        addLCIDMapEntry(map, "es", (short) 0x040a);
-        addLCIDMapEntry(map, "fi", (short) 0x040b);
-        addLCIDMapEntry(map, "fr", (short) 0x040c);
-        addLCIDMapEntry(map, "iw", (short) 0x040d);
-        addLCIDMapEntry(map, "hu", (short) 0x040e);
-        addLCIDMapEntry(map, "is", (short) 0x040f);
-        addLCIDMapEntry(map, "it", (short) 0x0410);
-        addLCIDMapEntry(map, "ja", (short) 0x0411);
-        addLCIDMapEntry(map, "ko", (short) 0x0412);
-        addLCIDMapEntry(map, "nl", (short) 0x0413);
-        addLCIDMapEntry(map, "no", (short) 0x0414);
-        addLCIDMapEntry(map, "pl", (short) 0x0415);
-        addLCIDMapEntry(map, "pt", (short) 0x0416);
-        addLCIDMapEntry(map, "rm", (short) 0x0417);
-        addLCIDMapEntry(map, "ro", (short) 0x0418);
-        addLCIDMapEntry(map, "ru", (short) 0x0419);
-        addLCIDMapEntry(map, "hr", (short) 0x041a);
-        addLCIDMapEntry(map, "sk", (short) 0x041b);
-        addLCIDMapEntry(map, "sq", (short) 0x041c);
-        addLCIDMapEntry(map, "sv", (short) 0x041d);
-        addLCIDMapEntry(map, "th", (short) 0x041e);
-        addLCIDMapEntry(map, "tr", (short) 0x041f);
-        addLCIDMapEntry(map, "ur", (short) 0x0420);
-        addLCIDMapEntry(map, "in", (short) 0x0421);
-        addLCIDMapEntry(map, "uk", (short) 0x0422);
-        addLCIDMapEntry(map, "be", (short) 0x0423);
-        addLCIDMapEntry(map, "sl", (short) 0x0424);
-        addLCIDMapEntry(map, "et", (short) 0x0425);
-        addLCIDMapEntry(map, "lv", (short) 0x0426);
-        addLCIDMapEntry(map, "lt", (short) 0x0427);
-        addLCIDMapEntry(map, "fa", (short) 0x0429);
-        addLCIDMapEntry(map, "vi", (short) 0x042a);
-        addLCIDMapEntry(map, "hy", (short) 0x042b);
-        addLCIDMapEntry(map, "eu", (short) 0x042d);
-        addLCIDMapEntry(map, "mk", (short) 0x042f);
-        addLCIDMapEntry(map, "tn", (short) 0x0432);
-        addLCIDMapEntry(map, "xh", (short) 0x0434);
-        addLCIDMapEntry(map, "zu", (short) 0x0435);
-        addLCIDMapEntry(map, "af", (short) 0x0436);
-        addLCIDMapEntry(map, "ka", (short) 0x0437);
-        addLCIDMapEntry(map, "fo", (short) 0x0438);
-        addLCIDMapEntry(map, "hi", (short) 0x0439);
-        addLCIDMapEntry(map, "mt", (short) 0x043a);
-        addLCIDMapEntry(map, "se", (short) 0x043b);
-        addLCIDMapEntry(map, "gd", (short) 0x043c);
-        addLCIDMapEntry(map, "ms", (short) 0x043e);
-        addLCIDMapEntry(map, "kk", (short) 0x043f);
-        addLCIDMapEntry(map, "ky", (short) 0x0440);
-        addLCIDMapEntry(map, "sw", (short) 0x0441);
-        addLCIDMapEntry(map, "tt", (short) 0x0444);
-        addLCIDMapEntry(map, "bn", (short) 0x0445);
-        addLCIDMapEntry(map, "pa", (short) 0x0446);
-        addLCIDMapEntry(map, "gu", (short) 0x0447);
-        addLCIDMapEntry(map, "ta", (short) 0x0449);
-        addLCIDMapEntry(map, "te", (short) 0x044a);
-        addLCIDMapEntry(map, "kn", (short) 0x044b);
-        addLCIDMapEntry(map, "ml", (short) 0x044c);
-        addLCIDMapEntry(map, "mr", (short) 0x044e);
-        addLCIDMapEntry(map, "sa", (short) 0x044f);
-        addLCIDMapEntry(map, "mn", (short) 0x0450);
-        addLCIDMapEntry(map, "cy", (short) 0x0452);
-        addLCIDMapEntry(map, "gl", (short) 0x0456);
-        addLCIDMapEntry(map, "dv", (short) 0x0465);
-        addLCIDMapEntry(map, "qu", (short) 0x046b);
-        addLCIDMapEntry(map, "mi", (short) 0x0481);
-        addLCIDMapEntry(map, "ar_IQ", (short) 0x0801);
-        addLCIDMapEntry(map, "zh_CN", (short) 0x0804);
-        addLCIDMapEntry(map, "de_CH", (short) 0x0807);
-        addLCIDMapEntry(map, "en_GB", (short) 0x0809);
-        addLCIDMapEntry(map, "es_MX", (short) 0x080a);
-        addLCIDMapEntry(map, "fr_BE", (short) 0x080c);
-        addLCIDMapEntry(map, "it_CH", (short) 0x0810);
-        addLCIDMapEntry(map, "nl_BE", (short) 0x0813);
-        addLCIDMapEntry(map, "no_NO_NY", (short) 0x0814);
-        addLCIDMapEntry(map, "pt_PT", (short) 0x0816);
-        addLCIDMapEntry(map, "ro_MD", (short) 0x0818);
-        addLCIDMapEntry(map, "ru_MD", (short) 0x0819);
-        addLCIDMapEntry(map, "sr_CS", (short) 0x081a);
-        addLCIDMapEntry(map, "sv_FI", (short) 0x081d);
-        addLCIDMapEntry(map, "az_AZ", (short) 0x082c);
-        addLCIDMapEntry(map, "se_SE", (short) 0x083b);
-        addLCIDMapEntry(map, "ga_IE", (short) 0x083c);
-        addLCIDMapEntry(map, "ms_BN", (short) 0x083e);
-        addLCIDMapEntry(map, "uz_UZ", (short) 0x0843);
-        addLCIDMapEntry(map, "qu_EC", (short) 0x086b);
-        addLCIDMapEntry(map, "ar_EG", (short) 0x0c01);
-        addLCIDMapEntry(map, "zh_HK", (short) 0x0c04);
-        addLCIDMapEntry(map, "de_AT", (short) 0x0c07);
-        addLCIDMapEntry(map, "en_AU", (short) 0x0c09);
-        addLCIDMapEntry(map, "fr_CA", (short) 0x0c0c);
-        addLCIDMapEntry(map, "sr_CS", (short) 0x0c1a);
-        addLCIDMapEntry(map, "se_FI", (short) 0x0c3b);
-        addLCIDMapEntry(map, "qu_PE", (short) 0x0c6b);
-        addLCIDMapEntry(map, "ar_LY", (short) 0x1001);
-        addLCIDMapEntry(map, "zh_SG", (short) 0x1004);
-        addLCIDMapEntry(map, "de_LU", (short) 0x1007);
-        addLCIDMapEntry(map, "en_CA", (short) 0x1009);
-        addLCIDMapEntry(map, "es_GT", (short) 0x100a);
-        addLCIDMapEntry(map, "fr_CH", (short) 0x100c);
-        addLCIDMapEntry(map, "hr_BA", (short) 0x101a);
-        addLCIDMapEntry(map, "ar_DZ", (short) 0x1401);
-        addLCIDMapEntry(map, "zh_MO", (short) 0x1404);
-        addLCIDMapEntry(map, "de_LI", (short) 0x1407);
-        addLCIDMapEntry(map, "en_NZ", (short) 0x1409);
-        addLCIDMapEntry(map, "es_CR", (short) 0x140a);
-        addLCIDMapEntry(map, "fr_LU", (short) 0x140c);
-        addLCIDMapEntry(map, "bs_BA", (short) 0x141a);
-        addLCIDMapEntry(map, "ar_MA", (short) 0x1801);
-        addLCIDMapEntry(map, "en_IE", (short) 0x1809);
-        addLCIDMapEntry(map, "es_PA", (short) 0x180a);
-        addLCIDMapEntry(map, "fr_MC", (short) 0x180c);
-        addLCIDMapEntry(map, "sr_BA", (short) 0x181a);
-        addLCIDMapEntry(map, "ar_TN", (short) 0x1c01);
-        addLCIDMapEntry(map, "en_ZA", (short) 0x1c09);
-        addLCIDMapEntry(map, "es_DO", (short) 0x1c0a);
-        addLCIDMapEntry(map, "sr_BA", (short) 0x1c1a);
-        addLCIDMapEntry(map, "ar_OM", (short) 0x2001);
-        addLCIDMapEntry(map, "en_JM", (short) 0x2009);
-        addLCIDMapEntry(map, "es_VE", (short) 0x200a);
-        addLCIDMapEntry(map, "ar_YE", (short) 0x2401);
-        addLCIDMapEntry(map, "es_CO", (short) 0x240a);
-        addLCIDMapEntry(map, "ar_SY", (short) 0x2801);
-        addLCIDMapEntry(map, "en_BZ", (short) 0x2809);
-        addLCIDMapEntry(map, "es_PE", (short) 0x280a);
-        addLCIDMapEntry(map, "ar_JO", (short) 0x2c01);
-        addLCIDMapEntry(map, "en_TT", (short) 0x2c09);
-        addLCIDMapEntry(map, "es_AR", (short) 0x2c0a);
-        addLCIDMapEntry(map, "ar_LB", (short) 0x3001);
-        addLCIDMapEntry(map, "en_ZW", (short) 0x3009);
-        addLCIDMapEntry(map, "es_EC", (short) 0x300a);
-        addLCIDMapEntry(map, "ar_KW", (short) 0x3401);
-        addLCIDMapEntry(map, "en_PH", (short) 0x3409);
-        addLCIDMapEntry(map, "es_CL", (short) 0x340a);
-        addLCIDMapEntry(map, "ar_AE", (short) 0x3801);
-        addLCIDMapEntry(map, "es_UY", (short) 0x380a);
-        addLCIDMapEntry(map, "ar_BH", (short) 0x3c01);
-        addLCIDMapEntry(map, "es_PY", (short) 0x3c0a);
-        addLCIDMapEntry(map, "ar_QA", (short) 0x4001);
-        addLCIDMapEntry(map, "es_BO", (short) 0x400a);
-        addLCIDMapEntry(map, "es_SV", (short) 0x440a);
-        addLCIDMapEntry(map, "es_HN", (short) 0x480a);
-        addLCIDMapEntry(map, "es_NI", (short) 0x4c0a);
-        addLCIDMapEntry(map, "es_PR", (short) 0x500a);
-
-        lcidMap = map;
-    }
-
-    public static int getNumFonts() {
-        return physicalFonts.size()+maxCompFont;
-    }
-
-    private static boolean fontSupportsEncoding(Font font, String encoding) {
-        return getFont2D(font).supportsEncoding(encoding);
-    }
-
-    public synchronized static native String getFontPath(boolean noType1Fonts);
-    public synchronized static native void setNativeFontPath(String fontPath);
-
-
-    private static Thread fileCloser = null;
-    static Vector<File> tmpFontFiles = null;
-
-    public static Font2D createFont2D(File fontFile, int fontFormat,
-                                      boolean isCopy,
-                                      CreatedFontTracker tracker)
-        throws FontFormatException {
-
-        String fontFilePath = fontFile.getPath();
-        FileFont font2D = null;
-        final File fFile = fontFile;
-        final CreatedFontTracker _tracker = tracker;
-        try {
-            switch (fontFormat) {
-            case Font.TRUETYPE_FONT:
-                font2D = new TrueTypeFont(fontFilePath, null, 0, true);
-                break;
-            case Font.TYPE1_FONT:
-                font2D = new Type1Font(fontFilePath, null, isCopy);
-                break;
-            default:
-                throw new FontFormatException("Unrecognised Font Format");
-            }
-        } catch (FontFormatException e) {
-            if (isCopy) {
-                java.security.AccessController.doPrivileged(
-                     new java.security.PrivilegedAction() {
-                          public Object run() {
-                              if (_tracker != null) {
-                                  _tracker.subBytes((int)fFile.length());
-                              }
-                              fFile.delete();
-                              return null;
-                          }
-                });
-            }
-            throw(e);
-        }
-        if (isCopy) {
-            font2D.setFileToRemove(fontFile, tracker);
-            synchronized (FontManager.class) {
-
-                if (tmpFontFiles == null) {
-                    tmpFontFiles = new Vector<File>();
-                }
-                tmpFontFiles.add(fontFile);
-
-                if (fileCloser == null) {
-                    final Runnable fileCloserRunnable = new Runnable() {
-                      public void run() {
-                         java.security.AccessController.doPrivileged(
-                         new java.security.PrivilegedAction() {
-                         public Object run() {
-
-                            for (int i=0;i<CHANNELPOOLSIZE;i++) {
-                                if (fontFileCache[i] != null) {
-                                    try {
-                                        fontFileCache[i].close();
-                                    } catch (Exception e) {
-                                    }
-                                }
-                            }
-                            if (tmpFontFiles != null) {
-                                File[] files = new File[tmpFontFiles.size()];
-                                files = tmpFontFiles.toArray(files);
-                                for (int f=0; f<files.length;f++) {
-                                    try {
-                                        files[f].delete();
-                                    } catch (Exception e) {
-                                    }
-                                }
-                            }
-
-                            return null;
-                          }
+    /**
+     * Creates a Font2D for the specified font file, that is expected
+     * to be in the specified font format (according to the constants
+     * in java.awt.Font). The parameter {@code isCopy} is set to true
+     * when the specified font file is actually a copy of the font data
+     * and needs to be deleted afterwards. This method is called
+     * for the Font.createFont() methods.
+     *
+     * @param fontFile the file holding the font data
+     * @param fontFormat the expected font format
+     * @param isCopy {@code true} if the file is a copy and needs to be
+     *        deleted, {@code false} otherwise
+     *
+     * @return the created Font2D instance
+     */
+    public Font2D createFont2D(File fontFile, int fontFormat,
+                               boolean isCopy, CreatedFontTracker tracker)
+        throws FontFormatException;
 
-                          });
-                      }
-                    };
-                    java.security.AccessController.doPrivileged(
-                       new java.security.PrivilegedAction() {
-                          public Object run() {
-                              /* The thread must be a member of a thread group
-                               * which will not get GCed before VM exit.
-                               * Make its parent the top-level thread group.
-                               */
-                              ThreadGroup tg =
-                                  Thread.currentThread().getThreadGroup();
-                              for (ThreadGroup tgn = tg;
-                                   tgn != null;
-                                   tg = tgn, tgn = tg.getParent());
-                              fileCloser = new Thread(tg, fileCloserRunnable);
-                              Runtime.getRuntime().addShutdownHook(fileCloser);
-                              return null;
-                          }
-                    });
-                }
-            }
-        }
-        return font2D;
-    }
-
-    /* remind: used in X11GraphicsEnvironment and called often enough
-     * that we ought to obsolete this code
-     */
-    public synchronized static String getFullNameByFileName(String fileName) {
-        PhysicalFont[] physFonts = getPhysicalFonts();
-        for (int i=0;i<physFonts.length;i++) {
-            if (physFonts[i].platName.equals(fileName)) {
-                return (physFonts[i].getFontName(null));
-            }
-        }
-        return null;
-    }
-
-    /*
-     * This is called when font is determined to be invalid/bad.
-     * It designed to be called (for example) by the font scaler
-     * when in processing a font file it is discovered to be incorrect.
-     * This is different than the case where fonts are discovered to
-     * be incorrect during initial verification, as such fonts are
-     * never registered.
-     * Handles to this font held are re-directed to a default font.
-     * This default may not be an ideal substitute buts it better than
-     * crashing This code assumes a PhysicalFont parameter as it doesn't
-     * make sense for a Composite to be "bad".
-     */
-    public static synchronized void deRegisterBadFont(Font2D font2D) {
-        if (!(font2D instanceof PhysicalFont)) {
-            /* We should never reach here, but just in case */
-            return;
-        } else {
-            if (logging) {
-                logger.severe("Deregister bad font: " + font2D);
-            }
-            replaceFont((PhysicalFont)font2D, getDefaultPhysicalFont());
-        }
-    }
-
-    /*
-     * This encapsulates all the work that needs to be done when a
-     * Font2D is replaced by a different Font2D.
-     */
-    public static synchronized void replaceFont(PhysicalFont oldFont,
-                                                PhysicalFont newFont) {
-
-        if (oldFont.handle.font2D != oldFont) {
-            /* already done */
-            return;
-        }
-
-        /* If we try to replace the font with itself, that won't work,
-         * so pick any alternative physical font
-         */
-        if (oldFont == newFont) {
-            if (logging) {
-                logger.severe("Can't replace bad font with itself " + oldFont);
-            }
-            PhysicalFont[] physFonts = getPhysicalFonts();
-            for (int i=0; i<physFonts.length;i++) {
-                if (physFonts[i] != newFont) {
-                    newFont = physFonts[i];
-                    break;
-                }
-            }
-            if (oldFont == newFont) {
-                if (logging) {
-                    logger.severe("This is bad. No good physicalFonts found.");
-                }
-                return;
-            }
-        }
-
-        /* eliminate references to this font, so it won't be located
-         * by future callers, and will be eligible for GC when all
-         * references are removed
-         */
-        oldFont.handle.font2D = newFont;
-        physicalFonts.remove(oldFont.fullName);
-        fullNameToFont.remove(oldFont.fullName.toLowerCase(Locale.ENGLISH));
-        FontFamily.remove(oldFont);
-
-        if (localeFullNamesToFont != null) {
-            Map.Entry[] mapEntries =
-                (Map.Entry[])localeFullNamesToFont.entrySet().
-                toArray(new Map.Entry[0]);
-            /* Should I be replacing these, or just I just remove
-             * the names from the map?
-             */
-            for (int i=0; i<mapEntries.length;i++) {
-                if (mapEntries[i].getValue() == oldFont) {
-                    try {
-                        mapEntries[i].setValue(newFont);
-                    } catch (Exception e) {
-                        /* some maps don't support this operation.
-                         * In this case just give up and remove the entry.
-                         */
-                        localeFullNamesToFont.remove(mapEntries[i].getKey());
-                    }
-                }
-            }
-        }
-
-        for (int i=0; i<maxCompFont; i++) {
-            /* Deferred initialization of composites shouldn't be
-             * a problem for this case, since a font must have been
-             * initialised to be discovered to be bad.
-             * Some JRE composites on Solaris use two versions of the same
-             * font. The replaced font isn't bad, just "smaller" so there's
-             * no need to make the slot point to the new font.
-             * Since composites have a direct reference to the Font2D (not
-             * via a handle) making this substitution is not safe and could
-             * cause an additional problem and so this substitution is
-             * warranted only when a font is truly "bad" and could cause
-             * a crash. So we now replace it only if its being substituted
-             * with some font other than a fontconfig rank font
-             * Since in practice a substitution will have the same rank
-             * this may never happen, but the code is safer even if its
-             * also now a no-op.
-             * The only obvious "glitch" from this stems from the current
-             * implementation that when asked for the number of glyphs in a
-             * composite it lies and returns the number in slot 0 because
-             * composite glyphs aren't contiguous. Since we live with that
-             * we can live with the glitch that depending on how it was
-             * initialised a composite may return different values for this.
-             * Fixing the issues with composite glyph ids is tricky as
-             * there are exclusion ranges and unlike other fonts even the
-             * true "numGlyphs" isn't a contiguous range. Likely the only
-             * solution is an API that returns an array of glyph ranges
-             * which takes precedence over the existing API. That might
-             * also need to address excluding ranges which represent a
-             * code point supported by an earlier component.
-             */
-            if (newFont.getRank() > Font2D.FONT_CONFIG_RANK) {
-                compFonts[i].replaceComponentFont(oldFont, newFont);
-            }
-        }
-    }
-
-    private static synchronized void loadLocaleNames() {
-        if (localeFullNamesToFont != null) {
-            return;
-        }
-        localeFullNamesToFont = new HashMap<String, TrueTypeFont>();
-        Font2D[] fonts = getRegisteredFonts();
-        for (int i=0; i<fonts.length; i++) {
-            if (fonts[i] instanceof TrueTypeFont) {
-                TrueTypeFont ttf = (TrueTypeFont)fonts[i];
-                String[] fullNames = ttf.getAllFullNames();
-                for (int n=0; n<fullNames.length; n++) {
-                    localeFullNamesToFont.put(fullNames[n], ttf);
-                }
-                FontFamily family = FontFamily.getFamily(ttf.familyName);
-                if (family != null) {
-                    FontFamily.addLocaleNames(family, ttf.getAllFamilyNames());
-                }
-            }
-        }
-    }
-
-    /* This replicate the core logic of findFont2D but operates on
-     * all the locale names. This hasn't been merged into findFont2D to
-     * keep the logic simpler and reduce overhead, since this case is
-     * almost never used. The main case in which it is called is when
-     * a bogus font name is used and we need to check all possible names
-     * before returning the default case.
-     */
-    private static Font2D findFont2DAllLocales(String name, int style) {
-
-        if (logging) {
-            logger.info("Searching localised font names for:" + name);
-        }
-
-        /* If reach here and no match has been located, then if we have
-         * not yet built the map of localeFullNamesToFont for TT fonts, do so
-         * now. This method must be called after all fonts have been loaded.
-         */
-        if (localeFullNamesToFont == null) {
-            loadLocaleNames();
-        }
-        String lowerCaseName = name.toLowerCase();
-        Font2D font = null;
-
-        /* First see if its a family name. */
-        FontFamily family = FontFamily.getLocaleFamily(lowerCaseName);
-        if (family != null) {
-          font = family.getFont(style);
-          if (font == null) {
-            font = family.getClosestStyle(style);
-          }
-          if (font != null) {
-              return font;
-          }
-        }
-
-        /* If it wasn't a family name, it should be a full name. */
-        synchronized (FontManager.class) {
-            font = localeFullNamesToFont.get(name);
-        }
-        if (font != null) {
-            if (font.style == style || style == Font.PLAIN) {
-                return font;
-            } else {
-                family = FontFamily.getFamily(font.getFamilyName(null));
-                if (family != null) {
-                    Font2D familyFont = family.getFont(style);
-                    /* We exactly matched the requested style, use it! */
-                    if (familyFont != null) {
-                        return familyFont;
-                    } else {
-                        familyFont = family.getClosestStyle(style);
-                        if (familyFont != null) {
-                            /* The next check is perhaps one
-                             * that shouldn't be done. ie if we get this
-                             * far we have probably as close a match as we
-                             * are going to get. We could load all fonts to
-                             * see if somehow some parts of the family are
-                             * loaded but not all of it.
-                             * This check is commented out for now.
-                             */
-                            if (!familyFont.canDoStyle(style)) {
-                                familyFont = null;
-                            }
-                            return familyFont;
-                        }
-                    }
-                }
-            }
-        }
-        return font;
-    }
-
-    /* Supporting "alternate" composite fonts on 2D graphics objects
-     * is accessed by the application by calling methods on the local
-     * GraphicsEnvironment. The overall implementation is described
-     * in one place, here, since otherwise the implementation is spread
-     * around it may be difficult to track.
-     * The methods below call into SunGraphicsEnvironment which creates a
-     * new FontConfiguration instance. The FontConfiguration class,
-     * and its platform sub-classes are updated to take parameters requesting
-     * these behaviours. This is then used to create new composite font
-     * instances. Since this calls the initCompositeFont method in
-     * SunGraphicsEnvironment it performs the same initialization as is
-     * performed normally. There may be some duplication of effort, but
-     * that code is already written to be able to perform properly if called
-     * to duplicate work. The main difference is that if we detect we are
-     * running in an applet/browser/Java plugin environment these new fonts
-     * are not placed in the "default" maps but into an AppContext instance.
-     * The font lookup mechanism in java.awt.Font.getFont2D() is also updated
-     * so that look-up for composite fonts will in that case always
-     * do a lookup rather than returning a cached result.
-     * This is inefficient but necessary else singleton java.awt.Font
-     * instances would not retrieve the correct Font2D for the appcontext.
-     * sun.font.FontManager.findFont2D is also updated to that it uses
-     * a name map cache specific to that appcontext.
-     *
-     * Getting an AppContext is expensive, so there is a global variable
-     * that records whether these methods have ever been called and can
-     * avoid the expense for almost all applications. Once the correct
-     * CompositeFont is associated with the Font, everything should work
-     * through existing mechanisms.
-     * A special case is that GraphicsEnvironment.getAllFonts() must
-     * return an AppContext specific list.
-     *
-     * Calling the methods below is "heavyweight" but it is expected that
-     * these methods will be called very rarely.
-     *
+    /**
      * If usingPerAppContextComposites is true, we are in "applet"
      * (eg browser) enviroment and at least one context has selected
      * an alternate composite font behaviour.
-     * If usingAlternateComposites is true, we are not in an "applet"
-     * environment and the (single) application has selected
-     * an alternate composite font behaviour.
-     *
-     * - Printing: The implementation delegates logical fonts to an AWT
-     * mechanism which cannot use these alternate configurations.
-     * We can detect that alternate fonts are in use and back-off to 2D, but
-     * that uses outlines. Much of this can be fixed with additional work
-     * but that may have to wait. The results should be correct, just not
-     * optimal.
-     */
-    private static final Object altJAFontKey       = new Object();
-    private static final Object localeFontKey       = new Object();
-    private static final Object proportionalFontKey = new Object();
-    public static boolean usingPerAppContextComposites = false;
-    private static boolean usingAlternateComposites = false;
-
-    /* These values are used only if we are running as a standalone
-     * application, as determined by maybeMultiAppContext();
-     */
-    private static boolean gAltJAFont = false;
-    private static boolean gLocalePref = false;
-    private static boolean gPropPref = false;
-
-    /* This method doesn't check if alternates are selected in this app
-     * context. Its used by the FontMetrics caching code which in such
-     * a case cannot retrieve a cached metrics solely on the basis of
-     * the Font.equals() method since it needs to also check if the Font2D
-     * is the same.
-     * We also use non-standard composites for Swing native L&F fonts on
-     * Windows. In that case the policy is that the metrics reported are
-     * based solely on the physical font in the first slot which is the
-     * visible java.awt.Font. So in that case the metrics cache which tests
-     * the Font does what we want. In the near future when we expand the GTK
-     * logical font definitions we may need to revisit this if GTK reports
-     * combined metrics instead. For now though this test can be simple.
-     */
-    static boolean maybeUsingAlternateCompositeFonts() {
-       return usingAlternateComposites || usingPerAppContextComposites;
-    }
-
-    public static boolean usingAlternateCompositeFonts() {
-        return (usingAlternateComposites ||
-                (usingPerAppContextComposites &&
-                AppContext.getAppContext().get(CompositeFont.class) != null));
-    }
-
-    private static boolean maybeMultiAppContext() {
-        Boolean appletSM = (Boolean)
-            java.security.AccessController.doPrivileged(
-                new java.security.PrivilegedAction() {
-                        public Object run() {
-                            SecurityManager sm = System.getSecurityManager();
-                            return new Boolean
-                                (sm instanceof sun.applet.AppletSecurity);
-                        }
-                    });
-        return appletSM.booleanValue();
-    }
-
-    /* Modifies the behaviour of a subsequent call to preferLocaleFonts()
-     * to use Mincho instead of Gothic for dialoginput in JA locales
-     * on windows. Not needed on other platforms.
-     */
-    public static synchronized void useAlternateFontforJALocales() {
-
-        if (!isWindows) {
-            return;
-        }
-
-        initSGEnv();
-        if (!maybeMultiAppContext()) {
-            gAltJAFont = true;
-        } else {
-            AppContext appContext = AppContext.getAppContext();
-            appContext.put(altJAFontKey, altJAFontKey);
-        }
-    }
-
-    public static boolean usingAlternateFontforJALocales() {
-        if (!maybeMultiAppContext()) {
-            return gAltJAFont;
-        } else {
-            AppContext appContext = AppContext.getAppContext();
-            return appContext.get(altJAFontKey) == altJAFontKey;
-        }
-    }
-
-    public static synchronized void preferLocaleFonts() {
-
-        initSGEnv();
-
-        /* Test if re-ordering will have any effect */
-        if (!FontConfiguration.willReorderForStartupLocale()) {
-            return;
-        }
-
-        if (!maybeMultiAppContext()) {
-            if (gLocalePref == true) {
-                return;
-            }
-            gLocalePref = true;
-            sgEnv.createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
-            usingAlternateComposites = true;
-        } else {
-            AppContext appContext = AppContext.getAppContext();
-            if (appContext.get(localeFontKey) == localeFontKey) {
-                return;
-            }
-            appContext.put(localeFontKey, localeFontKey);
-            boolean acPropPref =
-                appContext.get(proportionalFontKey) == proportionalFontKey;
-            ConcurrentHashMap<String, Font2D>
-                altNameCache = new ConcurrentHashMap<String, Font2D> ();
-            /* If there is an existing hashtable, we can drop it. */
-            appContext.put(CompositeFont.class, altNameCache);
-            usingPerAppContextComposites = true;
-            sgEnv.createCompositeFonts(altNameCache, true, acPropPref);
-        }
-    }
-
-    public static synchronized void preferProportionalFonts() {
-
-        /* If no proportional fonts are configured, there's no need
-         * to take any action.
-         */
-        if (!FontConfiguration.hasMonoToPropMap()) {
-            return;
-        }
-
-        initSGEnv();
-
-        if (!maybeMultiAppContext()) {
-            if (gPropPref == true) {
-                return;
-            }
-            gPropPref = true;
-            sgEnv.createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
-            usingAlternateComposites = true;
-        } else {
-            AppContext appContext = AppContext.getAppContext();
-            if (appContext.get(proportionalFontKey) == proportionalFontKey) {
-                return;
-            }
-            appContext.put(proportionalFontKey, proportionalFontKey);
-            boolean acLocalePref =
-                appContext.get(localeFontKey) == localeFontKey;
-            ConcurrentHashMap<String, Font2D>
-                altNameCache = new ConcurrentHashMap<String, Font2D> ();
-            /* If there is an existing hashtable, we can drop it. */
-            appContext.put(CompositeFont.class, altNameCache);
-            usingPerAppContextComposites = true;
-            sgEnv.createCompositeFonts(altNameCache, acLocalePref, true);
-        }
-    }
-
-    private static HashSet<String> installedNames = null;
-    private static HashSet<String> getInstalledNames() {
-        if (installedNames == null) {
-           Locale l = sgEnv.getSystemStartupLocale();
-           String[] installedFamilies = sgEnv.getInstalledFontFamilyNames(l);
-           Font[] installedFonts = sgEnv.getAllInstalledFonts();
-           HashSet<String> names = new HashSet<String>();
-           for (int i=0; i<installedFamilies.length; i++) {
-               names.add(installedFamilies[i].toLowerCase(l));
-           }
-           for (int i=0; i<installedFonts.length; i++) {
-               names.add(installedFonts[i].getFontName(l).toLowerCase(l));
-           }
-           installedNames = names;
-        }
-        return installedNames;
-    }
-
-    /* Keys are used to lookup per-AppContext Hashtables */
-    private static final Object regFamilyKey  = new Object();
-    private static final Object regFullNameKey = new Object();
-    private static Hashtable<String,FontFamily> createdByFamilyName;
-    private static Hashtable<String,Font2D>     createdByFullName;
-    private static boolean fontsAreRegistered = false;
-    private static boolean fontsAreRegisteredPerAppContext = false;
-
-    public static boolean registerFont(Font font) {
-        /* This method should not be called with "null".
-         * It is the caller's responsibility to ensure that.
-         */
-        if (font == null) {
-            return false;
-        }
-
-        /* Initialise these objects only once we start to use this API */
-        synchronized (regFamilyKey) {
-            if (createdByFamilyName == null) {
-                createdByFamilyName = new Hashtable<String,FontFamily>();
-                createdByFullName = new Hashtable<String,Font2D>();
-            }
-        }
-
-        if (!isCreatedFont(font)) {
-            return false;
-        }
-        if (sgEnv == null) {
-            initSGEnv();
-        }
-        /* We want to ensure that this font cannot override existing
-         * installed fonts. Check these conditions :
-         * - family name is not that of an installed font
-         * - full name is not that of an installed font
-         * - family name is not the same as the full name of an installed font
-         * - full name is not the same as the family name of an installed font
-         * The last two of these may initially look odd but the reason is
-         * that (unfortunately) Font constructors do not distinuguish these.
-         * An extreme example of such a problem would be a font which has
-         * family name "Dialog.Plain" and full name of "Dialog".
-         * The one arguably overly stringent restriction here is that if an
-         * application wants to supply a new member of an existing family
-         * It will get rejected. But since the JRE can perform synthetic
-         * styling in many cases its not necessary.
-         * We don't apply the same logic to registered fonts. If apps want
-         * to do this lets assume they have a reason. It won't cause problems
-         * except for themselves.
-         */
-        HashSet<String> names = getInstalledNames();
-        Locale l = sgEnv.getSystemStartupLocale();
-        String familyName = font.getFamily(l).toLowerCase();
-        String fullName = font.getFontName(l).toLowerCase();
-        if (names.contains(familyName) || names.contains(fullName)) {
-            return false;
-        }
-
-        /* Checks passed, now register the font */
-        Hashtable<String,FontFamily> familyTable;
-        Hashtable<String,Font2D> fullNameTable;
-        if (!maybeMultiAppContext()) {
-            familyTable = createdByFamilyName;
-            fullNameTable = createdByFullName;
-            fontsAreRegistered = true;
-        } else {
-            AppContext appContext = AppContext.getAppContext();
-            familyTable =
-                (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
-            fullNameTable =
-                (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
-            if (familyTable == null) {
-                familyTable = new Hashtable<String,FontFamily>();
-                fullNameTable = new Hashtable<String,Font2D>();
-                appContext.put(regFamilyKey, familyTable);
-                appContext.put(regFullNameKey, fullNameTable);
-            }
-            fontsAreRegisteredPerAppContext = true;
-        }
-        /* Create the FontFamily and add font to the tables */
-        Font2D font2D = getFont2D(font);
-        int style = font2D.getStyle();
-        FontFamily family = familyTable.get(familyName);
-        if (family == null) {
-            family = new FontFamily(font.getFamily(l));
-            familyTable.put(familyName, family);
-        }
-        /* Remove name cache entries if not using app contexts.
-         * To accommodate a case where code may have registered first a plain
-         * family member and then used it and is now registering a bold family
-         * member, we need to remove all members of the family, so that the
-         * new style can get picked up rather than continuing to synthesise.
-         */
-        if (fontsAreRegistered) {
-            removeFromCache(family.getFont(Font.PLAIN));
-            removeFromCache(family.getFont(Font.BOLD));
-            removeFromCache(family.getFont(Font.ITALIC));
-            removeFromCache(family.getFont(Font.BOLD|Font.ITALIC));
-            removeFromCache(fullNameTable.get(fullName));
-        }
-        family.setFont(font2D, style);
-        fullNameTable.put(fullName, font2D);
-        return true;
-    }
-
-    /* Remove from the name cache all references to the Font2D */
-    private static void removeFromCache(Font2D font) {
-        if (font == null) {
-            return;
-        }
-        String[] keys = (String[])(fontNameCache.keySet().toArray(STR_ARRAY));
-        for (int k=0; k<keys.length;k++) {
-            if (fontNameCache.get(keys[k]) == font) {
-                fontNameCache.remove(keys[k]);
-            }
-        }
-    }
-
-    // It may look odd to use TreeMap but its more convenient to the caller.
-    public static TreeMap<String, String> getCreatedFontFamilyNames() {
-
-        Hashtable<String,FontFamily> familyTable;
-        if (fontsAreRegistered) {
-            familyTable = createdByFamilyName;
-        } else if (fontsAreRegisteredPerAppContext) {
-            AppContext appContext = AppContext.getAppContext();
-            familyTable =
-                (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
-        } else {
-            return null;
-        }
-
-        Locale l = sgEnv.getSystemStartupLocale();
-        synchronized (familyTable) {
-            TreeMap<String, String> map = new TreeMap<String, String>();
-            for (FontFamily f : familyTable.values()) {
-                Font2D font2D = f.getFont(Font.PLAIN);
-                if (font2D == null) {
-                    font2D = f.getClosestStyle(Font.PLAIN);
-                }
-                String name = font2D.getFamilyName(l);
-                map.put(name.toLowerCase(l), name);
-            }
-            return map;
-        }
-    }
-
-    public static Font[] getCreatedFonts() {
-
-        Hashtable<String,Font2D> nameTable;
-        if (fontsAreRegistered) {
-            nameTable = createdByFullName;
-        } else if (fontsAreRegisteredPerAppContext) {
-            AppContext appContext = AppContext.getAppContext();
-            nameTable =
-                (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
-        } else {
-            return null;
-        }
-
-        Locale l = sgEnv.getSystemStartupLocale();
-        synchronized (nameTable) {
-            Font[] fonts = new Font[nameTable.size()];
-            int i=0;
-            for (Font2D font2D : nameTable.values()) {
-                fonts[i++] = new Font(font2D.getFontName(l), Font.PLAIN, 1);
-            }
-            return fonts;
-        }
-    }
-
-    /* Begin support for GTK Look and Feel - query libfontconfig and
-     * return a composite Font to Swing that uses the desktop font(s).
-     */
-
-    /* A small "map" from GTK/fontconfig names to the equivalent JDK
-     * logical font name.
-    */
-    private static final String[][] nameMap = {
-        {"sans",       "sansserif"},
-        {"sans-serif", "sansserif"},
-        {"serif",      "serif"},
-        {"monospace",  "monospaced"}
-    };
-
-    public static String mapFcName(String name) {
-        for (int i = 0; i < nameMap.length; i++) {
-            if (name.equals(nameMap[i][0])) {
-                return nameMap[i][1];
-            }
-        }
-        return null;
-    }
-
-    /* fontconfig recognises slants roman, italic, as well as oblique,
-     * and a slew of weights, where the ones that matter here are
-     * regular and bold.
-     * To fully qualify what we want, we can for example ask for (eg)
-     * Font.PLAIN             : "serif:regular:roman"
-     * Font.BOLD              : "serif:bold:roman"
-     * Font.ITALIC            : "serif:regular:italic"
-     * Font.BOLD|Font.ITALIC  : "serif:bold:italic"
-     */
-    private static String[] fontConfigNames = {
-        "sans:regular:roman",
-        "sans:bold:roman",
-        "sans:regular:italic",
-        "sans:bold:italic",
-
-        "serif:regular:roman",
-        "serif:bold:roman",
-        "serif:regular:italic",
-        "serif:bold:italic",
-
-        "monospace:regular:roman",
-        "monospace:bold:roman",
-        "monospace:regular:italic",
-        "monospace:bold:italic",
-    };
-
-    /* These next three classes are just data structures.
-     */
-    static class FontConfigFont {
-        String familyName;        // eg Bitstream Vera Sans
-        String styleStr;          // eg Bold
-        String fullName;          // eg Bitstream Vera Sans Bold
-        String fontFile;          // eg /usr/X11/lib/fonts/foo.ttf
-    }
-
-    static class FcCompFont {
-        String fcName;            // eg sans
-        String fcFamily;          // eg sans
-        String jdkName;           // eg sansserif
-        int style;                // eg 0=PLAIN
-        FontConfigFont firstFont;
-        FontConfigFont[] allFonts;
-        //boolean preferBitmaps;    // if embedded bitmaps preferred over AA
-        CompositeFont compFont;   // null if not yet created/known.
-    }
-
-    static class FontConfigInfo {
-        int fcVersion;
-        String[] cacheDirs = new String[4];
-    }
-
-    private static String getFCLocaleStr() {
-        Locale l = SunToolkit.getStartupLocale();
-        String localeStr = l.getLanguage();
-        String country = l.getCountry();
-        if (!country.equals("")) {
-            localeStr = localeStr + "-" + country;
-        }
-        return localeStr;
-    }
-
-    /* This does cause the native libfontconfig to be loaded and unloaded,
-     * but it does not incur the overhead of initialisation of its
-     * data structures, so shouldn't have a measurable impact.
-     */
-    public static native int getFontConfigVersion();
-
-    private static native int
-        getFontConfigAASettings(String locale, String fcFamily);
-
-    /* This is public solely so that for debugging purposes it can be called
-     * with other names, which might (eg) include a size, eg "sans-24"
-     * The return value is a text aa rendering hint value.
-     * Normally we should call the no-args version.
      */
-    public static Object getFontConfigAAHint(String fcFamily) {
-        if (isWindows) {
-            return null;
-        } else {
-            int hint = getFontConfigAASettings(getFCLocaleStr(), fcFamily);
-            if (hint < 0) {
-                return null;
-            } else {
-                return SunHints.Value.get(SunHints.INTKEY_TEXT_ANTIALIASING,
-                                          hint);
-            }
-        }
-    }
-
-    /* Called from code that needs to know what are the AA settings
-     * that apps using FC would pick up for the default desktop font.
-     * Note apps can change the default desktop font. etc, so this
-     * isn't certain to be right but its going to correct for most cases.
-     * Native return values map to the text aa values in sun.awt.SunHints.
-     * which is used to look up the renderinghint value object.
-     */
-    public static Object getFontConfigAAHint() {
-        return getFontConfigAAHint("sans");
-    }
-
-    /* This is populated by native */
-    private static final FontConfigInfo fcInfo = new FontConfigInfo();
-
-    /* This array has the array elements created in Java code and is
-     * passed down to native to be filled in.
-     */
-    private static FcCompFont[] fontConfigFonts;
-
-    /* Return an array of FcCompFont structs describing the primary
-     * font located for each of fontconfig/GTK/Pango's logical font names.
-     */
-    private static native void getFontConfig(String locale,
-                                             FontConfigInfo fcInfo,
-                                             FcCompFont[] fonts,
-                                             boolean includeFallbacks);
-
-    static void populateFontConfig(FcCompFont[] fcInfo) {
-        fontConfigFonts = fcInfo;
-    }
-
-    static FcCompFont[] loadFontConfig() {
-        initFontConfigFonts(true);
-        return fontConfigFonts;
-    }
-
-    static FontConfigInfo getFontConfigInfo() {
-        initFontConfigFonts(true);
-        return fcInfo;
-    }
-
-    /* This can be made public if it's needed to force a re-read
-     * rather than using the cached values. The re-read would be needed
-     * only if some event signalled that the fontconfig has changed.
-     * In that event this method would need to return directly the array
-     * to be used by the caller in case it subsequently changed.
-     */
-    private static synchronized void
-        initFontConfigFonts(boolean includeFallbacks) {
-
-        if (fontConfigFonts != null) {
-            if (!includeFallbacks || (fontConfigFonts[0].allFonts != null)) {
-                return;
-            }
-        }
-
-        if (isWindows || fontConfigFailed) {
-            return;
-        }
-
-        long t0 = 0;
-        if (logging) {
-            t0 = System.nanoTime();
-        }
-
-        FcCompFont[] fontArr = new FcCompFont[fontConfigNames.length];
-        for (int i = 0; i< fontArr.length; i++) {
-            fontArr[i] = new FcCompFont();
-            fontArr[i].fcName = fontConfigNames[i];
-            int colonPos = fontArr[i].fcName.indexOf(':');
-            fontArr[i].fcFamily = fontArr[i].fcName.substring(0, colonPos);
-            fontArr[i].jdkName = mapFcName(fontArr[i].fcFamily);
-            fontArr[i].style = i % 4; // depends on array order.
-        }
-        getFontConfig(getFCLocaleStr(), fcInfo, fontArr, includeFallbacks);
-        /* If don't find anything (eg no libfontconfig), then just return */
-        for (int i = 0; i< fontArr.length; i++) {
-            FcCompFont fci = fontArr[i];
-            if (fci.firstFont == null) {
-                if (logging) {
-                    logger.info("Fontconfig returned no fonts.");
-                }
-                fontConfigFailed = true;
-                return;
-            }
-        }
-        fontConfigFonts = fontArr;
-
-        if (logging) {
-            long t1 = System.nanoTime();
-            logger.info("Time spent accessing fontconfig="+
-                        (t1-t0)/1000000+"ms.");
+    public boolean usingPerAppContextComposites();
 
-            for (int i = 0; i< fontConfigFonts.length; i++) {
-                FcCompFont fci = fontConfigFonts[i];
-                logger.info("FC font " + fci.fcName+" maps to family " +
-                            fci.firstFont.familyName +
-                            " in file " + fci.firstFont.fontFile);
-                if (fci.allFonts != null) {
-                    for (int f=0;f<fci.allFonts.length;f++) {
-                        FontConfigFont fcf = fci.allFonts[f];
-                        logger.info("Family=" + fcf.familyName +
-                                    " Style="+ fcf.styleStr +
-                                    " Fullname="+fcf.fullName +
-                                    " File="+fcf.fontFile);
-                    }
-                }
-            }
-        }
-    }
-
-    private static PhysicalFont registerFromFcInfo(FcCompFont fcInfo) {
-
-        /* If it's a TTC file we need to know that as we will need to
-         * make sure we return the right font */
-        String fontFile = fcInfo.firstFont.fontFile;
-        int offset = fontFile.length()-4;
-        if (offset <= 0) {
-            return null;
-        }
-        String ext = fontFile.substring(offset).toLowerCase();
-        boolean isTTC = ext.equals(".ttc");
-
-        /* If this file is already registered, can just return its font.
-         * However we do need to check in case it's a TTC as we need
-         * a specific font, so rather than directly returning it, let
-         * findFont2D resolve that.
-         */
-        PhysicalFont physFont = registeredFontFiles.get(fontFile);
-        if (physFont != null) {
-            if (isTTC) {
-                Font2D f2d = findFont2D(fcInfo.firstFont.familyName,
-                                        fcInfo.style, NO_FALLBACK);
-                if (f2d instanceof PhysicalFont) { /* paranoia */
-                    return (PhysicalFont)f2d;
-                } else {
-                    return null;
-                }
-            } else {
-                return physFont;
-            }
-        }
-
-        /* If the font may hide a JRE font (eg fontconfig says it is
-         * Lucida Sans), we want to use the JRE version, so make it
-         * point to the JRE font.
-         */
-        physFont = findJREDeferredFont(fcInfo.firstFont.familyName,
-                                       fcInfo.style);
-
-        /* It is also possible the font file is on the "deferred" list,
-         * in which case we can just initialise it now.
-         */
-        if (physFont == null &&
-            deferredFontFiles.get(fontFile) != null)
-        {
-            physFont = initialiseDeferredFont(fcInfo.firstFont.fontFile);
-            /* use findFont2D to get the right font from TTC's */
-            if (physFont != null) {
-                if (isTTC) {
-                    Font2D f2d = findFont2D(fcInfo.firstFont.familyName,
-                                            fcInfo.style, NO_FALLBACK);
-                    if (f2d instanceof PhysicalFont) { /* paranoia */
-                        return (PhysicalFont)f2d;
-                    } else {
-                        return null;
-                    }
-                } else {
-                    return physFont;
-                }
-            }
-        }
-
-        /* In the majority of cases we reach here, and need to determine
-         * the type and rank to register the font.
-         */
-        if (physFont == null) {
-            int fontFormat = FONTFORMAT_NONE;
-            int fontRank = Font2D.UNKNOWN_RANK;
-
-            if (ext.equals(".ttf") || ext.equals(".otf") || isTTC) {
-                fontFormat = FONTFORMAT_TRUETYPE;
-                fontRank = Font2D.TTF_RANK;
-            } else if (ext.equals(".pfa") || ext.equals(".pfb")) {
-                fontFormat = FONTFORMAT_TYPE1;
-                fontRank = Font2D.TYPE1_RANK;
-            }
-            physFont = registerFontFile(fcInfo.firstFont.fontFile, null,
-                                      fontFormat, true, fontRank);
-        }
-        return physFont;
-    }
-
-    private static String[] getPlatformFontDirs() {
-        String path = getFontPath(true);
-        StringTokenizer parser =
-            new StringTokenizer(path, File.pathSeparator);
-        ArrayList<String> pathList = new ArrayList<String>();
-        try {
-            while (parser.hasMoreTokens()) {
-                pathList.add(parser.nextToken());
-            }
-        } catch (NoSuchElementException e) {
-        }
-        return pathList.toArray(new String[0]);
-    }
-
-    /** returns an array of two strings. The first element is the
-     * name of the font. The second element is the file name.
+    /**
+     * Creates a derived composite font from the specified font (handle).
+     *
+     * @param family the font family of the derived font
+     * @param style the font style of the derived font
+     * @param handle the original font (handle)
+     *
+     * @return the handle for the derived font
      */
-    private static String[] defaultPlatformFont = null;
-    public static String[] getDefaultPlatformFont() {
-
-        if (defaultPlatformFont != null) {
-            return defaultPlatformFont;
-        }
-
-        String[] info = new String[2];
-        if (isWindows) {
-            info[0] = "Arial";
-            info[1] = "c:\\windows\\fonts";
-            final String[] dirs = getPlatformFontDirs();
-            if (dirs.length > 1) {
-                String dir = (String)
-                    AccessController.doPrivileged(new PrivilegedAction() {
-                        public Object run() {
-                            for (int i=0; i<dirs.length; i++) {
-                                String path =
-                                    dirs[i] + File.separator + "arial.ttf";
-                                File file = new File(path);
-                                if (file.exists()) {
-                                    return dirs[i];
-                                }
-                            }
-                            return null;
-                        }
-                });
-                if (dir != null) {
-                    info[1] = dir;
-                }
-            } else {
-                info[1] = dirs[0];
-            }
-            info[1] = info[1] + File.separator + "arial.ttf";
-        } else {
-            initFontConfigFonts(false);
-            for (int i=0; i<fontConfigFonts.length; i++) {
-                if ("sans".equals(fontConfigFonts[i].fcFamily) &&
-                    0 == fontConfigFonts[i].style) {
-                    info[0] = fontConfigFonts[i].firstFont.familyName;
-                    info[1] = fontConfigFonts[i].firstFont.fontFile;
-                    break;
-                }
-            }
-            /* Absolute last ditch attempt in the face of fontconfig problems.
-             * If we didn't match, pick the first, or just make something
-             * up so we don't NPE.
-             */
-            if (info[0] == null) {
-                 if (fontConfigFonts.length > 0 &&
-                     fontConfigFonts[0].firstFont.fontFile != null) {
-                     info[0] = fontConfigFonts[0].firstFont.familyName;
-                     info[1] = fontConfigFonts[0].firstFont.fontFile;
-                 } else {
-                     info[0] = "Dialog";
-                     info[1] = "/dialog.ttf";
-                 }
-            }
-        }
-        defaultPlatformFont = info;
-        return defaultPlatformFont;
-    }
-
-    private FcCompFont getFcCompFont() {
-         initFontConfigFonts(false);
-         for (int i=0; i<fontConfigFonts.length; i++) {
-             if ("sans".equals(fontConfigFonts[i].fcFamily) &&
-                 0 == fontConfigFonts[i].style) {
-                 return fontConfigFonts[i];
-             }
-         }
-         return null;
-    }
-    /*
-     * We need to return a Composite font which has as the font in
-     * its first slot one obtained from fontconfig.
-     */
-    private static CompositeFont getFontConfigFont(String name, int style) {
-
-        name = name.toLowerCase();
-
-        initFontConfigFonts(false);
-
-        FcCompFont fcInfo = null;
-        for (int i=0; i<fontConfigFonts.length; i++) {
-            if (name.equals(fontConfigFonts[i].fcFamily) &&
-                style == fontConfigFonts[i].style) {
-                fcInfo = fontConfigFonts[i];
-                break;
-            }
-        }
-        if (fcInfo == null) {
-            fcInfo = fontConfigFonts[0];
-        }
-
-        if (logging) {
-            logger.info("FC name=" + name + " style=" + style + " uses " +
-                        fcInfo.firstFont.familyName +
-                        " in file: " + fcInfo.firstFont.fontFile);
-        }
-
-        if (fcInfo.compFont != null) {
-            return fcInfo.compFont;
-        }
-
-        /* jdkFont is going to be used for slots 1..N and as a fallback.
-         * Slot 0 will be the physical font from fontconfig.
-         */
-        CompositeFont jdkFont = (CompositeFont)
-            findFont2D(fcInfo.jdkName, style, LOGICAL_FALLBACK);
-
-        if (fcInfo.firstFont.familyName == null ||
-            fcInfo.firstFont.fontFile == null) {
-            return (fcInfo.compFont = jdkFont);
-        }
-
-        /* First, see if the family and exact style is already registered.
-         * If it is, use it. If it's not, then try to register it.
-         * If that registration fails (signalled by null) just return the
-         * regular JDK composite.
-         * Algorithmically styled fonts won't match on exact style, so
-         * will fall through this code, but the regisration code will
-         * find that file already registered and return its font.
-         */
-        FontFamily family = FontFamily.getFamily(fcInfo.firstFont.familyName);
-        PhysicalFont physFont = null;
-        if (family != null) {
-            Font2D f2D = family.getFontWithExactStyleMatch(fcInfo.style);
-            if (f2D instanceof PhysicalFont) {
-                physFont = (PhysicalFont)f2D;
-            }
-        }
-
-        if (physFont == null ||
-            !fcInfo.firstFont.fontFile.equals(physFont.platName)) {
-            physFont = registerFromFcInfo(fcInfo);
-            if (physFont == null) {
-                return (fcInfo.compFont = jdkFont);
-            }
-            family = FontFamily.getFamily(physFont.getFamilyName(null));
-        }
-
-        /* Now register the fonts in the family (the other styles) after
-         * checking that they aren't already registered and are actually in
-         * a different file. They may be the same file in CJK cases.
-         * For cases where they are different font files - eg as is common for
-         * Latin fonts, then we rely on fontconfig to report these correctly.
-         * Assume that all styles of this font are found by fontconfig,
-         * so we can find all the family members which must be registered
-         * together to prevent synthetic styling.
-         */
-        for (int i=0; i<fontConfigFonts.length; i++) {
-            FcCompFont fc = fontConfigFonts[i];
-            if (fc != fcInfo &&
-                physFont.getFamilyName(null).equals(fc.firstFont.familyName) &&
-                !fc.firstFont.fontFile.equals(physFont.platName) &&
-                family.getFontWithExactStyleMatch(fc.style) == null) {
-
-                registerFromFcInfo(fontConfigFonts[i]);
-            }
-        }
-
-        /* Now we have a physical font. We will back this up with the JDK
-         * logical font (sansserif, serif, or monospaced) that corresponds
-         * to the Pango/GTK/FC logical font name.
-         */
-        return (fcInfo.compFont = new CompositeFont(physFont, jdkFont));
-    }
-
-    /* This is called by Swing passing in a fontconfig family name
-     * such as "sans". In return Swing gets a FontUIResource instance
-     * that has queried fontconfig to resolve the font(s) used for this.
-     * Fontconfig will if asked return a list of fonts to give the largest
-     * possible code point coverage.
-     * For now we use only the first font returned by fontconfig, and
-     * back it up with the most closely matching JDK logical font.
-     * Essentially this means pre-pending what we return now with fontconfig's
-     * preferred physical font. This could lead to some duplication in cases,
-     * if we already included that font later. We probably should remove such
-     * duplicates, but it is not a significant problem. It can be addressed
-     * later as part of creating a Composite which uses more of the
-     * same fonts as fontconfig. At that time we also should pay more
-     * attention to the special rendering instructions fontconfig returns,
-     * such as whether we should prefer embedded bitmaps over antialiasing.
-     * There's no way to express that via a Font at present.
-     */
-    public static FontUIResource getFontConfigFUIR(String fcFamily,
-                                                   int style, int size) {
-
-        String mappedName = mapFcName(fcFamily);
-        if (mappedName == null) {
-            mappedName = "sansserif";
-        }
-
-        /* If GTK L&F were to be used on windows, we need to return
-         * something. Since on windows Swing won't have the code to
-         * call fontconfig, even if it is present, fcFamily and mapped
-         * name will default to sans and therefore sansserif so this
-         * should be fine.
-         */
-        if (isWindows) {
-            return new FontUIResource(mappedName, style, size);
-        }
-
-        CompositeFont font2D = getFontConfigFont(fcFamily, style);
-        if (font2D == null) { // Not expected, just a precaution.
-           return new FontUIResource(mappedName, style, size);
-        }
-
-        /* The name of the font will be that of the physical font in slot,
-         * but by setting the handle to that of the CompositeFont it
-         * renders as that CompositeFont.
-         * It also needs to be marked as a created font which is the
-         * current mechanism to signal that deriveFont etc must copy
-         * the handle from the original font.
-         */
-        FontUIResource fuir =
-            new FontUIResource(font2D.getFamilyName(null), style, size);
-        setFont2D(fuir, font2D.handle);
-        setCreatedFont(fuir);
-        return fuir;
-    }
-
-    /* The following fields and methods which relate to layout
-     * perhaps belong in some other class but FontManager is already
-     * widely used as an entry point for other JDK code that needs
-     * access to the font system internals.
-     */
+    public Font2DHandle getNewComposite(String family, int style,
+                                        Font2DHandle handle);
 
     /**
-     * Referenced by code in the JDK which wants to test for the
-     * minimum char code for which layout may be required.
-     * Note that even basic latin text can benefit from ligatures,
-     * eg "ffi" but we presently apply those only if explicitly
-     * requested with TextAttribute.LIGATURES_ON.
-     * The value here indicates the lowest char code for which failing
-     * to invoke layout would prevent acceptable rendering.
-     */
-    public static final int MIN_LAYOUT_CHARCODE = 0x0300;
-
-    /**
-     * Referenced by code in the JDK which wants to test for the
-     * maximum char code for which layout may be required.
-     * Note this does not account for supplementary characters
-     * where the caller interprets 'layout' to mean any case where
-     * one 'char' (ie the java type char) does not map to one glyph
-     */
-    public static final int MAX_LAYOUT_CHARCODE = 0x206F;
-
-    /* If the character code falls into any of a number of unicode ranges
-     * where we know that simple left->right layout mapping chars to glyphs
-     * 1:1 and accumulating advances is going to produce incorrect results,
-     * we want to know this so the caller can use a more intelligent layout
-     * approach. A caller who cares about optimum performance may want to
-     * check the first case and skip the method call if its in that range.
-     * Although there's a lot of tests in here, knowing you can skip
-     * CTL saves a great deal more. The rest of the checks are ordered
-     * so that rather than checking explicitly if (>= start & <= end)
-     * which would mean all ranges would need to be checked so be sure
-     * CTL is not needed, the method returns as soon as it recognises
-     * the code point is outside of a CTL ranges.
-     * NOTE: Since this method accepts an 'int' it is asssumed to properly
-     * represent a CHARACTER. ie it assumes the caller has already
-     * converted surrogate pairs into supplementary characters, and so
-     * can handle this case and doesn't need to be told such a case is
-     * 'complex'.
+     * Indicates a preference for locale-specific fonts in the mapping of
+     * logical fonts to physical fonts. Calling this method indicates that font
+     * rendering should primarily use fonts specific to the primary writing
+     * system (the one indicated by the default encoding and the initial
+     * default locale). For example, if the primary writing system is
+     * Japanese, then characters should be rendered using a Japanese font
+     * if possible, and other fonts should only be used for characters for
+     * which the Japanese font doesn't have glyphs.
+     * <p>
+     * The actual change in font rendering behavior resulting from a call
+     * to this method is implementation dependent; it may have no effect at
+     * all, or the requested behavior may already match the default behavior.
+     * The behavior may differ between font rendering in lightweight
+     * and peered components.  Since calling this method requests a
+     * different font, clients should expect different metrics, and may need
+     * to recalculate window sizes and layout. Therefore this method should
+     * be called before user interface initialisation.
+     *
+     * @see #preferProportionalFonts()
+     * @since 1.5
      */
-    static boolean isComplexCharCode(int code) {
-
-        if (code < MIN_LAYOUT_CHARCODE || code > MAX_LAYOUT_CHARCODE) {
-            return false;
-        }
-        else if (code <= 0x036f) {
-            // Trigger layout for combining diacriticals 0x0300->0x036f
-            return true;
-        }
-        else if (code < 0x0590) {
-            // No automatic layout for Greek, Cyrillic, Armenian.
-             return false;
-        }
-        else if (code <= 0x06ff) {
-            // Hebrew 0590 - 05ff
-            // Arabic 0600 - 06ff
-            return true;
-        }
-        else if (code < 0x0900) {
-            return false; // Syriac and Thaana
-        }
-        else if (code <= 0x0e7f) {
-            // if Indic, assume shaping for conjuncts, reordering:
-            // 0900 - 097F Devanagari
-            // 0980 - 09FF Bengali
-            // 0A00 - 0A7F Gurmukhi
-            // 0A80 - 0AFF Gujarati
-            // 0B00 - 0B7F Oriya
-            // 0B80 - 0BFF Tamil
-            // 0C00 - 0C7F Telugu
-            // 0C80 - 0CFF Kannada
-            // 0D00 - 0D7F Malayalam
-            // 0D80 - 0DFF Sinhala
-            // 0E00 - 0E7F if Thai, assume shaping for vowel, tone marks
-            return true;
-        }
-        else if (code < 0x1780) {
-            return false;
-        }
-        else if (code <= 0x17ff) { // 1780 - 17FF Khmer
-            return true;
-        }
-        else if (code < 0x200c) {
-            return false;
-        }
-        else if (code <= 0x200d) { //  zwj or zwnj
-            return true;
-        }
-        else if (code >= 0x202a && code <= 0x202e) { // directional control
-            return true;
-        }
-        else if (code >= 0x206a && code <= 0x206f) { // directional control
-            return true;
-        }
-        return false;
-    }
-
-    /* This is almost the same as the method above, except it takes a
-     * char which means it may include undecoded surrogate pairs.
-     * The distinction is made so that code which needs to identify all
-     * cases in which we do not have a simple mapping from
-     * char->unicode character->glyph can be be identified.
-     * For example measurement cannot simply sum advances of 'chars',
-     * the caret in editable text cannot advance one 'char' at a time, etc.
-     * These callers really are asking for more than whether 'layout'
-     * needs to be run, they need to know if they can assume 1->1
-     * char->glyph mapping.
-     */
-    static boolean isNonSimpleChar(char ch) {
-        return
-            isComplexCharCode(ch) ||
-            (ch >= CharToGlyphMapper.HI_SURROGATE_START &&
-             ch <= CharToGlyphMapper.LO_SURROGATE_END);
-    }
+    public void preferLocaleFonts();
 
     /**
-     * If there is anything in the text which triggers a case
-     * where char->glyph does not map 1:1 in straightforward
-     * left->right ordering, then this method returns true.
-     * Scripts which might require it but are not treated as such
-     * due to JDK implementations will not return true.
-     * ie a 'true' return is an indication of the treatment by
-     * the implementation.
-     * Whether supplementary characters should be considered is dependent
-     * on the needs of the caller. Since this method accepts the 'char' type
-     * then such chars are always represented by a pair. From a rendering
-     * perspective these will all (in the cases I know of) still be one
-     * unicode character -> one glyph. But if a caller is using this to
-     * discover any case where it cannot make naive assumptions about
-     * the number of chars, and how to index through them, then it may
-     * need the option to have a 'true' return in such a case.
+     * preferLocaleFonts() and preferProportionalFonts() are called to inform
+     * that the application could be using an alternate set of composite
+     * fonts, and so the implementation should try to create a CompositeFonts
+     * with this directive in mind.
+     *
+     * @see #preferLocaleFonts()
      */
-    public static boolean isComplexText(char [] chs, int start, int limit) {
-
-        for (int i = start; i < limit; i++) {
-            if (chs[i] < MIN_LAYOUT_CHARCODE) {
-                continue;
-            }
-            else if (isNonSimpleChar(chs[i])) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Used by windows printing to assess if a font is likely to
-     * be layout compatible with JDK
-     * TrueType fonts should be, but if they have no GPOS table,
-     * but do have a GSUB table, then they are probably older
-     * fonts GDI handles differently.
-     */
-    public static boolean textLayoutIsCompatible(Font font) {
-
-        Font2D font2D = FontManager.getFont2D(font);
-        if (font2D instanceof TrueTypeFont) {
-            TrueTypeFont ttf = (TrueTypeFont)font2D;
-            return
-                ttf.getDirectoryEntry(TrueTypeFont.GSUBTag) == null ||
-                ttf.getDirectoryEntry(TrueTypeFont.GPOSTag) != null;
-        } else {
-            return false;
-        }
-    }
-
-    private static FontScaler nullScaler = null;
-    private static Constructor<FontScaler> scalerConstructor = null;
+    public void preferProportionalFonts();
 
-    //Find preferred font scaler
-    //
-    //NB: we can allow property based preferences
-    //   (theoretically logic can be font type specific)
-    static {
-        Class scalerClass = null;
-        Class arglst[] = new Class[] {Font2D.class, int.class,
-        boolean.class, int.class};
-
-        try {
-            if (SunGraphicsEnvironment.isOpenJDK()) {
-                scalerClass = Class.forName("sun.font.FreetypeFontScaler");
-            } else {
-                scalerClass = Class.forName("sun.font.T2KFontScaler");
-            }
-        } catch (ClassNotFoundException e) {
-                scalerClass = NullFontScaler.class;
-        }
-
-        //NB: rewrite using factory? constructor is ugly way
-        try {
-            scalerConstructor = scalerClass.getConstructor(arglst);
-        } catch (NoSuchMethodException e) {
-            //should not happen
-        }
-    }
-
-    /* At the moment it is harmless to create 2 null scalers
-       so, technically, syncronized keyword is not needed.
-
-       But it is safer to keep it to avoid subtle problems if we will be
-       adding checks like whether scaler is null scaler. */
-    public synchronized static FontScaler getNullScaler() {
-        if (nullScaler == null) {
-            nullScaler = new NullFontScaler();
-        }
-        return nullScaler;
-    }
-
-    /* This is the only place to instantiate new FontScaler.
-     * Therefore this is very convinient place to register
-     * scaler with Disposer as well as trigger deregistring bad font
-     * in case when scaler reports this.
-     */
-
-    public static FontScaler getScaler(Font2D font,
-                                       int indexInCollection,
-                                       boolean supportsCJK,
-                                       int filesize) {
-        FontScaler scaler = null;
-
-        try {
-            Object args[] = new Object[] {font, indexInCollection,
-                                          supportsCJK, filesize};
-            scaler = scalerConstructor.newInstance(args);
-            Disposer.addObjectRecord(font, scaler);
-        } catch (Throwable e) {
-            scaler = nullScaler;
-
-            //if we can not instantiate scaler assume bad font
-            //NB: technically it could be also because of internal scaler
-            //    error but here we are assuming scaler is ok.
-            deRegisterBadFont(font);
-        }
-        return scaler;
-    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontManagerFactory.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.AWTError;
+import java.awt.Font;
+import java.awt.GraphicsEnvironment;
+import java.awt.Toolkit;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import sun.security.action.GetPropertyAction;
+
+
+/**
+ * Factory class used to retrieve a valid FontManager instance for the current
+ * platform.
+ *
+ * A default implementation is given for Linux, Solaris and Windows.
+ * You can alter the behaviour of the {@link #getInstance()} method by setting
+ * the {@code sun.font.fontmanager} property. For example:
+ * {@code sun.font.fontmanager=sun.awt.X11FontManager}
+ */
+public final class FontManagerFactory {
+
+    /** Our singleton instance. */
+    private static FontManager instance = null;
+
+    private static final String DEFAULT_CLASS;
+    static {
+        if (FontUtilities.isWindows)
+            DEFAULT_CLASS = "sun.awt.Win32FontManager";
+        else
+            DEFAULT_CLASS = "sun.awt.X11FontManager";
+    }
+
+    /**
+     * Get a valid FontManager implementation for the current platform.
+     *
+     * @return a valid FontManager instance for the current platform
+     */
+    public static synchronized FontManager getInstance() {
+
+        if (instance != null) {
+            return instance;
+        }
+
+        String fmClassName = AccessController.doPrivileged(
+                new GetPropertyAction("sun.font.fontmanager",
+                                      DEFAULT_CLASS));
+
+        try {
+            @SuppressWarnings("unchecked")
+            ClassLoader cl = (ClassLoader)
+                AccessController.doPrivileged(new PrivilegedAction() {
+                    public Object run() {
+                        return ClassLoader.getSystemClassLoader();
+                    }
+                });
+
+            @SuppressWarnings("unchecked")
+            Class fmClass = Class.forName(fmClassName, true, cl);
+            instance = (FontManager) fmClass.newInstance();
+
+        } catch (ClassNotFoundException ex) {
+            InternalError err = new InternalError();
+            err.initCause(ex);
+            throw err;
+
+        } catch (InstantiationException ex) {
+            InternalError err = new InternalError();
+            err.initCause(ex);
+            throw err;
+
+        } catch (IllegalAccessException ex) {
+            InternalError err = new InternalError();
+            err.initCause(ex);
+            throw err;
+        }
+
+        return instance;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontManagerForSGE.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+import java.util.Locale;
+import java.util.TreeMap;
+
+/**
+ * This is an extension of the {@link FontManager} interface which has to
+ * be implemented on systems that want to use SunGraphicsEnvironment. It
+ * adds a couple of methods that are only required by SGE. Graphics
+ * implementations that use their own GraphicsEnvironment are not required
+ * to implement this and can use plain FontManager instead.
+ */
+public interface FontManagerForSGE extends FontManager {
+
+    /**
+     * Return an array of created Fonts, or null, if no fonts were created yet.
+     */
+    public Font[] getCreatedFonts();
+
+    /**
+     * Similar to getCreatedFonts, but returns a TreeMap of fonts by family name.
+     */
+    public TreeMap<String, String> getCreatedFontFamilyNames();
+
+    /**
+     * Returns all fonts installed in this environment.
+     */
+    public Font[] getAllInstalledFonts();
+
+    public String[] getInstalledFontFamilyNames(Locale requestedLocale);
+}
--- a/jdk/src/share/classes/sun/font/FontManagerNativeLibrary.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontManagerNativeLibrary.java	Wed Oct 07 14:15:01 2009 -0700
@@ -34,7 +34,7 @@
             public Object run() {
                /* REMIND do we really have to load awt here? */
                System.loadLibrary("awt");
-               if (SunGraphicsEnvironment.isOpenJDK() &&
+               if (FontUtilities.isOpenJDK &&
                    System.getProperty("os.name").startsWith("Windows")) {
                    /* Ideally fontmanager library should not depend on
                       particular implementation of the font scaler.
--- a/jdk/src/share/classes/sun/font/FontResolver.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontResolver.java	Wed Oct 07 14:15:01 2009 -0700
@@ -114,7 +114,7 @@
 
             for (int i=0; i<getAllFonts().length; i++) {
                 Font font = allFonts[i];
-                Font2D font2D = FontManager.getFont2D(font);
+                Font2D font2D = FontUtilities.getFont2D(font);
                 if (font2D.hasSupplementaryChars()) {
                     fonts.add(font);
                     indices.add(Integer.valueOf(i));
--- a/jdk/src/share/classes/sun/font/FontScaler.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FontScaler.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,6 +29,9 @@
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.lang.ref.WeakReference;
+import java.lang.reflect.Constructor;
+
+import sun.java2d.Disposer;
 import sun.java2d.DisposerRecord;
 
 /* FontScaler is "internal interface" to font rasterizer library.
@@ -77,6 +80,79 @@
  *     this (and this is probably more important for Type1 fonts).
  */
 public abstract class FontScaler implements DisposerRecord {
+
+    private static FontScaler nullScaler = null;
+    private static Constructor<FontScaler> scalerConstructor = null;
+
+    //Find preferred font scaler
+    //
+    //NB: we can allow property based preferences
+    //   (theoretically logic can be font type specific)
+    static {
+        Class scalerClass = null;
+        Class arglst[] = new Class[] {Font2D.class, int.class,
+        boolean.class, int.class};
+
+        try {
+            if (FontUtilities.isOpenJDK) {
+                scalerClass = Class.forName("sun.font.FreetypeFontScaler");
+            } else {
+                scalerClass = Class.forName("sun.font.T2KFontScaler");
+            }
+        } catch (ClassNotFoundException e) {
+                scalerClass = NullFontScaler.class;
+        }
+
+        //NB: rewrite using factory? constructor is ugly way
+        try {
+            scalerConstructor = scalerClass.getConstructor(arglst);
+        } catch (NoSuchMethodException e) {
+            //should not happen
+        }
+    }
+
+    /* This is the only place to instantiate new FontScaler.
+     * Therefore this is very convinient place to register
+     * scaler with Disposer as well as trigger deregistring bad font
+     * in case when scaler reports this.
+     */
+    public static FontScaler getScaler(Font2D font,
+                                int indexInCollection,
+                                boolean supportsCJK,
+                                int filesize) {
+        FontScaler scaler = null;
+
+        try {
+            Object args[] = new Object[] {font, indexInCollection,
+                                          supportsCJK, filesize};
+            scaler = scalerConstructor.newInstance(args);
+            Disposer.addObjectRecord(font, scaler);
+        } catch (Throwable e) {
+            scaler = nullScaler;
+
+            //if we can not instantiate scaler assume bad font
+            //NB: technically it could be also because of internal scaler
+            //    error but here we are assuming scaler is ok.
+            FontManager fm = FontManagerFactory.getInstance();
+            fm.deRegisterBadFont(font);
+        }
+        return scaler;
+    }
+
+    /*
+     * At the moment it is harmless to create 2 null scalers so, technically,
+     * syncronized keyword is not needed.
+     *
+     * But it is safer to keep it to avoid subtle problems if we will be adding
+     * checks like whether scaler is null scaler.
+     */
+    public static synchronized FontScaler getNullScaler() {
+        if (nullScaler == null) {
+            nullScaler = new NullFontScaler();
+        }
+        return nullScaler;
+    }
+
     protected WeakReference<Font2D> font = null;
     protected long nativeScaler = 0; //used by decendants
                                      //that have native state
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/FontUtilities.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,485 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.security.AccessController;
+
+import javax.swing.plaf.FontUIResource;
+
+import sun.security.action.GetPropertyAction;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * A collection of utility methods.
+ */
+public final class FontUtilities {
+
+    public static final boolean isSolaris;
+
+    public static final boolean isLinux;
+
+    public static final boolean isSolaris8;
+
+    public static final boolean isSolaris9;
+
+    public static final boolean isOpenSolaris;
+
+    public static final boolean useT2K;
+
+    public static final boolean isWindows;
+
+    public static final boolean isOpenJDK;
+
+    static final String LUCIDA_FILE_NAME = "LucidaSansRegular.ttf";
+
+    // This static initializer block figures out the OS constants.
+    static {
+
+        String osName = AccessController.doPrivileged(
+                                new GetPropertyAction("os.name", "unknownOS"));
+        isSolaris = osName.startsWith("SunOS");
+
+        isLinux = osName.startsWith("Linux");
+
+        String t2kStr = AccessController.doPrivileged(
+                              new GetPropertyAction("sun.java2d.font.scaler"));
+        if (t2kStr != null) {
+            useT2K = "t2k".equals(t2kStr);
+        } else {
+            useT2K = false;
+        }
+        if (isSolaris) {
+            String version = AccessController.doPrivileged(
+                                   new GetPropertyAction("os.version", "0.0"));
+            isSolaris8 = version.startsWith("5.8");
+            isSolaris9 = version.startsWith("5.9");
+            float ver = Float.parseFloat(version);
+            if (ver > 5.10f) {
+                File f = new File("/etc/release");
+                String line = null;
+                try {
+                    FileInputStream fis = new FileInputStream(f);
+                    InputStreamReader isr = new InputStreamReader(
+                                                            fis, "ISO-8859-1");
+                    BufferedReader br = new BufferedReader(isr);
+                    line = br.readLine();
+                    fis.close();
+                } catch (Exception ex) {
+                    // Nothing to do here.
+                }
+                if (line != null && line.indexOf("OpenSolaris") >= 0) {
+                    isOpenSolaris = true;
+                } else {
+                    isOpenSolaris = false;
+                }
+            } else {
+                isOpenSolaris= false;
+            }
+        } else {
+            isSolaris8 = false;
+            isSolaris9 = false;
+            isOpenSolaris = false;
+        }
+        isWindows = osName.startsWith("Windows");
+        String jreLibDirName = AccessController.doPrivileged(
+               new GetPropertyAction("java.home","")) + File.separator + "lib";
+        String jreFontDirName = jreLibDirName + File.separator + "fonts";
+        File lucidaFile =
+                new File(jreFontDirName + File.separator + LUCIDA_FILE_NAME);
+        isOpenJDK = !lucidaFile.exists();
+    }
+
+    /**
+     * Referenced by code in the JDK which wants to test for the
+     * minimum char code for which layout may be required.
+     * Note that even basic latin text can benefit from ligatures,
+     * eg "ffi" but we presently apply those only if explicitly
+     * requested with TextAttribute.LIGATURES_ON.
+     * The value here indicates the lowest char code for which failing
+     * to invoke layout would prevent acceptable rendering.
+     */
+    public static final int MIN_LAYOUT_CHARCODE = 0x0300;
+
+    /**
+     * Referenced by code in the JDK which wants to test for the
+     * maximum char code for which layout may be required.
+     * Note this does not account for supplementary characters
+     * where the caller interprets 'layout' to mean any case where
+     * one 'char' (ie the java type char) does not map to one glyph
+     */
+    public static final int MAX_LAYOUT_CHARCODE = 0x206F;
+
+    private static boolean debugFonts = false;
+    private static PlatformLogger logger = null;
+    private static boolean logging;
+
+    static {
+
+        String debugLevel =
+            System.getProperty("sun.java2d.debugfonts");
+
+        if (debugLevel != null && !debugLevel.equals("false")) {
+            debugFonts = true;
+            logger = PlatformLogger.getLogger("sun.java2d");
+            if (debugLevel.equals("warning")) {
+                logger.setLevel(PlatformLogger.WARNING);
+            } else if (debugLevel.equals("severe")) {
+                logger.setLevel(PlatformLogger.SEVERE);
+            }
+        }
+
+        if (debugFonts) {
+            logger = PlatformLogger.getLogger("sun.java2d");
+            logging = logger.isEnabled();
+        }
+
+    }
+
+    /**
+     * Calls the private getFont2D() method in java.awt.Font objects.
+     *
+     * @param font the font object to call
+     *
+     * @return the Font2D object returned by Font.getFont2D()
+     */
+    public static Font2D getFont2D(Font font) {
+        return FontAccess.getFontAccess().getFont2D(font);
+    }
+
+    /**
+     * If there is anything in the text which triggers a case
+     * where char->glyph does not map 1:1 in straightforward
+     * left->right ordering, then this method returns true.
+     * Scripts which might require it but are not treated as such
+     * due to JDK implementations will not return true.
+     * ie a 'true' return is an indication of the treatment by
+     * the implementation.
+     * Whether supplementary characters should be considered is dependent
+     * on the needs of the caller. Since this method accepts the 'char' type
+     * then such chars are always represented by a pair. From a rendering
+     * perspective these will all (in the cases I know of) still be one
+     * unicode character -> one glyph. But if a caller is using this to
+     * discover any case where it cannot make naive assumptions about
+     * the number of chars, and how to index through them, then it may
+     * need the option to have a 'true' return in such a case.
+     */
+    public static boolean isComplexText(char [] chs, int start, int limit) {
+
+        for (int i = start; i < limit; i++) {
+            if (chs[i] < MIN_LAYOUT_CHARCODE) {
+                continue;
+            }
+            else if (isNonSimpleChar(chs[i])) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /* This is almost the same as the method above, except it takes a
+     * char which means it may include undecoded surrogate pairs.
+     * The distinction is made so that code which needs to identify all
+     * cases in which we do not have a simple mapping from
+     * char->unicode character->glyph can be be identified.
+     * For example measurement cannot simply sum advances of 'chars',
+     * the caret in editable text cannot advance one 'char' at a time, etc.
+     * These callers really are asking for more than whether 'layout'
+     * needs to be run, they need to know if they can assume 1->1
+     * char->glyph mapping.
+     */
+    public static boolean isNonSimpleChar(char ch) {
+        return
+            isComplexCharCode(ch) ||
+            (ch >= CharToGlyphMapper.HI_SURROGATE_START &&
+             ch <= CharToGlyphMapper.LO_SURROGATE_END);
+    }
+
+    /* If the character code falls into any of a number of unicode ranges
+     * where we know that simple left->right layout mapping chars to glyphs
+     * 1:1 and accumulating advances is going to produce incorrect results,
+     * we want to know this so the caller can use a more intelligent layout
+     * approach. A caller who cares about optimum performance may want to
+     * check the first case and skip the method call if its in that range.
+     * Although there's a lot of tests in here, knowing you can skip
+     * CTL saves a great deal more. The rest of the checks are ordered
+     * so that rather than checking explicitly if (>= start & <= end)
+     * which would mean all ranges would need to be checked so be sure
+     * CTL is not needed, the method returns as soon as it recognises
+     * the code point is outside of a CTL ranges.
+     * NOTE: Since this method accepts an 'int' it is asssumed to properly
+     * represent a CHARACTER. ie it assumes the caller has already
+     * converted surrogate pairs into supplementary characters, and so
+     * can handle this case and doesn't need to be told such a case is
+     * 'complex'.
+     */
+    public static boolean isComplexCharCode(int code) {
+
+        if (code < MIN_LAYOUT_CHARCODE || code > MAX_LAYOUT_CHARCODE) {
+            return false;
+        }
+        else if (code <= 0x036f) {
+            // Trigger layout for combining diacriticals 0x0300->0x036f
+            return true;
+        }
+        else if (code < 0x0590) {
+            // No automatic layout for Greek, Cyrillic, Armenian.
+             return false;
+        }
+        else if (code <= 0x06ff) {
+            // Hebrew 0590 - 05ff
+            // Arabic 0600 - 06ff
+            return true;
+        }
+        else if (code < 0x0900) {
+            return false; // Syriac and Thaana
+        }
+        else if (code <= 0x0e7f) {
+            // if Indic, assume shaping for conjuncts, reordering:
+            // 0900 - 097F Devanagari
+            // 0980 - 09FF Bengali
+            // 0A00 - 0A7F Gurmukhi
+            // 0A80 - 0AFF Gujarati
+            // 0B00 - 0B7F Oriya
+            // 0B80 - 0BFF Tamil
+            // 0C00 - 0C7F Telugu
+            // 0C80 - 0CFF Kannada
+            // 0D00 - 0D7F Malayalam
+            // 0D80 - 0DFF Sinhala
+            // 0E00 - 0E7F if Thai, assume shaping for vowel, tone marks
+            return true;
+        }
+        else if (code < 0x1780) {
+            return false;
+        }
+        else if (code <= 0x17ff) { // 1780 - 17FF Khmer
+            return true;
+        }
+        else if (code < 0x200c) {
+            return false;
+        }
+        else if (code <= 0x200d) { //  zwj or zwnj
+            return true;
+        }
+        else if (code >= 0x202a && code <= 0x202e) { // directional control
+            return true;
+        }
+        else if (code >= 0x206a && code <= 0x206f) { // directional control
+            return true;
+        }
+        return false;
+    }
+
+    public static PlatformLogger getLogger() {
+        return logger;
+    }
+
+    public static boolean isLogging() {
+        return logging;
+    }
+
+    public static boolean debugFonts() {
+        return debugFonts;
+    }
+
+
+    // The following methods are used by Swing.
+
+    /* Revise the implementation to in fact mean "font is a composite font.
+     * This ensures that Swing components will always benefit from the
+     * fall back fonts
+     */
+    public static boolean fontSupportsDefaultEncoding(Font font) {
+        return getFont2D(font) instanceof CompositeFont;
+    }
+
+    /**
+     * This method is provided for internal and exclusive use by Swing.
+     *
+     * It may be used in conjunction with fontSupportsDefaultEncoding(Font)
+     * In the event that a desktop properties font doesn't directly
+     * support the default encoding, (ie because the host OS supports
+     * adding support for the current locale automatically for native apps),
+     * then Swing calls this method to get a font which  uses the specified
+     * font for the code points it covers, but also supports this locale
+     * just as the standard composite fonts do.
+     * Note: this will over-ride any setting where an application
+     * specifies it prefers locale specific composite fonts.
+     * The logic for this, is that this method is used only where the user or
+     * application has specified that the native L&F be used, and that
+     * we should honour that request to use the same font as native apps use.
+     *
+     * The behaviour of this method is to construct a new composite
+     * Font object that uses the specified physical font as its first
+     * component, and adds all the components of "dialog" as fall back
+     * components.
+     * The method currently assumes that only the size and style attributes
+     * are set on the specified font. It doesn't copy the font transform or
+     * other attributes because they aren't set on a font created from
+     * the desktop. This will need to be fixed if use is broadened.
+     *
+     * Operations such as Font.deriveFont will work properly on the
+     * font returned by this method for deriving a different point size.
+     * Additionally it tries to support a different style by calling
+     * getNewComposite() below. That also supports replacing slot zero
+     * with a different physical font but that is expected to be "rare".
+     * Deriving with a different style is needed because its been shown
+     * that some applications try to do this for Swing FontUIResources.
+     * Also operations such as new Font(font.getFontName(..), Font.PLAIN, 14);
+     * will NOT yield the same result, as the new underlying CompositeFont
+     * cannot be "looked up" in the font registry.
+     * This returns a FontUIResource as that is the Font sub-class needed
+     * by Swing.
+     * Suggested usage is something like :
+     * FontUIResource fuir;
+     * Font desktopFont = getDesktopFont(..);
+     * // NOTE even if fontSupportsDefaultEncoding returns true because
+     * // you get Tahoma and are running in an English locale, you may
+     * // still want to just call getCompositeFontUIResource() anyway
+     * // as only then will you get fallback fonts - eg for CJK.
+     * if (FontManager.fontSupportsDefaultEncoding(desktopFont)) {
+     *   fuir = new FontUIResource(..);
+     * } else {
+     *   fuir = FontManager.getCompositeFontUIResource(desktopFont);
+     * }
+     * return fuir;
+     */
+    public static FontUIResource getCompositeFontUIResource(Font font) {
+
+        FontUIResource fuir =
+            new FontUIResource(font.getName(),font.getStyle(),font.getSize());
+        Font2D font2D = FontUtilities.getFont2D(font);
+
+        if (!(font2D instanceof PhysicalFont)) {
+            /* Swing should only be calling this when a font is obtained
+             * from desktop properties, so should generally be a physical font,
+             * an exception might be for names like "MS Serif" which are
+             * automatically mapped to "Serif", so there's no need to do
+             * anything special in that case. But note that suggested usage
+             * is first to call fontSupportsDefaultEncoding(Font) and this
+             * method should not be called if that were to return true.
+             */
+             return fuir;
+        }
+
+        FontManager fm = FontManagerFactory.getInstance();
+        CompositeFont dialog2D =
+          (CompositeFont) fm.findFont2D("dialog", font.getStyle(), FontManager.NO_FALLBACK);
+        if (dialog2D == null) { /* shouldn't happen */
+            return fuir;
+        }
+        PhysicalFont physicalFont = (PhysicalFont)font2D;
+        CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
+        FontAccess.getFontAccess().setFont2D(fuir, compFont.handle);
+        /* marking this as a created font is needed as only created fonts
+         * copy their creator's handles.
+         */
+        FontAccess.getFontAccess().setCreatedFont(fuir);
+        return fuir;
+    }
+
+   /* A small "map" from GTK/fontconfig names to the equivalent JDK
+    * logical font name.
+    */
+    private static final String[][] nameMap = {
+        {"sans",       "sansserif"},
+        {"sans-serif", "sansserif"},
+        {"serif",      "serif"},
+        {"monospace",  "monospaced"}
+    };
+
+    public static String mapFcName(String name) {
+        for (int i = 0; i < nameMap.length; i++) {
+            if (name.equals(nameMap[i][0])) {
+                return nameMap[i][1];
+            }
+        }
+        return null;
+    }
+
+
+    /* This is called by Swing passing in a fontconfig family name
+     * such as "sans". In return Swing gets a FontUIResource instance
+     * that has queried fontconfig to resolve the font(s) used for this.
+     * Fontconfig will if asked return a list of fonts to give the largest
+     * possible code point coverage.
+     * For now we use only the first font returned by fontconfig, and
+     * back it up with the most closely matching JDK logical font.
+     * Essentially this means pre-pending what we return now with fontconfig's
+     * preferred physical font. This could lead to some duplication in cases,
+     * if we already included that font later. We probably should remove such
+     * duplicates, but it is not a significant problem. It can be addressed
+     * later as part of creating a Composite which uses more of the
+     * same fonts as fontconfig. At that time we also should pay more
+     * attention to the special rendering instructions fontconfig returns,
+     * such as whether we should prefer embedded bitmaps over antialiasing.
+     * There's no way to express that via a Font at present.
+     */
+    public static FontUIResource getFontConfigFUIR(String fcFamily,
+                                                   int style, int size) {
+
+        String mapped = mapFcName(fcFamily);
+        if (mapped == null) {
+            mapped = "sansserif";
+        }
+
+        FontUIResource fuir;
+        FontManager fm = FontManagerFactory.getInstance();
+        if (fm instanceof SunFontManager) {
+            SunFontManager sfm = (SunFontManager) fm;
+            fuir = sfm.getFontConfigFUIR(mapped, style, size);
+        } else {
+            fuir = new FontUIResource(mapped, style, size);
+        }
+        return fuir;
+    }
+
+
+    /**
+     * Used by windows printing to assess if a font is likely to
+     * be layout compatible with JDK
+     * TrueType fonts should be, but if they have no GPOS table,
+     * but do have a GSUB table, then they are probably older
+     * fonts GDI handles differently.
+     */
+    public static boolean textLayoutIsCompatible(Font font) {
+
+        Font2D font2D = getFont2D(font);
+        if (font2D instanceof TrueTypeFont) {
+            TrueTypeFont ttf = (TrueTypeFont) font2D;
+            return
+                ttf.getDirectoryEntry(TrueTypeFont.GSUBTag) == null ||
+                ttf.getDirectoryEntry(TrueTypeFont.GPOSTag) != null;
+        } else {
+            return false;
+        }
+    }
+
+}
--- a/jdk/src/share/classes/sun/font/FreetypeFontScaler.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/FreetypeFontScaler.java	Wed Oct 07 14:15:01 2009 -0700
@@ -79,7 +79,7 @@
                                             pScalerContext,
                                             nativeScaler);
         }
-        return FontManager.getNullScaler().getFontMetrics(0L);
+        return FontScaler.getNullScaler().getFontMetrics(0L);
     }
 
     synchronized float getGlyphAdvance(long pScalerContext, int glyphCode)
@@ -90,7 +90,8 @@
                                          nativeScaler,
                                          glyphCode);
         }
-        return FontManager.getNullScaler().getGlyphAdvance(0L, glyphCode);
+        return FontScaler.getNullScaler().
+            getGlyphAdvance(0L, glyphCode);
     }
 
     synchronized void getGlyphMetrics(long pScalerContext,
@@ -104,7 +105,8 @@
                                   metrics);
             return;
         }
-        FontManager.getNullScaler().getGlyphMetrics(0L, glyphCode, metrics);
+        FontScaler.getNullScaler().
+            getGlyphMetrics(0L, glyphCode, metrics);
     }
 
     synchronized long getGlyphImage(long pScalerContext, int glyphCode)
@@ -115,7 +117,8 @@
                                        nativeScaler,
                                        glyphCode);
         }
-        return FontManager.getNullScaler().getGlyphImage(0L, glyphCode);
+        return FontScaler.getNullScaler().
+            getGlyphImage(0L, glyphCode);
     }
 
     synchronized Rectangle2D.Float getGlyphOutlineBounds(
@@ -127,7 +130,8 @@
                                                nativeScaler,
                                                glyphCode);
         }
-        return FontManager.getNullScaler().getGlyphOutlineBounds(0L,glyphCode);
+        return FontScaler.getNullScaler().
+            getGlyphOutlineBounds(0L,glyphCode);
     }
 
     synchronized GeneralPath getGlyphOutline(
@@ -140,7 +144,8 @@
                                          glyphCode,
                                          x, y);
         }
-        return FontManager.getNullScaler().getGlyphOutline(0L, glyphCode, x,y);
+        return FontScaler.getNullScaler().
+            getGlyphOutline(0L, glyphCode, x,y);
     }
 
     synchronized GeneralPath getGlyphVectorOutline(
@@ -154,8 +159,8 @@
                                                numGlyphs,
                                                x, y);
         }
-        return FontManager.getNullScaler().getGlyphVectorOutline(
-                   0L, glyphs, numGlyphs, x, y);
+        return FontScaler
+            .getNullScaler().getGlyphVectorOutline(0L, glyphs, numGlyphs, x, y);
     }
 
     synchronized long getLayoutTableCache() throws FontScalerException {
@@ -173,21 +178,21 @@
         if (nativeScaler != 0L) {
             return getNumGlyphsNative(nativeScaler);
         }
-        return FontManager.getNullScaler().getNumGlyphs();
+        return FontScaler.getNullScaler().getNumGlyphs();
     }
 
     synchronized int getMissingGlyphCode()  throws FontScalerException {
         if (nativeScaler != 0L) {
             return getMissingGlyphCodeNative(nativeScaler);
         }
-        return FontManager.getNullScaler().getMissingGlyphCode();
+        return FontScaler.getNullScaler().getMissingGlyphCode();
     }
 
     synchronized int getGlyphCode(char charCode) throws FontScalerException {
         if (nativeScaler != 0L) {
             return getGlyphCodeNative(nativeScaler, charCode);
         }
-        return FontManager.getNullScaler().getGlyphCode(charCode);
+        return FontScaler.getNullScaler().getGlyphCode(charCode);
     }
 
     synchronized Point2D.Float getGlyphPoint(long pScalerContext,
@@ -197,7 +202,7 @@
             return getGlyphPointNative(font.get(), pScalerContext,
                                       nativeScaler, glyphCode, ptNumber);
         }
-        return FontManager.getNullScaler().getGlyphPoint(
+        return FontScaler.getNullScaler().getGlyphPoint(
                    pScalerContext, glyphCode,  ptNumber);
     }
 
--- a/jdk/src/share/classes/sun/font/GlyphLayout.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/GlyphLayout.java	Wed Oct 07 14:15:01 2009 -0700
@@ -259,7 +259,7 @@
              */
             int aa =
                 FontStrikeDesc.getAAHintIntVal(frc.getAntiAliasingHint(),
-                                               FontManager.getFont2D(font),
+                                               FontUtilities.getFont2D(font),
                                                (int)Math.abs(ptSize));
             int fm = FontStrikeDesc.getFMHintIntVal
                 (frc.getFractionalMetricsHint());
@@ -407,7 +407,7 @@
 
         int lang = -1; // default for now
 
-        Font2D font2D = FontManager.getFont2D(font);
+        Font2D font2D = FontUtilities.getFont2D(font);
 
         _textRecord.init(text, offset, lim, min, max);
         int start = offset;
--- a/jdk/src/share/classes/sun/font/PhysicalStrike.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/PhysicalStrike.java	Wed Oct 07 14:15:01 2009 -0700
@@ -36,6 +36,14 @@
 public abstract class PhysicalStrike extends FontStrike {
 
     static final long INTMASK = 0xffffffffL;
+    static boolean longAddresses;
+    static {
+        switch (StrikeCache.nativeAddressSize) {
+        case 8: longAddresses = true; break;
+        case 4: longAddresses = false; break;
+        default: throw new RuntimeException("Unexpected address size");
+        }
+    }
 
     private PhysicalFont physicalFont;
     protected CharToGlyphMapper mapper;
--- a/jdk/src/share/classes/sun/font/StandardGlyphVector.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/StandardGlyphVector.java	Wed Oct 07 14:15:01 2009 -0700
@@ -197,7 +197,7 @@
 
             // how do we know its a base glyph
             // for now, it is if the natural advance of the glyph is non-zero
-            Font2D f2d = FontManager.getFont2D(font);
+            Font2D f2d = FontUtilities.getFont2D(font);
             FontStrike strike = f2d.getStrike(font, frc);
 
             float[] deltas = { trackPt.x, trackPt.y };
@@ -1116,7 +1116,7 @@
     }
 
     private void initFontData() {
-        font2D = FontManager.getFont2D(font);
+        font2D = FontUtilities.getFont2D(font);
         float s = font.getSize2D();
         if (font.isTransformed()) {
             ftx = font.getTransform();
--- a/jdk/src/share/classes/sun/font/StrikeCache.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/StrikeCache.java	Wed Oct 07 14:15:01 2009 -0700
@@ -237,7 +237,7 @@
              * any glyphs. In this case we still want to free the scaler
              * context.
              */
-            if (FontManager.longAddresses) {
+            if (longAddresses()) {
                 freeLongMemory(new long[0], disposer.pScalerContext);
             } else {
                 freeIntMemory(new int[0], disposer.pScalerContext);
@@ -245,6 +245,10 @@
         }
     }
 
+    private static boolean longAddresses() {
+        return nativeAddressSize == 8;
+    }
+
     static void disposeStrike(final FontStrikeDisposer disposer) {
         // we need to execute the strike disposal on the rendering thread
         // because they may be accessed on that thread at the time of the
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/font/SunFontManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,3674 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.awt.Font;
+import java.awt.FontFormatException;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.Vector;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.swing.plaf.FontUIResource;
+import sun.awt.AppContext;
+import sun.awt.FontConfiguration;
+import sun.awt.SunToolkit;
+import sun.java2d.FontSupport;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * The base implementation of the {@link FontManager} interface. It implements
+ * the platform independent, shared parts of OpenJDK's FontManager
+ * implementations. The platform specific parts are declared as abstract
+ * methods that have to be implemented by specific implementations.
+ */
+public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
+
+    private static class TTFilter implements FilenameFilter {
+        public boolean accept(File dir,String name) {
+            /* all conveniently have the same suffix length */
+            int offset = name.length()-4;
+            if (offset <= 0) { /* must be at least A.ttf */
+                return false;
+            } else {
+                return(name.startsWith(".ttf", offset) ||
+                       name.startsWith(".TTF", offset) ||
+                       name.startsWith(".ttc", offset) ||
+                       name.startsWith(".TTC", offset));
+            }
+        }
+    }
+
+    private static class T1Filter implements FilenameFilter {
+        public boolean accept(File dir,String name) {
+            if (noType1Font) {
+                return false;
+            }
+            /* all conveniently have the same suffix length */
+            int offset = name.length()-4;
+            if (offset <= 0) { /* must be at least A.pfa */
+                return false;
+            } else {
+                return(name.startsWith(".pfa", offset) ||
+                       name.startsWith(".pfb", offset) ||
+                       name.startsWith(".PFA", offset) ||
+                       name.startsWith(".PFB", offset));
+            }
+        }
+    }
+
+     private static class TTorT1Filter implements FilenameFilter {
+        public boolean accept(File dir, String name) {
+
+            /* all conveniently have the same suffix length */
+            int offset = name.length()-4;
+            if (offset <= 0) { /* must be at least A.ttf or A.pfa */
+                return false;
+            } else {
+                boolean isTT =
+                    name.startsWith(".ttf", offset) ||
+                    name.startsWith(".TTF", offset) ||
+                    name.startsWith(".ttc", offset) ||
+                    name.startsWith(".TTC", offset);
+                if (isTT) {
+                    return true;
+                } else if (noType1Font) {
+                    return false;
+                } else {
+                    return(name.startsWith(".pfa", offset) ||
+                           name.startsWith(".pfb", offset) ||
+                           name.startsWith(".PFA", offset) ||
+                           name.startsWith(".PFB", offset));
+                }
+            }
+        }
+    }
+
+     public static final int FONTFORMAT_NONE = -1;
+     public static final int FONTFORMAT_TRUETYPE = 0;
+     public static final int FONTFORMAT_TYPE1 = 1;
+     public static final int FONTFORMAT_T2K = 2;
+     public static final int FONTFORMAT_TTC = 3;
+     public static final int FONTFORMAT_COMPOSITE = 4;
+     public static final int FONTFORMAT_NATIVE = 5;
+
+     /* Pool of 20 font file channels chosen because some UTF-8 locale
+      * composite fonts can use up to 16 platform fonts (including the
+      * Lucida fall back). This should prevent channel thrashing when
+      * dealing with one of these fonts.
+      * The pool array stores the fonts, rather than directly referencing
+      * the channels, as the font needs to do the open/close work.
+      */
+     private static final int CHANNELPOOLSIZE = 20;
+     private int lastPoolIndex = 0;
+     private FileFont fontFileCache[] = new FileFont[CHANNELPOOLSIZE];
+
+    /* Need to implement a simple linked list scheme for fast
+     * traversal and lookup.
+     * Also want to "fast path" dialog so there's minimal overhead.
+     */
+    /* There are at exactly 20 composite fonts: 5 faces (but some are not
+     * usually different), in 4 styles. The array may be auto-expanded
+     * later if more are needed, eg for user-defined composites or locale
+     * variants.
+     */
+    private int maxCompFont = 0;
+    private CompositeFont [] compFonts = new CompositeFont[20];
+    private ConcurrentHashMap<String, CompositeFont>
+        compositeFonts = new ConcurrentHashMap<String, CompositeFont>();
+    private ConcurrentHashMap<String, PhysicalFont>
+        physicalFonts = new ConcurrentHashMap<String, PhysicalFont>();
+    private ConcurrentHashMap<String, PhysicalFont>
+        registeredFonts = new ConcurrentHashMap<String, PhysicalFont>();
+
+    /* given a full name find the Font. Remind: there's duplication
+     * here in that this contains the content of compositeFonts +
+     * physicalFonts.
+     */
+    private ConcurrentHashMap<String, Font2D>
+        fullNameToFont = new ConcurrentHashMap<String, Font2D>();
+
+    /* TrueType fonts have localised names. Support searching all
+     * of these before giving up on a name.
+     */
+    private HashMap<String, TrueTypeFont> localeFullNamesToFont;
+
+    private PhysicalFont defaultPhysicalFont;
+
+    static boolean longAddresses;
+    private boolean loaded1dot0Fonts = false;
+    boolean loadedAllFonts = false;
+    boolean loadedAllFontFiles = false;
+    HashMap<String,String> jreFontMap;
+    HashSet<String> jreLucidaFontFiles;
+    String[] jreOtherFontFiles;
+    boolean noOtherJREFontFiles = false; // initial assumption.
+
+    public static final String lucidaFontName = "Lucida Sans Regular";
+    public static String jreLibDirName;
+    public static String jreFontDirName;
+    private static HashSet<String> missingFontFiles = null;
+    private String defaultFontName;
+    private String defaultFontFileName;
+    protected HashSet registeredFontFiles = new HashSet();
+
+    private ArrayList badFonts;
+    /* fontPath is the location of all fonts on the system, excluding the
+     * JRE's own font directory but including any path specified using the
+     * sun.java2d.fontpath property. Together with that property,  it is
+     * initialised by the getPlatformFontPath() method
+     * This call must be followed by a call to registerFontDirs(fontPath)
+     * once any extra debugging path has been appended.
+     */
+    protected String fontPath;
+    private FontConfiguration fontConfig;
+    /* discoveredAllFonts is set to true when all fonts on the font path are
+     * discovered. This usually also implies opening, validating and
+     * registering, but an implementation may be optimized to avold this.
+     * So see also "loadedAllFontFiles"
+     */
+    private boolean discoveredAllFonts = false;
+
+    /* No need to keep consing up new instances - reuse a singleton.
+     * The trade-off is that these objects don't get GC'd.
+     */
+    private static final FilenameFilter ttFilter = new TTFilter();
+    private static final FilenameFilter t1Filter = new T1Filter();
+
+    private Font[] allFonts;
+    private String[] allFamilies; // cache for default locale only
+    private Locale lastDefaultLocale;
+
+    public static boolean noType1Font;
+
+    /* Used to indicate required return type from toArray(..); */
+    private static String[] STR_ARRAY = new String[0];
+
+    /**
+     * Deprecated, unsupported hack - actually invokes a bug!
+     * Left in for a customer, don't remove.
+     */
+    private boolean usePlatformFontMetrics = false;
+
+    /**
+     * Returns the global SunFontManager instance. This is similar to
+     * {@link FontManagerFactory#getInstance()} but it returns a
+     * SunFontManager instance instead. This is only used in internal classes
+     * where we can safely assume that a SunFontManager is to be used.
+     *
+     * @return the global SunFontManager instance
+     */
+    public static SunFontManager getInstance() {
+        FontManager fm = FontManagerFactory.getInstance();
+        return (SunFontManager) fm;
+    }
+
+    public FilenameFilter getTrueTypeFilter() {
+        return ttFilter;
+    }
+
+    public FilenameFilter getType1Filter() {
+        return t1Filter;
+    }
+
+    @Override
+    public boolean usingPerAppContextComposites() {
+        return _usingPerAppContextComposites;
+    }
+
+    private void initJREFontMap() {
+
+        /* Key is familyname+style value as an int.
+         * Value is filename containing the font.
+         * If no mapping exists, it means there is no font file for the style
+         * If the mapping exists but the file doesn't exist in the deferred
+         * list then it means its not installed.
+         * This looks like a lot of code and strings but if it saves even
+         * a single file being opened at JRE start-up there's a big payoff.
+         * Lucida Sans is probably the only important case as the others
+         * are rarely used. Consider removing the other mappings if there's
+         * no evidence they are useful in practice.
+         */
+        jreFontMap = new HashMap<String,String>();
+        jreLucidaFontFiles = new HashSet<String>();
+        if (isOpenJDK()) {
+            return;
+        }
+        /* Lucida Sans Family */
+        jreFontMap.put("lucida sans0",   "LucidaSansRegular.ttf");
+        jreFontMap.put("lucida sans1",   "LucidaSansDemiBold.ttf");
+        /* Lucida Sans full names (map Bold and DemiBold to same file) */
+        jreFontMap.put("lucida sans regular0", "LucidaSansRegular.ttf");
+        jreFontMap.put("lucida sans regular1", "LucidaSansDemiBold.ttf");
+        jreFontMap.put("lucida sans bold1", "LucidaSansDemiBold.ttf");
+        jreFontMap.put("lucida sans demibold1", "LucidaSansDemiBold.ttf");
+
+        /* Lucida Sans Typewriter Family */
+        jreFontMap.put("lucida sans typewriter0",
+                       "LucidaTypewriterRegular.ttf");
+        jreFontMap.put("lucida sans typewriter1", "LucidaTypewriterBold.ttf");
+        /* Typewriter full names (map Bold and DemiBold to same file) */
+        jreFontMap.put("lucida sans typewriter regular0",
+                       "LucidaTypewriter.ttf");
+        jreFontMap.put("lucida sans typewriter regular1",
+                       "LucidaTypewriterBold.ttf");
+        jreFontMap.put("lucida sans typewriter bold1",
+                       "LucidaTypewriterBold.ttf");
+        jreFontMap.put("lucida sans typewriter demibold1",
+                       "LucidaTypewriterBold.ttf");
+
+        /* Lucida Bright Family */
+        jreFontMap.put("lucida bright0", "LucidaBrightRegular.ttf");
+        jreFontMap.put("lucida bright1", "LucidaBrightDemiBold.ttf");
+        jreFontMap.put("lucida bright2", "LucidaBrightItalic.ttf");
+        jreFontMap.put("lucida bright3", "LucidaBrightDemiItalic.ttf");
+        /* Lucida Bright full names (map Bold and DemiBold to same file) */
+        jreFontMap.put("lucida bright regular0", "LucidaBrightRegular.ttf");
+        jreFontMap.put("lucida bright regular1", "LucidaBrightDemiBold.ttf");
+        jreFontMap.put("lucida bright regular2", "LucidaBrightItalic.ttf");
+        jreFontMap.put("lucida bright regular3", "LucidaBrightDemiItalic.ttf");
+        jreFontMap.put("lucida bright bold1", "LucidaBrightDemiBold.ttf");
+        jreFontMap.put("lucida bright bold3", "LucidaBrightDemiItalic.ttf");
+        jreFontMap.put("lucida bright demibold1", "LucidaBrightDemiBold.ttf");
+        jreFontMap.put("lucida bright demibold3","LucidaBrightDemiItalic.ttf");
+        jreFontMap.put("lucida bright italic2", "LucidaBrightItalic.ttf");
+        jreFontMap.put("lucida bright italic3", "LucidaBrightDemiItalic.ttf");
+        jreFontMap.put("lucida bright bold italic3",
+                       "LucidaBrightDemiItalic.ttf");
+        jreFontMap.put("lucida bright demibold italic3",
+                       "LucidaBrightDemiItalic.ttf");
+        for (String ffile : jreFontMap.values()) {
+            jreLucidaFontFiles.add(ffile);
+        }
+    }
+
+    static {
+
+        java.security.AccessController.doPrivileged(
+                                    new java.security.PrivilegedAction() {
+
+           public Object run() {
+               FontManagerNativeLibrary.load();
+
+               // JNI throws an exception if a class/method/field is not found,
+               // so there's no need to do anything explicit here.
+               initIDs();
+
+               switch (StrikeCache.nativeAddressSize) {
+               case 8: longAddresses = true; break;
+               case 4: longAddresses = false; break;
+               default: throw new RuntimeException("Unexpected address size");
+               }
+
+               noType1Font =
+                   "true".equals(System.getProperty("sun.java2d.noType1Font"));
+               jreLibDirName =
+                   System.getProperty("java.home","") + File.separator + "lib";
+               jreFontDirName = jreLibDirName + File.separator + "fonts";
+               File lucidaFile =
+                   new File(jreFontDirName + File.separator + FontUtilities.LUCIDA_FILE_NAME);
+
+               return null;
+           }
+        });
+    }
+
+    public TrueTypeFont getEUDCFont() {
+        // Overridden in Windows.
+        return null;
+    }
+
+    /* Initialise ptrs used by JNI methods */
+    private static native void initIDs();
+
+    @SuppressWarnings("unchecked")
+    protected SunFontManager() {
+
+        initJREFontMap();
+        java.security.AccessController.doPrivileged(
+                new java.security.PrivilegedAction() {
+                    public Object run() {
+                        File badFontFile =
+                            new File(jreFontDirName + File.separator +
+                                     "badfonts.txt");
+                        if (badFontFile.exists()) {
+                            FileInputStream fis = null;
+                            try {
+                                badFonts = new ArrayList();
+                                fis = new FileInputStream(badFontFile);
+                                InputStreamReader isr = new InputStreamReader(fis);
+                                BufferedReader br = new BufferedReader(isr);
+                                while (true) {
+                                    String name = br.readLine();
+                                    if (name == null) {
+                                        break;
+                                    } else {
+                                        if (FontUtilities.debugFonts()) {
+                                            FontUtilities.getLogger().warning("read bad font: " +
+                                                           name);
+                                        }
+                                        badFonts.add(name);
+                                    }
+                                }
+                            } catch (IOException e) {
+                                try {
+                                    if (fis != null) {
+                                        fis.close();
+                                    }
+                                } catch (IOException ioe) {
+                                }
+                            }
+                        }
+
+                        /* Here we get the fonts in jre/lib/fonts and register
+                         * them so they are always available and preferred over
+                         * other fonts. This needs to be registered before the
+                         * composite fonts as otherwise some native font that
+                         * corresponds may be found as we don't have a way to
+                         * handle two fonts of the same name, so the JRE one
+                         * must be the first one registered. Pass "true" to
+                         * registerFonts method as on-screen these JRE fonts
+                         * always go through the T2K rasteriser.
+                         */
+                        if (FontUtilities.isLinux) {
+                            /* Linux font configuration uses these fonts */
+                            registerFontDir(jreFontDirName);
+                        }
+                        registerFontsInDir(jreFontDirName, true, Font2D.JRE_RANK,
+                                           true, false);
+
+                        /* Create the font configuration and get any font path
+                         * that might be specified.
+                         */
+                        fontConfig = createFontConfiguration();
+                        if (isOpenJDK()) {
+                            String[] fontInfo = getDefaultPlatformFont();
+                            defaultFontName = fontInfo[0];
+                            defaultFontFileName = fontInfo[1];
+                        }
+
+                        String extraFontPath = fontConfig.getExtraFontPath();
+
+                        /* In prior releases the debugging font path replaced
+                         * all normally located font directories except for the
+                         * JRE fonts dir. This directory is still always located
+                         * and placed at the head of the path but as an
+                         * augmentation to the previous behaviour the
+                         * changes below allow you to additionally append to
+                         * the font path by starting with append: or prepend by
+                         * starting with a prepend: sign. Eg: to append
+                         * -Dsun.java2d.fontpath=append:/usr/local/myfonts
+                         * and to prepend
+                         * -Dsun.java2d.fontpath=prepend:/usr/local/myfonts Disp
+                         *
+                         * If there is an appendedfontpath it in the font
+                         * configuration it is used instead of searching the
+                         * system for dirs.
+                         * The behaviour of append and prepend is then similar
+                         * to the normal case. ie it goes after what
+                         * you prepend and * before what you append. If the
+                         * sun.java2d.fontpath property is used, but it
+                         * neither the append or prepend syntaxes is used then
+                         * as except for the JRE dir the path is replaced and it
+                         * is up to you to make sure that all the right
+                         * directories are located. This is platform and
+                         * locale-specific so its almost impossible to get
+                         * right, so it should be used with caution.
+                         */
+                        boolean prependToPath = false;
+                        boolean appendToPath = false;
+                        String dbgFontPath =
+                            System.getProperty("sun.java2d.fontpath");
+
+                        if (dbgFontPath != null) {
+                            if (dbgFontPath.startsWith("prepend:")) {
+                                prependToPath = true;
+                                dbgFontPath =
+                                    dbgFontPath.substring("prepend:".length());
+                            } else if (dbgFontPath.startsWith("append:")) {
+                                appendToPath = true;
+                                dbgFontPath =
+                                    dbgFontPath.substring("append:".length());
+                            }
+                        }
+
+                        if (FontUtilities.debugFonts()) {
+                            PlatformLogger logger = FontUtilities.getLogger();
+                            logger.info("JRE font directory: " + jreFontDirName);
+                            logger.info("Extra font path: " + extraFontPath);
+                            logger.info("Debug font path: " + dbgFontPath);
+                        }
+
+                        if (dbgFontPath != null) {
+                            /* In debugging mode we register all the paths
+                             * Caution: this is a very expensive call on Solaris:-
+                             */
+                            fontPath = getPlatformFontPath(noType1Font);
+
+                            if (extraFontPath != null) {
+                                fontPath =
+                                    extraFontPath + File.pathSeparator + fontPath;
+                            }
+                            if (appendToPath) {
+                                fontPath =
+                                    fontPath + File.pathSeparator + dbgFontPath;
+                            } else if (prependToPath) {
+                                fontPath =
+                                    dbgFontPath + File.pathSeparator + fontPath;
+                            } else {
+                                fontPath = dbgFontPath;
+                            }
+                            registerFontDirs(fontPath);
+                        } else if (extraFontPath != null) {
+                            /* If the font configuration contains an
+                             * "appendedfontpath" entry, it is interpreted as a
+                             * set of locations that should always be registered.
+                             * It may be additional to locations normally found
+                             * for that place, or it may be locations that need
+                             * to have all their paths registered to locate all
+                             * the needed platform names.
+                             * This is typically when the same .TTF file is
+                             * referenced from multiple font.dir files and all
+                             * of these must be read to find all the native
+                             * (XLFD) names for the font, so that X11 font APIs
+                             * can be used for as many code points as possible.
+                             */
+                            registerFontDirs(extraFontPath);
+                        }
+
+                        /* On Solaris, we need to register the Japanese TrueType
+                         * directory so that we can find the corresponding
+                         * bitmap fonts. This could be done by listing the
+                         * directory in the font configuration file, but we
+                         * don't want to confuse users with this quirk. There
+                         * are no bitmap fonts for other writing systems that
+                         * correspond to TrueType fonts and have matching XLFDs.
+                         * We need to register the bitmap fonts only in
+                         * environments where they're on the X font path, i.e.,
+                         * in the Japanese locale. Note that if the X Toolkit
+                         * is in use the font path isn't set up by JDK, but
+                         * users of a JA locale should have it
+                         * set up already by their login environment.
+                         */
+                        if (FontUtilities.isSolaris && Locale.JAPAN.equals(Locale.getDefault())) {
+                            registerFontDir("/usr/openwin/lib/locale/ja/X11/fonts/TT");
+                        }
+
+                        initCompositeFonts(fontConfig, null);
+
+                        return null;
+                    }
+                });
+
+        boolean platformFont = AccessController.doPrivileged(
+                        new PrivilegedAction<Boolean>() {
+                                public Boolean run() {
+                                        String prop =
+                                                System.getProperty("java2d.font.usePlatformFont");
+                                        String env = System.getenv("JAVA2D_USEPLATFORMFONT");
+                                        return "true".equals(prop) || env != null;
+                                }
+                        });
+
+        if (platformFont) {
+            usePlatformFontMetrics = true;
+            System.out.println("Enabling platform font metrics for win32. This is an unsupported option.");
+            System.out.println("This yields incorrect composite font metrics as reported by 1.1.x releases.");
+            System.out.println("It is appropriate only for use by applications which do not use any Java 2");
+            System.out.println("functionality. This property will be removed in a later release.");
+        }
+    }
+
+    /**
+     * This method is provided for internal and exclusive use by Swing.
+     *
+     * @param font representing a physical font.
+     * @return true if the underlying font is a TrueType or OpenType font
+     * that claims to support the Microsoft Windows encoding corresponding to
+     * the default file.encoding property of this JRE instance.
+     * This narrow value is useful for Swing to decide if the font is useful
+     * for the the Windows Look and Feel, or, if a  composite font should be
+     * used instead.
+     * The information used to make the decision is obtained from
+     * the ulCodePageRange fields in the font.
+     * A caller can use isLogicalFont(Font) in this class before calling
+     * this method and would not need to call this method if that
+     * returns true.
+     */
+//     static boolean fontSupportsDefaultEncoding(Font font) {
+//      String encoding =
+//          (String) java.security.AccessController.doPrivileged(
+//                new sun.security.action.GetPropertyAction("file.encoding"));
+
+//      if (encoding == null || font == null) {
+//          return false;
+//      }
+
+//      encoding = encoding.toLowerCase(Locale.ENGLISH);
+
+//      return FontManager.fontSupportsEncoding(font, encoding);
+//     }
+
+    public Font2DHandle getNewComposite(String family, int style,
+                                        Font2DHandle handle) {
+
+        if (!(handle.font2D instanceof CompositeFont)) {
+            return handle;
+        }
+
+        CompositeFont oldComp = (CompositeFont)handle.font2D;
+        PhysicalFont oldFont = oldComp.getSlotFont(0);
+
+        if (family == null) {
+            family = oldFont.getFamilyName(null);
+        }
+        if (style == -1) {
+            style = oldComp.getStyle();
+        }
+
+        Font2D newFont = findFont2D(family, style, NO_FALLBACK);
+        if (!(newFont instanceof PhysicalFont)) {
+            newFont = oldFont;
+        }
+        PhysicalFont physicalFont = (PhysicalFont)newFont;
+        CompositeFont dialog2D =
+            (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
+        if (dialog2D == null) { /* shouldn't happen */
+            return handle;
+        }
+        CompositeFont compFont = new CompositeFont(physicalFont, dialog2D);
+        Font2DHandle newHandle = new Font2DHandle(compFont);
+        return newHandle;
+    }
+
+    protected void registerCompositeFont(String compositeName,
+                                      String[] componentFileNames,
+                                      String[] componentNames,
+                                      int numMetricsSlots,
+                                      int[] exclusionRanges,
+                                      int[] exclusionMaxIndex,
+                                      boolean defer) {
+
+        CompositeFont cf = new CompositeFont(compositeName,
+                                             componentFileNames,
+                                             componentNames,
+                                             numMetricsSlots,
+                                             exclusionRanges,
+                                             exclusionMaxIndex, defer, this);
+        addCompositeToFontList(cf, Font2D.FONT_CONFIG_RANK);
+        synchronized (compFonts) {
+            compFonts[maxCompFont++] = cf;
+        }
+    }
+
+    /* This variant is used only when the application specifies
+     * a variant of composite fonts which prefers locale specific or
+     * proportional fonts.
+     */
+    protected static void registerCompositeFont(String compositeName,
+                                                String[] componentFileNames,
+                                                String[] componentNames,
+                                                int numMetricsSlots,
+                                                int[] exclusionRanges,
+                                                int[] exclusionMaxIndex,
+                                                boolean defer,
+                                                ConcurrentHashMap<String, Font2D>
+                                                altNameCache) {
+
+        CompositeFont cf = new CompositeFont(compositeName,
+                                             componentFileNames,
+                                             componentNames,
+                                             numMetricsSlots,
+                                             exclusionRanges,
+                                             exclusionMaxIndex, defer,
+                                             SunFontManager.getInstance());
+
+        /* if the cache has an existing composite for this case, make
+         * its handle point to this new font.
+         * This ensures that when the altNameCache that is passed in
+         * is the global mapNameCache - ie we are running as an application -
+         * that any statically created java.awt.Font instances which already
+         * have a Font2D instance will have that re-directed to the new Font
+         * on subsequent uses. This is particularly important for "the"
+         * default font instance, or similar cases where a UI toolkit (eg
+         * Swing) has cached a java.awt.Font. Note that if Swing is using
+         * a custom composite APIs which update the standard composites have
+         * no effect - this is typically the case only when using the Windows
+         * L&F where these APIs would conflict with that L&F anyway.
+         */
+        Font2D oldFont = (Font2D)
+            altNameCache.get(compositeName.toLowerCase(Locale.ENGLISH));
+        if (oldFont instanceof CompositeFont) {
+            oldFont.handle.font2D = cf;
+        }
+        altNameCache.put(compositeName.toLowerCase(Locale.ENGLISH), cf);
+    }
+
+    private void addCompositeToFontList(CompositeFont f, int rank) {
+
+        if (FontUtilities.isLogging()) {
+            FontUtilities.getLogger().info("Add to Family "+ f.familyName +
+                        ", Font " + f.fullName + " rank="+rank);
+        }
+        f.setRank(rank);
+        compositeFonts.put(f.fullName, f);
+        fullNameToFont.put(f.fullName.toLowerCase(Locale.ENGLISH), f);
+
+        FontFamily family = FontFamily.getFamily(f.familyName);
+        if (family == null) {
+            family = new FontFamily(f.familyName, true, rank);
+        }
+        family.setFont(f, f.style);
+    }
+
+    /*
+     * Systems may have fonts with the same name.
+     * We want to register only one of such fonts (at least until
+     * such time as there might be APIs which can accommodate > 1).
+     * Rank is 1) font configuration fonts, 2) JRE fonts, 3) OT/TT fonts,
+     * 4) Type1 fonts, 5) native fonts.
+     *
+     * If the new font has the same name as the old font, the higher
+     * ranked font gets added, replacing the lower ranked one.
+     * If the fonts are of equal rank, then make a special case of
+     * font configuration rank fonts, which are on closer inspection,
+     * OT/TT fonts such that the larger font is registered. This is
+     * a heuristic since a font may be "larger" in the sense of more
+     * code points, or be a larger "file" because it has more bitmaps.
+     * So it is possible that using filesize may lead to less glyphs, and
+     * using glyphs may lead to lower quality display. Probably number
+     * of glyphs is the ideal, but filesize is information we already
+     * have and is good enough for the known cases.
+     * Also don't want to register fonts that match JRE font families
+     * but are coming from a source other than the JRE.
+     * This will ensure that we will algorithmically style the JRE
+     * plain font and get the same set of glyphs for all styles.
+     *
+     * Note that this method returns a value
+     * if it returns the same object as its argument that means this
+     * font was newly registered.
+     * If it returns a different object it means this font already exists,
+     * and you should use that one.
+     * If it returns null means this font was not registered and none
+     * in that name is registered. The caller must find a substitute
+     */
+    private PhysicalFont addToFontList(PhysicalFont f, int rank) {
+
+        String fontName = f.fullName;
+        String familyName = f.familyName;
+        if (fontName == null || "".equals(fontName)) {
+            return null;
+        }
+        if (compositeFonts.containsKey(fontName)) {
+            /* Don't register any font that has the same name as a composite */
+            return null;
+        }
+        f.setRank(rank);
+        if (!physicalFonts.containsKey(fontName)) {
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().info("Add to Family "+familyName +
+                            ", Font " + fontName + " rank="+rank);
+            }
+            physicalFonts.put(fontName, f);
+            FontFamily family = FontFamily.getFamily(familyName);
+            if (family == null) {
+                family = new FontFamily(familyName, false, rank);
+                family.setFont(f, f.style);
+            } else if (family.getRank() >= rank) {
+                family.setFont(f, f.style);
+            }
+            fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH), f);
+            return f;
+        } else {
+            PhysicalFont newFont = f;
+            PhysicalFont oldFont = physicalFonts.get(fontName);
+            if (oldFont == null) {
+                return null;
+            }
+            /* If the new font is of an equal or higher rank, it is a
+             * candidate to replace the current one, subject to further tests.
+             */
+            if (oldFont.getRank() >= rank) {
+
+                /* All fonts initialise their mapper when first
+                 * used. If the mapper is non-null then this font
+                 * has been accessed at least once. In that case
+                 * do not replace it. This may be overly stringent,
+                 * but its probably better not to replace a font that
+                 * someone is already using without a compelling reason.
+                 * Additionally the primary case where it is known
+                 * this behaviour is important is in certain composite
+                 * fonts, and since all the components of a given
+                 * composite are usually initialised together this
+                 * is unlikely. For this to be a problem, there would
+                 * have to be a case where two different composites used
+                 * different versions of the same-named font, and they
+                 * were initialised and used at separate times.
+                 * In that case we continue on and allow the new font to
+                 * be installed, but replaceFont will continue to allow
+                 * the original font to be used in Composite fonts.
+                 */
+                if (oldFont.mapper != null && rank > Font2D.FONT_CONFIG_RANK) {
+                    return oldFont;
+                }
+
+                /* Normally we require a higher rank to replace a font,
+                 * but as a special case, if the two fonts are the same rank,
+                 * and are instances of TrueTypeFont we want the
+                 * more complete (larger) one.
+                 */
+                if (oldFont.getRank() == rank) {
+                    if (oldFont instanceof TrueTypeFont &&
+                        newFont instanceof TrueTypeFont) {
+                        TrueTypeFont oldTTFont = (TrueTypeFont)oldFont;
+                        TrueTypeFont newTTFont = (TrueTypeFont)newFont;
+                        if (oldTTFont.fileSize >= newTTFont.fileSize) {
+                            return oldFont;
+                        }
+                    } else {
+                        return oldFont;
+                    }
+                }
+                /* Don't replace ever JRE fonts.
+                 * This test is in case a font configuration references
+                 * a Lucida font, which has been mapped to a Lucida
+                 * from the host O/S. The assumption here is that any
+                 * such font configuration file is probably incorrect, or
+                 * the host O/S version is for the use of AWT.
+                 * In other words if we reach here, there's a possible
+                 * problem with our choice of font configuration fonts.
+                 */
+                if (oldFont.platName.startsWith(jreFontDirName)) {
+                    if (FontUtilities.isLogging()) {
+                        FontUtilities.getLogger()
+                              .warning("Unexpected attempt to replace a JRE " +
+                                       " font " + fontName + " from " +
+                                        oldFont.platName +
+                                       " with " + newFont.platName);
+                    }
+                    return oldFont;
+                }
+
+                if (FontUtilities.isLogging()) {
+                    FontUtilities.getLogger()
+                          .info("Replace in Family " + familyName +
+                                ",Font " + fontName + " new rank="+rank +
+                                " from " + oldFont.platName +
+                                " with " + newFont.platName);
+                }
+                replaceFont(oldFont, newFont);
+                physicalFonts.put(fontName, newFont);
+                fullNameToFont.put(fontName.toLowerCase(Locale.ENGLISH),
+                                   newFont);
+
+                FontFamily family = FontFamily.getFamily(familyName);
+                if (family == null) {
+                    family = new FontFamily(familyName, false, rank);
+                    family.setFont(newFont, newFont.style);
+                } else if (family.getRank() >= rank) {
+                    family.setFont(newFont, newFont.style);
+                }
+                return newFont;
+            } else {
+                return oldFont;
+            }
+        }
+    }
+
+    public Font2D[] getRegisteredFonts() {
+        PhysicalFont[] physFonts = getPhysicalFonts();
+        int mcf = maxCompFont; /* for MT-safety */
+        Font2D[] regFonts = new Font2D[physFonts.length+mcf];
+        System.arraycopy(compFonts, 0, regFonts, 0, mcf);
+        System.arraycopy(physFonts, 0, regFonts, mcf, physFonts.length);
+        return regFonts;
+    }
+
+    protected PhysicalFont[] getPhysicalFonts() {
+        return physicalFonts.values().toArray(new PhysicalFont[0]);
+    }
+
+
+    /* The class FontRegistrationInfo is used when a client says not
+     * to register a font immediately. This mechanism is used to defer
+     * initialisation of all the components of composite fonts at JRE
+     * start-up. The CompositeFont class is "aware" of this and when it
+     * is first used it asks for the registration of its components.
+     * Also in the event that any physical font is requested the
+     * deferred fonts are initialised before triggering a search of the
+     * system.
+     * Two maps are used. One to track the deferred fonts. The
+     * other to track the fonts that have been initialised through this
+     * mechanism.
+     */
+
+    private static final class FontRegistrationInfo {
+
+        String fontFilePath;
+        String[] nativeNames;
+        int fontFormat;
+        boolean javaRasterizer;
+        int fontRank;
+
+        FontRegistrationInfo(String fontPath, String[] names, int format,
+                             boolean useJavaRasterizer, int rank) {
+            this.fontFilePath = fontPath;
+            this.nativeNames = names;
+            this.fontFormat = format;
+            this.javaRasterizer = useJavaRasterizer;
+            this.fontRank = rank;
+        }
+    }
+
+    private final ConcurrentHashMap<String, FontRegistrationInfo>
+        deferredFontFiles =
+        new ConcurrentHashMap<String, FontRegistrationInfo>();
+    private final ConcurrentHashMap<String, Font2DHandle>
+        initialisedFonts = new ConcurrentHashMap<String, Font2DHandle>();
+
+    /* Remind: possibly enhance initialiseDeferredFonts() to be
+     * optionally given a name and a style and it could stop when it
+     * finds that font - but this would be a problem if two of the
+     * fonts reference the same font face name (cf the Solaris
+     * euro fonts).
+     */
+    protected synchronized void initialiseDeferredFonts() {
+        for (String fileName : deferredFontFiles.keySet()) {
+            initialiseDeferredFont(fileName);
+        }
+    }
+
+    protected synchronized void registerDeferredJREFonts(String jreDir) {
+        for (FontRegistrationInfo info : deferredFontFiles.values()) {
+            if (info.fontFilePath != null &&
+                info.fontFilePath.startsWith(jreDir)) {
+                initialiseDeferredFont(info.fontFilePath);
+            }
+        }
+    }
+
+    public boolean isDeferredFont(String fileName) {
+        return deferredFontFiles.containsKey(fileName);
+    }
+
+    /* We keep a map of the files which contain the Lucida fonts so we
+     * don't need to search for them.
+     * But since we know what fonts these files contain, we can also avoid
+     * opening them to look for a font name we don't recognise - see
+     * findDeferredFont().
+     * For typical cases where the font isn't a JRE one the overhead is
+     * this method call, HashMap.get() and null reference test, then
+     * a boolean test of noOtherJREFontFiles.
+     */
+    public
+    /*private*/ PhysicalFont findJREDeferredFont(String name, int style) {
+
+        PhysicalFont physicalFont;
+        String nameAndStyle = name.toLowerCase(Locale.ENGLISH) + style;
+        String fileName = jreFontMap.get(nameAndStyle);
+        if (fileName != null) {
+            fileName = jreFontDirName + File.separator + fileName;
+            if (deferredFontFiles.get(fileName) != null) {
+                physicalFont = initialiseDeferredFont(fileName);
+                if (physicalFont != null &&
+                    (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
+                     physicalFont.getFamilyName(null).equalsIgnoreCase(name))
+                    && physicalFont.style == style) {
+                    return physicalFont;
+                }
+            }
+        }
+
+        /* Iterate over the deferred font files looking for any in the
+         * jre directory that we didn't recognise, open each of these.
+         * In almost all installations this will quickly fall through
+         * because only the Lucidas will be present and jreOtherFontFiles
+         * will be empty.
+         * noOtherJREFontFiles is used so we can skip this block as soon
+         * as its determined that its not needed - almost always after the
+         * very first time through.
+         */
+        if (noOtherJREFontFiles) {
+            return null;
+        }
+        synchronized (jreLucidaFontFiles) {
+            if (jreOtherFontFiles == null) {
+                HashSet<String> otherFontFiles = new HashSet<String>();
+                for (String deferredFile : deferredFontFiles.keySet()) {
+                    File file = new File(deferredFile);
+                    String dir = file.getParent();
+                    String fname = file.getName();
+                    /* skip names which aren't absolute, aren't in the JRE
+                     * directory, or are known Lucida fonts.
+                     */
+                    if (dir == null ||
+                        !dir.equals(jreFontDirName) ||
+                        jreLucidaFontFiles.contains(fname)) {
+                        continue;
+                    }
+                    otherFontFiles.add(deferredFile);
+                }
+                jreOtherFontFiles = otherFontFiles.toArray(STR_ARRAY);
+                if (jreOtherFontFiles.length == 0) {
+                    noOtherJREFontFiles = true;
+                }
+            }
+
+            for (int i=0; i<jreOtherFontFiles.length;i++) {
+                fileName = jreOtherFontFiles[i];
+                if (fileName == null) {
+                    continue;
+                }
+                jreOtherFontFiles[i] = null;
+                physicalFont = initialiseDeferredFont(fileName);
+                if (physicalFont != null &&
+                    (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
+                     physicalFont.getFamilyName(null).equalsIgnoreCase(name))
+                    && physicalFont.style == style) {
+                    return physicalFont;
+                }
+            }
+        }
+
+        return null;
+    }
+
+    /* This skips JRE installed fonts. */
+    private PhysicalFont findOtherDeferredFont(String name, int style) {
+        for (String fileName : deferredFontFiles.keySet()) {
+            File file = new File(fileName);
+            String dir = file.getParent();
+            String fname = file.getName();
+            if (dir != null &&
+                dir.equals(jreFontDirName) &&
+                jreLucidaFontFiles.contains(fname)) {
+                continue;
+            }
+            PhysicalFont physicalFont = initialiseDeferredFont(fileName);
+            if (physicalFont != null &&
+                (physicalFont.getFontName(null).equalsIgnoreCase(name) ||
+                physicalFont.getFamilyName(null).equalsIgnoreCase(name)) &&
+                physicalFont.style == style) {
+                return physicalFont;
+            }
+        }
+        return null;
+    }
+
+    private PhysicalFont findDeferredFont(String name, int style) {
+
+        PhysicalFont physicalFont = findJREDeferredFont(name, style);
+        if (physicalFont != null) {
+            return physicalFont;
+        } else {
+            return findOtherDeferredFont(name, style);
+        }
+    }
+
+    public void registerDeferredFont(String fileNameKey,
+                                     String fullPathName,
+                                     String[] nativeNames,
+                                     int fontFormat,
+                                     boolean useJavaRasterizer,
+                                     int fontRank) {
+        FontRegistrationInfo regInfo =
+            new FontRegistrationInfo(fullPathName, nativeNames, fontFormat,
+                                     useJavaRasterizer, fontRank);
+        deferredFontFiles.put(fileNameKey, regInfo);
+    }
+
+
+    public synchronized
+         PhysicalFont initialiseDeferredFont(String fileNameKey) {
+
+        if (fileNameKey == null) {
+            return null;
+        }
+        if (FontUtilities.isLogging()) {
+            FontUtilities.getLogger()
+                            .info("Opening deferred font file " + fileNameKey);
+        }
+
+        PhysicalFont physicalFont;
+        FontRegistrationInfo regInfo = deferredFontFiles.get(fileNameKey);
+        if (regInfo != null) {
+            deferredFontFiles.remove(fileNameKey);
+            physicalFont = registerFontFile(regInfo.fontFilePath,
+                                            regInfo.nativeNames,
+                                            regInfo.fontFormat,
+                                            regInfo.javaRasterizer,
+                                            regInfo.fontRank);
+
+
+            if (physicalFont != null) {
+                /* Store the handle, so that if a font is bad, we
+                 * retrieve the substituted font.
+                 */
+                initialisedFonts.put(fileNameKey, physicalFont.handle);
+            } else {
+                initialisedFonts.put(fileNameKey,
+                                     getDefaultPhysicalFont().handle);
+            }
+        } else {
+            Font2DHandle handle = initialisedFonts.get(fileNameKey);
+            if (handle == null) {
+                /* Probably shouldn't happen, but just in case */
+                physicalFont = getDefaultPhysicalFont();
+            } else {
+                physicalFont = (PhysicalFont)(handle.font2D);
+            }
+        }
+        return physicalFont;
+    }
+
+    public boolean isRegisteredFontFile(String name) {
+        return registeredFonts.containsKey(name);
+    }
+
+    public PhysicalFont getRegisteredFontFile(String name) {
+        return registeredFonts.get(name);
+    }
+
+    /* Note that the return value from this method is not always
+     * derived from this file, and may be null. See addToFontList for
+     * some explanation of this.
+     */
+    public PhysicalFont registerFontFile(String fileName,
+                                         String[] nativeNames,
+                                         int fontFormat,
+                                         boolean useJavaRasterizer,
+                                         int fontRank) {
+
+        PhysicalFont regFont = registeredFonts.get(fileName);
+        if (regFont != null) {
+            return regFont;
+        }
+
+        PhysicalFont physicalFont = null;
+        try {
+            String name;
+
+            switch (fontFormat) {
+
+            case FONTFORMAT_TRUETYPE:
+                int fn = 0;
+                TrueTypeFont ttf;
+                do {
+                    ttf = new TrueTypeFont(fileName, nativeNames, fn++,
+                                           useJavaRasterizer);
+                    PhysicalFont pf = addToFontList(ttf, fontRank);
+                    if (physicalFont == null) {
+                        physicalFont = pf;
+                    }
+                }
+                while (fn < ttf.getFontCount());
+                break;
+
+            case FONTFORMAT_TYPE1:
+                Type1Font t1f = new Type1Font(fileName, nativeNames);
+                physicalFont = addToFontList(t1f, fontRank);
+                break;
+
+            case FONTFORMAT_NATIVE:
+                NativeFont nf = new NativeFont(fileName, false);
+                physicalFont = addToFontList(nf, fontRank);
+            default:
+
+            }
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger()
+                      .info("Registered file " + fileName + " as font " +
+                            physicalFont + " rank="  + fontRank);
+            }
+        } catch (FontFormatException ffe) {
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().warning("Unusable font: " +
+                               fileName + " " + ffe.toString());
+            }
+        }
+        if (physicalFont != null &&
+            fontFormat != FONTFORMAT_NATIVE) {
+            registeredFonts.put(fileName, physicalFont);
+        }
+        return physicalFont;
+    }
+
+    public void registerFonts(String[] fileNames,
+                              String[][] nativeNames,
+                              int fontCount,
+                              int fontFormat,
+                              boolean useJavaRasterizer,
+                              int fontRank, boolean defer) {
+
+        for (int i=0; i < fontCount; i++) {
+            if (defer) {
+                registerDeferredFont(fileNames[i],fileNames[i], nativeNames[i],
+                                     fontFormat, useJavaRasterizer, fontRank);
+            } else {
+                registerFontFile(fileNames[i], nativeNames[i],
+                                 fontFormat, useJavaRasterizer, fontRank);
+            }
+        }
+    }
+
+    /*
+     * This is the Physical font used when some other font on the system
+     * can't be located. There has to be at least one font or the font
+     * system is not useful and the graphics environment cannot sustain
+     * the Java platform.
+     */
+    public PhysicalFont getDefaultPhysicalFont() {
+        if (defaultPhysicalFont == null) {
+            /* findFont2D will load all fonts before giving up the search.
+             * If the JRE Lucida isn't found (eg because the JRE fonts
+             * directory is missing), it could find another version of Lucida
+             * from the host system. This is OK because at that point we are
+             * trying to gracefully handle/recover from a system
+             * misconfiguration and this is probably a reasonable substitution.
+             */
+            defaultPhysicalFont = (PhysicalFont)
+                findFont2D("Lucida Sans Regular", Font.PLAIN, NO_FALLBACK);
+            if (defaultPhysicalFont == null) {
+                defaultPhysicalFont = (PhysicalFont)
+                    findFont2D("Arial", Font.PLAIN, NO_FALLBACK);
+            }
+            if (defaultPhysicalFont == null) {
+                /* Because of the findFont2D call above, if we reach here, we
+                 * know all fonts have already been loaded, just accept any
+                 * match at this point. If this fails we are in real trouble
+                 * and I don't know how to recover from there being absolutely
+                 * no fonts anywhere on the system.
+                 */
+                Iterator i = physicalFonts.values().iterator();
+                if (i.hasNext()) {
+                    defaultPhysicalFont = (PhysicalFont)i.next();
+                } else {
+                    throw new Error("Probable fatal error:No fonts found.");
+                }
+            }
+        }
+        return defaultPhysicalFont;
+    }
+
+    public CompositeFont getDefaultLogicalFont(int style) {
+        return (CompositeFont)findFont2D("dialog", style, NO_FALLBACK);
+    }
+
+    /*
+     * return String representation of style prepended with "."
+     * This is useful for performance to avoid unnecessary string operations.
+     */
+    private static String dotStyleStr(int num) {
+        switch(num){
+          case Font.BOLD:
+            return ".bold";
+          case Font.ITALIC:
+            return ".italic";
+          case Font.ITALIC | Font.BOLD:
+            return ".bolditalic";
+          default:
+            return ".plain";
+        }
+    }
+
+    /* This is implemented only on windows and is called from code that
+     * executes only on windows. This isn't pretty but its not a precedent
+     * in this file. This very probably should be cleaned up at some point.
+     */
+    protected void
+        populateFontFileNameMap(HashMap<String,String> fontToFileMap,
+                                HashMap<String,String> fontToFamilyNameMap,
+                                HashMap<String,ArrayList<String>>
+                                familyToFontListMap,
+                                Locale locale) {
+    }
+
+    /* Obtained from Platform APIs (windows only)
+     * Map from lower-case font full name to basename of font file.
+     * Eg "arial bold" -> ARIALBD.TTF.
+     * For TTC files, there is a mapping for each font in the file.
+     */
+    private HashMap<String,String> fontToFileMap = null;
+
+    /* Obtained from Platform APIs (windows only)
+     * Map from lower-case font full name to the name of its font family
+     * Eg "arial bold" -> "Arial"
+     */
+    private HashMap<String,String> fontToFamilyNameMap = null;
+
+    /* Obtained from Platform APIs (windows only)
+     * Map from a lower-case family name to a list of full names of
+     * the member fonts, eg:
+     * "arial" -> ["Arial", "Arial Bold", "Arial Italic","Arial Bold Italic"]
+     */
+    private HashMap<String,ArrayList<String>> familyToFontListMap= null;
+
+    /* The directories which contain platform fonts */
+    private String[] pathDirs = null;
+
+    private boolean haveCheckedUnreferencedFontFiles;
+
+    private String[] getFontFilesFromPath(boolean noType1) {
+        final FilenameFilter filter;
+        if (noType1) {
+            filter = ttFilter;
+        } else {
+            filter = new TTorT1Filter();
+        }
+        return (String[])AccessController.doPrivileged(new PrivilegedAction() {
+            public Object run() {
+                if (pathDirs.length == 1) {
+                    File dir = new File(pathDirs[0]);
+                    String[] files = dir.list(filter);
+                    if (files == null) {
+                        return new String[0];
+                    }
+                    for (int f=0; f<files.length; f++) {
+                        files[f] = files[f].toLowerCase();
+                    }
+                    return files;
+                } else {
+                    ArrayList<String> fileList = new ArrayList<String>();
+                    for (int i = 0; i< pathDirs.length; i++) {
+                        File dir = new File(pathDirs[i]);
+                        String[] files = dir.list(filter);
+                        if (files == null) {
+                            continue;
+                        }
+                        for (int f=0; f<files.length ; f++) {
+                            fileList.add(files[f].toLowerCase());
+                        }
+                    }
+                    return fileList.toArray(STR_ARRAY);
+                }
+            }
+        });
+    }
+
+    /* This is needed since some windows registry names don't match
+     * the font names.
+     * - UPC styled font names have a double space, but the
+     * registry entry mapping to a file doesn't.
+     * - Marlett is in a hidden file not listed in the registry
+     * - The registry advertises that the file david.ttf contains a
+     * font with the full name "David Regular" when in fact its
+     * just "David".
+     * Directly fix up these known cases as this is faster.
+     * If a font which doesn't match these known cases has no file,
+     * it may be a font that has been temporarily added to the known set
+     * or it may be an installed font with a missing registry entry.
+     * Installed fonts are those in the windows font directories.
+     * Make a best effort attempt to locate these.
+     * We obtain the list of TrueType fonts in these directories and
+     * filter out all the font files we already know about from the registry.
+     * What remains may be "bad" fonts, duplicate fonts, or perhaps the
+     * missing font(s) we are looking for.
+     * Open each of these files to find out.
+     */
+    private void resolveWindowsFonts() {
+
+        ArrayList<String> unmappedFontNames = null;
+        for (String font : fontToFamilyNameMap.keySet()) {
+            String file = fontToFileMap.get(font);
+            if (file == null) {
+                if (font.indexOf("  ") > 0) {
+                    String newName = font.replaceFirst("  ", " ");
+                    file = fontToFileMap.get(newName);
+                    /* If this name exists and isn't for a valid name
+                     * replace the mapping to the file with this font
+                     */
+                    if (file != null &&
+                        !fontToFamilyNameMap.containsKey(newName)) {
+                        fontToFileMap.remove(newName);
+                        fontToFileMap.put(font, file);
+                    }
+                } else if (font.equals("marlett")) {
+                    fontToFileMap.put(font, "marlett.ttf");
+                } else if (font.equals("david")) {
+                    file = fontToFileMap.get("david regular");
+                    if (file != null) {
+                        fontToFileMap.remove("david regular");
+                        fontToFileMap.put("david", file);
+                    }
+                } else {
+                    if (unmappedFontNames == null) {
+                        unmappedFontNames = new ArrayList<String>();
+                    }
+                    unmappedFontNames.add(font);
+                }
+            }
+        }
+
+        if (unmappedFontNames != null) {
+            HashSet<String> unmappedFontFiles = new HashSet<String>();
+
+            /* Every font key in fontToFileMap ought to correspond to a
+             * font key in fontToFamilyNameMap. Entries that don't seem
+             * to correspond are likely fonts that were named differently
+             * by GDI than in the registry. One known cause of this is when
+             * Windows has had its regional settings changed so that from
+             * GDI we get a localised (eg Chinese or Japanese) name for the
+             * font, but the registry retains the English version of the name
+             * that corresponded to the "install" locale for windows.
+             * Since we are in this code block because there are unmapped
+             * font names, we can look to find unused font->file mappings
+             * and then open the files to read the names. We don't generally
+             * want to open font files, as its a performance hit, but this
+             * occurs only for a small number of fonts on specific system
+             * configs - ie is believed that a "true" Japanese windows would
+             * have JA names in the registry too.
+             * Clone fontToFileMap and remove from the clone all keys which
+             * match a fontToFamilyNameMap key. What remains maps to the
+             * files we want to open to find the fonts GDI returned.
+             * A font in such a file is added to the fontToFileMap after
+             * checking its one of the unmappedFontNames we are looking for.
+             * The original name that didn't map is removed from fontToFileMap
+             * so essentially this "fixes up" fontToFileMap to use the same
+             * name as GDI.
+             * Also note that typically the fonts for which this occurs in
+             * CJK locales are TTC fonts and not all fonts in a TTC may have
+             * localised names. Eg MSGOTHIC.TTC contains 3 fonts and one of
+             * them "MS UI Gothic" has no JA name whereas the other two do.
+             * So not every font in these files is unmapped or new.
+             */
+            HashMap<String,String> ffmapCopy =
+                (HashMap<String,String>)(fontToFileMap.clone());
+            for (String key : fontToFamilyNameMap.keySet()) {
+                ffmapCopy.remove(key);
+            }
+            for (String key : ffmapCopy.keySet()) {
+                unmappedFontFiles.add(ffmapCopy.get(key));
+                fontToFileMap.remove(key);
+            }
+
+            resolveFontFiles(unmappedFontFiles, unmappedFontNames);
+
+            /* If there are still unmapped font names, this means there's
+             * something that wasn't in the registry. We need to get all
+             * the font files directly and look at the ones that weren't
+             * found in the registry.
+             */
+            if (unmappedFontNames.size() > 0) {
+
+                /* getFontFilesFromPath() returns all lower case names.
+                 * To compare we also need lower case
+                 * versions of the names from the registry.
+                 */
+                ArrayList<String> registryFiles = new ArrayList<String>();
+
+                for (String regFile : fontToFileMap.values()) {
+                    registryFiles.add(regFile.toLowerCase());
+                }
+                /* We don't look for Type1 files here as windows will
+                 * not enumerate these, so aren't useful in reconciling
+                 * GDI's unmapped files. We do find these later when
+                 * we enumerate all fonts.
+                 */
+                for (String pathFile : getFontFilesFromPath(true)) {
+                    if (!registryFiles.contains(pathFile)) {
+                        unmappedFontFiles.add(pathFile);
+                    }
+                }
+
+                resolveFontFiles(unmappedFontFiles, unmappedFontNames);
+            }
+
+            /* remove from the set of names that will be returned to the
+             * user any fonts that can't be mapped to files.
+             */
+            if (unmappedFontNames.size() > 0) {
+                int sz = unmappedFontNames.size();
+                for (int i=0; i<sz; i++) {
+                    String name = unmappedFontNames.get(i);
+                    String familyName = fontToFamilyNameMap.get(name);
+                    if (familyName != null) {
+                        ArrayList family = familyToFontListMap.get(familyName);
+                        if (family != null) {
+                            if (family.size() <= 1) {
+                                familyToFontListMap.remove(familyName);
+                            }
+                        }
+                    }
+                    fontToFamilyNameMap.remove(name);
+                    if (FontUtilities.isLogging()) {
+                        FontUtilities.getLogger()
+                                             .info("No file for font:" + name);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * In some cases windows may have fonts in the fonts folder that
+     * don't show up in the registry or in the GDI calls to enumerate fonts.
+     * The only way to find these is to list the directory. We invoke this
+     * only in getAllFonts/Families, so most searches for a specific
+     * font that is satisfied by the GDI/registry calls don't take the
+     * additional hit of listing the directory. This hit is small enough
+     * that its not significant in these 'enumerate all the fonts' cases.
+     * The basic approach is to cross-reference the files windows found
+     * with the ones in the directory listing approach, and for each
+     * in the latter list that is missing from the former list, register it.
+     */
+    private synchronized void checkForUnreferencedFontFiles() {
+        if (haveCheckedUnreferencedFontFiles) {
+            return;
+        }
+        haveCheckedUnreferencedFontFiles = true;
+        if (!FontUtilities.isWindows) {
+            return;
+        }
+        /* getFontFilesFromPath() returns all lower case names.
+         * To compare we also need lower case
+         * versions of the names from the registry.
+         */
+        ArrayList<String> registryFiles = new ArrayList<String>();
+        for (String regFile : fontToFileMap.values()) {
+            registryFiles.add(regFile.toLowerCase());
+        }
+
+        /* To avoid any issues with concurrent modification, create
+         * copies of the existing maps, add the new fonts into these
+         * and then replace the references to the old ones with the
+         * new maps. ConcurrentHashmap is another option but its a lot
+         * more changes and with this exception, these maps are intended
+         * to be static.
+         */
+        HashMap<String,String> fontToFileMap2 = null;
+        HashMap<String,String> fontToFamilyNameMap2 = null;
+        HashMap<String,ArrayList<String>> familyToFontListMap2 = null;;
+
+        for (String pathFile : getFontFilesFromPath(false)) {
+            if (!registryFiles.contains(pathFile)) {
+                if (FontUtilities.isLogging()) {
+                    FontUtilities.getLogger()
+                                 .info("Found non-registry file : " + pathFile);
+                }
+                PhysicalFont f = registerFontFile(getPathName(pathFile));
+                if (f == null) {
+                    continue;
+                }
+                if (fontToFileMap2 == null) {
+                    fontToFileMap2 = new HashMap<String,String>(fontToFileMap);
+                    fontToFamilyNameMap2 =
+                        new HashMap<String,String>(fontToFamilyNameMap);
+                    familyToFontListMap2 = new
+                        HashMap<String,ArrayList<String>>(familyToFontListMap);
+                }
+                String fontName = f.getFontName(null);
+                String family = f.getFamilyName(null);
+                String familyLC = family.toLowerCase();
+                fontToFamilyNameMap2.put(fontName, family);
+                fontToFileMap2.put(fontName, pathFile);
+                ArrayList<String> fonts = familyToFontListMap2.get(familyLC);
+                if (fonts == null) {
+                    fonts = new ArrayList<String>();
+                } else {
+                    fonts = new ArrayList<String>(fonts);
+                }
+                fonts.add(fontName);
+                familyToFontListMap2.put(familyLC, fonts);
+            }
+        }
+        if (fontToFileMap2 != null) {
+            fontToFileMap = fontToFileMap2;
+            familyToFontListMap = familyToFontListMap2;
+            fontToFamilyNameMap = fontToFamilyNameMap2;
+        }
+    }
+
+    private void resolveFontFiles(HashSet<String> unmappedFiles,
+                                  ArrayList<String> unmappedFonts) {
+
+        Locale l = SunToolkit.getStartupLocale();
+
+        for (String file : unmappedFiles) {
+            try {
+                int fn = 0;
+                TrueTypeFont ttf;
+                String fullPath = getPathName(file);
+                if (FontUtilities.isLogging()) {
+                    FontUtilities.getLogger()
+                                   .info("Trying to resolve file " + fullPath);
+                }
+                do {
+                    ttf = new TrueTypeFont(fullPath, null, fn++, true);
+                    //  prefer the font's locale name.
+                    String fontName = ttf.getFontName(l).toLowerCase();
+                    if (unmappedFonts.contains(fontName)) {
+                        fontToFileMap.put(fontName, file);
+                        unmappedFonts.remove(fontName);
+                        if (FontUtilities.isLogging()) {
+                            FontUtilities.getLogger()
+                                  .info("Resolved absent registry entry for " +
+                                        fontName + " located in " + fullPath);
+                        }
+                    }
+                }
+                while (fn < ttf.getFontCount());
+            } catch (Exception e) {
+            }
+        }
+    }
+
+    private synchronized HashMap<String,String> getFullNameToFileMap() {
+        if (fontToFileMap == null) {
+
+            pathDirs = getPlatformFontDirs(noType1Font);
+
+            fontToFileMap = new HashMap<String,String>(100);
+            fontToFamilyNameMap = new HashMap<String,String>(100);
+            familyToFontListMap = new HashMap<String,ArrayList<String>>(50);
+            populateFontFileNameMap(fontToFileMap,
+                                    fontToFamilyNameMap,
+                                    familyToFontListMap,
+                                    Locale.ENGLISH);
+            if (FontUtilities.isWindows) {
+                resolveWindowsFonts();
+            }
+            if (FontUtilities.isLogging()) {
+                logPlatformFontInfo();
+            }
+        }
+        return fontToFileMap;
+    }
+
+    private void logPlatformFontInfo() {
+        PlatformLogger logger = FontUtilities.getLogger();
+        for (int i=0; i< pathDirs.length;i++) {
+            logger.info("fontdir="+pathDirs[i]);
+        }
+        for (String keyName : fontToFileMap.keySet()) {
+            logger.info("font="+keyName+" file="+ fontToFileMap.get(keyName));
+        }
+        for (String keyName : fontToFamilyNameMap.keySet()) {
+            logger.info("font="+keyName+" family="+
+                        fontToFamilyNameMap.get(keyName));
+        }
+        for (String keyName : familyToFontListMap.keySet()) {
+            logger.info("family="+keyName+ " fonts="+
+                        familyToFontListMap.get(keyName));
+        }
+    }
+
+    /* Note this return list excludes logical fonts and JRE fonts */
+    protected String[] getFontNamesFromPlatform() {
+        if (getFullNameToFileMap().size() == 0) {
+            return null;
+        }
+        checkForUnreferencedFontFiles();
+        /* This odd code with TreeMap is used to preserve a historical
+         * behaviour wrt the sorting order .. */
+        ArrayList<String> fontNames = new ArrayList<String>();
+        for (ArrayList<String> a : familyToFontListMap.values()) {
+            for (String s : a) {
+                fontNames.add(s);
+            }
+        }
+        return fontNames.toArray(STR_ARRAY);
+    }
+
+    public boolean gotFontsFromPlatform() {
+        return getFullNameToFileMap().size() != 0;
+    }
+
+    public String getFileNameForFontName(String fontName) {
+        String fontNameLC = fontName.toLowerCase(Locale.ENGLISH);
+        return fontToFileMap.get(fontNameLC);
+    }
+
+    private PhysicalFont registerFontFile(String file) {
+        if (new File(file).isAbsolute() &&
+            !registeredFonts.contains(file)) {
+            int fontFormat = FONTFORMAT_NONE;
+            int fontRank = Font2D.UNKNOWN_RANK;
+            if (ttFilter.accept(null, file)) {
+                fontFormat = FONTFORMAT_TRUETYPE;
+                fontRank = Font2D.TTF_RANK;
+            } else if
+                (t1Filter.accept(null, file)) {
+                fontFormat = FONTFORMAT_TYPE1;
+                fontRank = Font2D.TYPE1_RANK;
+            }
+            if (fontFormat == FONTFORMAT_NONE) {
+                return null;
+            }
+            return registerFontFile(file, null, fontFormat, false, fontRank);
+        }
+        return null;
+    }
+
+    /* Used to register any font files that are found by platform APIs
+     * that weren't previously found in the standard font locations.
+     * the isAbsolute() check is needed since that's whats stored in the
+     * set, and on windows, the fonts in the system font directory that
+     * are in the fontToFileMap are just basenames. We don't want to try
+     * to register those again, but we do want to register other registry
+     * installed fonts.
+     */
+    protected void registerOtherFontFiles(HashSet registeredFontFiles) {
+        if (getFullNameToFileMap().size() == 0) {
+            return;
+        }
+        for (String file : fontToFileMap.values()) {
+            registerFontFile(file);
+        }
+    }
+
+    public boolean
+        getFamilyNamesFromPlatform(TreeMap<String,String> familyNames,
+                                   Locale requestedLocale) {
+        if (getFullNameToFileMap().size() == 0) {
+            return false;
+        }
+        checkForUnreferencedFontFiles();
+        for (String name : fontToFamilyNameMap.values()) {
+            familyNames.put(name.toLowerCase(requestedLocale), name);
+        }
+        return true;
+    }
+
+    /* Path may be absolute or a base file name relative to one of
+     * the platform font directories
+     */
+    private String getPathName(final String s) {
+        File f = new File(s);
+        if (f.isAbsolute()) {
+            return s;
+        } else if (pathDirs.length==1) {
+            return pathDirs[0] + File.separator + s;
+        } else {
+            String path = java.security.AccessController.doPrivileged(
+                 new java.security.PrivilegedAction<String>() {
+                     public String run() {
+                         for (int p=0; p<pathDirs.length; p++) {
+                             File f = new File(pathDirs[p] +File.separator+ s);
+                             if (f.exists()) {
+                                 return f.getAbsolutePath();
+                             }
+                         }
+                         return null;
+                     }
+                });
+            if (path != null) {
+                return path;
+            }
+        }
+        return s; // shouldn't happen, but harmless
+    }
+
+    /* lcName is required to be lower case for use as a key.
+     * lcName may be a full name, or a family name, and style may
+     * be specified in addition to either of these. So be sure to
+     * get the right one. Since an app *could* ask for "Foo Regular"
+     * and later ask for "Foo Italic", if we don't register all the
+     * styles, then logic in findFont2D may try to style the original
+     * so we register the entire family if we get a match here.
+     * This is still a big win because this code is invoked where
+     * otherwise we would register all fonts.
+     * It's also useful for the case where "Foo Bold" was specified with
+     * style Font.ITALIC, as we would want in that case to try to return
+     * "Foo Bold Italic" if it exists, and it is only by locating "Foo Bold"
+     * and opening it that we really "know" it's Bold, and can look for
+     * a font that supports that and the italic style.
+     * The code in here is not overtly windows-specific but in fact it
+     * is unlikely to be useful as is on other platforms. It is maintained
+     * in this shared source file to be close to its sole client and
+     * because so much of the logic is intertwined with the logic in
+     * findFont2D.
+     */
+    private Font2D findFontFromPlatform(String lcName, int style) {
+        if (getFullNameToFileMap().size() == 0) {
+            return null;
+        }
+
+        ArrayList<String> family = null;
+        String fontFile = null;
+        String familyName = fontToFamilyNameMap.get(lcName);
+        if (familyName != null) {
+            fontFile = fontToFileMap.get(lcName);
+            family = familyToFontListMap.get
+                (familyName.toLowerCase(Locale.ENGLISH));
+        } else {
+            family = familyToFontListMap.get(lcName); // is lcName is a family?
+            if (family != null && family.size() > 0) {
+                String lcFontName = family.get(0).toLowerCase(Locale.ENGLISH);
+                if (lcFontName != null) {
+                    familyName = fontToFamilyNameMap.get(lcFontName);
+                }
+            }
+        }
+        if (family == null || familyName == null) {
+            return null;
+        }
+        String [] fontList = (String[])family.toArray(STR_ARRAY);
+        if (fontList.length == 0) {
+            return null;
+        }
+
+        /* first check that for every font in this family we can find
+         * a font file. The specific reason for doing this is that
+         * in at least one case on Windows a font has the face name "David"
+         * but the registry entry is "David Regular". That is the "unique"
+         * name of the font but in other cases the registry contains the
+         * "full" name. See the specifications of name ids 3 and 4 in the
+         * TrueType 'name' table.
+         * In general this could cause a problem that we fail to register
+         * if we all members of a family that we may end up mapping to
+         * the wrong font member: eg return Bold when Plain is needed.
+         */
+        for (int f=0;f<fontList.length;f++) {
+            String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
+            String fileName = fontToFileMap.get(fontNameLC);
+            if (fileName == null) {
+                if (FontUtilities.isLogging()) {
+                    FontUtilities.getLogger()
+                          .info("Platform lookup : No file for font " +
+                                fontList[f] + " in family " +familyName);
+                }
+                return null;
+            }
+        }
+
+        /* Currently this code only looks for TrueType fonts, so format
+         * and rank can be specified without looking at the filename.
+         */
+        PhysicalFont physicalFont = null;
+        if (fontFile != null) {
+            physicalFont = registerFontFile(getPathName(fontFile), null,
+                                            FONTFORMAT_TRUETYPE, false,
+                                            Font2D.TTF_RANK);
+        }
+        /* Register all fonts in this family. */
+        for (int f=0;f<fontList.length;f++) {
+            String fontNameLC = fontList[f].toLowerCase(Locale.ENGLISH);
+            String fileName = fontToFileMap.get(fontNameLC);
+            if (fontFile != null && fontFile.equals(fileName)) {
+                continue;
+            }
+            /* Currently this code only looks for TrueType fonts, so format
+             * and rank can be specified without looking at the filename.
+             */
+            registerFontFile(getPathName(fileName), null,
+                             FONTFORMAT_TRUETYPE, false, Font2D.TTF_RANK);
+        }
+
+        Font2D font = null;
+        FontFamily fontFamily = FontFamily.getFamily(familyName);
+        /* Handle case where request "MyFont Bold", style=Font.ITALIC */
+        if (physicalFont != null) {
+            style |= physicalFont.style;
+        }
+        if (fontFamily != null) {
+            font = fontFamily.getFont(style);
+            if (font == null) {
+                font = fontFamily.getClosestStyle(style);
+            }
+        }
+        return font;
+    }
+
+    private ConcurrentHashMap<String, Font2D> fontNameCache =
+        new ConcurrentHashMap<String, Font2D>();
+
+    /*
+     * The client supplies a name and a style.
+     * The name could be a family name, or a full name.
+     * A font may exist with the specified style, or it may
+     * exist only in some other style. For non-native fonts the scaler
+     * may be able to emulate the required style.
+     */
+    public Font2D findFont2D(String name, int style, int fallback) {
+        String lowerCaseName = name.toLowerCase(Locale.ENGLISH);
+        String mapName = lowerCaseName + dotStyleStr(style);
+        Font2D font;
+
+        /* If preferLocaleFonts() or preferProportionalFonts() has been
+         * called we may be using an alternate set of composite fonts in this
+         * app context. The presence of a pre-built name map indicates whether
+         * this is so, and gives access to the alternate composite for the
+         * name.
+         */
+        if (_usingPerAppContextComposites) {
+            ConcurrentHashMap<String, Font2D> altNameCache =
+                (ConcurrentHashMap<String, Font2D>)
+                AppContext.getAppContext().get(CompositeFont.class);
+            if (altNameCache != null) {
+                font = (Font2D)altNameCache.get(mapName);
+            } else {
+                font = null;
+            }
+        } else {
+            font = fontNameCache.get(mapName);
+        }
+        if (font != null) {
+            return font;
+        }
+
+        if (FontUtilities.isLogging()) {
+            FontUtilities.getLogger().info("Search for font: " + name);
+        }
+
+        // The check below is just so that the bitmap fonts being set by
+        // AWT and Swing thru the desktop properties do not trigger the
+        // the load fonts case. The two bitmap fonts are now mapped to
+        // appropriate equivalents for serif and sansserif.
+        // Note that the cost of this comparison is only for the first
+        // call until the map is filled.
+        if (FontUtilities.isWindows) {
+            if (lowerCaseName.equals("ms sans serif")) {
+                name = "sansserif";
+            } else if (lowerCaseName.equals("ms serif")) {
+                name = "serif";
+            }
+        }
+
+        /* This isn't intended to support a client passing in the
+         * string default, but if a client passes in null for the name
+         * the java.awt.Font class internally substitutes this name.
+         * So we need to recognise it here to prevent a loadFonts
+         * on the unrecognised name. The only potential problem with
+         * this is it would hide any real font called "default"!
+         * But that seems like a potential problem we can ignore for now.
+         */
+        if (lowerCaseName.equals("default")) {
+            name = "dialog";
+        }
+
+        /* First see if its a family name. */
+        FontFamily family = FontFamily.getFamily(name);
+        if (family != null) {
+            font = family.getFontWithExactStyleMatch(style);
+            if (font == null) {
+                font = findDeferredFont(name, style);
+            }
+            if (font == null) {
+                font = family.getFont(style);
+            }
+            if (font == null) {
+                font = family.getClosestStyle(style);
+            }
+            if (font != null) {
+                fontNameCache.put(mapName, font);
+                return font;
+            }
+        }
+
+        /* If it wasn't a family name, it should be a full name of
+         * either a composite, or a physical font
+         */
+        font = fullNameToFont.get(lowerCaseName);
+        if (font != null) {
+            /* Check that the requested style matches the matched font's style.
+             * But also match style automatically if the requested style is
+             * "plain". This because the existing behaviour is that the fonts
+             * listed via getAllFonts etc always list their style as PLAIN.
+             * This does lead to non-commutative behaviours where you might
+             * start with "Lucida Sans Regular" and ask for a BOLD version
+             * and get "Lucida Sans DemiBold" but if you ask for the PLAIN
+             * style of "Lucida Sans DemiBold" you get "Lucida Sans DemiBold".
+             * This consistent however with what happens if you have a bold
+             * version of a font and no plain version exists - alg. styling
+             * doesn't "unbolden" the font.
+             */
+            if (font.style == style || style == Font.PLAIN) {
+                fontNameCache.put(mapName, font);
+                return font;
+            } else {
+                /* If it was a full name like "Lucida Sans Regular", but
+                 * the style requested is "bold", then we want to see if
+                 * there's the appropriate match against another font in
+                 * that family before trying to load all fonts, or applying a
+                 * algorithmic styling
+                 */
+                family = FontFamily.getFamily(font.getFamilyName(null));
+                if (family != null) {
+                    Font2D familyFont = family.getFont(style|font.style);
+                    /* We exactly matched the requested style, use it! */
+                    if (familyFont != null) {
+                        fontNameCache.put(mapName, familyFont);
+                        return familyFont;
+                    } else {
+                        /* This next call is designed to support the case
+                         * where bold italic is requested, and if we must
+                         * style, then base it on either bold or italic -
+                         * not on plain!
+                         */
+                        familyFont = family.getClosestStyle(style|font.style);
+                        if (familyFont != null) {
+                            /* The next check is perhaps one
+                             * that shouldn't be done. ie if we get this
+                             * far we have probably as close a match as we
+                             * are going to get. We could load all fonts to
+                             * see if somehow some parts of the family are
+                             * loaded but not all of it.
+                             */
+                            if (familyFont.canDoStyle(style|font.style)) {
+                                fontNameCache.put(mapName, familyFont);
+                                return familyFont;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        if (FontUtilities.isWindows) {
+            /* Don't want Windows to return a Lucida Sans font from
+             * C:\Windows\Fonts
+             */
+            if (deferredFontFiles.size() > 0) {
+                font = findJREDeferredFont(lowerCaseName, style);
+                if (font != null) {
+                    fontNameCache.put(mapName, font);
+                    return font;
+                }
+            }
+            font = findFontFromPlatform(lowerCaseName, style);
+            if (font != null) {
+                if (FontUtilities.isLogging()) {
+                    FontUtilities.getLogger()
+                          .info("Found font via platform API for request:\"" +
+                                name + "\":, style="+style+
+                                " found font: " + font);
+                }
+                fontNameCache.put(mapName, font);
+                return font;
+            }
+        }
+
+        /* If reach here and no match has been located, then if there are
+         * uninitialised deferred fonts, load as many of those as needed
+         * to find the deferred font. If none is found through that
+         * search continue on.
+         * There is possibly a minor issue when more than one
+         * deferred font implements the same font face. Since deferred
+         * fonts are only those in font configuration files, this is a
+         * controlled situation, the known case being Solaris euro_fonts
+         * versions of Arial, Times New Roman, Courier New. However
+         * the larger font will transparently replace the smaller one
+         *  - see addToFontList() - when it is needed by the composite font.
+         */
+        if (deferredFontFiles.size() > 0) {
+            font = findDeferredFont(name, style);
+            if (font != null) {
+                fontNameCache.put(mapName, font);
+                return font;
+            }
+        }
+
+        /* Some apps use deprecated 1.0 names such as helvetica and courier. On
+         * Solaris these are Type1 fonts in /usr/openwin/lib/X11/fonts/Type1.
+         * If running on Solaris will register all the fonts in this
+         * directory.
+         * May as well register the whole directory without actually testing
+         * the font name is one of the deprecated names as the next step would
+         * load all fonts which are in this directory anyway.
+         * In the event that this lookup is successful it potentially "hides"
+         * TrueType versions of such fonts that are elsewhere but since they
+         * do not exist on Solaris this is not a problem.
+         * Set a flag to indicate we've done this registration to avoid
+         * repetition and more seriously, to avoid recursion.
+         */
+        if (FontUtilities.isSolaris &&!loaded1dot0Fonts) {
+            /* "timesroman" is a special case since that's not the
+             * name of any known font on Solaris or elsewhere.
+             */
+            if (lowerCaseName.equals("timesroman")) {
+                font = findFont2D("serif", style, fallback);
+                fontNameCache.put(mapName, font);
+            }
+            register1dot0Fonts();
+            loaded1dot0Fonts = true;
+            Font2D ff = findFont2D(name, style, fallback);
+            return ff;
+        }
+
+        /* We check for application registered fonts before
+         * explicitly loading all fonts as if necessary the registration
+         * code will have done so anyway. And we don't want to needlessly
+         * load the actual files for all fonts.
+         * Just as for installed fonts we check for family before fullname.
+         * We do not add these fonts to fontNameCache for the
+         * app context case which eliminates the overhead of a per context
+         * cache for these.
+         */
+
+        if (fontsAreRegistered || fontsAreRegisteredPerAppContext) {
+            Hashtable<String, FontFamily> familyTable = null;
+            Hashtable<String, Font2D> nameTable;
+
+            if (fontsAreRegistered) {
+                familyTable = createdByFamilyName;
+                nameTable = createdByFullName;
+            } else {
+                AppContext appContext = AppContext.getAppContext();
+                familyTable =
+                    (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
+                nameTable =
+                    (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
+            }
+
+            family = familyTable.get(lowerCaseName);
+            if (family != null) {
+                font = family.getFontWithExactStyleMatch(style);
+                if (font == null) {
+                    font = family.getFont(style);
+                }
+                if (font == null) {
+                    font = family.getClosestStyle(style);
+                }
+                if (font != null) {
+                    if (fontsAreRegistered) {
+                        fontNameCache.put(mapName, font);
+                    }
+                    return font;
+                }
+            }
+            font = nameTable.get(lowerCaseName);
+            if (font != null) {
+                if (fontsAreRegistered) {
+                    fontNameCache.put(mapName, font);
+                }
+                return font;
+            }
+        }
+
+        /* If reach here and no match has been located, then if all fonts
+         * are not yet loaded, do so, and then recurse.
+         */
+        if (!loadedAllFonts) {
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger()
+                                       .info("Load fonts looking for:" + name);
+            }
+            loadFonts();
+            loadedAllFonts = true;
+            return findFont2D(name, style, fallback);
+        }
+
+        if (!loadedAllFontFiles) {
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger()
+                                  .info("Load font files looking for:" + name);
+            }
+            loadFontFiles();
+            loadedAllFontFiles = true;
+            return findFont2D(name, style, fallback);
+        }
+
+        /* The primary name is the locale default - ie not US/English but
+         * whatever is the default in this locale. This is the way it always
+         * has been but may be surprising to some developers if "Arial Regular"
+         * were hard-coded in their app and yet "Arial Regular" was not the
+         * default name. Fortunately for them, as a consequence of the JDK
+         * supporting returning names and family names for arbitrary locales,
+         * we also need to support searching all localised names for a match.
+         * But because this case of the name used to reference a font is not
+         * the same as the default for this locale is rare, it makes sense to
+         * search a much shorter list of default locale names and only go to
+         * a longer list of names in the event that no match was found.
+         * So add here code which searches localised names too.
+         * As in 1.4.x this happens only after loading all fonts, which
+         * is probably the right order.
+         */
+        if ((font = findFont2DAllLocales(name, style)) != null) {
+            fontNameCache.put(mapName, font);
+            return font;
+        }
+
+        /* Perhaps its a "compatibility" name - timesroman, helvetica,
+         * or courier, which 1.0 apps used for logical fonts.
+         * We look for these "late" after a loadFonts as we must not
+         * hide real fonts of these names.
+         * Map these appropriately:
+         * On windows this means according to the rules specified by the
+         * FontConfiguration : do it only for encoding==Cp1252
+         *
+         * REMIND: this is something we plan to remove.
+         */
+        if (FontUtilities.isWindows) {
+            String compatName =
+                getFontConfiguration().getFallbackFamilyName(name, null);
+            if (compatName != null) {
+                font = findFont2D(compatName, style, fallback);
+                fontNameCache.put(mapName, font);
+                return font;
+            }
+        } else if (lowerCaseName.equals("timesroman")) {
+            font = findFont2D("serif", style, fallback);
+            fontNameCache.put(mapName, font);
+            return font;
+        } else if (lowerCaseName.equals("helvetica")) {
+            font = findFont2D("sansserif", style, fallback);
+            fontNameCache.put(mapName, font);
+            return font;
+        } else if (lowerCaseName.equals("courier")) {
+            font = findFont2D("monospaced", style, fallback);
+            fontNameCache.put(mapName, font);
+            return font;
+        }
+
+        if (FontUtilities.isLogging()) {
+            FontUtilities.getLogger().info("No font found for:" + name);
+        }
+
+        switch (fallback) {
+        case PHYSICAL_FALLBACK: return getDefaultPhysicalFont();
+        case LOGICAL_FALLBACK: return getDefaultLogicalFont(style);
+        default: return null;
+        }
+    }
+
+    /*
+     * Workaround for apps which are dependent on a font metrics bug
+     * in JDK 1.1. This is an unsupported win32 private setting.
+     * Left in for a customer - do not remove.
+     */
+    public boolean usePlatformFontMetrics() {
+        return usePlatformFontMetrics;
+    }
+
+    public int getNumFonts() {
+        return physicalFonts.size()+maxCompFont;
+    }
+
+    private static boolean fontSupportsEncoding(Font font, String encoding) {
+        return FontUtilities.getFont2D(font).supportsEncoding(encoding);
+    }
+
+    public abstract String getFontPath(boolean noType1Fonts);
+
+    private Thread fileCloser = null;
+    Vector<File> tmpFontFiles = null;
+
+    public Font2D createFont2D(File fontFile, int fontFormat,
+                               boolean isCopy, CreatedFontTracker tracker)
+    throws FontFormatException {
+
+        String fontFilePath = fontFile.getPath();
+        FileFont font2D = null;
+        final File fFile = fontFile;
+        final CreatedFontTracker _tracker = tracker;
+        try {
+            switch (fontFormat) {
+            case Font.TRUETYPE_FONT:
+                font2D = new TrueTypeFont(fontFilePath, null, 0, true);
+                break;
+            case Font.TYPE1_FONT:
+                font2D = new Type1Font(fontFilePath, null, isCopy);
+                break;
+            default:
+                throw new FontFormatException("Unrecognised Font Format");
+            }
+        } catch (FontFormatException e) {
+            if (isCopy) {
+                java.security.AccessController.doPrivileged(
+                     new java.security.PrivilegedAction() {
+                          public Object run() {
+                              if (_tracker != null) {
+                                  _tracker.subBytes((int)fFile.length());
+                              }
+                              fFile.delete();
+                              return null;
+                          }
+                });
+            }
+            throw(e);
+        }
+        if (isCopy) {
+            font2D.setFileToRemove(fontFile, tracker);
+            synchronized (FontManager.class) {
+
+                if (tmpFontFiles == null) {
+                    tmpFontFiles = new Vector<File>();
+                }
+                tmpFontFiles.add(fontFile);
+
+                if (fileCloser == null) {
+                    final Runnable fileCloserRunnable = new Runnable() {
+                      public void run() {
+                         java.security.AccessController.doPrivileged(
+                         new java.security.PrivilegedAction() {
+                         public Object run() {
+
+                            for (int i=0;i<CHANNELPOOLSIZE;i++) {
+                                if (fontFileCache[i] != null) {
+                                    try {
+                                        fontFileCache[i].close();
+                                    } catch (Exception e) {
+                                    }
+                                }
+                            }
+                            if (tmpFontFiles != null) {
+                                File[] files = new File[tmpFontFiles.size()];
+                                files = tmpFontFiles.toArray(files);
+                                for (int f=0; f<files.length;f++) {
+                                    try {
+                                        files[f].delete();
+                                    } catch (Exception e) {
+                                    }
+                                }
+                            }
+
+                            return null;
+                          }
+
+                          });
+                      }
+                    };
+                    java.security.AccessController.doPrivileged(
+                       new java.security.PrivilegedAction() {
+                          public Object run() {
+                              /* The thread must be a member of a thread group
+                               * which will not get GCed before VM exit.
+                               * Make its parent the top-level thread group.
+                               */
+                              ThreadGroup tg =
+                                  Thread.currentThread().getThreadGroup();
+                              for (ThreadGroup tgn = tg;
+                                   tgn != null;
+                                   tg = tgn, tgn = tg.getParent());
+                              fileCloser = new Thread(tg, fileCloserRunnable);
+                              Runtime.getRuntime().addShutdownHook(fileCloser);
+                              return null;
+                          }
+                    });
+                }
+            }
+        }
+        return font2D;
+    }
+
+    /* remind: used in X11GraphicsEnvironment and called often enough
+     * that we ought to obsolete this code
+     */
+    public synchronized String getFullNameByFileName(String fileName) {
+        PhysicalFont[] physFonts = getPhysicalFonts();
+        for (int i=0;i<physFonts.length;i++) {
+            if (physFonts[i].platName.equals(fileName)) {
+                return (physFonts[i].getFontName(null));
+            }
+        }
+        return null;
+    }
+
+    /*
+     * This is called when font is determined to be invalid/bad.
+     * It designed to be called (for example) by the font scaler
+     * when in processing a font file it is discovered to be incorrect.
+     * This is different than the case where fonts are discovered to
+     * be incorrect during initial verification, as such fonts are
+     * never registered.
+     * Handles to this font held are re-directed to a default font.
+     * This default may not be an ideal substitute buts it better than
+     * crashing This code assumes a PhysicalFont parameter as it doesn't
+     * make sense for a Composite to be "bad".
+     */
+    public synchronized void deRegisterBadFont(Font2D font2D) {
+        if (!(font2D instanceof PhysicalFont)) {
+            /* We should never reach here, but just in case */
+            return;
+        } else {
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger()
+                                     .severe("Deregister bad font: " + font2D);
+            }
+            replaceFont((PhysicalFont)font2D, getDefaultPhysicalFont());
+        }
+    }
+
+    /*
+     * This encapsulates all the work that needs to be done when a
+     * Font2D is replaced by a different Font2D.
+     */
+    public synchronized void replaceFont(PhysicalFont oldFont,
+                                         PhysicalFont newFont) {
+
+        if (oldFont.handle.font2D != oldFont) {
+            /* already done */
+            return;
+        }
+
+        /* If we try to replace the font with itself, that won't work,
+         * so pick any alternative physical font
+         */
+        if (oldFont == newFont) {
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger()
+                      .severe("Can't replace bad font with itself " + oldFont);
+            }
+            PhysicalFont[] physFonts = getPhysicalFonts();
+            for (int i=0; i<physFonts.length;i++) {
+                if (physFonts[i] != newFont) {
+                    newFont = physFonts[i];
+                    break;
+                }
+            }
+            if (oldFont == newFont) {
+                if (FontUtilities.isLogging()) {
+                    FontUtilities.getLogger()
+                           .severe("This is bad. No good physicalFonts found.");
+                }
+                return;
+            }
+        }
+
+        /* eliminate references to this font, so it won't be located
+         * by future callers, and will be eligible for GC when all
+         * references are removed
+         */
+        oldFont.handle.font2D = newFont;
+        physicalFonts.remove(oldFont.fullName);
+        fullNameToFont.remove(oldFont.fullName.toLowerCase(Locale.ENGLISH));
+        FontFamily.remove(oldFont);
+
+        if (localeFullNamesToFont != null) {
+            Map.Entry[] mapEntries =
+                (Map.Entry[])localeFullNamesToFont.entrySet().
+                toArray(new Map.Entry[0]);
+            /* Should I be replacing these, or just I just remove
+             * the names from the map?
+             */
+            for (int i=0; i<mapEntries.length;i++) {
+                if (mapEntries[i].getValue() == oldFont) {
+                    try {
+                        mapEntries[i].setValue(newFont);
+                    } catch (Exception e) {
+                        /* some maps don't support this operation.
+                         * In this case just give up and remove the entry.
+                         */
+                        localeFullNamesToFont.remove(mapEntries[i].getKey());
+                    }
+                }
+            }
+        }
+
+        for (int i=0; i<maxCompFont; i++) {
+            /* Deferred initialization of composites shouldn't be
+             * a problem for this case, since a font must have been
+             * initialised to be discovered to be bad.
+             * Some JRE composites on Solaris use two versions of the same
+             * font. The replaced font isn't bad, just "smaller" so there's
+             * no need to make the slot point to the new font.
+             * Since composites have a direct reference to the Font2D (not
+             * via a handle) making this substitution is not safe and could
+             * cause an additional problem and so this substitution is
+             * warranted only when a font is truly "bad" and could cause
+             * a crash. So we now replace it only if its being substituted
+             * with some font other than a fontconfig rank font
+             * Since in practice a substitution will have the same rank
+             * this may never happen, but the code is safer even if its
+             * also now a no-op.
+             * The only obvious "glitch" from this stems from the current
+             * implementation that when asked for the number of glyphs in a
+             * composite it lies and returns the number in slot 0 because
+             * composite glyphs aren't contiguous. Since we live with that
+             * we can live with the glitch that depending on how it was
+             * initialised a composite may return different values for this.
+             * Fixing the issues with composite glyph ids is tricky as
+             * there are exclusion ranges and unlike other fonts even the
+             * true "numGlyphs" isn't a contiguous range. Likely the only
+             * solution is an API that returns an array of glyph ranges
+             * which takes precedence over the existing API. That might
+             * also need to address excluding ranges which represent a
+             * code point supported by an earlier component.
+             */
+            if (newFont.getRank() > Font2D.FONT_CONFIG_RANK) {
+                compFonts[i].replaceComponentFont(oldFont, newFont);
+            }
+        }
+    }
+
+    private synchronized void loadLocaleNames() {
+        if (localeFullNamesToFont != null) {
+            return;
+        }
+        localeFullNamesToFont = new HashMap<String, TrueTypeFont>();
+        Font2D[] fonts = getRegisteredFonts();
+        for (int i=0; i<fonts.length; i++) {
+            if (fonts[i] instanceof TrueTypeFont) {
+                TrueTypeFont ttf = (TrueTypeFont)fonts[i];
+                String[] fullNames = ttf.getAllFullNames();
+                for (int n=0; n<fullNames.length; n++) {
+                    localeFullNamesToFont.put(fullNames[n], ttf);
+                }
+                FontFamily family = FontFamily.getFamily(ttf.familyName);
+                if (family != null) {
+                    FontFamily.addLocaleNames(family, ttf.getAllFamilyNames());
+                }
+            }
+        }
+    }
+
+    /* This replicate the core logic of findFont2D but operates on
+     * all the locale names. This hasn't been merged into findFont2D to
+     * keep the logic simpler and reduce overhead, since this case is
+     * almost never used. The main case in which it is called is when
+     * a bogus font name is used and we need to check all possible names
+     * before returning the default case.
+     */
+    private Font2D findFont2DAllLocales(String name, int style) {
+
+        if (FontUtilities.isLogging()) {
+            FontUtilities.getLogger()
+                           .info("Searching localised font names for:" + name);
+        }
+
+        /* If reach here and no match has been located, then if we have
+         * not yet built the map of localeFullNamesToFont for TT fonts, do so
+         * now. This method must be called after all fonts have been loaded.
+         */
+        if (localeFullNamesToFont == null) {
+            loadLocaleNames();
+        }
+        String lowerCaseName = name.toLowerCase();
+        Font2D font = null;
+
+        /* First see if its a family name. */
+        FontFamily family = FontFamily.getLocaleFamily(lowerCaseName);
+        if (family != null) {
+          font = family.getFont(style);
+          if (font == null) {
+            font = family.getClosestStyle(style);
+          }
+          if (font != null) {
+              return font;
+          }
+        }
+
+        /* If it wasn't a family name, it should be a full name. */
+        synchronized (this) {
+            font = localeFullNamesToFont.get(name);
+        }
+        if (font != null) {
+            if (font.style == style || style == Font.PLAIN) {
+                return font;
+            } else {
+                family = FontFamily.getFamily(font.getFamilyName(null));
+                if (family != null) {
+                    Font2D familyFont = family.getFont(style);
+                    /* We exactly matched the requested style, use it! */
+                    if (familyFont != null) {
+                        return familyFont;
+                    } else {
+                        familyFont = family.getClosestStyle(style);
+                        if (familyFont != null) {
+                            /* The next check is perhaps one
+                             * that shouldn't be done. ie if we get this
+                             * far we have probably as close a match as we
+                             * are going to get. We could load all fonts to
+                             * see if somehow some parts of the family are
+                             * loaded but not all of it.
+                             * This check is commented out for now.
+                             */
+                            if (!familyFont.canDoStyle(style)) {
+                                familyFont = null;
+                            }
+                            return familyFont;
+                        }
+                    }
+                }
+            }
+        }
+        return font;
+    }
+
+    /* Supporting "alternate" composite fonts on 2D graphics objects
+     * is accessed by the application by calling methods on the local
+     * GraphicsEnvironment. The overall implementation is described
+     * in one place, here, since otherwise the implementation is spread
+     * around it may be difficult to track.
+     * The methods below call into SunGraphicsEnvironment which creates a
+     * new FontConfiguration instance. The FontConfiguration class,
+     * and its platform sub-classes are updated to take parameters requesting
+     * these behaviours. This is then used to create new composite font
+     * instances. Since this calls the initCompositeFont method in
+     * SunGraphicsEnvironment it performs the same initialization as is
+     * performed normally. There may be some duplication of effort, but
+     * that code is already written to be able to perform properly if called
+     * to duplicate work. The main difference is that if we detect we are
+     * running in an applet/browser/Java plugin environment these new fonts
+     * are not placed in the "default" maps but into an AppContext instance.
+     * The font lookup mechanism in java.awt.Font.getFont2D() is also updated
+     * so that look-up for composite fonts will in that case always
+     * do a lookup rather than returning a cached result.
+     * This is inefficient but necessary else singleton java.awt.Font
+     * instances would not retrieve the correct Font2D for the appcontext.
+     * sun.font.FontManager.findFont2D is also updated to that it uses
+     * a name map cache specific to that appcontext.
+     *
+     * Getting an AppContext is expensive, so there is a global variable
+     * that records whether these methods have ever been called and can
+     * avoid the expense for almost all applications. Once the correct
+     * CompositeFont is associated with the Font, everything should work
+     * through existing mechanisms.
+     * A special case is that GraphicsEnvironment.getAllFonts() must
+     * return an AppContext specific list.
+     *
+     * Calling the methods below is "heavyweight" but it is expected that
+     * these methods will be called very rarely.
+     *
+     * If _usingPerAppContextComposites is true, we are in "applet"
+     * (eg browser) enviroment and at least one context has selected
+     * an alternate composite font behaviour.
+     * If _usingAlternateComposites is true, we are not in an "applet"
+     * environment and the (single) application has selected
+     * an alternate composite font behaviour.
+     *
+     * - Printing: The implementation delegates logical fonts to an AWT
+     * mechanism which cannot use these alternate configurations.
+     * We can detect that alternate fonts are in use and back-off to 2D, but
+     * that uses outlines. Much of this can be fixed with additional work
+     * but that may have to wait. The results should be correct, just not
+     * optimal.
+     */
+    private static final Object altJAFontKey       = new Object();
+    private static final Object localeFontKey       = new Object();
+    private static final Object proportionalFontKey = new Object();
+    private boolean _usingPerAppContextComposites = false;
+    private boolean _usingAlternateComposites = false;
+
+    /* These values are used only if we are running as a standalone
+     * application, as determined by maybeMultiAppContext();
+     */
+    private static boolean gAltJAFont = false;
+    private boolean gLocalePref = false;
+    private boolean gPropPref = false;
+
+    /* This method doesn't check if alternates are selected in this app
+     * context. Its used by the FontMetrics caching code which in such
+     * a case cannot retrieve a cached metrics solely on the basis of
+     * the Font.equals() method since it needs to also check if the Font2D
+     * is the same.
+     * We also use non-standard composites for Swing native L&F fonts on
+     * Windows. In that case the policy is that the metrics reported are
+     * based solely on the physical font in the first slot which is the
+     * visible java.awt.Font. So in that case the metrics cache which tests
+     * the Font does what we want. In the near future when we expand the GTK
+     * logical font definitions we may need to revisit this if GTK reports
+     * combined metrics instead. For now though this test can be simple.
+     */
+    public boolean maybeUsingAlternateCompositeFonts() {
+       return _usingAlternateComposites || _usingPerAppContextComposites;
+    }
+
+    public boolean usingAlternateCompositeFonts() {
+        return (_usingAlternateComposites ||
+                (_usingPerAppContextComposites &&
+                AppContext.getAppContext().get(CompositeFont.class) != null));
+    }
+
+    private static boolean maybeMultiAppContext() {
+        Boolean appletSM = (Boolean)
+            java.security.AccessController.doPrivileged(
+                new java.security.PrivilegedAction() {
+                        public Object run() {
+                            SecurityManager sm = System.getSecurityManager();
+                            return new Boolean
+                                (sm instanceof sun.applet.AppletSecurity);
+                        }
+                    });
+        return appletSM.booleanValue();
+    }
+
+    /* Modifies the behaviour of a subsequent call to preferLocaleFonts()
+     * to use Mincho instead of Gothic for dialoginput in JA locales
+     * on windows. Not needed on other platforms.
+     */
+    public synchronized void useAlternateFontforJALocales() {
+
+        if (!FontUtilities.isWindows) {
+            return;
+        }
+
+        if (!maybeMultiAppContext()) {
+            gAltJAFont = true;
+        } else {
+            AppContext appContext = AppContext.getAppContext();
+            appContext.put(altJAFontKey, altJAFontKey);
+        }
+    }
+
+    public boolean usingAlternateFontforJALocales() {
+        if (!maybeMultiAppContext()) {
+            return gAltJAFont;
+        } else {
+            AppContext appContext = AppContext.getAppContext();
+            return appContext.get(altJAFontKey) == altJAFontKey;
+        }
+    }
+
+    public synchronized void preferLocaleFonts() {
+
+        /* Test if re-ordering will have any effect */
+        if (!FontConfiguration.willReorderForStartupLocale()) {
+            return;
+        }
+
+        if (!maybeMultiAppContext()) {
+            if (gLocalePref == true) {
+                return;
+            }
+            gLocalePref = true;
+            createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
+            _usingAlternateComposites = true;
+        } else {
+            AppContext appContext = AppContext.getAppContext();
+            if (appContext.get(localeFontKey) == localeFontKey) {
+                return;
+            }
+            appContext.put(localeFontKey, localeFontKey);
+            boolean acPropPref =
+                appContext.get(proportionalFontKey) == proportionalFontKey;
+            ConcurrentHashMap<String, Font2D>
+                altNameCache = new ConcurrentHashMap<String, Font2D> ();
+            /* If there is an existing hashtable, we can drop it. */
+            appContext.put(CompositeFont.class, altNameCache);
+            _usingPerAppContextComposites = true;
+            createCompositeFonts(altNameCache, true, acPropPref);
+        }
+    }
+
+    public synchronized void preferProportionalFonts() {
+
+        /* If no proportional fonts are configured, there's no need
+         * to take any action.
+         */
+        if (!FontConfiguration.hasMonoToPropMap()) {
+            return;
+        }
+
+        if (!maybeMultiAppContext()) {
+            if (gPropPref == true) {
+                return;
+            }
+            gPropPref = true;
+            createCompositeFonts(fontNameCache, gLocalePref, gPropPref);
+            _usingAlternateComposites = true;
+        } else {
+            AppContext appContext = AppContext.getAppContext();
+            if (appContext.get(proportionalFontKey) == proportionalFontKey) {
+                return;
+            }
+            appContext.put(proportionalFontKey, proportionalFontKey);
+            boolean acLocalePref =
+                appContext.get(localeFontKey) == localeFontKey;
+            ConcurrentHashMap<String, Font2D>
+                altNameCache = new ConcurrentHashMap<String, Font2D> ();
+            /* If there is an existing hashtable, we can drop it. */
+            appContext.put(CompositeFont.class, altNameCache);
+            _usingPerAppContextComposites = true;
+            createCompositeFonts(altNameCache, acLocalePref, true);
+        }
+    }
+
+    private static HashSet<String> installedNames = null;
+    private static HashSet<String> getInstalledNames() {
+        if (installedNames == null) {
+           Locale l = getSystemStartupLocale();
+           SunFontManager fontManager = SunFontManager.getInstance();
+           String[] installedFamilies =
+               fontManager.getInstalledFontFamilyNames(l);
+           Font[] installedFonts = fontManager.getAllInstalledFonts();
+           HashSet<String> names = new HashSet<String>();
+           for (int i=0; i<installedFamilies.length; i++) {
+               names.add(installedFamilies[i].toLowerCase(l));
+           }
+           for (int i=0; i<installedFonts.length; i++) {
+               names.add(installedFonts[i].getFontName(l).toLowerCase(l));
+           }
+           installedNames = names;
+        }
+        return installedNames;
+    }
+
+    /* Keys are used to lookup per-AppContext Hashtables */
+    private static final Object regFamilyKey  = new Object();
+    private static final Object regFullNameKey = new Object();
+    private Hashtable<String,FontFamily> createdByFamilyName;
+    private Hashtable<String,Font2D>     createdByFullName;
+    private boolean fontsAreRegistered = false;
+    private boolean fontsAreRegisteredPerAppContext = false;
+
+    public boolean registerFont(Font font) {
+        /* This method should not be called with "null".
+         * It is the caller's responsibility to ensure that.
+         */
+        if (font == null) {
+            return false;
+        }
+
+        /* Initialise these objects only once we start to use this API */
+        synchronized (regFamilyKey) {
+            if (createdByFamilyName == null) {
+                createdByFamilyName = new Hashtable<String,FontFamily>();
+                createdByFullName = new Hashtable<String,Font2D>();
+            }
+        }
+
+        if (! FontAccess.getFontAccess().isCreatedFont(font)) {
+            return false;
+        }
+        /* We want to ensure that this font cannot override existing
+         * installed fonts. Check these conditions :
+         * - family name is not that of an installed font
+         * - full name is not that of an installed font
+         * - family name is not the same as the full name of an installed font
+         * - full name is not the same as the family name of an installed font
+         * The last two of these may initially look odd but the reason is
+         * that (unfortunately) Font constructors do not distinuguish these.
+         * An extreme example of such a problem would be a font which has
+         * family name "Dialog.Plain" and full name of "Dialog".
+         * The one arguably overly stringent restriction here is that if an
+         * application wants to supply a new member of an existing family
+         * It will get rejected. But since the JRE can perform synthetic
+         * styling in many cases its not necessary.
+         * We don't apply the same logic to registered fonts. If apps want
+         * to do this lets assume they have a reason. It won't cause problems
+         * except for themselves.
+         */
+        HashSet<String> names = getInstalledNames();
+        Locale l = getSystemStartupLocale();
+        String familyName = font.getFamily(l).toLowerCase();
+        String fullName = font.getFontName(l).toLowerCase();
+        if (names.contains(familyName) || names.contains(fullName)) {
+            return false;
+        }
+
+        /* Checks passed, now register the font */
+        Hashtable<String,FontFamily> familyTable;
+        Hashtable<String,Font2D> fullNameTable;
+        if (!maybeMultiAppContext()) {
+            familyTable = createdByFamilyName;
+            fullNameTable = createdByFullName;
+            fontsAreRegistered = true;
+        } else {
+            AppContext appContext = AppContext.getAppContext();
+            familyTable =
+                (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
+            fullNameTable =
+                (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
+            if (familyTable == null) {
+                familyTable = new Hashtable<String,FontFamily>();
+                fullNameTable = new Hashtable<String,Font2D>();
+                appContext.put(regFamilyKey, familyTable);
+                appContext.put(regFullNameKey, fullNameTable);
+            }
+            fontsAreRegisteredPerAppContext = true;
+        }
+        /* Create the FontFamily and add font to the tables */
+        Font2D font2D = FontUtilities.getFont2D(font);
+        int style = font2D.getStyle();
+        FontFamily family = familyTable.get(familyName);
+        if (family == null) {
+            family = new FontFamily(font.getFamily(l));
+            familyTable.put(familyName, family);
+        }
+        /* Remove name cache entries if not using app contexts.
+         * To accommodate a case where code may have registered first a plain
+         * family member and then used it and is now registering a bold family
+         * member, we need to remove all members of the family, so that the
+         * new style can get picked up rather than continuing to synthesise.
+         */
+        if (fontsAreRegistered) {
+            removeFromCache(family.getFont(Font.PLAIN));
+            removeFromCache(family.getFont(Font.BOLD));
+            removeFromCache(family.getFont(Font.ITALIC));
+            removeFromCache(family.getFont(Font.BOLD|Font.ITALIC));
+            removeFromCache(fullNameTable.get(fullName));
+        }
+        family.setFont(font2D, style);
+        fullNameTable.put(fullName, font2D);
+        return true;
+    }
+
+    /* Remove from the name cache all references to the Font2D */
+    private void removeFromCache(Font2D font) {
+        if (font == null) {
+            return;
+        }
+        String[] keys = (String[])(fontNameCache.keySet().toArray(STR_ARRAY));
+        for (int k=0; k<keys.length;k++) {
+            if (fontNameCache.get(keys[k]) == font) {
+                fontNameCache.remove(keys[k]);
+            }
+        }
+    }
+
+    // It may look odd to use TreeMap but its more convenient to the caller.
+    public TreeMap<String, String> getCreatedFontFamilyNames() {
+
+        Hashtable<String,FontFamily> familyTable;
+        if (fontsAreRegistered) {
+            familyTable = createdByFamilyName;
+        } else if (fontsAreRegisteredPerAppContext) {
+            AppContext appContext = AppContext.getAppContext();
+            familyTable =
+                (Hashtable<String,FontFamily>)appContext.get(regFamilyKey);
+        } else {
+            return null;
+        }
+
+        Locale l = getSystemStartupLocale();
+        synchronized (familyTable) {
+            TreeMap<String, String> map = new TreeMap<String, String>();
+            for (FontFamily f : familyTable.values()) {
+                Font2D font2D = f.getFont(Font.PLAIN);
+                if (font2D == null) {
+                    font2D = f.getClosestStyle(Font.PLAIN);
+                }
+                String name = font2D.getFamilyName(l);
+                map.put(name.toLowerCase(l), name);
+            }
+            return map;
+        }
+    }
+
+    public Font[] getCreatedFonts() {
+
+        Hashtable<String,Font2D> nameTable;
+        if (fontsAreRegistered) {
+            nameTable = createdByFullName;
+        } else if (fontsAreRegisteredPerAppContext) {
+            AppContext appContext = AppContext.getAppContext();
+            nameTable =
+                (Hashtable<String,Font2D>)appContext.get(regFullNameKey);
+        } else {
+            return null;
+        }
+
+        Locale l = getSystemStartupLocale();
+        synchronized (nameTable) {
+            Font[] fonts = new Font[nameTable.size()];
+            int i=0;
+            for (Font2D font2D : nameTable.values()) {
+                fonts[i++] = new Font(font2D.getFontName(l), Font.PLAIN, 1);
+            }
+            return fonts;
+        }
+    }
+
+    protected String[] getPlatformFontDirs(boolean noType1Fonts) {
+        String path = getFontPath(true);
+        StringTokenizer parser =
+            new StringTokenizer(path, File.pathSeparator);
+        ArrayList<String> pathList = new ArrayList<String>();
+        try {
+            while (parser.hasMoreTokens()) {
+                pathList.add(parser.nextToken());
+            }
+        } catch (NoSuchElementException e) {
+        }
+        return pathList.toArray(new String[0]);
+    }
+
+    /**
+     * Returns an array of two strings. The first element is the
+     * name of the font. The second element is the file name.
+     */
+    public abstract String[] getDefaultPlatformFont();
+
+    // Begin: Refactored from SunGraphicsEnviroment.
+
+    /*
+     * helper function for registerFonts
+     */
+    private void addDirFonts(String dirName, File dirFile,
+                             FilenameFilter filter,
+                             int fontFormat, boolean useJavaRasterizer,
+                             int fontRank,
+                             boolean defer, boolean resolveSymLinks) {
+        String[] ls = dirFile.list(filter);
+        if (ls == null || ls.length == 0) {
+            return;
+        }
+        String[] fontNames = new String[ls.length];
+        String[][] nativeNames = new String[ls.length][];
+        int fontCount = 0;
+
+        for (int i=0; i < ls.length; i++ ) {
+            File theFile = new File(dirFile, ls[i]);
+            String fullName = null;
+            if (resolveSymLinks) {
+                try {
+                    fullName = theFile.getCanonicalPath();
+                } catch (IOException e) {
+                }
+            }
+            if (fullName == null) {
+                fullName = dirName + File.separator + ls[i];
+            }
+
+            // REMIND: case compare depends on platform
+            if (registeredFontFiles.contains(fullName)) {
+                continue;
+            }
+
+            if (badFonts != null && badFonts.contains(fullName)) {
+                if (FontUtilities.debugFonts()) {
+                    FontUtilities.getLogger()
+                                         .warning("skip bad font " + fullName);
+                }
+                continue; // skip this font file.
+            }
+
+            registeredFontFiles.add(fullName);
+
+            if (FontUtilities.debugFonts()
+                && FontUtilities.getLogger().isLoggable(PlatformLogger.INFO)) {
+                String message = "Registering font " + fullName;
+                String[] natNames = getNativeNames(fullName, null);
+                if (natNames == null) {
+                    message += " with no native name";
+                } else {
+                    message += " with native name(s) " + natNames[0];
+                    for (int nn = 1; nn < natNames.length; nn++) {
+                        message += ", " + natNames[nn];
+                    }
+                }
+                FontUtilities.getLogger().info(message);
+            }
+            fontNames[fontCount] = fullName;
+            nativeNames[fontCount++] = getNativeNames(fullName, null);
+        }
+        registerFonts(fontNames, nativeNames, fontCount, fontFormat,
+                         useJavaRasterizer, fontRank, defer);
+        return;
+    }
+
+    protected String[] getNativeNames(String fontFileName,
+                                      String platformName) {
+        return null;
+    }
+
+    /**
+     * Returns a file name for the physical font represented by this platform
+     * font name. The default implementation tries to obtain the file name
+     * from the font configuration.
+     * Subclasses may override to provide information from other sources.
+     */
+    protected String getFileNameFromPlatformName(String platformFontName) {
+        return fontConfig.getFileNameFromPlatformName(platformFontName);
+    }
+
+    /**
+     * Return the default font configuration.
+     */
+    public FontConfiguration getFontConfiguration() {
+        return fontConfig;
+    }
+
+    /* A call to this method should be followed by a call to
+     * registerFontDirs(..)
+     */
+    protected String getPlatformFontPath(boolean noType1Font) {
+        if (fontPath == null) {
+            fontPath = getFontPath(noType1Font);
+        }
+        return fontPath;
+    }
+
+    public static boolean isOpenJDK() {
+        return FontUtilities.isOpenJDK;
+    }
+
+    protected void loadFonts() {
+        if (discoveredAllFonts) {
+            return;
+        }
+        /* Use lock specific to the font system */
+        synchronized (lucidaFontName) {
+            if (FontUtilities.debugFonts()) {
+                Thread.dumpStack();
+                FontUtilities.getLogger()
+                            .info("SunGraphicsEnvironment.loadFonts() called");
+            }
+            initialiseDeferredFonts();
+
+            java.security.AccessController.doPrivileged(
+                                    new java.security.PrivilegedAction() {
+                public Object run() {
+                    if (fontPath == null) {
+                        fontPath = getPlatformFontPath(noType1Font);
+                        registerFontDirs(fontPath);
+                    }
+                    if (fontPath != null) {
+                        // this will find all fonts including those already
+                        // registered. But we have checks in place to prevent
+                        // double registration.
+                        if (! gotFontsFromPlatform()) {
+                            registerFontsOnPath(fontPath, false,
+                                                Font2D.UNKNOWN_RANK,
+                                                false, true);
+                            loadedAllFontFiles = true;
+                        }
+                    }
+                    registerOtherFontFiles(registeredFontFiles);
+                    discoveredAllFonts = true;
+                    return null;
+                }
+            });
+        }
+    }
+
+    protected void registerFontDirs(String pathName) {
+        return;
+    }
+
+    private void registerFontsOnPath(String pathName,
+                                     boolean useJavaRasterizer, int fontRank,
+                                     boolean defer, boolean resolveSymLinks) {
+
+        StringTokenizer parser = new StringTokenizer(pathName,
+                File.pathSeparator);
+        try {
+            while (parser.hasMoreTokens()) {
+                registerFontsInDir(parser.nextToken(),
+                        useJavaRasterizer, fontRank,
+                        defer, resolveSymLinks);
+            }
+        } catch (NoSuchElementException e) {
+        }
+    }
+
+    /* Called to register fall back fonts */
+    public void registerFontsInDir(String dirName) {
+        registerFontsInDir(dirName, true, Font2D.JRE_RANK, true, false);
+    }
+
+    private void registerFontsInDir(String dirName, boolean useJavaRasterizer,
+                                    int fontRank,
+                                    boolean defer, boolean resolveSymLinks) {
+        File pathFile = new File(dirName);
+        addDirFonts(dirName, pathFile, ttFilter,
+                    FONTFORMAT_TRUETYPE, useJavaRasterizer,
+                    fontRank==Font2D.UNKNOWN_RANK ?
+                    Font2D.TTF_RANK : fontRank,
+                    defer, resolveSymLinks);
+        addDirFonts(dirName, pathFile, t1Filter,
+                    FONTFORMAT_TYPE1, useJavaRasterizer,
+                    fontRank==Font2D.UNKNOWN_RANK ?
+                    Font2D.TYPE1_RANK : fontRank,
+                    defer, resolveSymLinks);
+    }
+
+    protected void registerFontDir(String path) {
+    }
+
+    /**
+     * Returns file name for default font, either absolute
+     * or relative as needed by registerFontFile.
+     */
+    public synchronized String getDefaultFontFile() {
+        if (defaultFontFileName == null) {
+            initDefaultFonts();
+        }
+        return defaultFontFileName;
+    }
+
+    private void initDefaultFonts() {
+        if (!isOpenJDK()) {
+            defaultFontName = lucidaFontName;
+            if (useAbsoluteFontFileNames()) {
+                defaultFontFileName =
+                    jreFontDirName + File.separator + FontUtilities.LUCIDA_FILE_NAME;
+            } else {
+                defaultFontFileName = FontUtilities.LUCIDA_FILE_NAME;
+            }
+        }
+    }
+
+    /**
+     * Whether registerFontFile expects absolute or relative
+     * font file names.
+     */
+    protected boolean useAbsoluteFontFileNames() {
+        return true;
+    }
+
+    /**
+     * Creates this environment's FontConfiguration.
+     */
+    protected abstract FontConfiguration createFontConfiguration();
+
+    public abstract FontConfiguration
+    createFontConfiguration(boolean preferLocaleFonts,
+                            boolean preferPropFonts);
+
+    /**
+     * Returns face name for default font, or null if
+     * no face names are used for CompositeFontDescriptors
+     * for this platform.
+     */
+    public synchronized String getDefaultFontFaceName() {
+        if (defaultFontName == null) {
+            initDefaultFonts();
+        }
+        return defaultFontName;
+    }
+
+    public void loadFontFiles() {
+        loadFonts();
+        if (loadedAllFontFiles) {
+            return;
+        }
+        /* Use lock specific to the font system */
+        synchronized (lucidaFontName) {
+            if (FontUtilities.debugFonts()) {
+                Thread.dumpStack();
+                FontUtilities.getLogger().info("loadAllFontFiles() called");
+            }
+            java.security.AccessController.doPrivileged(
+                                    new java.security.PrivilegedAction() {
+                public Object run() {
+                    if (fontPath == null) {
+                        fontPath = getPlatformFontPath(noType1Font);
+                    }
+                    if (fontPath != null) {
+                        // this will find all fonts including those already
+                        // registered. But we have checks in place to prevent
+                        // double registration.
+                        registerFontsOnPath(fontPath, false,
+                                            Font2D.UNKNOWN_RANK,
+                                            false, true);
+                    }
+                    loadedAllFontFiles = true;
+                    return null;
+                }
+            });
+        }
+    }
+
+    /*
+     * This method asks the font configuration API for all platform names
+     * used as components of composite/logical fonts and iterates over these
+     * looking up their corresponding file name and registers these fonts.
+     * It also ensures that the fonts are accessible via platform APIs.
+     * The composites themselves are then registered.
+     */
+    private void
+        initCompositeFonts(FontConfiguration fontConfig,
+                           ConcurrentHashMap<String, Font2D>  altNameCache) {
+
+        int numCoreFonts = fontConfig.getNumberCoreFonts();
+        String[] fcFonts = fontConfig.getPlatformFontNames();
+        for (int f=0; f<fcFonts.length; f++) {
+            String platformFontName = fcFonts[f];
+            String fontFileName =
+                getFileNameFromPlatformName(platformFontName);
+            String[] nativeNames = null;
+            if (fontFileName == null
+                || fontFileName.equals(platformFontName)) {
+                /* No file located, so register using the platform name,
+                 * i.e. as a native font.
+                 */
+                fontFileName = platformFontName;
+            } else {
+                if (f < numCoreFonts) {
+                    /* If platform APIs also need to access the font, add it
+                     * to a set to be registered with the platform too.
+                     * This may be used to add the parent directory to the X11
+                     * font path if its not already there. See the docs for the
+                     * subclass implementation.
+                     * This is now mainly for the benefit of X11-based AWT
+                     * But for historical reasons, 2D initialisation code
+                     * makes these calls.
+                     * If the fontconfiguration file is properly set up
+                     * so that all fonts are mapped to files and all their
+                     * appropriate directories are specified, then this
+                     * method will be low cost as it will return after
+                     * a test that finds a null lookup map.
+                     */
+                    addFontToPlatformFontPath(platformFontName);
+                }
+                nativeNames = getNativeNames(fontFileName, platformFontName);
+            }
+            /* Uncomment these two lines to "generate" the XLFD->filename
+             * mappings needed to speed start-up on Solaris.
+             * Augment this with the appendedpathname and the mappings
+             * for native (F3) fonts
+             */
+            //String platName = platformFontName.replaceAll(" ", "_");
+            //System.out.println("filename."+platName+"="+fontFileName);
+            registerFontFile(fontFileName, nativeNames,
+                             Font2D.FONT_CONFIG_RANK, true);
+
+
+        }
+        /* This registers accumulated paths from the calls to
+         * addFontToPlatformFontPath(..) and any specified by
+         * the font configuration. Rather than registering
+         * the fonts it puts them in a place and form suitable for
+         * the Toolkit to pick up and use if a toolkit is initialised,
+         * and if it uses X11 fonts.
+         */
+        registerPlatformFontsUsedByFontConfiguration();
+
+        CompositeFontDescriptor[] compositeFontInfo
+                = fontConfig.get2DCompositeFontInfo();
+        for (int i = 0; i < compositeFontInfo.length; i++) {
+            CompositeFontDescriptor descriptor = compositeFontInfo[i];
+            String[] componentFileNames = descriptor.getComponentFileNames();
+            String[] componentFaceNames = descriptor.getComponentFaceNames();
+
+            /* It would be better eventually to handle this in the
+             * FontConfiguration code which should also remove duplicate slots
+             */
+            if (missingFontFiles != null) {
+                for (int ii=0; ii<componentFileNames.length; ii++) {
+                    if (missingFontFiles.contains(componentFileNames[ii])) {
+                        componentFileNames[ii] = getDefaultFontFile();
+                        componentFaceNames[ii] = getDefaultFontFaceName();
+                    }
+                }
+            }
+
+            /* FontConfiguration needs to convey how many fonts it has added
+             * as fallback component fonts which should not affect metrics.
+             * The core component count will be the number of metrics slots.
+             * This does not preclude other mechanisms for adding
+             * fall back component fonts to the composite.
+             */
+            if (altNameCache != null) {
+                SunFontManager.registerCompositeFont(
+                    descriptor.getFaceName(),
+                    componentFileNames, componentFaceNames,
+                    descriptor.getCoreComponentCount(),
+                    descriptor.getExclusionRanges(),
+                    descriptor.getExclusionRangeLimits(),
+                    true,
+                    altNameCache);
+            } else {
+                registerCompositeFont(descriptor.getFaceName(),
+                                      componentFileNames, componentFaceNames,
+                                      descriptor.getCoreComponentCount(),
+                                      descriptor.getExclusionRanges(),
+                                      descriptor.getExclusionRangeLimits(),
+                                      true);
+            }
+            if (FontUtilities.debugFonts()) {
+                FontUtilities.getLogger()
+                               .info("registered " + descriptor.getFaceName());
+            }
+        }
+    }
+
+    /**
+     * Notifies graphics environment that the logical font configuration
+     * uses the given platform font name. The graphics environment may
+     * use this for platform specific initialization.
+     */
+    protected void addFontToPlatformFontPath(String platformFontName) {
+    }
+
+    protected void registerFontFile(String fontFileName, String[] nativeNames,
+                                    int fontRank, boolean defer) {
+//      REMIND: case compare depends on platform
+        if (registeredFontFiles.contains(fontFileName)) {
+            return;
+        }
+        int fontFormat;
+        if (ttFilter.accept(null, fontFileName)) {
+            fontFormat = FONTFORMAT_TRUETYPE;
+        } else if (t1Filter.accept(null, fontFileName)) {
+            fontFormat = FONTFORMAT_TYPE1;
+        } else {
+            fontFormat = FONTFORMAT_NATIVE;
+        }
+        registeredFontFiles.add(fontFileName);
+        if (defer) {
+            registerDeferredFont(fontFileName, fontFileName, nativeNames,
+                                 fontFormat, false, fontRank);
+        } else {
+            registerFontFile(fontFileName, nativeNames, fontFormat, false,
+                             fontRank);
+        }
+    }
+
+    protected void registerPlatformFontsUsedByFontConfiguration() {
+    }
+
+    /*
+     * A GE may verify whether a font file used in a fontconfiguration
+     * exists. If it doesn't then either we may substitute the default
+     * font, or perhaps elide it altogether from the composite font.
+     * This makes some sense on windows where the font file is only
+     * likely to be in one place. But on other OSes, eg Linux, the file
+     * can move around depending. So there we probably don't want to assume
+     * its missing and so won't add it to this list.
+     * If this list - missingFontFiles - is non-null then the composite
+     * font initialisation logic tests to see if a font file is in that
+     * set.
+     * Only one thread should be able to add to this set so we don't
+     * synchronize.
+     */
+    protected void addToMissingFontFileList(String fileName) {
+        if (missingFontFiles == null) {
+            missingFontFiles = new HashSet<String>();
+        }
+        missingFontFiles.add(fileName);
+    }
+
+    /*
+     * This is for use only within getAllFonts().
+     * Fonts listed in the fontconfig files for windows were all
+     * on the "deferred" initialisation list. They were registered
+     * either in the course of the application, or in the call to
+     * loadFonts() within getAllFonts(). The fontconfig file specifies
+     * the names of the fonts using the English names. If there's a
+     * different name in the execution locale, then the platform will
+     * report that, and we will construct the font with both names, and
+     * thereby enumerate it twice. This happens for Japanese fonts listed
+     * in the windows fontconfig, when run in the JA locale. The solution
+     * is to rely (in this case) on the platform's font->file mapping to
+     * determine that this name corresponds to a file we already registered.
+     * This works because
+     * - we know when we get here all deferred fonts are already initialised
+     * - when we register a font file, we register all fonts in it.
+     * - we know the fontconfig fonts are all in the windows registry
+     */
+    private boolean isNameForRegisteredFile(String fontName) {
+        String fileName = getFileNameForFontName(fontName);
+        if (fileName == null) {
+            return false;
+        }
+        return registeredFontFiles.contains(fileName);
+    }
+
+    /*
+     * This invocation is not in a privileged block because
+     * all privileged operations (reading files and properties)
+     * was conducted on the creation of the GE
+     */
+    public void
+        createCompositeFonts(ConcurrentHashMap<String, Font2D> altNameCache,
+                             boolean preferLocale,
+                             boolean preferProportional) {
+
+        FontConfiguration fontConfig =
+            createFontConfiguration(preferLocale, preferProportional);
+        initCompositeFonts(fontConfig, altNameCache);
+    }
+
+    /**
+     * Returns all fonts installed in this environment.
+     */
+    public Font[] getAllInstalledFonts() {
+        if (allFonts == null) {
+            loadFonts();
+            TreeMap fontMapNames = new TreeMap();
+            /* warning: the number of composite fonts could change dynamically
+             * if applications are allowed to create them. "allfonts" could
+             * then be stale.
+             */
+            Font2D[] allfonts = getRegisteredFonts();
+            for (int i=0; i < allfonts.length; i++) {
+                if (!(allfonts[i] instanceof NativeFont)) {
+                    fontMapNames.put(allfonts[i].getFontName(null),
+                                     allfonts[i]);
+                }
+            }
+
+            String[] platformNames = getFontNamesFromPlatform();
+            if (platformNames != null) {
+                for (int i=0; i<platformNames.length; i++) {
+                    if (!isNameForRegisteredFile(platformNames[i])) {
+                        fontMapNames.put(platformNames[i], null);
+                    }
+                }
+            }
+
+            String[] fontNames = null;
+            if (fontMapNames.size() > 0) {
+                fontNames = new String[fontMapNames.size()];
+                Object [] keyNames = fontMapNames.keySet().toArray();
+                for (int i=0; i < keyNames.length; i++) {
+                    fontNames[i] = (String)keyNames[i];
+                }
+            }
+            Font[] fonts = new Font[fontNames.length];
+            for (int i=0; i < fontNames.length; i++) {
+                fonts[i] = new Font(fontNames[i], Font.PLAIN, 1);
+                Font2D f2d = (Font2D)fontMapNames.get(fontNames[i]);
+                if (f2d  != null) {
+                    FontAccess.getFontAccess().setFont2D(fonts[i], f2d.handle);
+                }
+            }
+            allFonts = fonts;
+        }
+
+        Font []copyFonts = new Font[allFonts.length];
+        System.arraycopy(allFonts, 0, copyFonts, 0, allFonts.length);
+        return copyFonts;
+    }
+
+    /**
+     * Get a list of installed fonts in the requested {@link Locale}.
+     * The list contains the fonts Family Names.
+     * If Locale is null, the default locale is used.
+     *
+     * @param requestedLocale, if null the default locale is used.
+     * @return list of installed fonts in the system.
+     */
+    public String[] getInstalledFontFamilyNames(Locale requestedLocale) {
+        if (requestedLocale == null) {
+            requestedLocale = Locale.getDefault();
+        }
+        if (allFamilies != null && lastDefaultLocale != null &&
+            requestedLocale.equals(lastDefaultLocale)) {
+                String[] copyFamilies = new String[allFamilies.length];
+                System.arraycopy(allFamilies, 0, copyFamilies,
+                                 0, allFamilies.length);
+                return copyFamilies;
+        }
+
+        TreeMap<String,String> familyNames = new TreeMap<String,String>();
+        //  these names are always there and aren't localised
+        String str;
+        str = Font.SERIF;         familyNames.put(str.toLowerCase(), str);
+        str = Font.SANS_SERIF;    familyNames.put(str.toLowerCase(), str);
+        str = Font.MONOSPACED;    familyNames.put(str.toLowerCase(), str);
+        str = Font.DIALOG;        familyNames.put(str.toLowerCase(), str);
+        str = Font.DIALOG_INPUT;  familyNames.put(str.toLowerCase(), str);
+
+        /* Platform APIs may be used to get the set of available family
+         * names for the current default locale so long as it is the same
+         * as the start-up system locale, rather than loading all fonts.
+         */
+        if (requestedLocale.equals(getSystemStartupLocale()) &&
+            getFamilyNamesFromPlatform(familyNames, requestedLocale)) {
+            /* Augment platform names with JRE font family names */
+            getJREFontFamilyNames(familyNames, requestedLocale);
+        } else {
+            loadFontFiles();
+            Font2D[] physicalfonts = getPhysicalFonts();
+            for (int i=0; i < physicalfonts.length; i++) {
+                if (!(physicalfonts[i] instanceof NativeFont)) {
+                    String name =
+                        physicalfonts[i].getFamilyName(requestedLocale);
+                    familyNames.put(name.toLowerCase(requestedLocale), name);
+                }
+            }
+        }
+
+        String[] retval =  new String[familyNames.size()];
+        Object [] keyNames = familyNames.keySet().toArray();
+        for (int i=0; i < keyNames.length; i++) {
+            retval[i] = (String)familyNames.get(keyNames[i]);
+        }
+        if (requestedLocale.equals(Locale.getDefault())) {
+            lastDefaultLocale = requestedLocale;
+            allFamilies = new String[retval.length];
+            System.arraycopy(retval, 0, allFamilies, 0, allFamilies.length);
+        }
+        return retval;
+    }
+
+    public void register1dot0Fonts() {
+        java.security.AccessController.doPrivileged(
+                            new java.security.PrivilegedAction() {
+            public Object run() {
+                String type1Dir = "/usr/openwin/lib/X11/fonts/Type1";
+                registerFontsInDir(type1Dir, true, Font2D.TYPE1_RANK,
+                                   false, false);
+                return null;
+            }
+        });
+    }
+
+    /* Really we need only the JRE fonts family names, but there's little
+     * overhead in doing this the easy way by adding all the currently
+     * known fonts.
+     */
+    protected void getJREFontFamilyNames(TreeMap<String,String> familyNames,
+                                         Locale requestedLocale) {
+        registerDeferredJREFonts(jreFontDirName);
+        Font2D[] physicalfonts = getPhysicalFonts();
+        for (int i=0; i < physicalfonts.length; i++) {
+            if (!(physicalfonts[i] instanceof NativeFont)) {
+                String name =
+                    physicalfonts[i].getFamilyName(requestedLocale);
+                familyNames.put(name.toLowerCase(requestedLocale), name);
+            }
+        }
+    }
+
+    /**
+     * Default locale can be changed but we need to know the initial locale
+     * as that is what is used by native code. Changing Java default locale
+     * doesn't affect that.
+     * Returns the locale in use when using native code to communicate
+     * with platform APIs. On windows this is known as the "system" locale,
+     * and it is usually the same as the platform locale, but not always,
+     * so this method also checks an implementation property used only
+     * on windows and uses that if set.
+     */
+    private static Locale systemLocale = null;
+    private static Locale getSystemStartupLocale() {
+        if (systemLocale == null) {
+            systemLocale = (Locale)
+                java.security.AccessController.doPrivileged(
+                                    new java.security.PrivilegedAction() {
+            public Object run() {
+                /* On windows the system locale may be different than the
+                 * user locale. This is an unsupported configuration, but
+                 * in that case we want to return a dummy locale that will
+                 * never cause a match in the usage of this API. This is
+                 * important because Windows documents that the family
+                 * names of fonts are enumerated using the language of
+                 * the system locale. BY returning a dummy locale in that
+                 * case we do not use the platform API which would not
+                 * return us the names we want.
+                 */
+                String fileEncoding = System.getProperty("file.encoding", "");
+                String sysEncoding = System.getProperty("sun.jnu.encoding");
+                if (sysEncoding != null && !sysEncoding.equals(fileEncoding)) {
+                    return Locale.ROOT;
+                }
+
+                String language = System.getProperty("user.language", "en");
+                String country  = System.getProperty("user.country","");
+                String variant  = System.getProperty("user.variant","");
+                return new Locale(language, country, variant);
+            }
+        });
+        }
+        return systemLocale;
+    }
+
+    void addToPool(FileFont font) {
+
+        FileFont fontFileToClose = null;
+        int freeSlot = -1;
+
+        synchronized (fontFileCache) {
+            /* Avoid duplicate entries in the pool, and don't close() it,
+             * since this method is called only from within open().
+             * Seeing a duplicate is most likely to happen if the thread
+             * was interrupted during a read, forcing perhaps repeated
+             * close and open calls and it eventually it ends up pointing
+             * at the same slot.
+             */
+            for (int i=0;i<CHANNELPOOLSIZE;i++) {
+                if (fontFileCache[i] == font) {
+                    return;
+                }
+                if (fontFileCache[i] == null && freeSlot < 0) {
+                    freeSlot = i;
+                }
+            }
+            if (freeSlot >= 0) {
+                fontFileCache[freeSlot] = font;
+                return;
+            } else {
+                /* replace with new font. */
+                fontFileToClose = fontFileCache[lastPoolIndex];
+                fontFileCache[lastPoolIndex] = font;
+                /* lastPoolIndex is updated so that the least recently opened
+                 * file will be closed next.
+                 */
+                lastPoolIndex = (lastPoolIndex+1) % CHANNELPOOLSIZE;
+            }
+        }
+        /* Need to close the font file outside of the synchronized block,
+         * since its possible some other thread is in an open() call on
+         * this font file, and could be holding its lock and the pool lock.
+         * Releasing the pool lock allows that thread to continue, so it can
+         * then release the lock on this font, allowing the close() call
+         * below to proceed.
+         * Also, calling close() is safe because any other thread using
+         * the font we are closing() synchronizes all reading, so we
+         * will not close the file while its in use.
+         */
+        if (fontFileToClose != null) {
+            fontFileToClose.close();
+        }
+    }
+
+    protected FontUIResource getFontConfigFUIR(String family, int style,
+                                               int size)
+    {
+        return new FontUIResource(family, style, size);
+    }
+}
--- a/jdk/src/share/classes/sun/font/TrueTypeFont.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/TrueTypeFont.java	Wed Oct 07 14:15:01 2009 -0700
@@ -39,9 +39,10 @@
 import java.nio.ShortBuffer;
 import java.nio.channels.ClosedChannelException;
 import java.nio.channels.FileChannel;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Locale;
-import java.util.logging.Level;
 import sun.java2d.Disposer;
 import sun.java2d.DisposerRecord;
 
@@ -101,6 +102,9 @@
     public static final int FULL_NAME_ID = 4;
     public static final int POSTSCRIPT_NAME_ID = 6;
 
+    private static final short US_LCID = 0x0409;  // US English - default
+
+    private static Map<String, Short> lcidMap;
 
     class DirectoryEntry {
         int tag;
@@ -176,7 +180,7 @@
      * @throws FontFormatException - if the font can't be opened
      * or fails verification,  or there's no usable cmap
      */
-    TrueTypeFont(String platname, Object nativeNames, int fIndex,
+    public TrueTypeFont(String platname, Object nativeNames, int fIndex,
                  boolean javaRasterizer)
         throws FontFormatException {
         super(platname, nativeNames);
@@ -207,12 +211,13 @@
      * as PCF bitmap fonts on the X11 font path).
      * This method is called when creating the first strike for this font.
      */
+    @Override
     protected boolean checkUseNatives() {
         if (checkedNatives) {
             return useNatives;
         }
-        if (!FontManager.isSolaris || useJavaRasterizer ||
-            FontManager.useT2K || nativeNames == null ||
+        if (!FontUtilities.isSolaris || useJavaRasterizer ||
+            FontUtilities.useT2K || nativeNames == null ||
             getDirectoryEntry(EBLCTag) != null ||
             GraphicsEnvironment.isHeadless()) {
             checkedNatives = true;
@@ -279,8 +284,8 @@
      */
     private synchronized FileChannel open() throws FontFormatException {
         if (disposerRecord.channel == null) {
-            if (FontManager.logging) {
-                FontManager.logger.info("open TTF: " + platName);
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().info("open TTF: " + platName);
             }
             try {
                 RandomAccessFile raf = (RandomAccessFile)
@@ -296,7 +301,10 @@
                 });
                 disposerRecord.channel = raf.getChannel();
                 fileSize = (int)disposerRecord.channel.size();
-                FontManager.addToPool(this);
+                FontManager fm = FontManagerFactory.getInstance();
+                if (fm instanceof SunFontManager) {
+                    ((SunFontManager) fm).addToPool(this);
+                }
             } catch (NullPointerException e) {
                 close();
                 throw new FontFormatException(e.toString());
@@ -340,11 +348,11 @@
                          * isn't updated. If the file has changed whilst we
                          * are executing we want to bail, not spin.
                          */
-                        if (FontManager.logging) {
+                        if (FontUtilities.isLogging()) {
                             String msg = "Read offset is " + offset +
                                 " file size is " + fileSize+
                                 " file is " + platName;
-                            FontManager.logger.severe(msg);
+                            FontUtilities.getLogger().severe(msg);
                         }
                         return -1;
                     } else {
@@ -362,8 +370,8 @@
                             msg += " File size was " + fileSize +
                                 " and now is " + currSize;
                         }
-                        if (FontManager.logging) {
-                            FontManager.logger.severe(msg);
+                        if (FontUtilities.isLogging()) {
+                            FontUtilities.getLogger().severe(msg);
                         }
                         // We could still flip() the buffer here because
                         // it's possible that we did read some data in
@@ -377,10 +385,10 @@
                         // data was read to probably continue.
                         if (bread > length/2 || bread > 16384) {
                             buffer.flip();
-                            if (FontManager.logging) {
+                            if (FontUtilities.isLogging()) {
                                 msg = "Returning " + bread +
                                     " bytes instead of " + length;
-                                FontManager.logger.severe(msg);
+                                FontUtilities.getLogger().severe(msg);
                             }
                         } else {
                             bread = -1;
@@ -395,8 +403,8 @@
                 }
             }
         } catch (FontFormatException e) {
-            if (FontManager.logging) {
-                FontManager.logger.log(Level.SEVERE,
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().severe(
                                        "While reading " + platName, e);
             }
             bread = -1; // signal EOF
@@ -416,8 +424,8 @@
              * seems unlikely this would occur as problems opening the
              * file are handled as a FontFormatException.
              */
-            if (FontManager.logging) {
-                FontManager.logger.log(Level.SEVERE,
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().severe(
                                        "While reading " + platName, e);
             }
             if (bread == 0) {
@@ -540,8 +548,8 @@
             }
             initNames();
         } catch (Exception e) {
-            if (FontManager.logging) {
-                FontManager.logger.severe(e.toString());
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().severe(e.toString());
             }
             if (e instanceof FontFormatException) {
                 throw (FontFormatException)e;
@@ -687,7 +695,7 @@
             return defaultCodePage;
         }
 
-        if (FontManager.isWindows) {
+        if (FontUtilities.isWindows) {
             defaultCodePage =
                 (String)java.security.AccessController.doPrivileged(
                    new sun.security.action.GetPropertyAction("file.encoding"));
@@ -724,6 +732,7 @@
     /* Theoretically, reserved bits must not be set, include symbol bits */
     public static final int reserved_bits1 = 0x80000000;
     public static final int reserved_bits2 = 0x0000ffff;
+    @Override
     boolean supportsEncoding(String encoding) {
         if (encoding == null) {
             encoding = getCodePage();
@@ -858,6 +867,7 @@
         }
     }
 
+    @Override
     byte[] getTableBytes(int tag) {
         ByteBuffer buffer = getTableBuffer(tag);
         if (buffer == null) {
@@ -932,6 +942,7 @@
     /* This probably won't get called but is there to support the
      * contract() of setStyle() defined in the superclass.
      */
+    @Override
     protected void setStyle() {
         setStyle(getTableBuffer(os_2Tag));
     }
@@ -977,7 +988,7 @@
             style = Font.ITALIC;
             break;
         case fsSelectionBoldBit:
-            if (FontManager.isSolaris && platName.endsWith("HG-GothicB.ttf")) {
+            if (FontUtilities.isSolaris && platName.endsWith("HG-GothicB.ttf")) {
                 /* Workaround for Solaris's use of a JA font that's marked as
                  * being designed bold, but is used as a PLAIN font.
                  */
@@ -1015,6 +1026,7 @@
         ulPos = -sb.get(4) / (float)upem;
     }
 
+    @Override
     public void getStyleMetrics(float pointSize, float[] metrics, int offset) {
 
         if (ulSize == 0f && ulPos == 0f) {
@@ -1075,8 +1087,8 @@
         try {
             return new String(bytes, 0, len, charset);
         } catch (UnsupportedEncodingException e) {
-            if (FontManager.logging) {
-                FontManager.logger.warning(e + " EncodingID=" + encoding);
+            if (FontUtilities.isLogging()) {
+                FontUtilities.getLogger().warning(e + " EncodingID=" + encoding);
             }
             return new String(bytes, 0, len);
         } catch (Throwable t) {
@@ -1101,7 +1113,7 @@
             int stringPtr = sbuffer.get() & 0xffff;
 
             nameLocale = sun.awt.SunToolkit.getStartupLocale();
-            short nameLocaleID = FontManager.getLCIDFromLocale(nameLocale);
+            short nameLocaleID = getLCIDFromLocale(nameLocale);
 
             for (int i=0; i<numRecords; i++) {
                 short platformID = sbuffer.get();
@@ -1232,7 +1244,7 @@
 
     protected synchronized FontScaler getScaler() {
         if (scaler == null) {
-            scaler = FontManager.getScaler(this, fontIndex,
+            scaler = FontScaler.getScaler(this, fontIndex,
                 supportsCJK, fileSize);
         }
         return scaler;
@@ -1242,6 +1254,7 @@
     /* Postscript name is rarely requested. Don't waste cycles locating it
      * as part of font creation, nor storage to hold it. Get it only on demand.
      */
+    @Override
     public String getPostscriptName() {
         String name = lookupName(ENGLISH_LOCALE_ID, POSTSCRIPT_NAME_ID);
         if (name == null) {
@@ -1251,13 +1264,14 @@
         }
     }
 
+    @Override
     public String getFontName(Locale locale) {
         if (locale == null) {
             return fullName;
         } else if (locale.equals(nameLocale) && localeFullName != null) {
             return localeFullName;
         } else {
-            short localeID = FontManager.getLCIDFromLocale(locale);
+            short localeID = getLCIDFromLocale(locale);
             String name = lookupName(localeID, FULL_NAME_ID);
             if (name == null) {
                 return fullName;
@@ -1267,16 +1281,239 @@
         }
     }
 
+    // Return a Microsoft LCID from the given Locale.
+    // Used when getting localized font data.
+
+    private static void addLCIDMapEntry(Map<String, Short> map,
+                                        String key, short value) {
+        map.put(key, Short.valueOf(value));
+    }
+
+    private static synchronized void createLCIDMap() {
+        if (lcidMap != null) {
+            return;
+        }
+
+        Map<String, Short> map = new HashMap<String, Short>(200);
+
+        // the following statements are derived from the langIDMap
+        // in src/windows/native/java/lang/java_props_md.c using the following
+        // awk script:
+        //    $1~/\/\*/   { next}
+        //    $3~/\?\?/   { next }
+        //    $3!~/_/     { next }
+        //    $1~/0x0409/ { next }
+        //    $1~/0x0c0a/ { next }
+        //    $1~/0x042c/ { next }
+        //    $1~/0x0443/ { next }
+        //    $1~/0x0812/ { next }
+        //    $1~/0x04/   { print "        addLCIDMapEntry(map, " substr($3, 0, 3) "\", (short) " substr($1, 0, 6) ");" ; next }
+        //    $3~/,/      { print "        addLCIDMapEntry(map, " $3  " (short) " substr($1, 0, 6) ");" ; next }
+        //                { print "        addLCIDMapEntry(map, " $3 ", (short) " substr($1, 0, 6) ");" ; next }
+        // The lines of this script:
+        // - eliminate comments
+        // - eliminate questionable locales
+        // - eliminate language-only locales
+        // - eliminate the default LCID value
+        // - eliminate a few other unneeded LCID values
+        // - print language-only locale entries for x04* LCID values
+        //   (apparently Microsoft doesn't use language-only LCID values -
+        //   see http://www.microsoft.com/OpenType/otspec/name.htm
+        // - print complete entries for all other LCID values
+        // Run
+        //     awk -f awk-script langIDMap > statements
+        addLCIDMapEntry(map, "ar", (short) 0x0401);
+        addLCIDMapEntry(map, "bg", (short) 0x0402);
+        addLCIDMapEntry(map, "ca", (short) 0x0403);
+        addLCIDMapEntry(map, "zh", (short) 0x0404);
+        addLCIDMapEntry(map, "cs", (short) 0x0405);
+        addLCIDMapEntry(map, "da", (short) 0x0406);
+        addLCIDMapEntry(map, "de", (short) 0x0407);
+        addLCIDMapEntry(map, "el", (short) 0x0408);
+        addLCIDMapEntry(map, "es", (short) 0x040a);
+        addLCIDMapEntry(map, "fi", (short) 0x040b);
+        addLCIDMapEntry(map, "fr", (short) 0x040c);
+        addLCIDMapEntry(map, "iw", (short) 0x040d);
+        addLCIDMapEntry(map, "hu", (short) 0x040e);
+        addLCIDMapEntry(map, "is", (short) 0x040f);
+        addLCIDMapEntry(map, "it", (short) 0x0410);
+        addLCIDMapEntry(map, "ja", (short) 0x0411);
+        addLCIDMapEntry(map, "ko", (short) 0x0412);
+        addLCIDMapEntry(map, "nl", (short) 0x0413);
+        addLCIDMapEntry(map, "no", (short) 0x0414);
+        addLCIDMapEntry(map, "pl", (short) 0x0415);
+        addLCIDMapEntry(map, "pt", (short) 0x0416);
+        addLCIDMapEntry(map, "rm", (short) 0x0417);
+        addLCIDMapEntry(map, "ro", (short) 0x0418);
+        addLCIDMapEntry(map, "ru", (short) 0x0419);
+        addLCIDMapEntry(map, "hr", (short) 0x041a);
+        addLCIDMapEntry(map, "sk", (short) 0x041b);
+        addLCIDMapEntry(map, "sq", (short) 0x041c);
+        addLCIDMapEntry(map, "sv", (short) 0x041d);
+        addLCIDMapEntry(map, "th", (short) 0x041e);
+        addLCIDMapEntry(map, "tr", (short) 0x041f);
+        addLCIDMapEntry(map, "ur", (short) 0x0420);
+        addLCIDMapEntry(map, "in", (short) 0x0421);
+        addLCIDMapEntry(map, "uk", (short) 0x0422);
+        addLCIDMapEntry(map, "be", (short) 0x0423);
+        addLCIDMapEntry(map, "sl", (short) 0x0424);
+        addLCIDMapEntry(map, "et", (short) 0x0425);
+        addLCIDMapEntry(map, "lv", (short) 0x0426);
+        addLCIDMapEntry(map, "lt", (short) 0x0427);
+        addLCIDMapEntry(map, "fa", (short) 0x0429);
+        addLCIDMapEntry(map, "vi", (short) 0x042a);
+        addLCIDMapEntry(map, "hy", (short) 0x042b);
+        addLCIDMapEntry(map, "eu", (short) 0x042d);
+        addLCIDMapEntry(map, "mk", (short) 0x042f);
+        addLCIDMapEntry(map, "tn", (short) 0x0432);
+        addLCIDMapEntry(map, "xh", (short) 0x0434);
+        addLCIDMapEntry(map, "zu", (short) 0x0435);
+        addLCIDMapEntry(map, "af", (short) 0x0436);
+        addLCIDMapEntry(map, "ka", (short) 0x0437);
+        addLCIDMapEntry(map, "fo", (short) 0x0438);
+        addLCIDMapEntry(map, "hi", (short) 0x0439);
+        addLCIDMapEntry(map, "mt", (short) 0x043a);
+        addLCIDMapEntry(map, "se", (short) 0x043b);
+        addLCIDMapEntry(map, "gd", (short) 0x043c);
+        addLCIDMapEntry(map, "ms", (short) 0x043e);
+        addLCIDMapEntry(map, "kk", (short) 0x043f);
+        addLCIDMapEntry(map, "ky", (short) 0x0440);
+        addLCIDMapEntry(map, "sw", (short) 0x0441);
+        addLCIDMapEntry(map, "tt", (short) 0x0444);
+        addLCIDMapEntry(map, "bn", (short) 0x0445);
+        addLCIDMapEntry(map, "pa", (short) 0x0446);
+        addLCIDMapEntry(map, "gu", (short) 0x0447);
+        addLCIDMapEntry(map, "ta", (short) 0x0449);
+        addLCIDMapEntry(map, "te", (short) 0x044a);
+        addLCIDMapEntry(map, "kn", (short) 0x044b);
+        addLCIDMapEntry(map, "ml", (short) 0x044c);
+        addLCIDMapEntry(map, "mr", (short) 0x044e);
+        addLCIDMapEntry(map, "sa", (short) 0x044f);
+        addLCIDMapEntry(map, "mn", (short) 0x0450);
+        addLCIDMapEntry(map, "cy", (short) 0x0452);
+        addLCIDMapEntry(map, "gl", (short) 0x0456);
+        addLCIDMapEntry(map, "dv", (short) 0x0465);
+        addLCIDMapEntry(map, "qu", (short) 0x046b);
+        addLCIDMapEntry(map, "mi", (short) 0x0481);
+        addLCIDMapEntry(map, "ar_IQ", (short) 0x0801);
+        addLCIDMapEntry(map, "zh_CN", (short) 0x0804);
+        addLCIDMapEntry(map, "de_CH", (short) 0x0807);
+        addLCIDMapEntry(map, "en_GB", (short) 0x0809);
+        addLCIDMapEntry(map, "es_MX", (short) 0x080a);
+        addLCIDMapEntry(map, "fr_BE", (short) 0x080c);
+        addLCIDMapEntry(map, "it_CH", (short) 0x0810);
+        addLCIDMapEntry(map, "nl_BE", (short) 0x0813);
+        addLCIDMapEntry(map, "no_NO_NY", (short) 0x0814);
+        addLCIDMapEntry(map, "pt_PT", (short) 0x0816);
+        addLCIDMapEntry(map, "ro_MD", (short) 0x0818);
+        addLCIDMapEntry(map, "ru_MD", (short) 0x0819);
+        addLCIDMapEntry(map, "sr_CS", (short) 0x081a);
+        addLCIDMapEntry(map, "sv_FI", (short) 0x081d);
+        addLCIDMapEntry(map, "az_AZ", (short) 0x082c);
+        addLCIDMapEntry(map, "se_SE", (short) 0x083b);
+        addLCIDMapEntry(map, "ga_IE", (short) 0x083c);
+        addLCIDMapEntry(map, "ms_BN", (short) 0x083e);
+        addLCIDMapEntry(map, "uz_UZ", (short) 0x0843);
+        addLCIDMapEntry(map, "qu_EC", (short) 0x086b);
+        addLCIDMapEntry(map, "ar_EG", (short) 0x0c01);
+        addLCIDMapEntry(map, "zh_HK", (short) 0x0c04);
+        addLCIDMapEntry(map, "de_AT", (short) 0x0c07);
+        addLCIDMapEntry(map, "en_AU", (short) 0x0c09);
+        addLCIDMapEntry(map, "fr_CA", (short) 0x0c0c);
+        addLCIDMapEntry(map, "sr_CS", (short) 0x0c1a);
+        addLCIDMapEntry(map, "se_FI", (short) 0x0c3b);
+        addLCIDMapEntry(map, "qu_PE", (short) 0x0c6b);
+        addLCIDMapEntry(map, "ar_LY", (short) 0x1001);
+        addLCIDMapEntry(map, "zh_SG", (short) 0x1004);
+        addLCIDMapEntry(map, "de_LU", (short) 0x1007);
+        addLCIDMapEntry(map, "en_CA", (short) 0x1009);
+        addLCIDMapEntry(map, "es_GT", (short) 0x100a);
+        addLCIDMapEntry(map, "fr_CH", (short) 0x100c);
+        addLCIDMapEntry(map, "hr_BA", (short) 0x101a);
+        addLCIDMapEntry(map, "ar_DZ", (short) 0x1401);
+        addLCIDMapEntry(map, "zh_MO", (short) 0x1404);
+        addLCIDMapEntry(map, "de_LI", (short) 0x1407);
+        addLCIDMapEntry(map, "en_NZ", (short) 0x1409);
+        addLCIDMapEntry(map, "es_CR", (short) 0x140a);
+        addLCIDMapEntry(map, "fr_LU", (short) 0x140c);
+        addLCIDMapEntry(map, "bs_BA", (short) 0x141a);
+        addLCIDMapEntry(map, "ar_MA", (short) 0x1801);
+        addLCIDMapEntry(map, "en_IE", (short) 0x1809);
+        addLCIDMapEntry(map, "es_PA", (short) 0x180a);
+        addLCIDMapEntry(map, "fr_MC", (short) 0x180c);
+        addLCIDMapEntry(map, "sr_BA", (short) 0x181a);
+        addLCIDMapEntry(map, "ar_TN", (short) 0x1c01);
+        addLCIDMapEntry(map, "en_ZA", (short) 0x1c09);
+        addLCIDMapEntry(map, "es_DO", (short) 0x1c0a);
+        addLCIDMapEntry(map, "sr_BA", (short) 0x1c1a);
+        addLCIDMapEntry(map, "ar_OM", (short) 0x2001);
+        addLCIDMapEntry(map, "en_JM", (short) 0x2009);
+        addLCIDMapEntry(map, "es_VE", (short) 0x200a);
+        addLCIDMapEntry(map, "ar_YE", (short) 0x2401);
+        addLCIDMapEntry(map, "es_CO", (short) 0x240a);
+        addLCIDMapEntry(map, "ar_SY", (short) 0x2801);
+        addLCIDMapEntry(map, "en_BZ", (short) 0x2809);
+        addLCIDMapEntry(map, "es_PE", (short) 0x280a);
+        addLCIDMapEntry(map, "ar_JO", (short) 0x2c01);
+        addLCIDMapEntry(map, "en_TT", (short) 0x2c09);
+        addLCIDMapEntry(map, "es_AR", (short) 0x2c0a);
+        addLCIDMapEntry(map, "ar_LB", (short) 0x3001);
+        addLCIDMapEntry(map, "en_ZW", (short) 0x3009);
+        addLCIDMapEntry(map, "es_EC", (short) 0x300a);
+        addLCIDMapEntry(map, "ar_KW", (short) 0x3401);
+        addLCIDMapEntry(map, "en_PH", (short) 0x3409);
+        addLCIDMapEntry(map, "es_CL", (short) 0x340a);
+        addLCIDMapEntry(map, "ar_AE", (short) 0x3801);
+        addLCIDMapEntry(map, "es_UY", (short) 0x380a);
+        addLCIDMapEntry(map, "ar_BH", (short) 0x3c01);
+        addLCIDMapEntry(map, "es_PY", (short) 0x3c0a);
+        addLCIDMapEntry(map, "ar_QA", (short) 0x4001);
+        addLCIDMapEntry(map, "es_BO", (short) 0x400a);
+        addLCIDMapEntry(map, "es_SV", (short) 0x440a);
+        addLCIDMapEntry(map, "es_HN", (short) 0x480a);
+        addLCIDMapEntry(map, "es_NI", (short) 0x4c0a);
+        addLCIDMapEntry(map, "es_PR", (short) 0x500a);
+
+        lcidMap = map;
+    }
+
+    private static short getLCIDFromLocale(Locale locale) {
+        // optimize for common case
+        if (locale.equals(Locale.US)) {
+            return US_LCID;
+        }
+
+        if (lcidMap == null) {
+            createLCIDMap();
+        }
+
+        String key = locale.toString();
+        while (!"".equals(key)) {
+            Short lcidObject = (Short) lcidMap.get(key);
+            if (lcidObject != null) {
+                return lcidObject.shortValue();
+            }
+            int pos = key.lastIndexOf('_');
+            if (pos < 1) {
+                return US_LCID;
+            }
+            key = key.substring(0, pos);
+        }
+
+        return US_LCID;
+    }
+
+    @Override
     public String getFamilyName(Locale locale) {
         if (locale == null) {
             return familyName;
         } else if (locale.equals(nameLocale) && localeFamilyName != null) {
             return localeFamilyName;
         } else {
-            short localeID = FontManager.getLCIDFromLocale(locale);
+            short localeID = getLCIDFromLocale(locale);
             String name = lookupName(localeID, FAMILY_NAME_ID);
             if (name == null) {
-               return familyName;
+                return familyName;
             } else {
                 return name;
             }
@@ -1353,6 +1590,7 @@
 
     /*  Used by the OpenType engine for mark positioning.
      */
+    @Override
     Point2D.Float getGlyphPoint(long pScalerContext,
                                 int glyphCode, int ptNumber) {
         try {
@@ -1414,6 +1652,7 @@
      * REMIND: consider unpacking the table into an array of booleans
      * for faster use.
      */
+    @Override
     public boolean useAAForPtSize(int ptsize) {
 
         char[] gasp = getGaspTable();
@@ -1433,12 +1672,15 @@
         }
     }
 
+    @Override
     public boolean hasSupplementaryChars() {
         return ((TrueTypeGlyphMapper)getMapper()).hasSupplementaryChars();
     }
 
+    @Override
     public String toString() {
         return "** TrueType Font: Family="+familyName+ " Name="+fullName+
             " style="+style+" fileName="+platName;
     }
+
 }
--- a/jdk/src/share/classes/sun/font/TrueTypeGlyphMapper.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/TrueTypeGlyphMapper.java	Wed Oct 07 14:15:01 2009 -0700
@@ -60,9 +60,9 @@
         missingGlyph = 0; /* standard for TrueType fonts */
         ByteBuffer buffer = font.getTableBuffer(TrueTypeFont.maxpTag);
         numGlyphs = buffer.getChar(4); // offset 4 bytes in MAXP table.
-        if (FontManager.isSolaris && isJAlocale && font.supportsJA()) {
+        if (FontUtilities.isSolaris && isJAlocale && font.supportsJA()) {
             needsJAremapping = true;
-            if (FontManager.isSolaris8 &&
+            if (FontUtilities.isSolaris8 &&
                 getGlyphFromCMAP(JA_WAVE_DASH_CHAR) == missingGlyph) {
                 remapJAWaveDash = true;
             }
@@ -82,8 +82,8 @@
                 glyphCode >= FileFontStrike.INVISIBLE_GLYPHS) {
                 return glyphCode;
             } else {
-                if (FontManager.logging) {
-                    FontManager.logger.warning
+                if (FontUtilities.isLogging()) {
+                    FontUtilities.getLogger().warning
                         (font + " out of range glyph id=" +
                          Integer.toHexString((int)glyphCode) +
                          " for char " + Integer.toHexString(charCode));
@@ -97,11 +97,11 @@
     }
 
     private void handleBadCMAP() {
-        if (FontManager.logging) {
-            FontManager.logger.severe("Null Cmap for " + font +
+        if (FontUtilities.isLogging()) {
+            FontUtilities.getLogger().severe("Null Cmap for " + font +
                                       "substituting for this font");
         }
-        FontManager.deRegisterBadFont(font);
+        SunFontManager.getInstance().deRegisterBadFont(font);
         /* The next line is not really a solution, but might
          * reduce the exceptions until references to this font2D
          * are gone.
@@ -242,10 +242,10 @@
                 font.glyphToCharMap[glyphs[i]] = (char)code;
             }
 
-            if (code < FontManager.MIN_LAYOUT_CHARCODE) {
+            if (code < FontUtilities.MIN_LAYOUT_CHARCODE) {
                 continue;
             }
-            else if (FontManager.isComplexCharCode(code)) {
+            else if (FontUtilities.isComplexCharCode(code)) {
                 return true;
             }
             else if (code >= 0x10000) {
--- a/jdk/src/share/classes/sun/font/Type1Font.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/Type1Font.java	Wed Oct 07 14:15:01 2009 -0700
@@ -635,7 +635,7 @@
 
     protected synchronized FontScaler getScaler() {
         if (scaler == null) {
-            scaler = FontManager.getScaler(this, 0, false, fileSize);
+            scaler = FontScaler.getScaler(this, 0, false, fileSize);
         }
 
         return scaler;
@@ -652,7 +652,7 @@
         try {
             return getScaler().getNumGlyphs();
         } catch (FontScalerException e) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getNumGlyphs();
         }
     }
@@ -661,7 +661,7 @@
         try {
             return getScaler().getMissingGlyphCode();
         } catch (FontScalerException e) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getMissingGlyphCode();
         }
     }
@@ -670,7 +670,7 @@
         try {
             return getScaler().getGlyphCode(charCode);
         } catch (FontScalerException e) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getGlyphCode(charCode);
         }
     }
@@ -679,5 +679,4 @@
         return "** Type1 Font: Family="+familyName+ " Name="+fullName+
             " style="+style+" fileName="+platName;
     }
-
 }
--- a/jdk/src/share/classes/sun/font/Type1GlyphMapper.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/font/Type1GlyphMapper.java	Wed Oct 07 14:15:01 2009 -0700
@@ -46,7 +46,7 @@
         try {
           missingGlyph = scaler.getMissingGlyphCode();
         } catch (FontScalerException fe) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             try {
                 missingGlyph = scaler.getMissingGlyphCode();
             } catch (FontScalerException e) { //should not happen
@@ -59,7 +59,7 @@
         try {
             return scaler.getNumGlyphs();
         } catch (FontScalerException e) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return getNumGlyphs();
         }
     }
@@ -72,7 +72,7 @@
         try {
             return scaler.getGlyphCode(ch) != missingGlyph;
         } catch(FontScalerException e) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return canDisplay(ch);
         }
     }
@@ -81,7 +81,7 @@
         try {
             return scaler.getGlyphCode(ch);
         } catch (FontScalerException e) {
-            scaler = FontManager.getNullScaler();
+            scaler = FontScaler.getNullScaler();
             return charToGlyph(ch);
         }
     }
@@ -93,7 +93,7 @@
             try {
                 return scaler.getGlyphCode((char)ch);
             } catch (FontScalerException e) {
-                scaler = FontManager.getNullScaler();
+                scaler = FontScaler.getNullScaler();
                 return charToGlyph(ch);
             }
         }
@@ -160,10 +160,10 @@
 
             glyphs[i] = charToGlyph(code);
 
-            if (code < FontManager.MIN_LAYOUT_CHARCODE) {
+            if (code < FontUtilities.MIN_LAYOUT_CHARCODE) {
                 continue;
             }
-            else if (FontManager.isComplexCharCode(code)) {
+            else if (FontUtilities.isComplexCharCode(code)) {
                 return true;
             }
             else if (code >= 0x10000) {
--- a/jdk/src/share/classes/sun/java2d/SunGraphics2D.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/java2d/SunGraphics2D.java	Wed Oct 07 14:15:01 2009 -0700
@@ -66,6 +66,7 @@
 import java.awt.font.GlyphVector;
 import java.awt.font.TextLayout;
 import sun.font.FontDesignMetrics;
+import sun.font.FontUtilities;
 import sun.java2d.pipe.PixelDrawPipe;
 import sun.java2d.pipe.PixelFillPipe;
 import sun.java2d.pipe.ShapeDrawPipe;
@@ -592,7 +593,7 @@
             }
         }
 
-        info.font2D = FontManager.getFont2D(font);
+        info.font2D = FontUtilities.getFont2D(font);
 
         int fmhint = fractionalMetricsHint;
         if (fmhint == SunHints.INTVAL_FRACTIONALMETRICS_DEFAULT) {
@@ -741,7 +742,8 @@
                  font.isTransformed() ||
                  fontInfo == null || // Precaution, if true shouldn't get here
                  (fontInfo.aaHint == SunHints.INTVAL_TEXT_ANTIALIAS_ON) !=
-                 FontManager.getFont2D(font).useAAForPtSize(font.getSize()))) {
+                     FontUtilities.getFont2D(font).
+                         useAAForPtSize(font.getSize()))) {
                 textpipe = invalidpipe;
             }
             this.font = font;
--- a/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java	Wed Oct 07 14:15:01 2009 -0700
@@ -55,8 +55,6 @@
 import java.util.TreeMap;
 import java.util.Vector;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import sun.awt.AppContext;
 import sun.awt.DisplayChangedListener;
 import sun.awt.FontConfiguration;
@@ -64,6 +62,8 @@
 import sun.font.CompositeFontDescriptor;
 import sun.font.Font2D;
 import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontManagerForSGE;
 import sun.font.NativeFont;
 
 /**
@@ -73,102 +73,16 @@
  * @see GraphicsDevice
  * @see GraphicsConfiguration
  */
-
 public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
-    implements FontSupport, DisplayChangedListener {
-
-    public static boolean isLinux;
-    public static boolean isSolaris;
-    public static boolean isOpenSolaris;
-    public static boolean isWindows;
-    public static boolean noType1Font;
-    private static Font defaultFont;
-    private static String defaultFontFileName;
-    private static String defaultFontName;
-    public static final String lucidaFontName = "Lucida Sans Regular";
-    public static final String lucidaFileName = "LucidaSansRegular.ttf";
-    public static boolean debugFonts = false;
-    protected static Logger logger = null;
-    private static ArrayList badFonts;
-    public static String jreLibDirName;
-    public static String jreFontDirName;
-    private static HashSet<String> missingFontFiles = null;
-
-    private FontConfiguration fontConfig;
-
-    /* fontPath is the location of all fonts on the system, excluding the
-     * JRE's own font directory but including any path specified using the
-     * sun.java2d.fontpath property. Together with that property,  it is
-     * initialised by the getPlatformFontPath() method
-     * This call must be followed by a call to registerFontDirs(fontPath)
-     * once any extra debugging path has been appended.
-     */
-    protected String fontPath;
-
-    /* discoveredAllFonts is set to true when all fonts on the font path are
-     * discovered. This usually also implies opening, validating and
-     * registering, but an implementation may be optimized to avold this.
-     * So see also "loadedAllFontFiles"
-     */
-    private boolean discoveredAllFonts = false;
+    implements DisplayChangedListener {
 
-    /* loadedAllFontFiles is set to true when all fonts on the font path are
-     * actually opened, validated and registered. This always implies
-     * discoveredAllFonts is true.
-     */
-    private boolean loadedAllFontFiles = false;
-
-    protected HashSet registeredFontFiles = new HashSet();
-    public static String eudcFontFileName; /* Initialised only on windows */
-
-    private static boolean isOpenJDK;
-    /**
-     * A few things in Java 2D code are different in OpenJDK,
-     * so need a way to tell which implementation this is.
-     * The absence of Lucida Sans Regular is the simplest way for now.
-     */
-    public static boolean isOpenJDK() {
-        return isOpenJDK;
-    }
-
-    static {
-        java.security.AccessController.doPrivileged(
-                                    new java.security.PrivilegedAction() {
-            public Object run() {
-
-                jreLibDirName = System.getProperty("java.home","") +
-                    File.separator + "lib";
-                jreFontDirName = jreLibDirName + File.separator + "fonts";
-                File lucidaFile =
-                    new File(jreFontDirName + File.separator + lucidaFileName);
-                isOpenJDK = !lucidaFile.exists();
-
-                String debugLevel =
-                    System.getProperty("sun.java2d.debugfonts");
-
-                if (debugLevel != null && !debugLevel.equals("false")) {
-                    debugFonts = true;
-                    logger = Logger.getLogger("sun.java2d");
-                    if (debugLevel.equals("warning")) {
-                        logger.setLevel(Level.WARNING);
-                    } else if (debugLevel.equals("severe")) {
-                        logger.setLevel(Level.SEVERE);
-                    }
-                }
-                return null;
-            }
-        });
-    };
+    public static boolean isOpenSolaris;
+    private static Font defaultFont;
 
     public SunGraphicsEnvironment() {
         java.security.AccessController.doPrivileged(
                                     new java.security.PrivilegedAction() {
             public Object run() {
-                String osName = System.getProperty("os.name");
-                if ("Linux".equals(osName)) {
-                    isLinux = true;
-                } else if ("SunOS".equals(osName)) {
-                    isSolaris = true;
                     String version = System.getProperty("os.version", "0.0");
                     try {
                         float ver = Float.parseFloat(version);
@@ -186,188 +100,6 @@
                         }
                     } catch (Exception e) {
                     }
-                } else if ("Windows".equals(osName)) {
-                    isWindows = true;
-                }
-
-                noType1Font = "true".
-                    equals(System.getProperty("sun.java2d.noType1Font"));
-
-                if (!isOpenJDK()) {
-                    defaultFontName = lucidaFontName;
-                    if (useAbsoluteFontFileNames()) {
-                        defaultFontFileName =
-                            jreFontDirName + File.separator + lucidaFileName;
-                    } else {
-                        defaultFontFileName = lucidaFileName;
-                    }
-                }
-
-                File badFontFile =
-                    new File(jreFontDirName + File.separator + "badfonts.txt");
-                if (badFontFile.exists()) {
-                    FileInputStream fis = null;
-                    try {
-                        badFonts = new ArrayList();
-                        fis = new FileInputStream(badFontFile);
-                        InputStreamReader isr = new InputStreamReader(fis);
-                        BufferedReader br = new BufferedReader(isr);
-                        while (true) {
-                            String name = br.readLine();
-                            if (name == null) {
-                                break;
-                            } else {
-                                if (debugFonts) {
-                                    logger.warning("read bad font: " + name);
-                                }
-                                badFonts.add(name);
-                            }
-                        }
-                    } catch (IOException e) {
-                        try {
-                            if (fis != null) {
-                                fis.close();
-                            }
-                        } catch (IOException ioe) {
-                        }
-                    }
-                }
-
-                /* Here we get the fonts in jre/lib/fonts and register them
-                 * so they are always available and preferred over other fonts.
-                 * This needs to be registered before the composite fonts as
-                 * otherwise some native font that corresponds may be found
-                 * as we don't have a way to handle two fonts of the same
-                 * name, so the JRE one must be the first one registered.
-                 * Pass "true" to registerFonts method as on-screen these
-                 * JRE fonts always go through the T2K rasteriser.
-                 */
-                if (isLinux) {
-                    /* Linux font configuration uses these fonts */
-                    registerFontDir(jreFontDirName);
-                }
-                registerFontsInDir(jreFontDirName, true, Font2D.JRE_RANK,
-                                   true, false);
-
-                /* Register the JRE fonts so that the native platform can
-                 * access them. This is used only on Windows so that when
-                 * printing the printer driver can access the fonts.
-                 */
-                registerJREFontsWithPlatform(jreFontDirName);
-
-                /* Create the font configuration and get any font path
-                 * that might be specified.
-                 */
-                fontConfig = createFontConfiguration();
-                if (isOpenJDK()) {
-                    String[] fontInfo = FontManager.getDefaultPlatformFont();
-                    defaultFontName = fontInfo[0];
-                    defaultFontFileName = fontInfo[1];
-                }
-                getPlatformFontPathFromFontConfig();
-
-                String extraFontPath = fontConfig.getExtraFontPath();
-
-                /* In prior releases the debugging font path replaced
-                 * all normally located font directories except for the
-                 * JRE fonts dir. This directory is still always located and
-                 * placed at the head of the path but as an augmentation
-                 * to the previous behaviour the
-                 * changes below allow you to additionally append to
-                 * the font path by starting with append: or prepend by
-                 * starting with a prepend: sign. Eg: to append
-                 * -Dsun.java2d.fontpath=append:/usr/local/myfonts
-                 * and to prepend
-                 * -Dsun.java2d.fontpath=prepend:/usr/local/myfonts Disp
-                 *
-                 * If there is an appendedfontpath it in the font configuration
-                 * it is used instead of searching the system for dirs.
-                 * The behaviour of append and prepend is then similar
-                 * to the normal case. ie it goes after what
-                 * you prepend and * before what you append. If the
-                 * sun.java2d.fontpath property is used, but it
-                 * neither the append or prepend syntaxes is used then as
-                 * except for the JRE dir the path is replaced and it is
-                 * up to you to make sure that all the right directories
-                 * are located. This is platform and locale-specific so
-                 * its almost impossible to get right, so it should be
-                 * used with caution.
-                 */
-                boolean prependToPath = false;
-                boolean appendToPath = false;
-                String dbgFontPath = System.getProperty("sun.java2d.fontpath");
-
-                if (dbgFontPath != null) {
-                    if (dbgFontPath.startsWith("prepend:")) {
-                        prependToPath = true;
-                        dbgFontPath =
-                            dbgFontPath.substring("prepend:".length());
-                    } else if (dbgFontPath.startsWith("append:")) {
-                        appendToPath = true;
-                        dbgFontPath =
-                            dbgFontPath.substring("append:".length());
-                    }
-                }
-
-                if (debugFonts) {
-                    logger.info("JRE font directory: " + jreFontDirName);
-                    logger.info("Extra font path: " + extraFontPath);
-                    logger.info("Debug font path: " + dbgFontPath);
-                }
-
-                if (dbgFontPath != null) {
-                    /* In debugging mode we register all the paths
-                     * Caution: this is a very expensive call on Solaris:-
-                     */
-                    fontPath = getPlatformFontPath(noType1Font);
-
-                    if (extraFontPath != null) {
-                        fontPath =
-                            extraFontPath + File.pathSeparator + fontPath;
-                    }
-                    if (appendToPath) {
-                        fontPath = fontPath + File.pathSeparator + dbgFontPath;
-                    } else if (prependToPath) {
-                        fontPath = dbgFontPath + File.pathSeparator + fontPath;
-                    } else {
-                        fontPath = dbgFontPath;
-                    }
-                    registerFontDirs(fontPath);
-                } else if (extraFontPath != null) {
-                    /* If the font configuration contains an "appendedfontpath"
-                     * entry, it is interpreted as a set of locations that
-                     * should always be registered.
-                     * It may be additional to locations normally found for
-                     * that place, or it may be locations that need to have
-                     * all their paths registered to locate all the needed
-                     * platform names.
-                     * This is typically when the same .TTF file is referenced
-                     * from multiple font.dir files and all of these must be
-                     * read to find all the native (XLFD) names for the font,
-                     * so that X11 font APIs can be used for as many code
-                     * points as possible.
-                     */
-                    registerFontDirs(extraFontPath);
-                }
-
-                /* On Solaris, we need to register the Japanese TrueType
-                 * directory so that we can find the corresponding bitmap
-                 * fonts. This could be done by listing the directory in
-                 * the font configuration file, but we don't want to
-                 * confuse users with this quirk. There are no bitmap fonts
-                 * for other writing systems that correspond to TrueType
-                 * fonts and have matching XLFDs. We need to register the
-                 * bitmap fonts only in environments where they're on the
-                 * X font path, i.e., in the Japanese locale.
-                 * Note that if the X Toolkit is in use the font path isn't
-                 * set up by JDK, but users of a JA locale should have it
-                 * set up already by their login environment.
-                 */
-                if (isSolaris && Locale.JAPAN.equals(Locale.getDefault())) {
-                    registerFontDir("/usr/openwin/lib/locale/ja/X11/fonts/TT");
-                }
-
-                initCompositeFonts(fontConfig, null);
 
                 /* Establish the default font to be used by SG2D etc */
                 defaultFont = new Font(Font.DIALOG, Font.PLAIN, 12);
@@ -395,7 +127,22 @@
         return ret;
     }
 
+    /**
+     * Returns the number of screen devices of this graphics environment.
+     *
+     * @return the number of screen devices of this graphics environment
+     */
     protected abstract int getNumScreens();
+
+    /**
+     * Create and return the screen device with the specified number. The
+     * device with number <code>0</code> will be the default device (returned
+     * by {@link #getDefaultScreenDevice()}.
+     *
+     * @param screennum the number of the screen to create
+     *
+     * @return the created screen device
+     */
     protected abstract GraphicsDevice makeScreenDevice(int screennum);
 
     /**
@@ -418,220 +165,17 @@
         return new SunGraphics2D(sd, Color.white, Color.black, defaultFont);
     }
 
-    /* A call to this method should be followed by a call to
-     * registerFontDirs(..)
-     */
-    protected String getPlatformFontPath(boolean noType1Font) {
-        if (fontPath == null) {
-            fontPath = FontManager.getFontPath(noType1Font);
-        }
-        return fontPath;
-    }
-
-    private String[] platformFontDirs;
-    /**
-     * Get all directories which contain installed fonts.
-     */
-    public String[] getPlatformFontDirs() {
-        if (platformFontDirs == null) {
-            String path = getPlatformFontPath(noType1Font);
-            StringTokenizer parser =
-                new StringTokenizer(path, File.pathSeparator);;
-            ArrayList<String> pathList = new ArrayList<String>();
-            try {
-                while (parser.hasMoreTokens()) {
-                    pathList.add(parser.nextToken());
-                }
-            } catch (NoSuchElementException e) {
-            }
-            platformFontDirs = pathList.toArray(new String[0]);
-        }
-        return platformFontDirs;
-    }
-
-    /**
-     * Whether registerFontFile expects absolute or relative
-     * font file names.
-     */
-    protected boolean useAbsoluteFontFileNames() {
-        return true;
-    }
-
-    /**
-     * Returns file name for default font, either absolute
-     * or relative as needed by registerFontFile.
-     */
-    public String getDefaultFontFile() {
-        return defaultFontFileName;
-    }
-
-    /**
-     * Returns face name for default font, or null if
-     * no face names are used for CompositeFontDescriptors
-     * for this platform.
-     */
-    public String getDefaultFontFaceName() {
-        return defaultFontName;
-    }
-
-    public void loadFonts() {
-        if (discoveredAllFonts) {
-            return;
-        }
-        /* Use lock specific to the font system */
-        synchronized (lucidaFontName) {
-            if (debugFonts) {
-                Thread.dumpStack();
-                logger.info("SunGraphicsEnvironment.loadFonts() called");
-            }
-            FontManager.initialiseDeferredFonts();
-
-            java.security.AccessController.doPrivileged(
-                                    new java.security.PrivilegedAction() {
-                public Object run() {
-                    if (fontPath == null) {
-                        fontPath = getPlatformFontPath(noType1Font);
-                        registerFontDirs(fontPath);
-                    }
-                    if (fontPath != null) {
-                        // this will find all fonts including those already
-                        // registered. But we have checks in place to prevent
-                        // double registration.
-                        if (!FontManager.gotFontsFromPlatform()) {
-                            registerFontsOnPath(fontPath, false,
-                                                Font2D.UNKNOWN_RANK,
-                                                false, true);
-                            loadedAllFontFiles = true;
-                        }
-                    }
-                    FontManager.registerOtherFontFiles(registeredFontFiles);
-                    discoveredAllFonts = true;
-                    return null;
-                }
-            });
-        }
+    private static FontManagerForSGE getFontManagerForSGE() {
+        FontManager fm = FontManagerFactory.getInstance();
+        return (FontManagerForSGE) fm;
     }
-
-
-    public void loadFontFiles() {
-        loadFonts();
-        if (loadedAllFontFiles) {
-            return;
-        }
-        /* Use lock specific to the font system */
-        synchronized (lucidaFontName) {
-            if (debugFonts) {
-                Thread.dumpStack();
-                logger.info("loadAllFontFiles() called");
-            }
-            java.security.AccessController.doPrivileged(
-                                    new java.security.PrivilegedAction() {
-                public Object run() {
-                    if (fontPath == null) {
-                        fontPath = getPlatformFontPath(noType1Font);
-                    }
-                    if (fontPath != null) {
-                        // this will find all fonts including those already
-                        // registered. But we have checks in place to prevent
-                        // double registration.
-                        registerFontsOnPath(fontPath, false,
-                                            Font2D.UNKNOWN_RANK,
-                                            false, true);
-                    }
-                    loadedAllFontFiles = true;
-                    return null;
-                }
-            });
-        }
-    }
-
-    /*
-     * This is for use only within getAllFonts().
-     * Fonts listed in the fontconfig files for windows were all
-     * on the "deferred" initialisation list. They were registered
-     * either in the course of the application, or in the call to
-     * loadFonts() within getAllFonts(). The fontconfig file specifies
-     * the names of the fonts using the English names. If there's a
-     * different name in the execution locale, then the platform will
-     * report that, and we will construct the font with both names, and
-     * thereby enumerate it twice. This happens for Japanese fonts listed
-     * in the windows fontconfig, when run in the JA locale. The solution
-     * is to rely (in this case) on the platform's font->file mapping to
-     * determine that this name corresponds to a file we already registered.
-     * This works because
-     * - we know when we get here all deferred fonts are already initialised
-     * - when we register a font file, we register all fonts in it.
-     * - we know the fontconfig fonts are all in the windows registry
-     */
-    private boolean isNameForRegisteredFile(String fontName) {
-        String fileName = FontManager.getFileNameForFontName(fontName);
-        if (fileName == null) {
-            return false;
-        }
-        return registeredFontFiles.contains(fileName);
-    }
-
-    private Font[] allFonts;
-
-    /**
-     * Returns all fonts installed in this environment.
-     */
-    public Font[] getAllInstalledFonts() {
-        if (allFonts == null) {
-            loadFonts();
-            TreeMap fontMapNames = new TreeMap();
-            /* warning: the number of composite fonts could change dynamically
-             * if applications are allowed to create them. "allfonts" could
-             * then be stale.
-             */
-
-            Font2D[] allfonts = FontManager.getRegisteredFonts();
-            for (int i=0; i < allfonts.length; i++) {
-                if (!(allfonts[i] instanceof NativeFont)) {
-                    fontMapNames.put(allfonts[i].getFontName(null),
-                                     allfonts[i]);
-                }
-            }
-
-            String[] platformNames =  FontManager.getFontNamesFromPlatform();
-            if (platformNames != null) {
-                for (int i=0; i<platformNames.length; i++) {
-                    if (!isNameForRegisteredFile(platformNames[i])) {
-                        fontMapNames.put(platformNames[i], null);
-                    }
-                }
-            }
-
-            String[] fontNames = null;
-            if (fontMapNames.size() > 0) {
-                fontNames = new String[fontMapNames.size()];
-                Object [] keyNames = fontMapNames.keySet().toArray();
-                for (int i=0; i < keyNames.length; i++) {
-                    fontNames[i] = (String)keyNames[i];
-                }
-            }
-            Font[] fonts = new Font[fontNames.length];
-            for (int i=0; i < fontNames.length; i++) {
-                fonts[i] = new Font(fontNames[i], Font.PLAIN, 1);
-                Font2D f2d = (Font2D)fontMapNames.get(fontNames[i]);
-                if (f2d  != null) {
-                    FontManager.setFont2D(fonts[i], f2d.handle);
-                }
-            }
-            allFonts = fonts;
-        }
-
-        Font []copyFonts = new Font[allFonts.length];
-        System.arraycopy(allFonts, 0, copyFonts, 0, allFonts.length);
-        return copyFonts;
-    }
-
      /**
      * Returns all fonts available in this environment.
      */
     public Font[] getAllFonts() {
-        Font[] installedFonts = getAllInstalledFonts();
-        Font[] created = FontManager.getCreatedFonts();
+        FontManagerForSGE fm = getFontManagerForSGE();
+        Font[] installedFonts = fm.getAllInstalledFonts();
+        Font[] created = fm.getCreatedFonts();
         if (created == null || created.length == 0) {
             return installedFonts;
         } else {
@@ -643,126 +187,9 @@
         }
     }
 
-    /**
-     * Default locale can be changed but we need to know the initial locale
-     * as that is what is used by native code. Changing Java default locale
-     * doesn't affect that.
-     * Returns the locale in use when using native code to communicate
-     * with platform APIs. On windows this is known as the "system" locale,
-     * and it is usually the same as the platform locale, but not always,
-     * so this method also checks an implementation property used only
-     * on windows and uses that if set.
-     */
-    private static Locale systemLocale = null;
-    public static Locale getSystemStartupLocale() {
-        if (systemLocale == null) {
-            systemLocale = (Locale)
-                java.security.AccessController.doPrivileged(
-                                    new java.security.PrivilegedAction() {
-            public Object run() {
-                /* On windows the system locale may be different than the
-                 * user locale. This is an unsupported configuration, but
-                 * in that case we want to return a dummy locale that will
-                 * never cause a match in the usage of this API. This is
-                 * important because Windows documents that the family
-                 * names of fonts are enumerated using the language of
-                 * the system locale. BY returning a dummy locale in that
-                 * case we do not use the platform API which would not
-                 * return us the names we want.
-                 */
-                String fileEncoding = System.getProperty("file.encoding", "");
-                String sysEncoding = System.getProperty("sun.jnu.encoding");
-                if (sysEncoding != null && !sysEncoding.equals(fileEncoding)) {
-                    return Locale.ROOT;
-                }
-
-                String language = System.getProperty("user.language", "en");
-                String country  = System.getProperty("user.country","");
-                String variant  = System.getProperty("user.variant","");
-                return new Locale(language, country, variant);
-            }
-        });
-        }
-        return systemLocale;
-    }
-
-    /* Really we need only the JRE fonts family names, but there's little
-     * overhead in doing this the easy way by adding all the currently
-     * known fonts.
-     */
-    protected void getJREFontFamilyNames(TreeMap<String,String> familyNames,
-                                         Locale requestedLocale) {
-        FontManager.registerDeferredJREFonts(jreFontDirName);
-        Font2D[] physicalfonts = FontManager.getPhysicalFonts();
-        for (int i=0; i < physicalfonts.length; i++) {
-            if (!(physicalfonts[i] instanceof NativeFont)) {
-                String name =
-                    physicalfonts[i].getFamilyName(requestedLocale);
-                familyNames.put(name.toLowerCase(requestedLocale), name);
-            }
-        }
-    }
-
-    private String[] allFamilies; // cache for default locale only
-    private Locale lastDefaultLocale;
-
-    public String[] getInstalledFontFamilyNames(Locale requestedLocale) {
-        if (requestedLocale == null) {
-            requestedLocale = Locale.getDefault();
-        }
-        if (allFamilies != null && lastDefaultLocale != null &&
-            requestedLocale.equals(lastDefaultLocale)) {
-                String[] copyFamilies = new String[allFamilies.length];
-                System.arraycopy(allFamilies, 0, copyFamilies,
-                                 0, allFamilies.length);
-                return copyFamilies;
-        }
-
-        TreeMap<String,String> familyNames = new TreeMap<String,String>();
-        //  these names are always there and aren't localised
-        String str;
-        str = Font.SERIF;         familyNames.put(str.toLowerCase(), str);
-        str = Font.SANS_SERIF;    familyNames.put(str.toLowerCase(), str);
-        str = Font.MONOSPACED;    familyNames.put(str.toLowerCase(), str);
-        str = Font.DIALOG;        familyNames.put(str.toLowerCase(), str);
-        str = Font.DIALOG_INPUT;  familyNames.put(str.toLowerCase(), str);
-
-        /* Platform APIs may be used to get the set of available family
-         * names for the current default locale so long as it is the same
-         * as the start-up system locale, rather than loading all fonts.
-         */
-        if (requestedLocale.equals(getSystemStartupLocale()) &&
-            FontManager.getFamilyNamesFromPlatform(familyNames,
-                                                    requestedLocale)) {
-            /* Augment platform names with JRE font family names */
-            getJREFontFamilyNames(familyNames, requestedLocale);
-        } else {
-            loadFontFiles();
-            Font2D[] physicalfonts = FontManager.getPhysicalFonts();
-            for (int i=0; i < physicalfonts.length; i++) {
-                if (!(physicalfonts[i] instanceof NativeFont)) {
-                    String name =
-                        physicalfonts[i].getFamilyName(requestedLocale);
-                    familyNames.put(name.toLowerCase(requestedLocale), name);
-                }
-            }
-        }
-
-        String[] retval =  new String[familyNames.size()];
-        Object [] keyNames = familyNames.keySet().toArray();
-        for (int i=0; i < keyNames.length; i++) {
-            retval[i] = (String)familyNames.get(keyNames[i]);
-        }
-        if (requestedLocale.equals(Locale.getDefault())) {
-            lastDefaultLocale = requestedLocale;
-            allFamilies = new String[retval.length];
-            System.arraycopy(retval, 0, allFamilies, 0, allFamilies.length);
-        }
-        return retval;
-    }
-
     public String[] getAvailableFontFamilyNames(Locale requestedLocale) {
-        String[] installed = getInstalledFontFamilyNames(requestedLocale);
+        FontManagerForSGE fm = getFontManagerForSGE();
+        String[] installed = fm.getInstalledFontFamilyNames(requestedLocale);
         /* Use a new TreeMap as used in getInstalledFontFamilyNames
          * and insert all the keys in lower case, so that the sort order
          * is the same as the installed families. This preserves historical
@@ -771,7 +198,7 @@
          * the tree map and just insert new entries, but not so much as
          * to justify the extra internal interface.
          */
-        TreeMap<String, String> map = FontManager.getCreatedFontFamilyNames();
+        TreeMap<String, String> map = fm.getCreatedFontFamilyNames();
         if (map == null || map.size() == 0) {
             return installed;
         } else {
@@ -793,405 +220,6 @@
     }
 
     /**
-     * Returns a file name for the physical font represented by this platform
-     * font name. The default implementation tries to obtain the file name
-     * from the font configuration.
-     * Subclasses may override to provide information from other sources.
-     */
-    protected String getFileNameFromPlatformName(String platformFontName) {
-        return fontConfig.getFileNameFromPlatformName(platformFontName);
-    }
-
-    public static class TTFilter implements FilenameFilter {
-        public boolean accept(File dir,String name) {
-            /* all conveniently have the same suffix length */
-            int offset = name.length()-4;
-            if (offset <= 0) { /* must be at least A.ttf */
-                return false;
-            } else {
-                return(name.startsWith(".ttf", offset) ||
-                       name.startsWith(".TTF", offset) ||
-                       name.startsWith(".ttc", offset) ||
-                       name.startsWith(".TTC", offset) ||
-                       name.startsWith(".otf", offset) ||
-                       name.startsWith(".OTF", offset));
-            }
-        }
-    }
-
-    public static class T1Filter implements FilenameFilter {
-        public boolean accept(File dir,String name) {
-            if (noType1Font) {
-                return false;
-            }
-            /* all conveniently have the same suffix length */
-            int offset = name.length()-4;
-            if (offset <= 0) { /* must be at least A.pfa */
-                return false;
-            } else {
-                return(name.startsWith(".pfa", offset) ||
-                       name.startsWith(".pfb", offset) ||
-                       name.startsWith(".PFA", offset) ||
-                       name.startsWith(".PFB", offset));
-            }
-        }
-    }
-
-    public static class TTorT1Filter implements FilenameFilter {
-         public boolean accept(File dir, String name) {
-             return SunGraphicsEnvironment.ttFilter.accept(dir, name) ||
-                 SunGraphicsEnvironment.t1Filter.accept(dir, name);
-         }
-    }
-
-    /* No need to keep consing up new instances - reuse a singleton.
-     * The trade-off is that these objects don't get GC'd.
-     */
-    public static final TTFilter ttFilter = new TTFilter();
-    public static final T1Filter t1Filter = new T1Filter();
-
-    /* The majority of the register functions in this class are
-     * registering platform fonts in the JRE's font maps.
-     * The next one is opposite in function as it registers the JRE
-     * fonts as platform fonts. If subsequent to calling this
-     * your implementation enumerates platform fonts in a way that
-     * would return these fonts too you may get duplicates.
-     * This function is primarily used to install the JRE fonts
-     * so that the native platform can access them.
-     * It is intended to be overridden by platform subclasses
-     * Currently minimal use is made of this as generally
-     * Java 2D doesn't need the platform to be able to
-     * use its fonts and platforms which already have matching
-     * fonts registered (possibly even from other different JRE
-     * versions) generally can't be guaranteed to use the
-     * one registered by this JRE version in response to
-     * requests from this JRE.
-     */
-    protected void registerJREFontsWithPlatform(String pathName) {
-        return;
-    }
-
-    /* Called from FontManager - has Solaris specific implementation */
-    public void register1dot0Fonts() {
-        java.security.AccessController.doPrivileged(
-                            new java.security.PrivilegedAction() {
-            public Object run() {
-                String type1Dir = "/usr/openwin/lib/X11/fonts/Type1";
-                registerFontsInDir(type1Dir, true, Font2D.TYPE1_RANK,
-                                   false, false);
-                return null;
-            }
-        });
-    }
-
-    protected void registerFontDirs(String pathName) {
-        return;
-    }
-
-    /* Called to register fall back fonts */
-    public void registerFontsInDir(String dirName) {
-        registerFontsInDir(dirName, true, Font2D.JRE_RANK, true, false);
-    }
-
-    private void registerFontsInDir(String dirName, boolean useJavaRasterizer,
-                                    int fontRank,
-                                    boolean defer, boolean resolveSymLinks) {
-        File pathFile = new File(dirName);
-        addDirFonts(dirName, pathFile, ttFilter,
-                    FontManager.FONTFORMAT_TRUETYPE, useJavaRasterizer,
-                    fontRank==Font2D.UNKNOWN_RANK ?
-                    Font2D.TTF_RANK : fontRank,
-                    defer, resolveSymLinks);
-        addDirFonts(dirName, pathFile, t1Filter,
-                    FontManager.FONTFORMAT_TYPE1, useJavaRasterizer,
-                    fontRank==Font2D.UNKNOWN_RANK ?
-                    Font2D.TYPE1_RANK : fontRank,
-                    defer, resolveSymLinks);
-    }
-
-    private void registerFontsOnPath(String pathName,
-                                     boolean useJavaRasterizer, int fontRank,
-                                     boolean defer, boolean resolveSymLinks) {
-
-        StringTokenizer parser = new StringTokenizer(pathName,
-                                                     File.pathSeparator);
-        try {
-            while (parser.hasMoreTokens()) {
-                registerFontsInDir(parser.nextToken(),
-                                   useJavaRasterizer, fontRank,
-                                   defer, resolveSymLinks);
-            }
-        } catch (NoSuchElementException e) {
-        }
-    }
-
-    protected void registerFontFile(String fontFileName, String[] nativeNames,
-                                    int fontRank, boolean defer) {
-        // REMIND: case compare depends on platform
-        if (registeredFontFiles.contains(fontFileName)) {
-            return;
-        }
-        int fontFormat;
-        if (ttFilter.accept(null, fontFileName)) {
-            fontFormat = FontManager.FONTFORMAT_TRUETYPE;
-        } else if (t1Filter.accept(null, fontFileName)) {
-            fontFormat = FontManager.FONTFORMAT_TYPE1;
-        } else {
-            fontFormat = FontManager.FONTFORMAT_NATIVE;
-        }
-        registeredFontFiles.add(fontFileName);
-        if (defer) {
-            FontManager.registerDeferredFont(fontFileName,
-                                             fontFileName, nativeNames,
-                                             fontFormat, false, fontRank);
-        } else {
-            FontManager.registerFontFile(fontFileName, nativeNames,
-                                         fontFormat, false, fontRank);
-        }
-    }
-
-    protected void registerFontDir(String path) {
-    }
-
-    protected String[] getNativeNames(String fontFileName,
-                                      String platformName) {
-        return null;
-    }
-
-    /*
-     * helper function for registerFonts
-     */
-    private void addDirFonts(String dirName, File dirFile,
-                             FilenameFilter filter,
-                             int fontFormat, boolean useJavaRasterizer,
-                             int fontRank,
-                             boolean defer, boolean resolveSymLinks) {
-        String[] ls = dirFile.list(filter);
-        if (ls == null || ls.length == 0) {
-            return;
-        }
-        String[] fontNames = new String[ls.length];
-        String[][] nativeNames = new String[ls.length][];
-        int fontCount = 0;
-
-        for (int i=0; i < ls.length; i++ ) {
-            File theFile = new File(dirFile, ls[i]);
-            String fullName = null;
-            if (resolveSymLinks) {
-                try {
-                    fullName = theFile.getCanonicalPath();
-                } catch (IOException e) {
-                }
-            }
-            if (fullName == null) {
-                fullName = dirName + File.separator + ls[i];
-            }
-
-            // REMIND: case compare depends on platform
-            if (registeredFontFiles.contains(fullName)) {
-                continue;
-            }
-
-            if (badFonts != null && badFonts.contains(fullName)) {
-                if (debugFonts) {
-                    logger.warning("skip bad font " + fullName);
-                }
-                continue; // skip this font file.
-            }
-
-            registeredFontFiles.add(fullName);
-
-            if (debugFonts && logger.isLoggable(Level.INFO)) {
-                String message = "Registering font " + fullName;
-                String[] natNames = getNativeNames(fullName, null);
-                if (natNames == null) {
-                    message += " with no native name";
-                } else {
-                    message += " with native name(s) " + natNames[0];
-                    for (int nn = 1; nn < natNames.length; nn++) {
-                        message += ", " + natNames[nn];
-                    }
-                }
-                logger.info(message);
-            }
-            fontNames[fontCount] = fullName;
-            nativeNames[fontCount++] = getNativeNames(fullName, null);
-        }
-        FontManager.registerFonts(fontNames, nativeNames, fontCount,
-                                  fontFormat, useJavaRasterizer, fontRank,
-                                  defer);
-        return;
-    }
-
-    /*
-     * A GE may verify whether a font file used in a fontconfiguration
-     * exists. If it doesn't then either we may substitute the default
-     * font, or perhaps elide it altogether from the composite font.
-     * This makes some sense on windows where the font file is only
-     * likely to be in one place. But on other OSes, eg Linux, the file
-     * can move around depending. So there we probably don't want to assume
-     * its missing and so won't add it to this list.
-     * If this list - missingFontFiles - is non-null then the composite
-     * font initialisation logic tests to see if a font file is in that
-     * set.
-     * Only one thread should be able to add to this set so we don't
-     * synchronize.
-     */
-    protected void addToMissingFontFileList(String fileName) {
-        if (missingFontFiles == null) {
-            missingFontFiles = new HashSet<String>();
-        }
-        missingFontFiles.add(fileName);
-    }
-
-    /**
-     * Creates this environment's FontConfiguration.
-     */
-    protected abstract FontConfiguration createFontConfiguration();
-
-    public abstract FontConfiguration
-        createFontConfiguration(boolean preferLocaleFonts,
-                                boolean preferPropFonts);
-
-    /*
-     * This method asks the font configuration API for all platform names
-     * used as components of composite/logical fonts and iterates over these
-     * looking up their corresponding file name and registers these fonts.
-     * It also ensures that the fonts are accessible via platform APIs.
-     * The composites themselves are then registered.
-     */
-    private void
-        initCompositeFonts(FontConfiguration fontConfig,
-                           ConcurrentHashMap<String, Font2D>  altNameCache) {
-
-        int numCoreFonts = fontConfig.getNumberCoreFonts();
-        String[] fcFonts = fontConfig.getPlatformFontNames();
-        for (int f=0; f<fcFonts.length; f++) {
-            String platformFontName = fcFonts[f];
-            String fontFileName =
-                getFileNameFromPlatformName(platformFontName);
-            String[] nativeNames = null;
-            if (fontFileName == null || fontFileName.equals(platformFontName)){
-                /* No file located, so register using the platform name,
-                 * i.e. as a native font.
-                 */
-                fontFileName = platformFontName;
-            } else {
-                if (f < numCoreFonts) {
-                    /* If platform APIs also need to access the font, add it
-                     * to a set to be registered with the platform too.
-                     * This may be used to add the parent directory to the X11
-                     * font path if its not already there. See the docs for the
-                     * subclass implementation.
-                     * This is now mainly for the benefit of X11-based AWT
-                     * But for historical reasons, 2D initialisation code
-                     * makes these calls.
-                     * If the fontconfiguration file is properly set up
-                     * so that all fonts are mapped to files and all their
-                     * appropriate directories are specified, then this
-                     * method will be low cost as it will return after
-                     * a test that finds a null lookup map.
-                     */
-                    addFontToPlatformFontPath(platformFontName);
-                }
-                nativeNames = getNativeNames(fontFileName, platformFontName);
-            }
-            /* Uncomment these two lines to "generate" the XLFD->filename
-             * mappings needed to speed start-up on Solaris.
-             * Augment this with the appendedpathname and the mappings
-             * for native (F3) fonts
-             */
-            //String platName = platformFontName.replaceAll(" ", "_");
-            //System.out.println("filename."+platName+"="+fontFileName);
-            registerFontFile(fontFileName, nativeNames,
-                             Font2D.FONT_CONFIG_RANK, true);
-
-
-        }
-        /* This registers accumulated paths from the calls to
-         * addFontToPlatformFontPath(..) and any specified by
-         * the font configuration. Rather than registering
-         * the fonts it puts them in a place and form suitable for
-         * the Toolkit to pick up and use if a toolkit is initialised,
-         * and if it uses X11 fonts.
-         */
-        registerPlatformFontsUsedByFontConfiguration();
-
-        CompositeFontDescriptor[] compositeFontInfo
-                = fontConfig.get2DCompositeFontInfo();
-        for (int i = 0; i < compositeFontInfo.length; i++) {
-            CompositeFontDescriptor descriptor = compositeFontInfo[i];
-            String[] componentFileNames = descriptor.getComponentFileNames();
-            String[] componentFaceNames = descriptor.getComponentFaceNames();
-
-            /* It would be better eventually to handle this in the
-             * FontConfiguration code which should also remove duplicate slots
-             */
-            if (missingFontFiles != null) {
-                for (int ii=0; ii<componentFileNames.length; ii++) {
-                    if (missingFontFiles.contains(componentFileNames[ii])) {
-                        componentFileNames[ii] = getDefaultFontFile();
-                        componentFaceNames[ii] = getDefaultFontFaceName();
-                    }
-                }
-            }
-
-            /* FontConfiguration needs to convey how many fonts it has added
-             * as fallback component fonts which should not affect metrics.
-             * The core component count will be the number of metrics slots.
-             * This does not preclude other mechanisms for adding
-             * fall back component fonts to the composite.
-             */
-            if (altNameCache != null) {
-                FontManager.registerCompositeFont(
-                    descriptor.getFaceName(),
-                    componentFileNames, componentFaceNames,
-                    descriptor.getCoreComponentCount(),
-                    descriptor.getExclusionRanges(),
-                    descriptor.getExclusionRangeLimits(),
-                    true,
-                    altNameCache);
-            } else {
-                FontManager.registerCompositeFont(
-                    descriptor.getFaceName(),
-                    componentFileNames, componentFaceNames,
-                    descriptor.getCoreComponentCount(),
-                    descriptor.getExclusionRanges(),
-                    descriptor.getExclusionRangeLimits(),
-                    true);
-            }
-            if (debugFonts) {
-                logger.info("registered " + descriptor.getFaceName());
-            }
-        }
-    }
-
-    /**
-     * Notifies graphics environment that the logical font configuration
-     * uses the given platform font name. The graphics environment may
-     * use this for platform specific initialization.
-     */
-    protected void addFontToPlatformFontPath(String platformFontName) {
-    }
-
-    protected void registerPlatformFontsUsedByFontConfiguration() {
-    }
-
-    /**
-     * Determines whether the given font is a logical font.
-     */
-    public static boolean isLogicalFont(Font f) {
-        return FontConfiguration.isLogicalFontFamilyName(f.getFamily());
-    }
-
-    /**
-     * Return the default font configuration.
-     */
-    public FontConfiguration getFontConfiguration() {
-        return fontConfig;
-    }
-
-    /**
      * Return the bounds of a GraphicsDevice, less its screen insets.
      * See also java.awt.GraphicsEnvironment.getUsableBounds();
      */
@@ -1209,45 +237,6 @@
     }
 
     /**
-     * This method is provided for internal and exclusive use by Swing.
-     * This method should no longer be called, instead directly call
-     * FontManager.fontSupportsDefaultEncoding(Font).
-     * This method will be removed once Swing is updated to no longer
-     * call it.
-     */
-    public static boolean fontSupportsDefaultEncoding(Font font) {
-        return FontManager.fontSupportsDefaultEncoding(font);
-    }
-
-    public static void useAlternateFontforJALocales() {
-        FontManager.useAlternateFontforJALocales();
-    }
-
-    /*
-     * This invocation is not in a privileged block because
-     * all privileged operations (reading files and properties)
-     * was conducted on the creation of the GE
-     */
-    public void
-        createCompositeFonts(ConcurrentHashMap<String, Font2D> altNameCache,
-                             boolean preferLocale,
-                             boolean preferProportional) {
-
-        FontConfiguration fontConfig =
-            createFontConfiguration(preferLocale, preferProportional);
-        initCompositeFonts(fontConfig, altNameCache);
-    }
-
-    /* If (as we do on X11) need to set a platform font path,
-     * then the needed path may be specified by the platform
-     * specific FontConfiguration class & data file. Such platforms
-     * (ie X11) need to override this method to retrieve this information
-     * into suitable data structures.
-     */
-    protected void getPlatformFontPathFromFontConfig() {
-    }
-
-    /**
      * From the DisplayChangedListener interface; called
      * when the display mode has been changed.
      */
--- a/jdk/src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java	Wed Oct 07 14:15:01 2009 -0700
@@ -171,9 +171,9 @@
         float lw;
         if (thin) {
             if (antialias) {
-                lw = 0.5f;
+                lw = userSpaceLineWidth(at, 0.5f);
             } else {
-                lw = 1.0f;
+                lw = userSpaceLineWidth(at, 1.0f);
             }
         } else {
             lw = bs.getLineWidth();
@@ -189,6 +189,72 @@
                  lsink);
     }
 
+    private float userSpaceLineWidth(AffineTransform at, float lw) {
+
+        double widthScale;
+
+        if ((at.getType() & (AffineTransform.TYPE_GENERAL_TRANSFORM |
+                            AffineTransform.TYPE_GENERAL_SCALE)) != 0) {
+            widthScale = Math.sqrt(at.getDeterminant());
+        } else {
+            /* First calculate the "maximum scale" of this transform. */
+            double A = at.getScaleX();       // m00
+            double C = at.getShearX();       // m01
+            double B = at.getShearY();       // m10
+            double D = at.getScaleY();       // m11
+
+            /*
+             * Given a 2 x 2 affine matrix [ A B ] such that
+             *                             [ C D ]
+             * v' = [x' y'] = [Ax + Cy, Bx + Dy], we want to
+             * find the maximum magnitude (norm) of the vector v'
+             * with the constraint (x^2 + y^2 = 1).
+             * The equation to maximize is
+             *     |v'| = sqrt((Ax+Cy)^2+(Bx+Dy)^2)
+             * or  |v'| = sqrt((AA+BB)x^2 + 2(AC+BD)xy + (CC+DD)y^2).
+             * Since sqrt is monotonic we can maximize |v'|^2
+             * instead and plug in the substitution y = sqrt(1 - x^2).
+             * Trigonometric equalities can then be used to get
+             * rid of most of the sqrt terms.
+             */
+
+            double EA = A*A + B*B;          // x^2 coefficient
+            double EB = 2*(A*C + B*D);      // xy coefficient
+            double EC = C*C + D*D;          // y^2 coefficient
+
+            /*
+             * There is a lot of calculus omitted here.
+             *
+             * Conceptually, in the interests of understanding the
+             * terms that the calculus produced we can consider
+             * that EA and EC end up providing the lengths along
+             * the major axes and the hypot term ends up being an
+             * adjustment for the additional length along the off-axis
+             * angle of rotated or sheared ellipses as well as an
+             * adjustment for the fact that the equation below
+             * averages the two major axis lengths.  (Notice that
+             * the hypot term contains a part which resolves to the
+             * difference of these two axis lengths in the absence
+             * of rotation.)
+             *
+             * In the calculus, the ratio of the EB and (EA-EC) terms
+             * ends up being the tangent of 2*theta where theta is
+             * the angle that the long axis of the ellipse makes
+             * with the horizontal axis.  Thus, this equation is
+             * calculating the length of the hypotenuse of a triangle
+             * along that axis.
+             */
+
+            double hypot = Math.sqrt(EB*EB + (EA-EC)*(EA-EC));
+            /* sqrt omitted, compare to squared limits below. */
+            double widthsquared = ((EA + EC + hypot)/2.0);
+
+            widthScale = Math.sqrt(widthsquared);
+        }
+
+        return (float) (lw / widthScale);
+    }
+
     void strokeTo(Shape src,
                   AffineTransform at,
                   float width,
--- a/jdk/src/share/classes/sun/print/PSPrinterJob.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/print/PSPrinterJob.java	Wed Oct 07 14:15:01 2009 -0700
@@ -87,6 +87,8 @@
 import sun.awt.FontDescriptor;
 import sun.awt.PlatformFont;
 import sun.awt.SunToolkit;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
 
 import java.nio.charset.*;
 import java.nio.CharBuffer;
@@ -1077,7 +1079,7 @@
             }
 
             int styleMask = font.getStyle() |
-                sun.font.FontManager.getFont2D(font).getStyle();
+                FontUtilities.getFont2D(font).getStyle();
 
             String style = FontConfiguration.getStyleString(styleMask);
 
--- a/jdk/src/share/classes/sun/print/PathGraphics.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/print/PathGraphics.java	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,8 @@
 import sun.font.Font2D;
 import sun.font.Font2DHandle;
 import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
 
 import java.awt.Color;
 import java.awt.Font;
@@ -698,7 +700,7 @@
         }
 
         Font font = g.getFont();
-        Font2D font2D = FontManager.getFont2D(font);
+        Font2D font2D = FontUtilities.getFont2D(font);
         if (font2D.handle.font2D != font2D) {
             /* suspicious, may be a bad font. lets bail */
             return false;
@@ -933,7 +935,7 @@
          * The logic here is erring on the side of caution, in particular
          * in including supplementary characters.
          */
-        if (FontManager.isComplexText(chars, 0, chars.length)) {
+        if (FontUtilities.isComplexText(chars, 0, chars.length)) {
             return printGlyphVector(g, x, y);
         }
 
--- a/jdk/src/share/classes/sun/swing/SwingUtilities2.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/classes/sun/swing/SwingUtilities2.java	Wed Oct 07 14:15:01 2009 -0700
@@ -53,7 +53,7 @@
 import java.io.*;
 import java.util.*;
 import sun.font.FontDesignMetrics;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
 import sun.java2d.SunGraphicsEnvironment;
 
 import java.util.concurrent.Callable;
@@ -202,7 +202,7 @@
      *         <tt>false</tt> if TextLayout is not required
      */
     public static final boolean isComplexLayout(char[] text, int start, int limit) {
-        return FontManager.isComplexText(text, start, limit);
+        return FontUtilities.isComplexText(text, start, limit);
     }
 
     //
--- a/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -37,6 +37,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 AlternateSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
 {
     // NOTE: For now, we'll just pick the first alternative...
@@ -64,3 +66,5 @@
 
     return 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __ALTERNATESUBSTITUTIONSUBTABLES_H
 #define __ALTERNATESUBSTITUTIONSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 #include "OpenTypeTables.h"
 #include "GlyphSubstitutionTables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct AlternateSetTable
 {
     le_uint16 glyphCount;
@@ -52,4 +59,5 @@
     le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/AnchorTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AnchorTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "AnchorTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 void AnchorTable::getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstance,
                             LEPoint &anchor) const
 {
@@ -124,3 +126,6 @@
 
     fontInstance->pixelsToUnits(pixels, anchor);
 }
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/AnchorTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AnchorTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,10 +32,17 @@
 #ifndef __ANCHORTABLES_H
 #define __ANCHORTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct AnchorTable
 {
     le_uint16  anchorFormat;
@@ -66,5 +73,7 @@
     void getAnchor(const LEFontInstance *fontInstance, LEPoint &anchor) const;
 };
 
+U_NAMESPACE_END
+#endif
 
-#endif
+
--- a/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -49,23 +49,25 @@
 #include "ArabicShaping.h"
 #include "CanonShaping.h"
 
+U_NAMESPACE_BEGIN
+
 le_bool CharSubstitutionFilter::accept(LEGlyphID glyph) const
 {
     return fFontInstance->canDisplay((LEUnicode) glyph);
 }
 
-ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(
-    const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
-    le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ArabicOpenTypeLayoutEngine)
+
+ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                        le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
 {
     fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
     fFeatureOrder = TRUE;
 }
 
-ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(
-    const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                                                       le_int32 typoFlags)
     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
 {
     fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
@@ -86,9 +88,8 @@
 // Input: characters
 // Output: characters, char indices, tags
 // Returns: output character count
-le_int32 ArabicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
-    LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 ArabicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -124,8 +125,8 @@
     return count;
 }
 
-void ArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void ArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+                                                      LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -137,24 +138,20 @@
     }
 
     if (fGPOSTable != NULL) {
-        OpenTypeLayoutEngine::adjustGlyphPositions(chars, offset, count,
-            reverse, glyphStorage, success);
+        OpenTypeLayoutEngine::adjustGlyphPositions(chars, offset, count, reverse, glyphStorage, success);
     } else if (fGDEFTable != NULL) {
         GDEFMarkFilter filter(fGDEFTable);
 
         adjustMarkGlyphs(glyphStorage, &filter, success);
     } else {
-        GlyphDefinitionTableHeader *gdefTable =
-            (GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
+        GlyphDefinitionTableHeader *gdefTable = (GlyphDefinitionTableHeader *) CanonShaping::glyphDefinitionTable;
         GDEFMarkFilter filter(gdefTable);
 
         adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
     }
 }
 
-UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(
-    const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+UnicodeArabicOpenTypeLayoutEngine::UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
     : ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
 {
     fGSUBTable = (const GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
@@ -169,8 +166,7 @@
 }
 
 // "glyphs", "indices" -> glyphs, indices
-le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(
-    LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -193,17 +189,14 @@
 
     glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
 
-    ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE,
-        TRUE, glyphStorage, success);
+    ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE, TRUE, glyphStorage, success);
 
     LE_DELETE_ARRAY(tempChars);
 
     return tempGlyphCount;
 }
 
-void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_bool reverse, le_bool /*mirror*/,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool /*mirror*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -228,9 +221,8 @@
     }
 }
 
-void UnicodeArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_bool reverse,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void UnicodeArabicOpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+                                                      LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -245,3 +237,6 @@
 
     adjustMarkGlyphs(&chars[offset], count, reverse, glyphStorage, &filter, success);
 }
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -43,6 +43,8 @@
 #include "GlyphDefinitionTables.h"
 #include "GlyphPositioningTables.h"
 
+U_NAMESPACE_BEGIN
+
 /**
  * This class implements OpenType layout for Arabic fonts. It overrides
  * the characerProcessing method to assign the correct OpenType feature
@@ -71,8 +73,8 @@
      *
      * @internal
      */
-    ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-        le_int32 languageCode, le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+    ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                            le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
 
     /**
      * This constructor is used when the font requires a "canned" GSUB table which can't be known
@@ -87,8 +89,8 @@
      *
      * @internal
      */
-    ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-        le_int32 languageCode, le_int32 typoFlags);
+    ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                               le_int32 typoFlags);
 
     /**
      * The destructor, virtual for correct polymorphic invocation.
@@ -97,6 +99,20 @@
      */
     virtual ~ArabicOpenTypeLayoutEngine();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 protected:
 
     /**
@@ -108,8 +124,7 @@
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - <code>TRUE</code> if the characters are in a
-     *     right to left directional run
+     * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
      *
      * Output parameters:
      * @param outChars - the output character arrayt
@@ -121,9 +136,8 @@
      *
      * @internal
      */
-    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
-        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+            LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method applies the GPOS table if it is present, otherwise it ensures that all vowel
@@ -142,11 +156,9 @@
      *
      * @internal
      */
-    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
-    // static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
-    // le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    // static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
 };
 
@@ -178,8 +190,8 @@
      *
      * @internal
      */
-    UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-        le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+    UnicodeArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                le_int32 typoFlags);
 
     /**
      * The destructor, virtual for correct polymorphic invocation.
@@ -208,8 +220,7 @@
      *
      * @internal
      */
-    virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage,
-        LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method copies the input characters into the output glyph index array,
@@ -227,8 +238,7 @@
      *
      * @internal
      */
-    virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_bool reverse, le_bool mirror,
+    virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror,
         LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
@@ -245,8 +255,9 @@
      *
      * @internal
      */
-    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/ArabicShaping.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicShaping.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "LEGlyphStorage.h"
 #include "ClassDefinitionTables.h"
 
+U_NAMESPACE_BEGIN
+
 // This table maps Unicode joining types to
 // ShapeTypes.
 const ArabicShaping::ShapeType ArabicShaping::shapeTypes[] =
@@ -102,9 +104,7 @@
 #define markFeatureMask 0x00040000UL
 #define mkmkFeatureMask 0x00020000UL
 
-#define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | \
-    markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | \
-    dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
+#define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
 
 #define SHAPE_MASK 0xF0000000UL
 
@@ -226,3 +226,5 @@
         adjustTags(erout, 2, glyphStorage);
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ArabicShaping.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ArabicShaping.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __ARABICSHAPING_H
 #define __ARABICSHAPING_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
-class ArabicShaping {
+class ArabicShaping /* not : public UObject because all methods are static */ {
 public:
     // Joining types
     enum JoiningTypes
@@ -74,8 +81,8 @@
 
     typedef le_int32 ShapeType;
 
-    static void shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount,
-        le_int32 charMax, le_bool rightToLeft, LEGlyphStorage &glyphStorage);
+    static void shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
+                      le_bool rightToLeft, LEGlyphStorage &glyphStorage);
 
     static const FeatureMap *getFeatureMap(le_int32 &count);
 
@@ -88,8 +95,8 @@
     static const le_uint8 shapingTypeTable[];
     static const ShapeType shapeTypes[];
 
-    static void adjustTags(le_int32 outIndex, le_int32 shapeOffset,
-        LEGlyphStorage &glyphStorage);
+    static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage);
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/AttachmentPosnSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/AttachmentPosnSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __ATTACHMENTPOSITIONINGSUBTABLES_H
 #define __ATTACHMENTPOSITIONINGSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 #include "GlyphPositioningTables.h"
 #include "ValueRecords.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct AttachmentPositioningSubtable : GlyphPositioningSubtable
 {
     Offset    baseCoverageTableOffset;
@@ -55,4 +62,6 @@
     return getGlyphCoverage(baseCoverageTableOffset, baseGlyphID);
 }
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/CanonData.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CanonData.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -36,6 +36,8 @@
 #include "LETypes.h"
 #include "CanonShaping.h"
 
+U_NAMESPACE_BEGIN
+
 const le_uint8 CanonShaping::glyphSubstitutionTable[] = {
     0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x01, 0x58, 0x02, 0x86, 0x00, 0x12, 0x61, 0x72, 0x61, 0x62,
     0x00, 0x6E, 0x62, 0x65, 0x6E, 0x67, 0x00, 0x82, 0x63, 0x79, 0x72, 0x6C, 0x00, 0x8E, 0x64, 0x65,
@@ -3773,3 +3775,5 @@
     0x00, 0xDC, 0xD1, 0x85, 0xD1, 0x89, 0x00, 0xE6, 0xD1, 0x8A, 0xD1, 0x8B, 0x00, 0xDC, 0xD1, 0xAA,
     0xD1, 0xAD, 0x00, 0xE6, 0xD2, 0x42, 0xD2, 0x44, 0x00, 0xE6
 };
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CanonShaping.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CanonShaping.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,8 +35,9 @@
 #include "GlyphDefinitionTables.h"
 #include "ClassDefinitionTables.h"
 
-void CanonShaping::sortMarks(le_int32 *indices,
-    const le_int32 *combiningClasses, le_int32 index, le_int32 limit)
+U_NAMESPACE_BEGIN
+
+void CanonShaping::sortMarks(le_int32 *indices, const le_int32 *combiningClasses, le_int32 index, le_int32 limit)
 {
     for (le_int32 j = index + 1; j < limit; j += 1) {
         le_int32 i;
@@ -55,13 +56,11 @@
     }
 }
 
-void CanonShaping::reorderMarks(const LEUnicode *inChars, le_int32 charCount,
-    le_bool rightToLeft, LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+void CanonShaping::reorderMarks(const LEUnicode *inChars, le_int32 charCount, le_bool rightToLeft,
+                                LEUnicode *outChars, LEGlyphStorage &glyphStorage)
 {
-    const GlyphDefinitionTableHeader *gdefTable =
-        (const GlyphDefinitionTableHeader *) glyphDefinitionTable;
-    const ClassDefinitionTable *classTable =
-        gdefTable->getMarkAttachClassDefinitionTable();
+    const GlyphDefinitionTableHeader *gdefTable = (const GlyphDefinitionTableHeader *) glyphDefinitionTable;
+    const ClassDefinitionTable *classTable = gdefTable->getMarkAttachClassDefinitionTable();
     le_int32 *combiningClasses = LE_NEW_ARRAY(le_int32, charCount);
     le_int32 *indices = LE_NEW_ARRAY(le_int32, charCount);
     LEErrorCode status = LE_NO_ERROR;
@@ -103,3 +102,5 @@
     LE_DELETE_ARRAY(indices);
     LE_DELETE_ARRAY(combiningClasses);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CanonShaping.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CanonShaping.h	Wed Oct 07 14:15:01 2009 -0700
@@ -34,20 +34,22 @@
 
 #include "LETypes.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
-class CanonShaping
+class CanonShaping /* not : public UObject because all members are static */
 {
 public:
     static const le_uint8 glyphSubstitutionTable[];
     static const le_uint8 glyphDefinitionTable[];
 
-    static void reorderMarks(const LEUnicode *inChars, le_int32 charCount,
-        le_bool rightToLeft, LEUnicode *outChars, LEGlyphStorage &glyphStorage);
+    static void reorderMarks(const LEUnicode *inChars, le_int32 charCount, le_bool rightToLeft,
+                                   LEUnicode *outChars, LEGlyphStorage &glyphStorage);
 
 private:
-    static void sortMarks(le_int32 *indices, const le_int32 *combiningClasses,
-        le_int32 index, le_int32 limit);
+    static void sortMarks(le_int32 *indices, const le_int32 *combiningClasses, le_int32 index, le_int32 limit);
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/CharSubstitutionFilter.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CharSubstitutionFilter.h	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 
+U_NAMESPACE_BEGIN
+
 class LEFontInstance;
 
 /**
@@ -43,7 +45,7 @@
  *
  * @internal
  */
-class CharSubstitutionFilter : public LEGlyphFilter
+class CharSubstitutionFilter : public UMemory, public LEGlyphFilter
 {
 private:
     /**
@@ -98,4 +100,7 @@
     le_bool accept(LEGlyphID glyph) const;
 };
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "ClassDefinitionTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_int32 ClassDefinitionTable::getGlyphClass(LEGlyphID glyphID) const
 {
     switch(SWAPW(classFormat)) {
@@ -139,3 +141,5 @@
 
     return FALSE;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __CLASSDEFINITIONTABLES_H
 #define __CLASSDEFINITIONTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct ClassDefinitionTable
 {
     le_uint16 classFormat;
@@ -69,4 +76,5 @@
     le_bool hasGlyphClass(le_int32 glyphClass) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphInsertion.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphInsertion.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __CONTEXTUALGLYPHINSERTION_H
 #define __CONTEXTUALGLYPHINSERTION_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 #include "StateTables.h"
 #include "MorphTables.h"
 #include "MorphStateTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct ContextualGlyphInsertionHeader : MorphStateTableHeader
 {
 };
@@ -60,4 +67,5 @@
     ByteOffset markedInsertionListOffset;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -39,6 +39,10 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ContextualGlyphSubstitutionProcessor)
+
 ContextualGlyphSubstitutionProcessor::ContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
   : StateTableProcessor(morphSubtableHeader)
 {
@@ -57,8 +61,7 @@
     markGlyph = 0;
 }
 
-ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage,
-    le_int32 &currGlyph, EntryTableIndex index)
+ByteOffset ContextualGlyphSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
 {
     const ContextualGlyphSubstitutionStateEntry *entry = &entryTable[index];
     ByteOffset newState = SWAPW(entry->newStateOffset);
@@ -97,3 +100,5 @@
 void ContextualGlyphSubstitutionProcessor::endStateTable()
 {
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
 #define __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "StateTableProcessor.h"
 #include "ContextualGlyphSubstitution.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class ContextualGlyphSubstitutionProcessor : public StateTableProcessor
@@ -52,6 +59,20 @@
     ContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
     virtual ~ContextualGlyphSubstitutionProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
     ContextualGlyphSubstitutionProcessor();
 
@@ -62,6 +83,8 @@
     le_int32 markGlyph;
 
     const ContextualGlyphSubstitutionHeader *contextualGlyphSubstitutionHeader;
+
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstitution.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualGlyphSubstitution.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,11 +32,18 @@
 #ifndef __CONTEXTUALGLYPHSUBSTITUTION_H
 #define __CONTEXTUALGLYPHSUBSTITUTION_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 #include "StateTables.h"
 #include "MorphTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct ContextualGlyphSubstitutionHeader : MorphStateTableHeader
 {
     ByteOffset  substitutionTableOffset;
@@ -55,4 +62,5 @@
     WordOffset currOffset;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -39,6 +38,8 @@
 #include "CoverageTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 /*
     NOTE: This could be optimized somewhat by keeping track
     of the previous sequenceIndex in the loop and doing next()
@@ -350,7 +351,7 @@
 
 // NOTE: This could be a #define, but that seems to confuse
 // the Visual Studio .NET 2003 compiler on the calls to the
-// GlyphIterator constructor.  It somehow can't decide if
+// GlyphIterator constructor. It somehow can't decide if
 // emptyFeatureList matches an le_uint32 or an le_uint16...
 static const FeatureMask emptyFeatureList = 0x00000000UL;
 
@@ -542,3 +543,5 @@
 
     return 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,11 @@
 #ifndef __CONTEXTUALSUBSTITUTIONSUBTABLES_H
 #define __CONTEXTUALSUBSTITUTIONSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
 #include "GlyphIterator.h"
 #include "LookupProcessor.h"
 
+U_NAMESPACE_BEGIN
+
 struct SubstitutionLookupRecord
 {
     le_uint16  sequenceIndex;
@@ -218,4 +225,5 @@
     le_uint32  process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/CoverageTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CoverageTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "CoverageTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_int32 CoverageTable::getGlyphCoverage(LEGlyphID glyphID) const
 {
     switch(SWAPW(coverageFormat))
@@ -106,3 +108,5 @@
 
     return startCoverageIndex + (ttGlyphID - firstInRange);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CoverageTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CoverageTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __COVERAGETABLES_H
 #define __COVERAGETABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct CoverageTable
 {
     le_uint16 coverageFormat;
@@ -58,5 +65,5 @@
     le_int32 getGlyphCoverage(LEGlyphID glyphID) const;
 };
 
-
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -37,6 +37,8 @@
 #include "OpenTypeUtilities.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 CursiveAttachmentSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
 {
     LEGlyphID glyphID       = glyphIterator->getCurrGlyphID();
@@ -68,3 +70,5 @@
 
     return 1;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,10 +32,17 @@
 #ifndef __CURSIVEATTACHMENTSUBTABLES_H
 #define __CURSIVEATTACHMENTSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 #include "GlyphPositioningTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEFontInstance;
 class GlyphIterator;
 
@@ -53,4 +60,7 @@
     le_uint32  process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
 };
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/DefaultCharMapper.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/DefaultCharMapper.h	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -32,9 +31,16 @@
 #ifndef __DEFAULTCHARMAPPER_H
 #define __DEFAULTCHARMAPPER_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 
+U_NAMESPACE_BEGIN
+
 /**
  * This class is an instance of LECharMapper which
  * implements control character filtering and bidi
@@ -42,7 +48,7 @@
  *
  * @see LECharMapper
  */
-class DefaultCharMapper : public LECharMapper
+class DefaultCharMapper : public UMemory, public LECharMapper
 {
 private:
     le_bool fFilterControls;
@@ -77,4 +83,5 @@
     LEUnicode32 mapChar(LEUnicode32 ch) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/DeviceTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/DeviceTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
  *
  */
@@ -34,6 +35,8 @@
 #include "DeviceTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 const le_uint16 DeviceTable::fieldMasks[]    = {0x0003, 0x000F, 0x00FF};
 const le_uint16 DeviceTable::fieldSignBits[] = {0x0002, 0x0008, 0x0080};
 const le_uint16 DeviceTable::fieldBits[]     = {     2,      4,      8};
@@ -62,3 +65,5 @@
 
     return result;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/DeviceTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/DeviceTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -32,10 +33,15 @@
 #ifndef __DEVICETABLES_H
 #define __DEVICETABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
-#include "GlyphIterator.h"
-#include "GlyphPositionAdjustments.h"
+
+U_NAMESPACE_BEGIN
 
 struct DeviceTable
 {
@@ -52,5 +58,7 @@
     static const le_uint16 fieldBits[];
 };
 
+U_NAMESPACE_END
+#endif
 
-#endif
+
--- a/jdk/src/share/native/sun/font/layout/ExtensionSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ExtensionSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,7 +25,8 @@
 
 /*
  *
- * (C) Copyright IBM Corp. 2003 - All Rights Reserved
+ *
+ * (C) Copyright IBM Corp. 2002 - All Rights Reserved
  *
  */
 
@@ -37,6 +38,9 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+
 // FIXME: should look at the format too... maybe have a sub-class for it?
 le_uint32 ExtensionSubtable::process(const LookupProcessor *lookupProcessor, le_uint16 lookupType,
                                       GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
@@ -52,3 +56,5 @@
 
     return 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ExtensionSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ExtensionSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 2002-2003 - All Rights Reserved
  *
  */
@@ -32,12 +33,19 @@
 #ifndef __EXTENSIONSUBTABLES_H
 #define __EXTENSIONSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 #include "GlyphSubstitutionTables.h"
 #include "LookupProcessor.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct ExtensionSubtable //: GlyphSubstitutionSubtable
 {
     le_uint16 substFormat;
@@ -48,4 +56,5 @@
                       GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/Features.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Features.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
  *
  */
@@ -35,6 +36,8 @@
 #include "Features.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 const FeatureTable *FeatureListTable::getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const
 {
     if (featureIndex >= SWAPW(featureCount)) {
@@ -79,3 +82,5 @@
     return 0;
 #endif
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/Features.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Features.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __FEATURES_H
 #define __FEATURES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct FeatureRecord
 {
     ATag        featureTag;
@@ -53,9 +60,10 @@
     le_uint16           featureCount;
     FeatureRecord       featureRecordArray[ANY_NUMBER];
 
-    const FeatureTable *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const;
+    const FeatureTable  *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const;
 
     const FeatureTable *getFeatureTable(LETag featureTag) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -34,6 +34,8 @@
 #include "GDEFMarkFilter.h"
 #include "GlyphDefinitionTables.h"
 
+U_NAMESPACE_BEGIN
+
 GDEFMarkFilter::GDEFMarkFilter(const GlyphDefinitionTableHeader *gdefTable)
 {
     classDefTable = gdefTable->getGlyphClassDefinitionTable();
@@ -50,3 +52,5 @@
 
     return glyphClass == gcdMarkGlyph;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GDEFMarkFilter.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,11 +32,18 @@
 #ifndef __GDEFMARKFILTER__H
 #define __GDEFMARKFILTER__H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 #include "GlyphDefinitionTables.h"
 
-class GDEFMarkFilter : public LEGlyphFilter
+U_NAMESPACE_BEGIN
+
+class GDEFMarkFilter : public UMemory, public LEGlyphFilter
 {
 private:
     const GlyphClassDefinitionTable *classDefTable;
@@ -51,5 +58,5 @@
     virtual le_bool accept(LEGlyphID glyph) const;
 };
 
-
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -23,6 +23,7 @@
  *
  */
 
+
 /*
  *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -36,8 +37,11 @@
 
 #include "MorphTables.h"
 
-GXLayoutEngine::GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-    le_int32 languageCode, const MorphTableHeader *morphTable)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(GXLayoutEngine)
+
+GXLayoutEngine::GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable)
     : LayoutEngine(fontInstance, scriptCode, languageCode, 0), fMorphTable(morphTable)
 {
     // nothing else to do?
@@ -49,9 +53,7 @@
 }
 
 // apply 'mort' table
-le_int32 GXLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage,
-    LEErrorCode &success)
+le_int32 GXLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -74,9 +76,8 @@
 }
 
 // apply positional tables
-void GXLayoutEngine::adjustGlyphPositions(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_bool /*reverse*/,
-    LEGlyphStorage &/*glyphStorage*/, LEErrorCode &success)
+void GXLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool /*reverse*/,
+                                          LEGlyphStorage &/*glyphStorage*/, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -89,3 +90,5 @@
 
     // FIXME: no positional processing yet...
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GXLayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GXLayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -23,6 +23,7 @@
  *
  */
 
+
 /*
  *
  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
@@ -37,6 +38,8 @@
 
 #include "MorphTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEFontInstance;
 class LEGlyphStorage;
 
@@ -70,8 +73,7 @@
      *
      * @internal
      */
-    GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-        le_int32 languageCode, const MorphTableHeader *morphTable);
+    GXLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, const MorphTableHeader *morphTable);
 
     /**
      * The destructor, virtual for correct polymorphic invocation.
@@ -80,6 +82,20 @@
      */
     virtual ~GXLayoutEngine();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 protected:
 
     /**
@@ -99,10 +115,8 @@
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - <code>TRUE</code> if the text is in a
-     *    right to left directional run
-     * @param glyphStorage - the glyph storage object. The glyph
-     *    and char index arrays will be set.
+     * @param rightToLeft - <code>TRUE</code> if the text is in a right to left directional run
+     * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
      *
      * Output parameters:
      * @param success - set to an error code if the operation fails
@@ -111,8 +125,7 @@
      *
      * @internal
      */
-    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
+    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
         LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
@@ -120,16 +133,18 @@
      * 'kern', 'trak', 'bsln', 'opbd' and 'just' tables.
      *
      * Input parameters:
-     * @param glyphStorage - the object holding the glyph storage.
-     *     The positions will be updated as needed.
+     * @param glyphStorage - the object holding the glyph storage. The positions will be updated as needed.
      *
      * Output parameters:
      * @param success - set to an error code if the operation fails
      *
      * @internal
      */
-    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+                                      LEGlyphStorage &glyphStorage, LEErrorCode &success);
+
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -34,6 +34,8 @@
 #include "GlyphDefinitionTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 const GlyphClassDefinitionTable *GlyphDefinitionTableHeader::getGlyphClassDefinitionTable() const
 {
     return (const GlyphClassDefinitionTable *) ((char *) this + SWAPW(glyphClassDefOffset));
@@ -53,3 +55,5 @@
 {
     return (const MarkAttachClassDefinitionTable *) ((char *) this + SWAPW(MarkAttachClassDefOffset));
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphDefinitionTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,10 +32,17 @@
 #ifndef __GLYPHDEFINITIONTABLES_H
 #define __GLYPHDEFINITIONTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 #include "ClassDefinitionTables.h"
 
+U_NAMESPACE_BEGIN
+
 typedef ClassDefinitionTable GlyphClassDefinitionTable;
 
 enum GlyphClassDefinitions
@@ -110,4 +117,5 @@
     const MarkAttachClassDefinitionTable *getMarkAttachClassDefinitionTable() const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GlyphIterator.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphIterator.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,11 +38,10 @@
 #include "Lookups.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
 
-GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage,
-    GlyphPositionAdjustments *theGlyphPositionAdjustments,
-    le_bool rightToLeft, le_uint16 theLookupFlags, FeatureMask theFeatureMask,
-    const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader)
+GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
+                             FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader)
   : direction(1), position(-1), nextLimit(-1), prevLimit(-1),
     glyphStorage(theGlyphStorage), glyphPositionAdjustments(theGlyphPositionAdjustments),
     srcIndex(-1), destIndex(-1), lookupFlags(theLookupFlags), featureMask(theFeatureMask),
@@ -262,8 +261,8 @@
     glyphPositionAdjustments->setBaseOffset(position, baseOffset);
 }
 
-void GlyphIterator::adjustCurrGlyphPositionAdjustment(float xPlacementAdjust,
-    float yPlacementAdjust, float xAdvanceAdjust, float yAdvanceAdjust)
+void GlyphIterator::adjustCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
+                                                      float xAdvanceAdjust, float yAdvanceAdjust)
 {
     if (direction < 0) {
         if (position <= nextLimit || position >= prevLimit) {
@@ -281,8 +280,8 @@
     glyphPositionAdjustments->adjustYAdvance(position, yAdvanceAdjust);
 }
 
-void GlyphIterator::setCurrGlyphPositionAdjustment(float xPlacementAdjust,
-    float yPlacementAdjust, float xAdvanceAdjust, float yAdvanceAdjust)
+void GlyphIterator::setCurrGlyphPositionAdjustment(float xPlacementAdjust, float yPlacementAdjust,
+                                                      float xAdvanceAdjust, float yAdvanceAdjust)
 {
     if (direction < 0) {
         if (position <= nextLimit || position >= prevLimit) {
@@ -484,10 +483,11 @@
 
     do {
         newPosition -= direction;
-    } while (newPosition != prevLimit && glyphStorage[newPosition] != 0xFFFE &&
-        filterGlyph(newPosition));
+    } while (newPosition != prevLimit && glyphStorage[newPosition] != 0xFFFE && filterGlyph(newPosition));
 
     position = newPosition;
 
     return position != prevLimit;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphIterator.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphIterator.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,26 +32,24 @@
 #ifndef __GLYPHITERATOR_H
 #define __GLYPHITERATOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 #include "GlyphDefinitionTables.h"
 
-struct InsertionRecord
-{
-    InsertionRecord *next;
-    le_int32 position;
-    le_int32 count;
-    LEGlyphID glyphs[ANY_NUMBER];
-};
+U_NAMESPACE_BEGIN
 
 class LEGlyphStorage;
 class GlyphPositionAdjustments;
 
-class GlyphIterator {
+class GlyphIterator : public UMemory {
 public:
-    GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments,
-        le_bool rightToLeft, le_uint16 theLookupFlags, FeatureMask theFeatureMask,
-        const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
+    GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
+        FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
 
     GlyphIterator(GlyphIterator &that);
 
@@ -122,4 +120,5 @@
     GlyphIterator &operator=(const GlyphIterator &other); // forbid copying of this class
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GlyphLookupTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphLookupTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "GlyphLookupTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_bool GlyphLookupTableHeader::coversScript(LETag scriptTag) const
 {
     const ScriptListTable *scriptListTable = (const ScriptListTable *) ((char *)this + SWAPW(scriptListOffset));
@@ -51,3 +53,5 @@
     // Note: don't have to SWAPW langSysTable->featureCount to check for non-zero.
     return langSysTable != NULL && langSysTable->featureCount != 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphLookupTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphLookupTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __GLYPHLOOKUPTABLES_H
 #define __GLYPHLOOKUPTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct GlyphLookupTableHeader
 {
     fixed32 version;
@@ -46,4 +53,7 @@
     le_bool coversScriptAndLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const;
 };
 
+U_NAMESPACE_END
+
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -34,6 +34,8 @@
 #include "LEGlyphStorage.h"
 #include "LEFontInstance.h"
 
+U_NAMESPACE_BEGIN
+
 #define CHECK_ALLOCATE_ARRAY(array, type, size) \
     if (array == NULL) { \
         array = (type *) new type[size]; \
@@ -185,3 +187,5 @@
 
     return NULL;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositionAdjustments.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,16 +32,23 @@
 #ifndef __GLYPHPOSITIONADJUSTMENTS_H
 #define __GLYPHPOSITIONADJUSTMENTS_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 class LEFontInstance;
 
-class GlyphPositionAdjustments
+class GlyphPositionAdjustments : public UMemory
 {
 private:
-    class Adjustment {
+    class Adjustment : public UMemory {
     public:
 
         inline Adjustment();
@@ -78,7 +85,7 @@
         // allow copying of this class because all of its fields are simple types
     };
 
-    class EntryExitPoint
+    class EntryExitPoint : public UMemory
     {
     public:
         inline EntryExitPoint();
@@ -144,14 +151,11 @@
     inline void adjustXAdvance(le_int32 index, float xAdjustment);
     inline void adjustYAdvance(le_int32 index, float yAdjustment);
 
-    void setEntryPoint(le_int32 index, LEPoint &newEntryPoint,
-        le_bool baselineIsLogicalEnd);
-    void setExitPoint(le_int32 index, LEPoint &newExitPoint,
-        le_bool baselineIsLogicalEnd);
+    void setEntryPoint(le_int32 index, LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd);
+    void setExitPoint(le_int32 index, LEPoint &newExitPoint, le_bool baselineIsLogicalEnd);
     void setCursiveGlyph(le_int32 index, le_bool baselineIsLogicalEnd);
 
-    void applyCursiveAdjustments(LEGlyphStorage &glyphStorage, le_bool rightToLeft,
-        const LEFontInstance *fontInstance);
+    void applyCursiveAdjustments(LEGlyphStorage &glyphStorage, le_bool rightToLeft, const LEFontInstance *fontInstance);
 };
 
 inline GlyphPositionAdjustments::Adjustment::Adjustment()
@@ -160,10 +164,8 @@
     // nothing else to do!
 }
 
-inline GlyphPositionAdjustments::Adjustment::Adjustment(float xPlace, float yPlace,
-    float xAdv, float yAdv, le_int32 baseOff)
-  : xPlacement(xPlace), yPlacement(yPlace), xAdvance(xAdv), yAdvance(yAdv),
-    baseOffset(baseOff)
+inline GlyphPositionAdjustments::Adjustment::Adjustment(float xPlace, float yPlace, float xAdv, float yAdv, le_int32 baseOff)
+  : xPlacement(xPlace), yPlacement(yPlace), xAdvance(xAdv), yAdvance(yAdv), baseOffset(baseOff)
 {
     // nothing else to do!
 }
@@ -246,7 +248,7 @@
 inline GlyphPositionAdjustments::EntryExitPoint::EntryExitPoint()
     : fFlags(0)
 {
-    fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fEntryPoint.fY = 0;
+    fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fExitPoint.fY = 0;
 }
 
 inline GlyphPositionAdjustments::EntryExitPoint::~EntryExitPoint()
@@ -264,12 +266,10 @@
     return (fFlags & EEF_BASELINE_IS_LOGICAL_END) != 0;
 }
 
-inline void GlyphPositionAdjustments::EntryExitPoint::setEntryPoint(
-    LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd)
+inline void GlyphPositionAdjustments::EntryExitPoint::setEntryPoint(LEPoint &newEntryPoint, le_bool baselineIsLogicalEnd)
 {
     if (baselineIsLogicalEnd) {
-        fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH |
-        EEF_BASELINE_IS_LOGICAL_END);
+        fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
     } else {
         fFlags |= (EEF_HAS_ENTRY_POINT | EEF_IS_CURSIVE_GLYPH);
     }
@@ -277,12 +277,10 @@
     fEntryPoint = newEntryPoint;
 }
 
-inline void GlyphPositionAdjustments::EntryExitPoint::setExitPoint(
-    LEPoint &newExitPoint, le_bool baselineIsLogicalEnd)
+inline void GlyphPositionAdjustments::EntryExitPoint::setExitPoint(LEPoint &newExitPoint, le_bool baselineIsLogicalEnd)
 {
     if (baselineIsLogicalEnd) {
-        fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH |
-            EEF_BASELINE_IS_LOGICAL_END);
+        fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
     } else {
         fFlags |= (EEF_HAS_EXIT_POINT | EEF_IS_CURSIVE_GLYPH);
     }
@@ -290,8 +288,7 @@
     fExitPoint  = newExitPoint;
 }
 
-inline void GlyphPositionAdjustments::EntryExitPoint::setCursiveGlyph(
-    le_bool baselineIsLogicalEnd)
+inline void GlyphPositionAdjustments::EntryExitPoint::setCursiveGlyph(le_bool baselineIsLogicalEnd)
 {
     if (baselineIsLogicalEnd) {
         fFlags |= (EEF_IS_CURSIVE_GLYPH | EEF_BASELINE_IS_LOGICAL_END);
@@ -386,4 +383,5 @@
     return fEntryExitPoints != NULL;
 }
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -40,18 +39,18 @@
 #include "LEGlyphStorage.h"
 #include "GlyphPositionAdjustments.h"
 
-void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage,
-    GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft,
-    LETag scriptTag, LETag languageTag,
-    const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
-    const LEFontInstance *fontInstance,
-    const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
+U_NAMESPACE_BEGIN
+
+void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft,
+                                          LETag scriptTag, LETag languageTag,
+                                          const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
+                                          const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
 {
-    GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap,
-        featureMapCount, featureOrder);
+    GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap, featureMapCount, featureOrder);
 
-    processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft,
-                      glyphDefinitionTableHeader, fontInstance);
+    processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, glyphDefinitionTableHeader, fontInstance);
 
     glyphPositionAdjustments->applyCursiveAdjustments(glyphStorage, rightToLeft, fontInstance);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPositioningTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -32,11 +31,18 @@
 #ifndef __GLYPHPOSITIONINGTABLES_H
 #define __GLYPHPOSITIONINGTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 #include "Lookups.h"
 #include "GlyphLookupTables.h"
 
+U_NAMESPACE_BEGIN
+
 class  LEFontInstance;
 class  LEGlyphStorage;
 class  LEGlyphFilter;
@@ -45,12 +51,10 @@
 
 struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
 {
-    void    process(LEGlyphStorage &glyphStorage,
-                GlyphPositionAdjustments *glyphPositionAdjustments,
+    void    process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
                 le_bool rightToLeft, LETag scriptTag, LETag languageTag,
                 const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
-                const LEFontInstance *fontInstance,
-                const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
+                const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
 };
 
 enum GlyphPositioningSubtableTypes
@@ -68,4 +72,5 @@
 
 typedef LookupSubtable GlyphPositioningSubtable;
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
  *
  */
@@ -50,6 +49,8 @@
 #include "GlyphPosnLookupProc.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 // Aside from the names, the contextual positioning subtables are
 // the same as the contextual substitution subtables.
 typedef ContextualSubstitutionSubtable ContextualPositioningSubtable;
@@ -57,8 +58,7 @@
 
 GlyphPositioningLookupProcessor::GlyphPositioningLookupProcessor(
         const GlyphPositioningTableHeader *glyphPositioningTableHeader,
-        LETag scriptTag, LETag languageTag,
-        const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
+        LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
     : LookupProcessor(
                       (char *) glyphPositioningTableHeader,
                       SWAPW(glyphPositioningTableHeader->scriptListOffset),
@@ -166,3 +166,5 @@
 GlyphPositioningLookupProcessor::~GlyphPositioningLookupProcessor()
 {
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.h	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -32,6 +31,11 @@
 #ifndef __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
 #define __GLYPHPOSITIONINGLOOKUPPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -42,12 +46,13 @@
 #include "GlyphIterator.h"
 #include "LookupProcessor.h"
 
+U_NAMESPACE_BEGIN
+
 class GlyphPositioningLookupProcessor : public LookupProcessor
 {
 public:
     GlyphPositioningLookupProcessor(const GlyphPositioningTableHeader *glyphPositioningTableHeader,
-        LETag scriptTag, LETag languageTag,
-        const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
+        LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
 
     virtual ~GlyphPositioningLookupProcessor();
 
@@ -63,4 +68,5 @@
     GlyphPositioningLookupProcessor &operator=(const GlyphPositioningLookupProcessor &other); // forbid copying of this class
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -48,17 +48,17 @@
 #include "GlyphSubstLookupProc.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 GlyphSubstitutionLookupProcessor::GlyphSubstitutionLookupProcessor(
         const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
-        LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter,
-        const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
+        LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
     : LookupProcessor(
                       (char *) glyphSubstitutionTableHeader,
                       SWAPW(glyphSubstitutionTableHeader->scriptListOffset),
                       SWAPW(glyphSubstitutionTableHeader->featureListOffset),
                       SWAPW(glyphSubstitutionTableHeader->lookupListOffset),
-                      scriptTag, languageTag, featureMap, featureMapCount, featureOrder)
-    , fFilter(filter)
+                      scriptTag, languageTag, featureMap, featureMapCount, featureOrder), fFilter(filter)
 {
     // anything?
 }
@@ -143,3 +143,5 @@
 GlyphSubstitutionLookupProcessor::~GlyphSubstitutionLookupProcessor()
 {
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.h	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -32,6 +31,11 @@
 #ifndef __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
 #define __GLYPHSUBSTITUTIONLOOKUPPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 #include "LEFontInstance.h"
@@ -43,12 +47,13 @@
 #include "GlyphIterator.h"
 #include "LookupProcessor.h"
 
+U_NAMESPACE_BEGIN
+
 class GlyphSubstitutionLookupProcessor : public LookupProcessor
 {
 public:
     GlyphSubstitutionLookupProcessor(const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
-        LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter,
-        const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
+        LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
 
     virtual ~GlyphSubstitutionLookupProcessor();
 
@@ -65,4 +70,5 @@
     GlyphSubstitutionLookupProcessor &operator=(const GlyphSubstitutionLookupProcessor &other); // forbid copying of this class
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -40,14 +40,15 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
-le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage,
-    le_bool rightToLeft, LETag scriptTag, LETag languageTag,
-    const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
-    const LEGlyphFilter *filter, const FeatureMap *featureMap,
-    le_int32 featureMapCount, le_bool featureOrder) const
+U_NAMESPACE_BEGIN
+
+le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
+                                           const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
+                                           const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
 {
-    GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap,
-        featureMapCount, featureOrder);
+    GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap, featureMapCount, featureOrder);
 
     return processor.process(glyphStorage, NULL, rightToLeft, glyphDefinitionTableHeader, NULL);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/GlyphSubstitutionTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,22 +32,27 @@
 #ifndef __GLYPHSUBSTITUTIONTABLES_H
 #define __GLYPHSUBSTITUTIONTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 #include "Lookups.h"
 #include "GlyphLookupTables.h"
 
+U_NAMESPACE_BEGIN
+
 class  LEGlyphStorage;
 class  LEGlyphFilter;
 struct GlyphDefinitionTableHeader;
 
 struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader
 {
-    le_int32 process(LEGlyphStorage &glyphStorage,
-        le_bool rightToLeft, LETag scriptTag, LETag languageTag,
-        const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
-        const LEGlyphFilter *filter, const FeatureMap *featureMap,
-        le_int32 featureMapCount, le_bool featureOrder) const;
+    le_int32    process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
+                        const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEGlyphFilter *filter,
+                        const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
 };
 
 enum GlyphSubstitutionSubtableTypes
@@ -64,4 +69,5 @@
 
 typedef LookupSubtable GlyphSubstitutionSubtable;
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/HanLayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/HanLayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * HanLayoutEngine.cpp: OpenType processing for Han fonts.
  *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
@@ -41,6 +40,10 @@
 #include "LEGlyphStorage.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(HanOpenTypeLayoutEngine)
+
 #define loclFeatureTag LE_LOCL_FEATURE_TAG
 #define smplFeatureTag LE_SMPL_FEATURE_TAG
 #define tradFeatureTag LE_TRAD_FEATURE_TAG
@@ -60,9 +63,8 @@
 
 #define features (loclFeatureMask)
 
-HanOpenTypeLayoutEngine::HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode,  le_int32 languageCode, le_int32 typoFlags,
-    const GlyphSubstitutionTableHeader *gsubTable)
+HanOpenTypeLayoutEngine::HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                        le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
 {
     fFeatureMap      = featureMap;
@@ -74,9 +76,8 @@
     // nothing to do
 }
 
-le_int32 HanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
-    LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 HanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
+        LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -104,3 +105,5 @@
 
     return count;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/HanLayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/HanLayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -23,8 +23,8 @@
  *
  */
 
+
 /*
- *
  * HanLayoutEngine.h: OpenType processing for Han fonts.
  *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved.
@@ -40,6 +40,8 @@
 
 #include "GlyphSubstitutionTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 /**
@@ -69,9 +71,8 @@
      *
      * @internal
      */
-    HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-        le_int32 languageCode,
-        le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+    HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                            le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
 
 
     /**
@@ -81,6 +82,20 @@
      */
     virtual ~HanOpenTypeLayoutEngine();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 protected:
 
     /**
@@ -92,10 +107,8 @@
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - <code>TRUE</code> if the characters are in a
-     *    right to left directional run
-     * @param glyphStorage - the object holding the glyph storage. The char
-     *    index and auxillary data arrays will be set.
+     * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+     * @param glyphStorage - the object holding the glyph storage. The char index and auxillary data arrays will be set.
      *
      * Output parameters:
      * @param outChars - the output character arrayt
@@ -107,9 +120,10 @@
      *
      * @internal
      */
-    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
-        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+            LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/IndicClassTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicClassTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "OpenTypeUtilities.h"
 #include "IndicReordering.h"
 
+U_NAMESPACE_BEGIN
+
 // Split matra table indices
 #define _x1  (1 << CF_INDEX_SHIFT)
 #define _x2  (2 << CF_INDEX_SHIFT)
@@ -279,7 +281,7 @@
 
 static const IndicClassTable mlymClassTable = {0x0D00, 0x0D6F, 3, MLYM_SCRIPT_FLAGS, mlymCharClasses, mlymSplitTable};
 
-static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 3, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable};
+static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 4, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable};
 
 //
 // IndicClassTable addresses
@@ -385,3 +387,5 @@
 
     return classTable->getWorstCaseExpansion();
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -45,20 +45,20 @@
 
 #include "IndicReordering.h"
 
-IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
-    const GlyphSubstitutionTableHeader *gsubTable)
-    : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable),
-    fMPreFixups(NULL)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndicOpenTypeLayoutEngine)
+
+IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                    le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+    : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable), fMPreFixups(NULL)
 {
     fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
     fFeatureOrder = TRUE;
 }
 
-IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
-    : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags),
-    fMPreFixups(NULL)
+IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+    : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fMPreFixups(NULL)
 {
     fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
     fFeatureOrder = TRUE;
@@ -71,9 +71,8 @@
 
 // Input: characters, tags
 // Output: glyphs, char indices
-le_int32 IndicOpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 IndicOpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+                    LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -84,8 +83,7 @@
         return 0;
     }
 
-    le_int32 retCount = OpenTypeLayoutEngine::glyphProcessing(chars, offset, count, max,
-        rightToLeft, glyphStorage, success);
+    le_int32 retCount = OpenTypeLayoutEngine::glyphProcessing(chars, offset, count, max, rightToLeft, glyphStorage, success);
 
     if (LE_FAILURE(success)) {
         return 0;
@@ -99,9 +97,8 @@
 // Input: characters
 // Output: characters, char indices, tags
 // Returns: output character count
-le_int32 IndicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
-    LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 IndicOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -131,9 +128,10 @@
 
     // NOTE: assumes this allocates featureTags...
     // (probably better than doing the worst case stuff here...)
-    le_int32 outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode,
-        outChars, glyphStorage, &fMPreFixups);
+    le_int32 outCharCount = IndicReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage, &fMPreFixups);
+
     glyphStorage.adoptGlyphCount(outCharCount);
-
     return outCharCount;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicLayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -43,6 +43,8 @@
 #include "GlyphDefinitionTables.h"
 #include "GlyphPositioningTables.h"
 
+U_NAMESPACE_BEGIN
+
 class MPreFixups;
 class LEGlyphStorage;
 
@@ -77,9 +79,8 @@
      *
      * @internal
      */
-    IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-        le_int32 scriptCode, le_int32 languageCode,
-        le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+    IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                            le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
 
     /**
      * This constructor is used when the font requires a "canned" GSUB table which can't be known
@@ -94,8 +95,8 @@
      *
      * @internal
      */
-    IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-        le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+    IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                              le_int32 typoFlags);
 
     /**
      * The destructor, virtual for correct polymorphic invocation.
@@ -104,6 +105,20 @@
      */
    virtual ~IndicOpenTypeLayoutEngine();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 protected:
 
     /**
@@ -117,10 +132,9 @@
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - <code>TRUE</code> if the characters are in a
-     *    right to left directional run
-     * @param glyphStorage - the glyph storage object. The glyph and character
-     *    index arrays will be set. The auxillary data array will be set to the feature tags.
+     * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+     * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
+     *                       the auxillary data array will be set to the feature tags.
      *
      * Output parameters:
      * @param success - set to an error code if the operation fails
@@ -129,9 +143,8 @@
      *
      * @internal
      */
-    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
-        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+            LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method does character to glyph mapping, applies the GSUB table and applies
@@ -147,11 +160,9 @@
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - <code>TRUE</code> if the characters are in a
-     *    right to left directional run
+     * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
      * @param featureTags - the feature tag array
-     * @param glyphStorage - the glyph storage object. The glyph and char
-     *    index arrays will be set.
+     * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
      *
      * Output parameters:
      * @param success - set to an error code if the operation fails
@@ -163,12 +174,14 @@
      *
      * @internal
      */
-    virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage,
-        LEErrorCode &success);
+    virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+            LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
 private:
+
     MPreFixups *fMPreFixups;
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/IndicRearrangement.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicRearrangement.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __INDICREARRANGEMENT_H
 #define __INDICREARRANGEMENT_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 #include "StateTables.h"
 #include "MorphTables.h"
 #include "MorphStateTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct IndicRearrangementSubtableHeader : MorphStateTableHeader
 {
 };
@@ -78,4 +85,6 @@
 {
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -39,6 +39,10 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndicRearrangementProcessor)
+
 IndicRearrangementProcessor::IndicRearrangementProcessor(const MorphSubtableHeader *morphSubtableHeader)
   : StateTableProcessor(morphSubtableHeader)
 {
@@ -56,8 +60,7 @@
     lastGlyph = 0;
 }
 
-ByteOffset IndicRearrangementProcessor::processStateEntry(LEGlyphStorage &glyphStorage,
-    le_int32 &currGlyph, EntryTableIndex index)
+ByteOffset IndicRearrangementProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
 {
     const IndicRearrangementStateEntry *entry = &entryTable[index];
     ByteOffset newState = SWAPW(entry->newStateOffset);
@@ -416,3 +419,5 @@
         break;
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __INDICREARRANGEMENTPROCESSOR_H
 #define __INDICREARRANGEMENTPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "StateTableProcessor.h"
 #include "IndicRearrangement.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class IndicRearrangementProcessor : public StateTableProcessor
@@ -54,12 +61,28 @@
     IndicRearrangementProcessor(const MorphSubtableHeader *morphSubtableHeader);
     virtual ~IndicRearrangementProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 protected:
     le_int32 firstGlyph;
     le_int32 lastGlyph;
 
     const IndicRearrangementStateEntry *entryTable;
     const IndicRearrangementSubtableHeader *indicRearrangementSubtableHeader;
+
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/IndicReordering.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicReordering.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -36,6 +36,8 @@
 #include "LEGlyphStorage.h"
 #include "MPreFixups.h"
 
+U_NAMESPACE_BEGIN
+
 #define initFeatureTag LE_INIT_FEATURE_TAG
 #define nuktFeatureTag LE_NUKT_FEATURE_TAG
 #define akhnFeatureTag LE_AKHN_FEATURE_TAG
@@ -71,7 +73,7 @@
 #define distFeatureMask 0x00020000UL
 #define initFeatureMask 0x00010000UL
 
-class ReorderingOutput {
+class ReorderingOutput : public UMemory {
 private:
     le_int32   fOutIndex;
     LEUnicode *fOutChars;
@@ -187,8 +189,7 @@
         fOutIndex += 1;
     }
 
-    le_bool noteMatra(const IndicClassTable *classTable, LEUnicode matra, le_uint32 matraIndex,
-        FeatureMask matraFeatures, le_bool wordStart)
+    le_bool noteMatra(const IndicClassTable *classTable, LEUnicode matra, le_uint32 matraIndex, FeatureMask matraFeatures, le_bool wordStart)
     {
         IndicClassTable::CharClass matraClass = classTable->getCharClass(matra);
 
@@ -219,13 +220,12 @@
         return FALSE;
     }
 
-    void noteVowelModifier(const IndicClassTable *classTable, LEUnicode vowelModifier,
-        le_uint32 vowelModifierIndex, FeatureMask vowelModifierFeatures)
+    void noteVowelModifier(const IndicClassTable *classTable, LEUnicode vowelModifier, le_uint32 vowelModifierIndex, FeatureMask vowelModifierFeatures)
     {
         IndicClassTable::CharClass vmClass = classTable->getCharClass(vowelModifier);
 
         fVMIndex = vowelModifierIndex;
-        fVMFeatures = vowelModifierFeatures;
+        fVMFeatures  = vowelModifierFeatures;
 
         if (IndicClassTable::isVowelModifier(vmClass)) {
            switch (vmClass & CF_POS_MASK) {
@@ -244,13 +244,12 @@
         }
     }
 
-    void noteStressMark(const IndicClassTable *classTable, LEUnicode stressMark,
-        le_uint32 stressMarkIndex, FeatureMask stressMarkFeatures)
+    void noteStressMark(const IndicClassTable *classTable, LEUnicode stressMark, le_uint32 stressMarkIndex, FeatureMask stressMarkFeatures)
     {
        IndicClassTable::CharClass smClass = classTable->getCharClass(stressMark);
 
         fSMIndex = stressMarkIndex;
-        fSMFeatures = stressMarkFeatures;
+        fSMFeatures  = stressMarkFeatures;
 
         if (IndicClassTable::isStressMark(smClass)) {
             switch (smClass & CF_POS_MASK) {
@@ -360,9 +359,7 @@
 };
 
 // TODO: Find better names for these!
-#define tagArray4 (nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | \
-    blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | \
-    blwmFeatureMask | abvmFeatureMask | distFeatureMask)
+#define tagArray4 (nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | blwmFeatureMask | abvmFeatureMask | distFeatureMask)
 #define tagArray3 (pstfFeatureMask | tagArray4)
 #define tagArray2 (halfFeatureMask | tagArray3)
 #define tagArray1 (blwfFeatureMask | tagArray2)
@@ -415,8 +412,7 @@
     return featureMap;
 }
 
-le_int32 IndicReordering::findSyllable(const IndicClassTable *classTable,
-    const LEUnicode *chars, le_int32 prev, le_int32 charCount)
+le_int32 IndicReordering::findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
 {
     le_int32 cursor = prev;
     le_int8 state = 0;
@@ -752,3 +748,5 @@
         delete mpreFixups;
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/IndicReordering.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/IndicReordering.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __INDICREORDERING_H
 #define __INDICREORDERING_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 // Characters that get refered to by name...
 #define C_SIGN_ZWNJ           0x200C
 #define C_SIGN_ZWJ            0x200D
@@ -140,7 +147,7 @@
     static const IndicClassTable *getScriptClassTable(le_int32 scriptCode);
 };
 
-class IndicReordering {
+class IndicReordering /* not : public UObject because all methods are static */ {
 public:
     static le_int32 getWorstCaseExpansion(le_int32 scriptCode);
 
@@ -156,8 +163,7 @@
     // do not instantiate
     IndicReordering();
 
-    static le_int32 findSyllable(const IndicClassTable *classTable, const LEUnicode *chars,
-        le_int32 prev, le_int32 charCount);
+    static le_int32 findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
 
 };
 
@@ -305,4 +311,5 @@
     return hasBelowBaseForm(getCharClass(ch));
 }
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/KernTable.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KernTable.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 2004-2005 - All Rights Reserved
  *
  */
@@ -39,6 +40,8 @@
 
 #define DEBUG 0
 
+U_NAMESPACE_BEGIN
+
 struct PairInfo {
   le_uint32 key;   // sigh, MSVC compiler gags on union here
   le_int16  value; // fword, kern value in funits
@@ -191,6 +194,12 @@
     float adjust = 0;
     for (int i = 1, e = storage.getGlyphCount(); i < e; ++i) {
       key = key << 16 | (storage[i] & 0xffff);
+
+      // argh, to do a binary search, we need to have the pair list in sorted order
+      // but it is not in sorted order on win32 platforms because of the endianness difference
+      // so either I have to swap the element each time I examine it, or I have to swap
+      // all the elements ahead of time and store them in the font
+
       const PairInfo* p = pairs;
       const PairInfo* tp = (const PairInfo*)(p + rangeShift);
       if (key > tp->key) {
@@ -238,3 +247,6 @@
     storage.adjustPosition(storage.getGlyphCount(), adjust, 0, success);
   }
 }
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/KernTable.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KernTable.h	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 2004-2005 - All Rights Reserved
  *
  */
@@ -37,9 +38,12 @@
 #endif
 
 #include "LETypes.h"
+//#include "LEFontInstance.h"
+//#include "LEGlyphStorage.h"
 
 #include <stdio.h>
 
+U_NAMESPACE_BEGIN
 struct PairInfo;
 class  LEFontInstance;
 class  LEGlyphStorage;
@@ -67,4 +71,6 @@
   void process(LEGlyphStorage& storage);
 };
 
+U_NAMESPACE_END
+
 #endif
--- a/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -23,8 +23,8 @@
  *
  */
 
+
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  * This file is a modification of the ICU file IndicLayoutEngine.cpp
@@ -38,17 +38,20 @@
 #include "LEGlyphStorage.h"
 #include "KhmerReordering.h"
 
-KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
-    const GlyphSubstitutionTableHeader *gsubTable)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(KhmerOpenTypeLayoutEngine)
+
+KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                    le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
 {
     fFeatureMap   = KhmerReordering::getFeatureMap(fFeatureMapCount);
     fFeatureOrder = TRUE;
 }
 
-KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                                                     le_int32 typoFlags)
     : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
 {
     fFeatureMap   = KhmerReordering::getFeatureMap(fFeatureMapCount);
@@ -63,16 +66,14 @@
 // Input: characters
 // Output: characters, char indices, tags
 // Returns: output character count
-le_int32 KhmerOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
-    LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 KhmerOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
     }
 
-    if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
-        offset >= max || offset + count > max) {
+    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
         success = LE_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
@@ -96,9 +97,10 @@
 
     // NOTE: assumes this allocates featureTags...
     // (probably better than doing the worst case stuff here...)
-    le_int32 outCharCount = KhmerReordering::reorder(&chars[offset], count,
-        fScriptCode, outChars, glyphStorage);
+    le_int32 outCharCount = KhmerReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage);
 
     glyphStorage.adoptGlyphCount(outCharCount);
     return outCharCount;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerLayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -23,6 +23,7 @@
  *
  */
 
+
 /*
  *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -45,19 +46,18 @@
 // #include "GlyphDefinitionTables.h"
 // #include "GlyphPositioningTables.h"
 
+U_NAMESPACE_BEGIN
+
 // class MPreFixups;
 // class LEGlyphStorage;
 
 /**
  * This class implements OpenType layout for Khmer OpenType fonts, as
- * specified by Microsoft in "Creating and Supporting OpenType Fonts
- * for Khmer Scripts"
- * (http://www.microsoft.com/typography/otspec/indicot/default.htm)
- * TODO: change url
+ * specified by Microsoft in "Creating and Supporting OpenType Fonts for
+ * Khmer Scripts" (http://www.microsoft.com/typography/otspec/indicot/default.htm) TODO: change url
  *
- * This class overrides the characterProcessing method to do Khmer
- * character processing and reordering (See the MS spec. for more
- * details)
+ * This class overrides the characterProcessing method to do Khmer character processing
+ * and reordering (See the MS spec. for more details)
  *
  * @internal
  */
@@ -65,11 +65,10 @@
 {
 public:
     /**
-     * This is the main constructor. It constructs an instance of
-     * KhmerOpenTypeLayoutEngine for a particular font, script and
-     * language. It takes the GSUB table as a parameter since
-     * LayoutEngine::layoutEngineFactory has to read the GSUB table to
-     * know that it has an Khmer OpenType font.
+     * This is the main constructor. It constructs an instance of KhmerOpenTypeLayoutEngine for
+     * a particular font, script and language. It takes the GSUB table as a parameter since
+     * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
+     * Khmer OpenType font.
      *
      * @param fontInstance - the font
      * @param scriptCode - the script
@@ -82,14 +81,12 @@
      *
      * @internal
      */
-    KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-        le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
-        const GlyphSubstitutionTableHeader *gsubTable);
+    KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                            le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
 
     /**
-     * This constructor is used when the font requires a "canned" GSUB
-     * table which can't be known until after this constructor has
-     * been invoked.
+     * This constructor is used when the font requires a "canned" GSUB table which can't be known
+     * until after this constructor has been invoked.
      *
      * @param fontInstance - the font
      * @param scriptCode - the script
@@ -100,8 +97,8 @@
      *
      * @internal
      */
-    KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-        le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+    KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                              le_int32 typoFlags);
 
     /**
      * The destructor, virtual for correct polymorphic invocation.
@@ -110,25 +107,35 @@
      */
    virtual ~KhmerOpenTypeLayoutEngine();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 protected:
 
     /**
-     * This method does Khmer OpenType character processing. It
-     * assigns the OpenType feature tags to the characters, and may
-     * generate output characters which have been reordered.  It may
-     * also split some vowels, resulting in more output characters
-     * than input characters.
+     * This method does Khmer OpenType character processing. It assigns the OpenType feature
+     * tags to the characters, and may generate output characters which have been reordered.
+     * It may also split some vowels, resulting in more output characters than input characters.
      *
      * Input parameters:
      * @param chars - the input character context
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - <code>TRUE</code> if the characters are in
-     * a right to left directional run
-     * @param glyphStorage - the glyph storage object. The glyph and
-     * character index arrays will be set.  the auxillary data array
-     * will be set to the feature tags.
+     * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+     * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
+     *                       the auxillary data array will be set to the feature tags.
      *
      * Output parameters:
      * @param success - set to an error code if the operation fails
@@ -137,9 +144,11 @@
      *
      * @internal
      */
-    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
-        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+            LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/KhmerReordering.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerReordering.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -37,6 +37,9 @@
 #include "KhmerReordering.h"
 #include "LEGlyphStorage.h"
 
+
+U_NAMESPACE_BEGIN
+
 // Characters that get refered to by name...
 enum
 {
@@ -53,35 +56,23 @@
 
 enum
 {
-    // simple classes, they are used in the statetable (in this file)
-    // to control the length of a syllable they are also used to know
-    // where a character should be placed (location in reference to
-    // the base character) and also to know if a character, when
-    // independtly displayed, should be displayed with a dotted-circle
-    // to indicate error in syllable construction
-
+    // simple classes, they are used in the statetable (in this file) to control the length of a syllable
+    // they are also used to know where a character should be placed (location in reference to the base character)
+    // and also to know if a character, when independtly displayed, should be displayed with a dotted-circle to
+    // indicate error in syllable construction
     _xx = KhmerClassTable::CC_RESERVED,
-    _sa = KhmerClassTable::CC_SIGN_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE
-          | KhmerClassTable::CF_POS_ABOVE,
-    _sp = KhmerClassTable::CC_SIGN_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE
-          | KhmerClassTable::CF_POS_AFTER,
+    _sa = KhmerClassTable::CC_SIGN_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_POS_ABOVE,
+    _sp = KhmerClassTable::CC_SIGN_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE| KhmerClassTable::CF_POS_AFTER,
     _c1 = KhmerClassTable::CC_CONSONANT | KhmerClassTable::CF_CONSONANT,
     _c2 = KhmerClassTable::CC_CONSONANT2 | KhmerClassTable::CF_CONSONANT,
     _c3 = KhmerClassTable::CC_CONSONANT3 | KhmerClassTable::CF_CONSONANT,
-    _rb = KhmerClassTable::CC_ROBAT | KhmerClassTable::CF_POS_ABOVE
-          | KhmerClassTable::CF_DOTTED_CIRCLE,
-    _cs = KhmerClassTable::CC_CONSONANT_SHIFTER | KhmerClassTable::CF_DOTTED_CIRCLE
-          | KhmerClassTable::CF_SHIFTER,
-    _dl = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BEFORE
-          | KhmerClassTable::CF_DOTTED_CIRCLE,
-    _db = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BELOW
-          | KhmerClassTable::CF_DOTTED_CIRCLE,
-    _da = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_ABOVE
-          | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_ABOVE_VOWEL,
-    _dr = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_AFTER
-          | KhmerClassTable::CF_DOTTED_CIRCLE,
-    _co = KhmerClassTable::CC_COENG | KhmerClassTable::CF_COENG
-          | KhmerClassTable::CF_DOTTED_CIRCLE,
+    _rb = KhmerClassTable::CC_ROBAT | KhmerClassTable::CF_POS_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE,
+    _cs = KhmerClassTable::CC_CONSONANT_SHIFTER | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_SHIFTER,
+    _dl = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BEFORE | KhmerClassTable::CF_DOTTED_CIRCLE,
+    _db = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_BELOW | KhmerClassTable::CF_DOTTED_CIRCLE,
+    _da = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_ABOVE | KhmerClassTable::CF_DOTTED_CIRCLE | KhmerClassTable::CF_ABOVE_VOWEL,
+    _dr = KhmerClassTable::CC_DEPENDENT_VOWEL | KhmerClassTable::CF_POS_AFTER | KhmerClassTable::CF_DOTTED_CIRCLE,
+    _co = KhmerClassTable::CC_COENG | KhmerClassTable::CF_COENG | KhmerClassTable::CF_DOTTED_CIRCLE,
 
     // split vowel
     _va = _da | KhmerClassTable::CF_SPLIT_VOWEL,
@@ -90,13 +81,10 @@
 
 
 // Character class tables
-
-// _xx character does not combine into syllable, such as numbers,
-//     puntuation marks, non-Khmer signs...
+// _xx character does not combine into syllable, such as numbers, puntuation marks, non-Khmer signs...
 // _sa Sign placed above the base
 // _sp Sign placed after the base
-// _c1 Consonant of type 1 or independent vowel (independent vowels
-//     behave as type 1 consonants)
+// _c1 Consonant of type 1 or independent vowel (independent vowels behave as type 1 consonants)
 // _c2 Consonant of type 2 (only RO)
 // _c3 Consonant of type 3
 // _rb Khmer sign robat u17CC. combining mark for subscript consonants
@@ -105,13 +93,10 @@
 // _db Dependent vowel placed below the base
 // _da Dependent vowel placed above the base
 // _dr Dependent vowel placed behind the base (right of the base)
-// _co Khmer combining mark COENG u17D2, combines with the consonant
-//     or independent vowel following it to create a subscript consonant
-//     or independent vowel
-// _va Khmer split vowel in wich the first part is before the base and
-//     the second one above the base
-// _vr Khmer split vowel in wich the first part is before the base and
-//     the second one behind (right of) the base
+// _co Khmer combining mark COENG u17D2, combines with the consonant or independent vowel following
+//     it to create a subscript consonant or independent vowel
+// _va Khmer split vowel in wich the first part is before the base and the second one above the base
+// _vr Khmer split vowel in wich the first part is before the base and the second one behind (right of) the base
 
 static const KhmerClassTable::CharClass khmerCharClasses[] =
 {
@@ -129,19 +114,19 @@
 //
 
 //
-// The range of characters defined in the above table is defined
-// here. FOr Khmer 1780 to 17DF Even if the Khmer range is bigger, all
-// other characters are not combinable, and therefore treated as _xx
+// The range of characters defined in the above table is defined here. FOr Khmer 1780 to 17DF
+// Even if the Khmer range is bigger, all other characters are not combinable, and therefore treated
+// as _xx
 static const KhmerClassTable khmerClassTable = {0x1780, 0x17df, khmerCharClasses};
 
 
-// Below we define how a character in the input string is either in
-// the khmerCharClasses table (in which case we get its type back), a
-// ZWJ or ZWNJ (two characters that may appear within the syllable,
-// but are not in the table) we also get their type back, or an
-// unknown object in which case we get _xx (CC_RESERVED) back
+// Below we define how a character in the input string is either in the khmerCharClasses table
+// (in which case we get its type back), a ZWJ or ZWNJ (two characters that may appear
+// within the syllable, but are not in the table) we also get their type back, or an unknown object
+// in which case we get _xx (CC_RESERVED) back
 KhmerClassTable::CharClass KhmerClassTable::getCharClass(LEUnicode ch) const
 {
+
     if (ch == C_SIGN_ZWJ) {
         return CC_ZERO_WIDTH_J_MARK;
     }
@@ -164,13 +149,14 @@
 
 
 
-class ReorderingOutput {
+class ReorderingOutput : public UMemory {
 private:
     le_int32 fOutIndex;
     LEUnicode *fOutChars;
 
     LEGlyphStorage &fGlyphStorage;
 
+
 public:
     ReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage)
         : fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage)
@@ -232,18 +218,11 @@
 #define abvmFeatureMask 0x00100000UL
 #define mkmkFeatureMask 0x00080000UL
 
-#define tagPref    (prefFeatureMask | presFeatureMask | \
-    cligFeatureMask | distFeatureMask)
-#define tagAbvf    (abvfFeatureMask | abvsFeatureMask | \
-    cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
-#define tagPstf    (blwfFeatureMask | blwsFeatureMask | prefFeatureMask | \
-    presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | \
-    distFeatureMask | blwmFeatureMask)
-#define tagBlwf    (blwfFeatureMask | blwsFeatureMask | cligFeatureMask | \
-    distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
-#define tagDefault (prefFeatureMask | blwfFeatureMask | presFeatureMask | \
-    blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | \
-    blwmFeatureMask | mkmkFeatureMask)
+#define tagPref    (prefFeatureMask | presFeatureMask | cligFeatureMask | distFeatureMask)
+#define tagAbvf    (abvfFeatureMask | abvsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
+#define tagPstf    (blwfFeatureMask | blwsFeatureMask | prefFeatureMask | presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask)
+#define tagBlwf    (blwfFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
+#define tagDefault (prefFeatureMask | blwfFeatureMask | presFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | blwmFeatureMask | mkmkFeatureMask)
 
 
 
@@ -274,35 +253,32 @@
 // The stateTable is used to calculate the end (the length) of a well
 // formed Khmer Syllable.
 //
-// Each horizontal line is ordered exactly the same way as the values
-// in KhmerClassTable CharClassValues in KhmerReordering.h This
-// coincidence of values allows the follow up of the table.
+// Each horizontal line is ordered exactly the same way as the values in KhmerClassTable
+// CharClassValues in KhmerReordering.h This coincidence of values allows the
+// follow up of the table.
 //
-// Each line corresponds to a state, which does not necessarily need
-// to be a type of component... for example, state 2 is a base, with
-// is always a first character in the syllable, but the state could be
-// produced a consonant of any type when it is the first character
-// that is analysed (in ground state).
+// Each line corresponds to a state, which does not necessarily need to be a type
+// of component... for example, state 2 is a base, with is always a first character
+// in the syllable, but the state could be produced a consonant of any type when
+// it is the first character that is analysed (in ground state).
 //
 // Differentiating 3 types of consonants is necessary in order to
 // forbid the use of certain combinations, such as having a second
-// coeng after a coeng RO.
-// The inexistent possibility of having a type 3 after another type 3
-// is permitted, eliminating it would very much complicate the table,
-// and it does not create typing problems, as the case above.
+// coeng after a coeng RO,
+// The inexistent possibility of having a type 3 after another type 3 is permitted,
+// eliminating it would very much complicate the table, and it does not create typing
+// problems, as the case above.
 //
-// The table is quite complex, in order to limit the number of coeng
-// consonants to 2 (by means of the table).
+// The table is quite complex, in order to limit the number of coeng consonants
+// to 2 (by means of the table).
 //
 // There a peculiarity, as far as Unicode is concerned:
 // - The consonant-shifter is considered in two possible different
-//   locations, the one considered in Unicode 3.0 and the one considered
-//   in Unicode 4.0. (there is a backwards compatibility problem in this
-//   standard).
+//   locations, the one considered in Unicode 3.0 and the one considered in
+//   Unicode 4.0. (there is a backwards compatibility problem in this standard).
 
 
-// xx    independent character, such as a number, punctuation sign or
-//       non-khmer char
+// xx    independent character, such as a number, punctuation sign or non-khmer char
 //
 // c1    Khmer consonant of type 1 or an independent vowel
 //       that is, a letter in which the subscript for is only under the
@@ -320,10 +296,9 @@
 //
 // co    coeng character (u17D2)
 //
-// dv    dependent vowel (including split vowels, they are treated in the
-//       same way).  even if dv is not defined above, the component that is
-//       really tested for is KhmerClassTable::CC_DEPENDENT_VOWEL, which is
-//       common to all dependent vowels
+// dv    dependent vowel (including split vowels, they are treated in the same way).
+//       even if dv is not defined above, the component that is really tested for is
+//       KhmerClassTable::CC_DEPENDENT_VOWEL, which is common to all dependent vowels
 //
 // zwj   Zero Width joiner
 //
@@ -352,8 +327,7 @@
     {-1, -1, -1, -1, 12, 13, -1, -1, 16, 17,  1, 14}, //  8 - First consonant of type 2 after coeng
     {-1, -1, -1, -1, 12, 13, -1, 10, 16, 17,  1, 14}, //  9 - First consonant or type 3 after ceong
     {-1, 11, 11, 11, -1, -1, -1, -1, -1, -1, -1, -1}, // 10 - Second Coeng (no register shifter before)
-    {-1, -1, -1, -1, 15, -1, -1, -1, 16, 17,  1, 14}, // 11 - Second coeng consonant
-                                                      //      (or ind. vowel) no register shifter before
+    {-1, -1, -1, -1, 15, -1, -1, -1, 16, 17,  1, 14}, // 11 - Second coeng consonant (or ind. vowel) no register shifter before
     {-1, -1,  1, -1, -1, 13, -1, -1, 16, -1, -1, -1}, // 12 - Second ZWNJ before a register shifter
     {-1, -1, -1, -1, 15, -1, -1, -1, 16, 17,  1, 14}, // 13 - Second register shifter
     {-1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1}, // 14 - ZWJ before vowel
@@ -363,6 +337,7 @@
     {-1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1}, // 18 - ZWJ after vowel
     {-1,  1, -1,  1, -1, -1, -1, -1, -1, -1, -1, -1}, // 19 - Third coeng
     {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1, -1}, // 20 - dependent vowel after a Robat
+
 };
 
 
@@ -377,15 +352,13 @@
 // Given an input string of characters and a location in which to start looking
 // calculate, using the state table, which one is the last character of the syllable
 // that starts in the starting position.
-le_int32 KhmerReordering::findSyllable(const KhmerClassTable *classTable,
-    const LEUnicode *chars, le_int32 prev, le_int32 charCount)
+le_int32 KhmerReordering::findSyllable(const KhmerClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
 {
     le_int32 cursor = prev;
     le_int8 state = 0;
 
     while (cursor < charCount) {
-        KhmerClassTable::CharClass charClass = (classTable->getCharClass(chars[cursor])
-            & KhmerClassTable::CF_CLASS_MASK);
+        KhmerClassTable::CharClass charClass = (classTable->getCharClass(chars[cursor]) & KhmerClassTable::CF_CLASS_MASK);
 
         state = khmerStateTable[state][charClass];
 
@@ -402,8 +375,8 @@
 
 // This is the real reordering function as applied to the Khmer language
 
-le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount,
-    le_int32 /*scriptCode*/, LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le_int32 /*scriptCode*/,
+                                  LEUnicode *outChars, LEGlyphStorage &glyphStorage)
 {
     const KhmerClassTable *classTable = KhmerClassTable::getKhmerClassTable();
 
@@ -442,8 +415,7 @@
             // and because CC_CONSONANT2 is enough to identify it, as it is the only consonant
             // with this flag
             if ( (charClass & KhmerClassTable::CF_COENG) && (i + 1 < syllable) &&
-                 ( (classTable->getCharClass(chars[i + 1]) &
-                    KhmerClassTable::CF_CLASS_MASK) == KhmerClassTable::CC_CONSONANT2) )
+                 ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK) == KhmerClassTable::CC_CONSONANT2) )
             {
                     coengRo = i;
             }
@@ -455,16 +427,15 @@
             output.writeChar(C_RO, coengRo + 1, tagPref);
         }
 
-        // shall we add a dotted circle?  If in the position in which
-        // the base should be (first char in the string) there is a
-        // character that has the Dotted circle flag (a character that
-        // cannot be a base) then write a dotted circle
+        // shall we add a dotted circle?
+        // If in the position in which the base should be (first char in the string) there is
+        // a character that has the Dotted circle flag (a character that cannot be a base)
+        // then write a dotted circle
         if (classTable->getCharClass(chars[prev]) & KhmerClassTable::CF_DOTTED_CIRCLE) {
             output.writeChar(C_DOTTED_CIRCLE, prev, tagDefault);
         }
 
-        // copy what is left to the output, skipping before vowels and
-        // coeng Ro if they are present
+        // copy what is left to the output, skipping before vowels and coeng Ro if they are present
         for (i = prev; i < syllable; i += 1) {
             charClass = classTable->getCharClass(chars[i]);
 
@@ -515,30 +486,14 @@
                     // and there is an extra rule for C_VOWEL_AA + C_SIGN_NIKAHIT also for two
                     // different positions, right after the shifter or after a vowel (Unicode 4)
                     if ( (charClass & KhmerClassTable::CF_SHIFTER) && (i + 1 < syllable) ) {
-                        if (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_ABOVE_VOWEL ) {
-                            output.writeChar(chars[i], i, tagBlwf);
-                            break;
-                        }
-                        if (i + 2 < syllable &&
-                            ( (classTable->getCharClass(chars[i + 1]) &
-                               KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA) &&
-                            ( (classTable->getCharClass(chars[i + 2]) &
-                               KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) )
-                        {
-                            output.writeChar(chars[i], i, tagBlwf);
-                            break;
-                        }
-                        if (i + 3 < syllable && (classTable->getCharClass(chars[i + 3]) &
-                            KhmerClassTable::CF_ABOVE_VOWEL) )
-                        {
-                            output.writeChar(chars[i], i, tagBlwf);
-                            break;
-                        }
-                        if (i + 4 < syllable &&
-                            ( (classTable->getCharClass(chars[i + 3]) &
-                               KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA) &&
-                            ( (classTable->getCharClass(chars[i + 4]) &
-                               KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) )
+                        if ((classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_ABOVE_VOWEL)
+                            || (i + 2 < syllable
+                                && ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA)
+                                && ( (classTable->getCharClass(chars[i + 2]) & KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT))
+                            || (i + 3 < syllable && (classTable->getCharClass(chars[i + 3]) & KhmerClassTable::CF_ABOVE_VOWEL))
+                            || (i + 4 < syllable
+                                && ( (classTable->getCharClass(chars[i + 3]) & KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA)
+                                && ( (classTable->getCharClass(chars[i + 4]) & KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) ) )
                         {
                             output.writeChar(chars[i], i, tagBlwf);
                             break;
@@ -556,3 +511,6 @@
 
     return output.getOutputIndex();
 }
+
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/KhmerReordering.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/KhmerReordering.h	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  * This file is a modification of the ICU file IndicReordering.h
@@ -35,80 +34,60 @@
 #ifndef __KHMERREORDERING_H
 #define __KHMERREORDERING_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 // Vocabulary
-
-// Base ->
-//     A consonant or an independent vowel in its full (not
-//     subscript) form. It is the center of the syllable, it can be
-//     souranded by coeng (subscript) consonants, vowels, split
-//     vowels, signs... but there is only one base in a syllable, it
-//     has to be coded as the first character of the syllable.
-// split vowel ->
-//     vowel that has two parts placed separately (e.g. Before and
-//     after the consonant).  Khmer language has five of them. Khmer
-//     split vowels either have one part before the base and one after
-//     the base or they have a part before the base and a part above
-//     the base.  The first part of all Khmer split vowels is the same
-//     character, identical to the glyph of Khmer dependent vowel SRA
-//     EI
-// coeng ->
-//     modifier used in Khmer to construct coeng (subscript)
-//     consonants differently than indian languages, the coeng
-//     modifies the consonant that follows it, not the one preceding
-//     it Each consonant has two forms, the base form and the
-//     subscript form the base form is the normal one (using the
-//     consonants code-point), the subscript form is displayed when
-//     the combination coeng + consonant is encountered.
-// Consonant of type 1 ->
-//     A consonant which has subscript for that only occupies space
-//     under a base consonant
-// Consonant of type 2 ->
-//     Its subscript form occupies space under and before the base
-//     (only one, RO)
-// Consonant of Type 3 ->
-//     Its subscript form occupies space under and after the base
-//     (KHO, CHHO, THHO, BA, YO, SA)
-// Consonant shifter ->
-//     Khmer has to series of consonants. The same dependent vowel has
-//     different sounds if it is attached to a consonant of the first
-//     series or a consonant of the second series Most consonants have
-//     an equivalent in the other series, but some of theme exist only
-//     in one series (for example SA). If we want to use the consonant
-//     SA with a vowel sound that can only be done with a vowel sound
-//     that corresponds to a vowel accompanying a consonant of the
-//     other series, then we need to use a consonant shifter: TRIISAP
-//     or MUSIKATOAN x17C9 y x17CA. TRIISAP changes a first series
-//     consonant to second series sound and MUSIKATOAN a second series
-//     consonant to have a first series vowel sound.  Consonant
-//     shifter are both normally supercript marks, but, when they are
-//     followed by a superscript, they change shape and take the form
-//     of subscript dependent vowel SRA U.  If they are in the same
-//     syllable as a coeng consonant, Unicode 3.0 says that they
-//     should be typed before the coeng. Unicode 4.0 breaks the
-//     standard and says that it should be placed after the coeng
-//     consonant.
-// Dependent vowel ->
-//     In khmer dependent vowels can be placed above, below, before or
-//     after the base Each vowel has its own position. Only one vowel
-//     per syllable is allowed.
-// Signs ->
-//     Khmer has above signs and post signs. Only one above sign
-//     and/or one post sign are Allowed in a syllable.
+//     Base ->         A consonant or an independent vowel in its full (not subscript) form. It is the
+//                     center of the syllable, it can be souranded by coeng (subscript) consonants, vowels,
+//                     split vowels, signs... but there is only one base in a syllable, it has to be coded as
+//                     the first character of the syllable.
+//     split vowel --> vowel that has two parts placed separately (e.g. Before and after the consonant).
+//                     Khmer language has five of them. Khmer split vowels either have one part before the
+//                     base and one after the base or they have a part before the base and a part above the base.
+//                     The first part of all Khmer split vowels is the same character, identical to
+//                     the glyph of Khmer dependent vowel SRA EI
+//     coeng -->  modifier used in Khmer to construct coeng (subscript) consonants
+//                Differently than indian languages, the coeng modifies the consonant that follows it,
+//                not the one preceding it  Each consonant has two forms, the base form and the subscript form
+//                the base form is the normal one (using the consonants code-point), the subscript form is
+//                displayed when the combination coeng + consonant is encountered.
+//     Consonant of type 1 -> A consonant which has subscript for that only occupies space under a base consonant
+//     Consonant of type 2.-> Its subscript form occupies space under and before the base (only one, RO)
+//     Consonant of Type 3 -> Its subscript form occupies space under and after the base (KHO, CHHO, THHO, BA, YO, SA)
+//     Consonant shifter -> Khmer has to series of consonants. The same dependent vowel has different sounds
+//                          if it is attached to a consonant of the first series or a consonant of the second series
+//                          Most consonants have an equivalent in the other series, but some of theme exist only in
+//                          one series (for example SA). If we want to use the consonant SA with a vowel sound that
+//                          can only be done with a vowel sound that corresponds to a vowel accompanying a consonant
+//                          of the other series, then we need to use a consonant shifter: TRIISAP or MUSIKATOAN
+//                          x17C9 y x17CA. TRIISAP changes a first series consonant to second series sound and
+//                          MUSIKATOAN a second series consonant to have a first series vowel sound.
+//                          Consonant shifter are both normally supercript marks, but, when they are followed by a
+//                          superscript, they change shape and take the form of subscript dependent vowel SRA U.
+//                          If they are in the same syllable as a coeng consonant, Unicode 3.0 says that they
+//                          should be typed before the coeng. Unicode 4.0 breaks the standard and says that it should
+//                          be placed after the coeng consonant.
+//     Dependent vowel ->   In khmer dependent vowels can be placed above, below, before or after the base
+//                          Each vowel has its own position. Only one vowel per syllable is allowed.
+//     Signs            ->  Khmer has above signs and post signs. Only one above sign and/or one post sign are
+//                          Allowed in a syllable.
+//
 //
 
-// This list must include all types of components that can be used
-// inside a syllable
-struct KhmerClassTable
+struct KhmerClassTable    // This list must include all types of components that can be used inside a syllable
 {
-    // order is important here! This order must be the same that is
-    // found in each horizontal line in the statetable for Khmer (file
-    // KhmerReordering.cpp).
-    enum CharClassValues
+    enum CharClassValues  // order is important here! This order must be the same that is found in each horizontal
+                          // line in the statetable for Khmer (file KhmerReordering.cpp).
     {
         CC_RESERVED             =  0,
         CC_CONSONANT            =  1, // consonant of type 1 or independent vowel
@@ -116,8 +95,7 @@
         CC_CONSONANT3           =  3, // Consonant of type 3
         CC_ZERO_WIDTH_NJ_MARK   =  4, // Zero Width non joiner character (0x200C)
         CC_CONSONANT_SHIFTER    =  5,
-        CC_ROBAT                =  6, // Khmer special diacritic accent
-                                      // -treated differently in state table
+        CC_ROBAT                =  6, // Khmer special diacritic accent -treated differently in state table
         CC_COENG                =  7, // Subscript consonant combining character
         CC_DEPENDENT_VOWEL      =  8,
         CC_SIGN_ABOVE           =  9,
@@ -131,10 +109,8 @@
         CF_CLASS_MASK    = 0x0000FFFF,
 
         CF_CONSONANT     = 0x01000000,  // flag to speed up comparing
-        CF_SPLIT_VOWEL   = 0x02000000,  // flag for a split vowel -> the first part
-                                        // is added in front of the syllable
-        CF_DOTTED_CIRCLE = 0x04000000,  // add a dotted circle if a character with
-                                        // this flag is the first in a syllable
+        CF_SPLIT_VOWEL   = 0x02000000,  // flag for a split vowel -> the first part is added in front of the syllable
+        CF_DOTTED_CIRCLE = 0x04000000,  // add a dotted circle if a character with this flag is the first in a syllable
         CF_COENG         = 0x08000000,  // flag to speed up comparing
         CF_SHIFTER       = 0x10000000,  // flag to speed up comparing
         CF_ABOVE_VOWEL   = 0x20000000,  // flag to speed up comparing
@@ -161,10 +137,10 @@
 };
 
 
-class KhmerReordering {
+class KhmerReordering /* not : public UObject because all methods are static */ {
 public:
-    static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount,
-        le_int32 scriptCode, LEUnicode *outChars, LEGlyphStorage &glyphStorage);
+    static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
+        LEUnicode *outChars, LEGlyphStorage &glyphStorage);
 
     static const FeatureMap *getFeatureMap(le_int32 &count);
 
@@ -172,8 +148,10 @@
     // do not instantiate
     KhmerReordering();
 
-    static le_int32 findSyllable(const KhmerClassTable *classTable,
-        const LEUnicode *chars, le_int32 prev, le_int32 charCount);
+    static le_int32 findSyllable(const KhmerClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
+
 };
 
+
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LEFontInstance.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEFontInstance.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  *******************************************************************************
  *
  *   Copyright (C) 1999-2005, International Business Machines
@@ -42,6 +41,10 @@
 #include "LEFontInstance.h"
 #include "LEGlyphStorage.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEFontInstance)
+
 const LEFontInstance *LEFontInstance::getSubFont(const LEUnicode chars[], le_int32 *offset, le_int32 limit,
                                                        le_int32 script, LEErrorCode &success) const
 {
@@ -59,7 +62,7 @@
 }
 
 void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
-    le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const
+                                      le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const
 {
     le_int32 i, out = 0, dir = 1;
 
@@ -100,3 +103,5 @@
 
     return mapCharToGlyph(mappedChar);
 }
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/LEFontInstance.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEFontInstance.h	Wed Oct 07 14:15:01 2009 -0700
@@ -34,6 +34,12 @@
 #define __LEFONTINSTANCE_H
 
 #include "LETypes.h"
+/**
+ * \file
+ * \brief C++ API: Layout Engine Font Instance object
+ */
+
+U_NAMESPACE_BEGIN
 
 /**
  * Instances of this class are used by <code>LEFontInstance::mapCharsToGlyphs</code> and
@@ -44,7 +50,7 @@
  *
  * @stable ICU 3.2
  */
-class LECharMapper
+class LECharMapper /* not : public UObject because this is an interface/mixin class */
 {
 public:
     /**
@@ -97,7 +103,7 @@
  *
  * @draft ICU 3.0
  */
-class LEFontInstance
+class U_LAYOUT_API LEFontInstance : public UObject
 {
 public:
 
@@ -160,8 +166,7 @@
      *
      * @stable ICU 3.2
      */
-    virtual const LEFontInstance *getSubFont(const LEUnicode chars[], le_int32 *offset,
-        le_int32 limit, le_int32 script, LEErrorCode &success) const;
+    virtual const LEFontInstance *getSubFont(const LEUnicode chars[], le_int32 *offset, le_int32 limit, le_int32 script, LEErrorCode &success) const;
 
     //
     // Font file access
@@ -238,8 +243,7 @@
      *
      * @draft ICU 3.0
      */
-    virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
-        le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const;
+    virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const;
 
     /**
      * This method maps a single character to a glyph index, using the
@@ -502,6 +506,21 @@
      * @stable ICU 3.2
      */
     virtual le_int32 getLineHeight() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 3.2
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 3.2
+     */
+    static UClassID getStaticClassID();
+
 };
 
 inline le_bool LEFontInstance::canDisplay(LEUnicode32 ch) const
@@ -562,4 +581,7 @@
     return getAscent() + getDescent() + getLeading();
 }
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/LEGlyphFilter.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEGlyphFilter.h	Wed Oct 07 14:15:01 2009 -0700
@@ -34,14 +34,15 @@
 
 #include "LETypes.h"
 
+U_NAMESPACE_BEGIN
+
 /**
  * This is a helper class that is used to
  * recognize a set of glyph indices.
  *
  * @internal
  */
-class LEGlyphFilter
-{
+class LEGlyphFilter /* not : public UObject because this is an interface/mixin class */ {
 public:
     /**
      * Destructor.
@@ -63,4 +64,5 @@
     virtual le_bool accept(LEGlyphID glyph) const = 0;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LEGlyphStorage.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEGlyphStorage.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  **********************************************************************
  *   Copyright (C) 1998-2005, International Business Machines
  *   Corporation and others.  All Rights Reserved.
@@ -35,6 +34,10 @@
 #include "LEInsertionList.h"
 #include "LEGlyphStorage.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEGlyphStorage)
+
 LEGlyphStorage::LEGlyphStorage()
     : fGlyphCount(0), fGlyphs(NULL), fCharIndices(NULL), fPositions(NULL),
       fAuxData(NULL), fInsertionList(NULL), fSrcIndex(0), fDestIndex(0)
@@ -603,3 +606,6 @@
 
     return FALSE;
 }
+
+U_NAMESPACE_END
+
--- a/jdk/src/share/native/sun/font/layout/LEGlyphStorage.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEGlyphStorage.h	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  **********************************************************************
  *   Copyright (C) 1998-2005, International Business Machines
  *   Corporation and others.  All Rights Reserved.
@@ -38,6 +37,13 @@
 #include "LEInsertionList.h"
 
 /**
+ * \file
+ * \brief C++ API: This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
+ */
+
+U_NAMESPACE_BEGIN
+
+/**
  * This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
  * For each glyph it holds the glyph ID, the index of the backing store character
  * which produced the glyph, the X and Y position of the glyph and an auxillary data
@@ -50,7 +56,7 @@
  *
  * @draft ICU 3.6
  */
-class U_LAYOUT_API LEGlyphStorage : protected LEInsertionCallback
+class U_LAYOUT_API LEGlyphStorage : public UObject, protected LEInsertionCallback
 {
 private:
     /**
@@ -112,35 +118,37 @@
 
 protected:
     /**
-     * This implements <code>LEInsertionCallback</code>. The
-     * <code>LEInsertionList</code> will call this method once for
-     * each insertion.
+     * This implements <code>LEInsertionCallback</code>. The <code>LEInsertionList</code>
+     * will call this method once for each insertion.
      *
      * @param atPosition the position of the insertion
      * @param count the number of glyphs being inserted
      * @param newGlyphs the address of the new glyph IDs
      *
-     * @return <code>true</code> if <code>LEInsertionList</code>
-     * should stop processing the insertion list after this insertion.
+     * @return <code>true</code> if <code>LEInsertionList</code> should stop
+     *         processing the insertion list after this insertion.
      *
      * @see LEInsertionList.h
      *
      * @draft ICU 3.0
      */
-    virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count,
-        LEGlyphID newGlyphs[]);
+    virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count, LEGlyphID newGlyphs[]);
 
 public:
 
     /**
-     * Allocates an empty <code>LEGlyphStorage</code> object. You must
-     * call <code>allocateGlyphArray, allocatePositions and
-     * allocateAuxData</code> to allocate the data.
+     * Allocates an empty <code>LEGlyphStorage</code> object. You must call
+     * <code>allocateGlyphArray, allocatePositions and allocateAuxData</code>
+     * to allocate the data.
+     *
+     * @draft ICU 3.0
      */
     LEGlyphStorage();
 
     /**
      * The destructor. This will deallocate all of the arrays.
+     *
+     * @draft ICU 3.0
      */
     ~LEGlyphStorage();
 
@@ -154,9 +162,9 @@
     inline le_int32 getGlyphCount() const;
 
     /**
-     * This method copies the glyph array into a caller supplied
-     * array.  The caller must ensure that the array is large enough
-     * to hold all the glyphs.
+     * This method copies the glyph array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold all
+     * the glyphs.
      *
      * @param glyphs - the destiniation glyph array
      * @param success - set to an error code if the operation fails
@@ -166,10 +174,10 @@
     void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
 
     /**
-     * This method copies the glyph array into a caller supplied
-     * array, ORing in extra bits. (This functionality is needed by
-     * the JDK, which uses 32 bits pre glyph idex, with the high 16
-     * bits encoding the composite font slot number)
+     * This method copies the glyph array into a caller supplied array,
+     * ORing in extra bits. (This functionality is needed by the JDK,
+     * which uses 32 bits pre glyph idex, with the high 16 bits encoding
+     * the composite font slot number)
      *
      * @param glyphs - the destination (32 bit) glyph array
      * @param extraBits - this value will be ORed with each glyph index
@@ -177,13 +185,12 @@
      *
      * @draft ICU 3.0
      */
-    void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits,
-        LEErrorCode &success) const;
+    void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
 
     /**
-     * This method copies the character index array into a caller
-     * supplied array.  The caller must ensure that the array is large
-     * enough to hold a character index for each glyph.
+     * This method copies the character index array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold a
+     * character index for each glyph.
      *
      * @param charIndices - the destiniation character index array
      * @param success - set to an error code if the operation fails
@@ -193,9 +200,9 @@
     void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
 
     /**
-     * This method copies the character index array into a caller
-     * supplied array.  The caller must ensure that the array is large
-     * enough to hold a character index for each glyph.
+     * This method copies the character index array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold a
+     * character index for each glyph.
      *
      * @param charIndices - the destiniation character index array
      * @param indexBase - an offset which will be added to each index
@@ -203,14 +210,13 @@
      *
      * @draft ICU 3.0
      */
-    void getCharIndices(le_int32 charIndices[], le_int32 indexBase,
-        LEErrorCode &success) const;
+    void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
 
     /**
-     * This method copies the position array into a caller supplied
-     * array.  The caller must ensure that the array is large enough
-     * to hold an X and Y position for each glyph, plus an extra X and
-     * Y for the advance of the last glyph.
+     * This method copies the position array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold an
+     * X and Y position for each glyph, plus an extra X and Y for the
+     * advance of the last glyph.
      *
      * @param positions - the destiniation position array
      * @param success - set to an error code if the operation fails
@@ -233,33 +239,27 @@
      *
      * @draft ICU 3.0
      */
-    void getGlyphPosition(le_int32 glyphIndex, float &x, float &y,
-        LEErrorCode &success) const;
+    void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
 
     /**
-     * This method allocates the glyph array, the char indices array
-     * and the insertion list. You must call this method before using
-     * the object. This method also initializes the char indices
+     * This method allocates the glyph array, the char indices array and the insertion list. You
+     * must call this method before using the object. This method also initializes the char indices
      * array.
-     * @param initialGlyphCount the initial size of the glyph and char
-     *     indices arrays.
-     * @param rightToLeft <code>true</code> if the original input text
-     *     is right to left.
-     * @param success set to an error code if the storage cannot be
-     *     allocated of if the initial glyph count is not positive.
+     *
+     * @param initialGlyphCount the initial size of the glyph and char indices arrays.
+     * @param rightToLeft <code>true</code> if the original input text is right to left.
+     * @param success set to an error code if the storage cannot be allocated of if the initial
+     *        glyph count is not positive.
      *
      * @draft ICU 3.0
      */
-    void allocateGlyphArray(le_int32 initialGlyphCount, le_bool rightToLeft,
-        LEErrorCode &success);
+    void allocateGlyphArray(le_int32 initialGlyphCount, le_bool rightToLeft, LEErrorCode &success);
 
     /**
-     * This method allocates the storage for the glyph positions. It
-     * allocates one extra X, Y position pair for the position just
-     * after the last glyph.
+     * This method allocates the storage for the glyph positions. It allocates one extra X, Y
+     * position pair for the position just after the last glyph.
      *
-     * @param success set to an error code if the positions array
-     *     cannot be allocated.
+     * @param success set to an error code if the positions array cannot be allocated.
      *
      * @return the number of X, Y position pairs allocated.
      *
@@ -270,8 +270,7 @@
     /**
      * This method allocates the storage for the auxillary glyph data.
      *
-     * @param success set to an error code if the aulillary data array
-     *     cannot be allocated.
+     * @param success set to an error code if the aulillary data array cannot be allocated.
      *
      * @return the size of the auxillary data array.
      *
@@ -282,10 +281,8 @@
     /**
      * Copy the entire auxillary data array.
      *
-     * @param auxData the auxillary data array will be copied to this
-     *     address
-     * @param success set to an error code if the data cannot be
-     *     copied
+     * @param auxData the auxillary data array will be copied to this address
+     * @param success set to an error code if the data cannot be copied
      *
      * @draft ICU 3.6
      */
@@ -295,8 +292,7 @@
      * Get the glyph ID for a particular glyph.
      *
      * @param glyphIndex the index into the glyph array
-     * @param success set to an error code if the glyph ID cannot be
-     *     retrieved.
+     * @param success set to an error code if the glyph ID cannot be retrieved.
      *
      * @return the glyph ID
      *
@@ -308,8 +304,7 @@
      * Get the char index for a particular glyph.
      *
      * @param glyphIndex the index into the glyph array
-     * @param success set to an error code if the char index cannot be
-     *     retrieved.
+     * @param success set to an error code if the char index cannot be retrieved.
      *
      * @return the character index
      *
@@ -322,8 +317,7 @@
      * Get the auxillary data for a particular glyph.
      *
      * @param glyphIndex the index into the glyph array
-     * @param success set to an error code if the auxillary data
-     *     cannot be retrieved.
+     * @param success set to an error code if the auxillary data cannot be retrieved.
      *
      * @return the auxillary data
      *
@@ -345,11 +339,10 @@
 
     /**
      * Call this method to replace a single glyph in the glyph array
-     * with multiple glyphs. This method uses the
-     * <code>LEInsertionList</code> to do the insertion. It returns
-     * the address of storage where the new glyph IDs can be
-     * stored. They will not actually be inserted into the glyph array
-     * until <code>applyInsertions</code> is called.
+     * with multiple glyphs. This method uses the <code>LEInsertionList</code>
+     * to do the insertion. It returns the address of storage where the new
+     * glyph IDs can be stored. They will not actually be inserted into the
+     * glyph array until <code>applyInsertions</code> is called.
      *
      * @param atIndex the index of the glyph to be replaced
      * @param insertCount the number of glyphs to replace it with
@@ -381,26 +374,22 @@
      *
      * @param glyphIndex the index of the glyph
      * @param glyphID the new glyph ID
-     * @param success will be set to an error code if the glyph ID
-     *     cannot be set.
+     * @param success will be set to an error code if the glyph ID cannot be set.
      *
      * @draft ICU 3.0
      */
-    void setGlyphID(le_int32 glyphIndex, LEGlyphID glyphID,
-        LEErrorCode &success);
+    void setGlyphID(le_int32 glyphIndex, LEGlyphID glyphID, LEErrorCode &success);
 
     /**
      * Set the char index for a particular glyph.
      *
      * @param glyphIndex the index of the glyph
      * @param charIndex the new char index
-     * @param success will be set to an error code if the char index
-     *     cannot be set.
+     * @param success will be set to an error code if the char index cannot be set.
      *
      * @draft ICU 3.0
      */
-    void setCharIndex(le_int32 glyphIndex, le_int32 charIndex,
-        LEErrorCode &success);
+    void setCharIndex(le_int32 glyphIndex, le_int32 charIndex, LEErrorCode &success);
 
     /**
      * Set the X, Y position for a particular glyph.
@@ -408,13 +397,11 @@
      * @param glyphIndex the index of the glyph
      * @param x the new X position
      * @param y the new Y position
-     * @param success will be set to an error code if the position
-     *     cannot be set.
+     * @param success will be set to an error code if the position cannot be set.
      *
      * @draft ICU 3.0
      */
-    void setPosition(le_int32 glyphIndex, float x, float y,
-        LEErrorCode &success);
+    void setPosition(le_int32 glyphIndex, float x, float y, LEErrorCode &success);
 
     /**
      * Adjust the X, Y position for a particular glyph.
@@ -422,21 +409,18 @@
      * @param glyphIndex the index of the glyph
      * @param xAdjust the adjustment to the glyph's X position
      * @param yAdjust the adjustment to the glyph's Y position
-     * @param success will be set to an error code if the glyph's
-     *     position cannot be adjusted.
+     * @param success will be set to an error code if the glyph's position cannot be adjusted.
      *
      * @draft ICU 3.0
      */
-    void adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust,
-        LEErrorCode &success);
+    void adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust, LEErrorCode &success);
 
     /**
      * Set the auxillary data for a particular glyph.
      *
      * @param glyphIndex the index of the glyph
      * @param auxData the new auxillary data
-     * @param success will be set to an error code if the auxillary
-     *     data cannot be set.
+     * @param success will be set to an error code if the auxillary data cannot be set.
      *
      * @draft ICU 3.6
      */
@@ -511,14 +495,28 @@
     void adoptGlyphCount(le_int32 newGlyphCount);
 
     /**
-     * This method frees the glyph, character index, position and
-     * auxillary data arrays so that the LayoutEngine can be reused to
-     * layout a different characer array. (This method is also called
+     * This method frees the glyph, character index, position  and
+     * auxillary data arrays so that the LayoutEngine can be reused
+     * to layout a different characer array. (This method is also called
      * by the destructor)
      *
      * @draft ICU 3.0
      */
     void reset();
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @draft ICU 3.0
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @draft ICU 3.0
+     */
+    static UClassID getStaticClassID();
 };
 
 inline le_int32 LEGlyphStorage::getGlyphCount() const
@@ -531,4 +529,7 @@
     return fGlyphs[glyphIndex];
 }
 
+
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/LEInsertionList.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEInsertionList.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  **********************************************************************
  *   Copyright (C) 1998-2004, International Business Machines
  *   Corporation and others.  All Rights Reserved.
@@ -34,6 +33,8 @@
 #include "LETypes.h"
 #include "LEInsertionList.h"
 
+U_NAMESPACE_BEGIN
+
 #define ANY_NUMBER 1
 
 struct InsertionRecord
@@ -44,6 +45,8 @@
     LEGlyphID glyphs[ANY_NUMBER];
 };
 
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEInsertionList)
+
 LEInsertionList::LEInsertionList(le_bool rightToLeft)
 : head(NULL), tail(NULL), growAmount(0), append(rightToLeft)
 {
@@ -106,3 +109,5 @@
 
     return FALSE;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LEInsertionList.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEInsertionList.h	Wed Oct 07 14:15:01 2009 -0700
@@ -24,7 +24,6 @@
  */
 
 /*
- *
  **********************************************************************
  *   Copyright (C) 1998-2004, International Business Machines
  *   Corporation and others.  All Rights Reserved.
@@ -36,6 +35,8 @@
 
 #include "LETypes.h"
 
+U_NAMESPACE_BEGIN
+
 struct InsertionRecord;
 
 /**
@@ -78,7 +79,7 @@
  *
  * @internal
  */
-class LEInsertionList
+class LEInsertionList : public UObject
 {
 public:
     /**
@@ -140,6 +141,20 @@
      */
     void reset();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
 
     /**
@@ -174,4 +189,6 @@
     le_bool  append;
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/LELanguages.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LELanguages.h	Wed Oct 07 14:15:01 2009 -0700
@@ -25,10 +25,12 @@
 
 /*
  *
- * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
  *
  * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
  * YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 07/19/2005 01:01:08 PM PDT
  */
 
 #ifndef __LELANGUAGES_H
@@ -37,11 +39,18 @@
 #include "LETypes.h"
 
 /**
+ * \file
+ * \brief C++ API: List of language codes for LayoutEngine
+ */
+
+U_NAMESPACE_BEGIN
+
+/**
  * A provisional list of language codes. For now,
  * this is just a list of languages which the LayoutEngine
  * supports.
  *
- * @draft ICU 3.0
+ * @draft ICU 3.4
  */
 
 enum LanguageCodes {
@@ -79,4 +88,5 @@
     languageCodeCount = 30
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LEScripts.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LEScripts.h	Wed Oct 07 14:15:01 2009 -0700
@@ -25,17 +25,23 @@
 
 /*
  *
- * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
  *
  * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
  * YOU REALLY KNOW WHAT YOU'RE DOING.
- *
  */
 
 #ifndef __LESCRIPTS_H
 #define __LESCRIPTS_H
 
 #include "LETypes.h"
+/**
+ * \file
+ * \brief C++ API: Constants for Unicode script values
+ */
+
+
+U_NAMESPACE_BEGIN
 
 /**
  * Constants for Unicode script values, generated using
@@ -104,4 +110,5 @@
     scriptCodeCount = 55
 };
 
+U_NAMESPACE_END
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/native/sun/font/layout/LEStandalone.h	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,132 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+#ifndef __LESTANDALONE
+#define __LESTANDALONE
+
+/* Definitions to make Layout Engine work away from ICU. */
+#ifndef U_NAMESPACE_BEGIN
+#define U_NAMESPACE_BEGIN
+#endif
+
+#ifndef U_NAMESPACE_END
+#define U_NAMESPACE_END
+#endif
+
+/* RTTI Definition */
+typedef const char *UClassID;
+#ifndef UOBJECT_DEFINE_RTTI_IMPLEMENTATION
+#define UOBJECT_DEFINE_RTTI_IMPLEMENTATION(x) UClassID x::getStaticClassID(){static char z=0; return (UClassID)&z; } UClassID x::getDynamicClassID() const{return x::getStaticClassID(); }
+#endif
+
+/* UMemory's functions aren't used by the layout engine. */
+struct UMemory {};
+/* UObject's functions aren't used by the layout engine. */
+struct UObject {};
+
+/* String handling */
+#include <stdlib.h>
+#include <string.h>
+
+/**
+ * A convenience macro to test for the success of a LayoutEngine call.
+ *
+ * @stable ICU 2.4
+ */
+#define LE_SUCCESS(code) ((code)<=LE_NO_ERROR)
+
+/**
+ * A convenience macro to test for the failure of a LayoutEngine call.
+ *
+ * @stable ICU 2.4
+ */
+#define LE_FAILURE(code) ((code)>LE_NO_ERROR)
+
+
+#ifndef _LP64
+typedef long le_int32;
+typedef unsigned long le_uint32;
+#else
+typedef int le_int32;
+typedef unsigned int le_uint32;
+#endif
+
+#define HAVE_LE_INT32 1
+#define HAVE_LE_UINT32 1
+
+typedef unsigned short UChar;
+typedef le_uint32 UChar32;
+
+typedef short le_int16;
+#define HAVE_LE_INT16 1
+
+typedef unsigned short le_uint16;
+#define HAVE_LE_UINT16
+
+typedef signed char le_int8;
+#define HAVE_LE_INT8
+
+typedef unsigned char le_uint8;
+#define HAVE_LE_UINT8
+
+typedef char UBool;
+
+/**
+ * Error codes returned by the LayoutEngine.
+ *
+ * @stable ICU 2.4
+ */
+enum LEErrorCode {
+    /* informational */
+    LE_NO_SUBFONT_WARNING           = -127, // U_USING_DEFAULT_WARNING,
+
+    /* success */
+    LE_NO_ERROR                     = 0, // U_ZERO_ERROR,
+
+    /* failures */
+    LE_ILLEGAL_ARGUMENT_ERROR       = 1, // U_ILLEGAL_ARGUMENT_ERROR,
+    LE_MEMORY_ALLOCATION_ERROR      = 7, // U_MEMORY_ALLOCATION_ERROR,
+    LE_INDEX_OUT_OF_BOUNDS_ERROR    = 8, //U_INDEX_OUTOFBOUNDS_ERROR,
+    LE_NO_LAYOUT_ERROR              = 16, // U_UNSUPPORTED_ERROR,
+    LE_INTERNAL_ERROR               = 5, // U_INTERNAL_PROGRAM_ERROR,
+    LE_FONT_FILE_NOT_FOUND_ERROR    = 4, // U_FILE_ACCESS_ERROR,
+    LE_MISSING_FONT_TABLE_ERROR     = 2  // U_MISSING_RESOURCE_ERROR
+};
+#define HAVE_LEERRORCODE
+
+#define U_LAYOUT_API
+
+#define uprv_malloc malloc
+#define uprv_free free
+#define uprv_memcpy memcpy
+#define uprv_realloc realloc
+
+#if !defined(U_IS_BIG_ENDIAN)
+    #ifdef _LITTLE_ENDIAN
+        #define U_IS_BIG_ENDIAN 0
+    #endif
+#endif
+
+#endif
--- a/jdk/src/share/native/sun/font/layout/LESwaps.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LESwaps.h	Wed Oct 07 14:15:01 2009 -0700
@@ -26,7 +26,7 @@
 
 /*
  *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
 
@@ -35,11 +35,12 @@
 
 #include "LETypes.h"
 
-#if !defined(U_IS_BIG_ENDIAN)
-    #ifdef _LITTLE_ENDIAN
-        #define U_IS_BIG_ENDIAN 0
-    #endif
-#endif
+/**
+ * \file
+ * \brief C++ API: Endian independent access to data for LayoutEngine
+ */
+
+U_NAMESPACE_BEGIN
 
 /**
  * A convenience macro which invokes the swapWord member function
@@ -47,7 +48,6 @@
  *
  * @stable ICU 2.8
  */
-
 #if defined(U_IS_BIG_ENDIAN)
     #if U_IS_BIG_ENDIAN
         #define SWAPW(value) (value)
@@ -64,7 +64,6 @@
  *
  * @stable ICU 2.8
  */
-
 #if defined(U_IS_BIG_ENDIAN)
     #if U_IS_BIG_ENDIAN
         #define SWAPL(value) (value)
@@ -86,8 +85,7 @@
  *
  * @stable ICU 2.8
  */
-class LESwaps
-{
+class U_LAYOUT_API LESwaps /* not : public UObject because all methods are static */ {
 public:
 
 #if !defined(U_IS_BIG_ENDIAN)
@@ -144,4 +142,5 @@
     LESwaps() {} // private - forbid instantiation
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LETypes.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LETypes.h	Wed Oct 07 14:15:01 2009 -0700
@@ -23,7 +23,6 @@
  *
  */
 
-
 /*
  *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -33,74 +32,98 @@
 #ifndef __LETYPES_H
 #define __LETYPES_H
 
-#define LE_USE_CMEMORY
-
-#ifdef LE_USE_CMEMORY
-#include <stdlib.h>
-#include <string.h>
+/**
+ * If LE_Standalone is defined, it must exist and contain
+ * definitions for some core ICU defines.
+ */
+#ifdef LE_STANDALONE
+#include "LEStandalone.h"
 #endif
 
-#ifndef _LP64
-typedef long le_int32;
-typedef unsigned long le_uint32;
+#ifdef LE_STANDALONE
+/* Stand-alone Layout Engine- without ICU. */
+#include "LEStandalone.h"
+#define LE_USE_CMEMORY
 #else
-typedef int le_int32;
-typedef unsigned int le_uint32;
+#if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined(U_COMBINED_IMPLEMENTATION))
+#define LE_USE_CMEMORY
 #endif
 
-typedef short le_int16;
-typedef unsigned short le_uint16;
-typedef signed char le_int8;
-typedef unsigned char le_uint8;
-typedef char le_bool;
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#ifdef LE_USE_CMEMORY
+#include "cmemory.h"
+#endif
+#endif /* not standalone */
+
 
-typedef char UClassID;
+U_NAMESPACE_BEGIN
 
-#if 0
+/*!
+ * \file
+ * \brief Basic definitions for the ICU LayoutEngine
+ */
+
 /**
  * A type used for signed, 32-bit integers.
  *
  * @stable ICU 2.4
  */
+#ifndef HAVE_LE_INT32
 typedef int32_t le_int32;
+#endif
 
 /**
  * A type used for unsigned, 32-bit integers.
  *
  * @stable ICU 2.4
  */
+#ifndef HAVE_LE_UINT32
 typedef uint32_t le_uint32;
+#endif
 
 /**
  * A type used for signed, 16-bit integers.
  *
  * @stable ICU 2.4
  */
+#ifndef HAVE_LE_INT16
 typedef int16_t le_int16;
+#endif
 
+#ifndef HAVE_LE_UINT16
 /**
  * A type used for unsigned, 16-bit integers.
  *
  * @stable ICU 2.4
  */
 typedef uint16_t le_uint16;
+#endif
 
+#ifndef HAVE_LE_INT8
 /**
  * A type used for signed, 8-bit integers.
  *
  * @stable ICU 2.4
  */
 typedef int8_t le_int8;
+#endif
 
+#ifndef HAVE_LE_UINT8
 /**
  * A type used for unsigned, 8-bit integers.
  *
  * @stable ICU 2.4
  */
 typedef uint8_t le_uint8;
+#endif
 
-typedef char le_bool;
-#endif
+/**
+* A type used for boolean values.
+*
+* @stable ICU 2.4
+*/
+typedef UBool le_bool;
 
 #ifndef TRUE
 /**
@@ -264,21 +287,21 @@
  *
  * @stable ICU 2.4
  */
-typedef le_uint16 LEUnicode16;
+typedef UChar LEUnicode16;
 
 /**
  * Used to represent 32-bit Unicode code points.
  *
  * @stable ICU 2.4
  */
-typedef le_uint32 LEUnicode32;
+typedef UChar32 LEUnicode32;
 
 /**
  * Used to represent 16-bit Unicode code points.
  *
  * @deprecated since ICU 2.4. Use LEUnicode16 instead
  */
-typedef le_uint16 LEUnicode;
+typedef UChar LEUnicode;
 
 /**
  * Used to hold a pair of (x, y) values which represent a point.
@@ -325,7 +348,7 @@
  *
  * @internal
  */
-#define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
+#define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
 
 /**
  * Allocate an array of basic types. This is used to isolate the rest of
@@ -333,7 +356,7 @@
  *
  * @internal
  */
-#define LE_NEW_ARRAY(type, count) (type *) malloc((count) * sizeof(type))
+#define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type))
 
 /**
  * Re-allocate an array of basic types. This is used to isolate the rest of
@@ -341,7 +364,7 @@
  *
  * @internal
  */
-#define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
+#define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSize) * sizeof (array)[0])
 
  /**
  * Free an array of basic types. This is used to isolate the rest of
@@ -349,7 +372,7 @@
  *
  * @internal
  */
-#define LE_DELETE_ARRAY(array) free((void *) (array))
+#define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
 #endif
 
 /**
@@ -567,22 +590,24 @@
  *
  * @stable ICU 2.4
  */
+#ifndef HAVE_LEERRORCODE
 enum LEErrorCode {
     /* informational */
-    LE_NO_SUBFONT_WARNING           = -127, // U_USING_DEFAULT_WARNING,
+    LE_NO_SUBFONT_WARNING          = U_USING_DEFAULT_WARNING, /**< The font does not contain subfonts. */
 
     /* success */
-    LE_NO_ERROR                     = 0, // U_ZERO_ERROR,
+    LE_NO_ERROR                     = U_ZERO_ERROR, /**< No error, no warning. */
 
     /* failures */
-    LE_ILLEGAL_ARGUMENT_ERROR       = 1, // U_ILLEGAL_ARGUMENT_ERROR,
-    LE_MEMORY_ALLOCATION_ERROR      = 7, // U_MEMORY_ALLOCATION_ERROR,
-    LE_INDEX_OUT_OF_BOUNDS_ERROR    = 8, //U_INDEX_OUTOFBOUNDS_ERROR,
-    LE_NO_LAYOUT_ERROR              = 16, // U_UNSUPPORTED_ERROR,
-    LE_INTERNAL_ERROR               = 5, // U_INTERNAL_PROGRAM_ERROR,
-    LE_FONT_FILE_NOT_FOUND_ERROR    = 4, // U_FILE_ACCESS_ERROR,
-    LE_MISSING_FONT_TABLE_ERROR     = 2  // U_MISSING_RESOURCE_ERROR
+    LE_ILLEGAL_ARGUMENT_ERROR       = U_ILLEGAL_ARGUMENT_ERROR,  /**< An illegal argument was detected. */
+    LE_MEMORY_ALLOCATION_ERROR      = U_MEMORY_ALLOCATION_ERROR, /**< Memory allocation error. */
+    LE_INDEX_OUT_OF_BOUNDS_ERROR    = U_INDEX_OUTOFBOUNDS_ERROR, /**< Trying to access an index that is out of bounds. */
+    LE_NO_LAYOUT_ERROR              = U_UNSUPPORTED_ERROR,       /**< You must call layoutChars() first. */
+    LE_INTERNAL_ERROR               = U_INTERNAL_PROGRAM_ERROR,  /**< An internal error was encountered. */
+    LE_FONT_FILE_NOT_FOUND_ERROR    = U_FILE_ACCESS_ERROR,       /**< The requested font file cannot be opened. */
+    LE_MISSING_FONT_TABLE_ERROR     = U_MISSING_RESOURCE_ERROR   /**< The requested font table does not exist. */
 };
+#endif
 
 #ifndef XP_CPLUSPLUS
 /**
@@ -598,14 +623,20 @@
  *
  * @stable ICU 2.4
  */
-#define LE_SUCCESS(code) ((code)<=LE_NO_ERROR)
+#ifndef LE_FAILURE
+#define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code))
+#endif
 
 /**
  * A convenience macro to test for the failure of a LayoutEngine call.
  *
  * @stable ICU 2.4
  */
-#define LE_FAILURE(code) ((code)>LE_NO_ERROR)
+#ifndef LE_FAILURE
+#define LE_FAILURE(code) (U_FAILURE((UErrorCode)code))
+#endif
 
-#define U_LAYOUT_API
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -23,6 +23,7 @@
  *
  */
 
+
 /*
  *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -40,6 +41,7 @@
 #include "IndicLayoutEngine.h"
 #include "KhmerLayoutEngine.h"
 #include "ThaiLayoutEngine.h"
+//#include "TibetanLayoutEngine.h"
 #include "GXLayoutEngine.h"
 #include "ScriptAndLanguageTags.h"
 #include "CharSubstitutionFilter.h"
@@ -55,6 +57,8 @@
 
 #include "KernTable.h"
 
+U_NAMESPACE_BEGIN
+
 const LEUnicode32 DefaultCharMapper::controlChars[] = {
     0x0009, 0x000A, 0x000D,
     /*0x200C, 0x200D,*/ 0x200E, 0x200F,
@@ -101,9 +105,7 @@
     }
 
     if (fMirror) {
-        le_int32 index = OpenTypeUtilities::search((le_uint32) ch,
-                                                   (le_uint32 *)DefaultCharMapper::mirroredChars,
-                                                   DefaultCharMapper::mirroredCharsCount);
+        le_int32 index = OpenTypeUtilities::search((le_uint32) ch, (le_uint32 *)DefaultCharMapper::mirroredChars, DefaultCharMapper::mirroredCharsCount);
 
         if (mirroredChars[index] == ch) {
             return DefaultCharMapper::srahCderorrim[index];
@@ -132,6 +134,9 @@
     // nothing to do
 }
 
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LayoutEngine)
+
 #define ccmpFeatureTag  LE_CCMP_FEATURE_TAG
 
 #define ccmpFeatureMask 0x80000000UL
@@ -145,10 +150,9 @@
 
 static const le_int32 canonFeatureMapCount = LE_ARRAY_SIZE(canonFeatureMap);
 
-LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-    le_int32 languageCode, le_int32 typoFlags)
-  : fGlyphStorage(NULL), fFontInstance(fontInstance), fScriptCode(scriptCode),
-    fLanguageCode(languageCode), fTypoFlags(typoFlags)
+LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+  : fGlyphStorage(NULL), fFontInstance(fontInstance), fScriptCode(scriptCode), fLanguageCode(languageCode),
+    fTypoFlags(typoFlags)
 {
     fGlyphStorage = new LEGlyphStorage();
 }
@@ -158,8 +162,7 @@
     return fGlyphStorage->getGlyphCount();
 }
 
-void LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32 indexBase,
-    LEErrorCode &success) const
+void LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const
 {
     fGlyphStorage->getCharIndices(charIndices, indexBase, success);
 }
@@ -170,8 +173,7 @@
 }
 
 // Copy the glyphs into caller's (32-bit) glyph array, OR in extraBits
-void LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32 extraBits,
-    LEErrorCode &success) const
+void LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const
 {
     fGlyphStorage->getGlyphs(glyphs, extraBits, success);
 }
@@ -218,15 +220,13 @@
     fGlyphStorage->getGlyphPositions(positions, success);
 }
 
-void LayoutEngine::getGlyphPosition(le_int32 glyphIndex, float &x, float &y,
-    LEErrorCode &success) const
+void LayoutEngine::getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const
 {
     fGlyphStorage->getGlyphPosition(glyphIndex, x, y, success);
 }
 
-le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_int32 max, le_bool rightToLeft, LEUnicode *&outChars,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+                LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -237,12 +237,7 @@
         return 0;
     }
 
-    if ((fTypoFlags & 0x4) == 0) { // no canonical processing
-        return count;
-    }
-
-    const GlyphSubstitutionTableHeader *canonGSUBTable =
-        (GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
+    const GlyphSubstitutionTableHeader *canonGSUBTable = (GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable;
     LETag scriptTag  = OpenTypeLayoutEngine::getScriptTag(fScriptCode);
     LETag langSysTag = OpenTypeLayoutEngine::getLangSysTag(fLanguageCode);
     le_int32 i, dir = 1, out = 0, outCharCount = count;
@@ -256,16 +251,15 @@
                 // We could just do the mark reordering for all scripts, but most
                 // of them probably don't need it...
                 if (fScriptCode == hebrScriptCode) {
-                    reordered = LE_NEW_ARRAY(LEUnicode, count);
+                        reordered = LE_NEW_ARRAY(LEUnicode, count);
 
-                    if (reordered == NULL) {
-                        success = LE_MEMORY_ALLOCATION_ERROR;
-                        return 0;
-                    }
+                        if (reordered == NULL) {
+                                success = LE_MEMORY_ALLOCATION_ERROR;
+                                return 0;
+                        }
 
-                    CanonShaping::reorderMarks(&chars[offset], count, rightToLeft,
-                        reordered, glyphStorage);
-                    inChars = reordered;
+                        CanonShaping::reorderMarks(&chars[offset], count, rightToLeft, reordered, glyphStorage);
+                        inChars = reordered;
                 }
 
         glyphStorage.allocateGlyphArray(count, rightToLeft, success);
@@ -289,8 +283,7 @@
                         LE_DELETE_ARRAY(reordered);
                 }
 
-        outCharCount = canonGSUBTable->process(glyphStorage, rightToLeft, scriptTag,
-            langSysTag, NULL, substitutionFilter, canonFeatureMap, canonFeatureMapCount, FALSE);
+        outCharCount = canonGSUBTable->process(glyphStorage, rightToLeft, scriptTag, langSysTag, NULL, substitutionFilter, canonFeatureMap, canonFeatureMapCount, FALSE);
 
         out = (rightToLeft? count - 1 : 0);
 
@@ -305,35 +298,26 @@
     return outCharCount;
 }
 
-
-le_int32 LayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_int32 max, le_bool rightToLeft,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 LayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+                                            LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
     }
 
-    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max ||
-        offset + count > max) {
-
+    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
         success = LE_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
 
     LEUnicode *outChars = NULL;
-    le_int32 outCharCount = characterProcessing(chars, offset, count, max,
-        rightToLeft, outChars, glyphStorage, success);
+    le_int32 outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, glyphStorage, success);
 
     if (outChars != NULL) {
-        mapCharsToGlyphs(outChars, 0, outCharCount, rightToLeft, rightToLeft,
-            glyphStorage, success);
-        // FIXME: a subclass may have allocated this, in which case this delete
-        // might not work...
-        LE_DELETE_ARRAY(outChars);
+        mapCharsToGlyphs(outChars, 0, outCharCount, rightToLeft, rightToLeft, glyphStorage, success);
+        LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
     } else {
-        mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft,
-            glyphStorage, success);
+        mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, glyphStorage, success);
     }
 
     return glyphStorage.getGlyphCount();
@@ -341,8 +325,7 @@
 
 // Input: glyphs
 // Output: positions
-void LayoutEngine::positionGlyphs(LEGlyphStorage &glyphStorage,
-    float x, float y, LEErrorCode &success)
+void LayoutEngine::positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -369,9 +352,8 @@
     glyphStorage.setPosition(glyphCount, x, y, success);
 }
 
-void LayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_bool reverse,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void LayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+                                        LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -398,8 +380,7 @@
     return;
 }
 
-void LayoutEngine::adjustMarkGlyphs(LEGlyphStorage &glyphStorage,
-    LEGlyphFilter *markFilter, LEErrorCode &success)
+void LayoutEngine::adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
 {
     float xAdjust = 0;
     le_int32 p, glyphCount = glyphStorage.getGlyphCount();
@@ -435,9 +416,7 @@
     glyphStorage.adjustPosition(glyphCount, xAdjust, 0, success);
 }
 
-void LayoutEngine::adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount,
-    le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter,
-    LEErrorCode &success)
+void LayoutEngine::adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success)
 {
     float xAdjust = 0;
     le_int32 c = 0, direction = 1, p;
@@ -484,9 +463,8 @@
     return fFontInstance->getFontTable(tableTag);
 }
 
-void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_bool reverse, le_bool mirror,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror,
+                                    LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -496,32 +474,27 @@
 
     DefaultCharMapper charMapper(TRUE, mirror);
 
-    fFontInstance->mapCharsToGlyphs(chars, offset, count, reverse,
-        &charMapper, glyphStorage);
+    fFontInstance->mapCharsToGlyphs(chars, offset, count, reverse, &charMapper, glyphStorage);
 }
 
 // Input: characters, font?
 // Output: glyphs, positions, char indices
 // Returns: number of glyphs
-le_int32 LayoutEngine::layoutChars(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_int32 max, le_bool rightToLeft,
-    float x, float y, LEErrorCode &success)
+le_int32 LayoutEngine::layoutChars(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+                              float x, float y, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
     }
 
-    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max ||
-        offset + count > max) {
-
+    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
         success = LE_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
 
     le_int32 glyphCount;
 
-    glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft,
-        *fGlyphStorage, success);
+    glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft, *fGlyphStorage, success);
     positionGlyphs(*fGlyphStorage, x, y, success);
     adjustGlyphPositions(chars, offset, count, rightToLeft, *fGlyphStorage, success);
 
@@ -533,17 +506,13 @@
     fGlyphStorage->reset();
 }
 
-LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success)
+LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success)
 {
   // 3 -> kerning and ligatures
-  return LayoutEngine::layoutEngineFactory(fontInstance, scriptCode,
-        languageCode, 3, success);
+  return LayoutEngine::layoutEngineFactory(fontInstance, scriptCode, languageCode, 3, success);
 }
 
-LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
-    LEErrorCode &success)
+LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags, LEErrorCode &success)
 {
     static const le_uint32 gsubTableTag = LE_GSUB_TABLE_TAG;
     static const le_uint32 mortTableTag = LE_MORT_TABLE_TAG;
@@ -552,18 +521,12 @@
         return NULL;
     }
 
-    // code2000 has GPOS kern feature tags for latn script
-
-    const GlyphSubstitutionTableHeader *gsubTable =
-        (const GlyphSubstitutionTableHeader *) fontInstance->getFontTable(gsubTableTag);
+    const GlyphSubstitutionTableHeader *gsubTable = (const GlyphSubstitutionTableHeader *) fontInstance->getFontTable(gsubTableTag);
     LayoutEngine *result = NULL;
     LETag scriptTag   = 0x00000000;
     LETag languageTag = 0x00000000;
 
-    if (gsubTable != NULL &&
-        gsubTable->coversScript(scriptTag =
-            OpenTypeLayoutEngine::getScriptTag(scriptCode))) {
-
+    if (gsubTable != NULL && gsubTable->coversScript(scriptTag = OpenTypeLayoutEngine::getScriptTag(scriptCode))) {
         switch (scriptCode) {
         case bengScriptCode:
         case devaScriptCode:
@@ -575,13 +538,11 @@
         case tamlScriptCode:
         case teluScriptCode:
         case sinhScriptCode:
-            result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode,
-             languageCode, typoFlags, gsubTable);
+            result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
             break;
 
         case arabScriptCode:
-            result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode,
-             languageCode, typoFlags, gsubTable);
+            result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
             break;
 
         case haniScriptCode:
@@ -593,33 +554,33 @@
             case zhtLanguageCode:
             case zhsLanguageCode:
                 if (gsubTable->coversScriptAndLanguage(scriptTag, languageTag, TRUE)) {
-                    result = new HanOpenTypeLayoutEngine(fontInstance, scriptCode,
-                        languageCode, typoFlags, gsubTable);
+                    result = new HanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
                     break;
                 }
 
                 // note: falling through to default case.
             default:
-                result = new OpenTypeLayoutEngine(fontInstance, scriptCode,
-                 languageCode, typoFlags, gsubTable);
+                result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
                 break;
             }
 
             break;
+#if 0
+        case tibtScriptCode:
+             result = new TibetanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
+            break;
+#endif
 
         case khmrScriptCode:
-            result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode,
-                languageCode, typoFlags, gsubTable);
+            result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
             break;
 
         default:
-            result = new OpenTypeLayoutEngine(fontInstance, scriptCode,
-             languageCode, typoFlags, gsubTable);
+            result = new OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
             break;
         }
     } else {
-        const MorphTableHeader *morphTable =
-          (MorphTableHeader *) fontInstance->getFontTable(mortTableTag);
+        const MorphTableHeader *morphTable = (MorphTableHeader *) fontInstance->getFontTable(mortTableTag);
 
         if (morphTable != NULL) {
             result = new GXLayoutEngine(fontInstance, scriptCode, languageCode, morphTable);
@@ -636,16 +597,18 @@
             case teluScriptCode:
             case sinhScriptCode:
             {
-                result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode,
-                languageCode, typoFlags);
+                result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
                 break;
             }
 
             case arabScriptCode:
-                result = new UnicodeArabicOpenTypeLayoutEngine(fontInstance, scriptCode,
-                    languageCode, typoFlags);
+            //case hebrScriptCode:
+                result = new UnicodeArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
                 break;
 
+            //case hebrScriptCode:
+            //    return new HebrewOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
+
             case thaiScriptCode:
                 result = new ThaiLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
                 break;
@@ -667,3 +630,5 @@
 LayoutEngine::~LayoutEngine() {
     delete fGlyphStorage;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -23,6 +23,7 @@
  *
  */
 
+
 /*
  *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
@@ -34,63 +35,61 @@
 
 #include "LETypes.h"
 
-#include <string.h>
+/**
+ * \file
+ * \brief C++ API: Virtual base class for complex text layout.
+ */
+
+U_NAMESPACE_BEGIN
 
 class LEFontInstance;
 class LEGlyphFilter;
 class LEGlyphStorage;
 
 /**
- * This is a virtual base class used to do complex text layout. The
- * text must all be in a single font, script, and language. An
- * instance of a LayoutEngine can be created by calling the
- * layoutEngineFactory method. Fonts are identified by instances of
- * the LEFontInstance class. Script and language codes are identified
+ * This is a virtual base class used to do complex text layout. The text must all
+ * be in a single font, script, and language. An instance of a LayoutEngine can be
+ * created by calling the layoutEngineFactory method. Fonts are identified by
+ * instances of the LEFontInstance class. Script and language codes are identified
  * by integer codes, which are defined in ScriptAndLanuageTags.h.
  *
- * Note that this class is not public API. It is declared public so
- * that it can be exported from the library that it is a part of.
+ * Note that this class is not public API. It is declared public so that it can be
+ * exported from the library that it is a part of.
  *
- * The input to the layout process is an array of characters in
- * logical order, and a starting X, Y position for the text. The
- * output is an array of glyph indices, an array of character indices
- * for the glyphs, and an array of glyph positions.  These arrays are
- * protected members of LayoutEngine which can be retreived by a
- * public method. The reset method can be called to free these arrays
- * so that the LayoutEngine can be reused.
+ * The input to the layout process is an array of characters in logical order,
+ * and a starting X, Y position for the text. The output is an array of glyph indices,
+ * an array of character indices for the glyphs, and an array of glyph positions.
+ * These arrays are protected members of LayoutEngine which can be retreived by a
+ * public method. The reset method can be called to free these arrays so that the
+ * LayoutEngine can be reused.
  *
- * The layout process is done in three steps. There is a protected
- * virtual method for each step. These methods have a default
- * implementation which only does character to glyph mapping and
- * default positioning using the glyph's advance widths. Subclasses
- * can override these methods for more advanced layout.  There is a
- * public method which invokes the steps in the correct order.
+ * The layout process is done in three steps. There is a protected virtual method
+ * for each step. These methods have a default implementation which only does
+ * character to glyph mapping and default positioning using the glyph's advance
+ * widths. Subclasses can override these methods for more advanced layout.
+ * There is a public method which invokes the steps in the correct order.
  *
  * The steps are:
  *
- * 1) Glyph processing - character to glyph mapping and any other
- *    glyph processing such as ligature substitution and contextual
- *    forms.
+ * 1) Glyph processing - character to glyph mapping and any other glyph processing
+ *    such as ligature substitution and contextual forms.
  *
- * 2) Glyph positioning - position the glyphs based on their advance
- *    widths.
+ * 2) Glyph positioning - position the glyphs based on their advance widths.
  *
- * 3) Glyph position adjustments - adjustment of glyph positions for
- *    kerning, accent placement, etc.
+ * 3) Glyph position adjustments - adjustment of glyph positions for kerning,
+ *    accent placement, etc.
  *
- * NOTE: in all methods below, output parameters are references to
- * pointers so the method can allocate and free the storage as
- * needed. All storage allocated in this way is owned by the object
- * which created it, and will be freed when it is no longer needed, or
- * when the object's destructor is invoked.
+ * NOTE: in all methods below, output parameters are references to pointers so
+ * the method can allocate and free the storage as needed. All storage allocated
+ * in this way is owned by the object which created it, and will be freed when it
+ * is no longer needed, or when the object's destructor is invoked.
  *
  * @see LEFontInstance
  * @see ScriptAndLanguageTags.h
  *
  * @stable ICU 2.8
  */
-class U_LAYOUT_API LayoutEngine
-{
+class U_LAYOUT_API LayoutEngine : public UObject {
 protected:
     /**
      * The object which holds the glyph storage
@@ -134,21 +133,21 @@
     le_int32 fTypoFlags;
 
     /**
-     * This constructs an instance for a given font, script and
-     * language. Subclass constructors
+     * This constructs an instance for a given font, script and language. Subclass constructors
      * must call this constructor.
      *
      * @param fontInstance - the font for the text
      * @param scriptCode - the script for the text
      * @param languageCode - the language for the text
+     * @param typoFlags - the typographic control flags for the text.  Set bit 1 if kerning
+     * is desired, set bit 2 if ligature formation is desired.  Others are reserved.
      *
      * @see LEFontInstance
      * @see ScriptAndLanguageTags.h
      *
      * @internal
      */
-    LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-        le_int32 languageCode, le_int32 typoFlags);
+    LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
 
     /**
      * This overrides the default no argument constructor to make it
@@ -160,11 +159,10 @@
     LayoutEngine();
 
     /**
-     * This method does any required pre-processing to the input
-     * characters. It may generate output characters that differ from
-     * the input charcters due to insertions, deletions, or
-     * reorderings. In such cases, it will also generate an output
-     * character index array reflecting these changes.
+     * This method does any required pre-processing to the input characters. It
+     * may generate output characters that differ from the input charcters due to
+     * insertions, deletions, or reorderings. In such cases, it will also generate an
+     * output character index array reflecting these changes.
      *
      * Subclasses must override this method.
      *
@@ -173,44 +171,36 @@
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - TRUE if the characters are in a right to
-     *     left directional run
-     * @param outChars - the output character array, if different from
-     *     the input
-     * @param glyphStorage - the object that holds the per-glyph
-     *     storage. The character index array may be set.
+     * @param rightToLeft - TRUE if the characters are in a right to left directional run
+     * @param outChars - the output character array, if different from the input
+     * @param glyphStorage - the object that holds the per-glyph storage. The character index array may be set.
      * @param success - set to an error code if the operation fails
-     * @return the output character count (input character count if no
-     *     change)
+     *
+     * @return the output character count (input character count if no change)
      *
      * @internal
      */
-    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
-        LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+            LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
-     * This method does the glyph processing. It converts an array of
-     * characters into an array of glyph indices and character
-     * indices. The characters to be processed are passed in a
-     * surrounding context. The context is specified as a starting
-     * address and a maximum character count. An offset and a count
-     * are used to specify the characters to be processed.
+     * This method does the glyph processing. It converts an array of characters
+     * into an array of glyph indices and character indices. The characters to be
+     * processed are passed in a surrounding context. The context is specified as
+     * a starting address and a maximum character count. An offset and a count are
+     * used to specify the characters to be processed.
      *
-     * The default implementation of this method only does character
-     * to glyph mapping.  Subclasses needing more elaborate glyph
-     * processing must override this method.
+     * The default implementation of this method only does character to glyph mapping.
+     * Subclasses needing more elaborate glyph processing must override this method.
      *
      * Input parameters:
      * @param chars - the character context
      * @param offset - the offset of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the context.
-     * @param rightToLeft - TRUE if the text is in a right to left
-     *            directional run
-     * @param glyphStorage - the object which holds the per-glyph
-     *            storage. The glyph and char indices arrays will be
-     *            set.
+     * @param rightToLeft - TRUE if the text is in a right to left directional run
+     * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char indices arrays
+     *                       will be set.
      *
      * Output parameters:
      * @param success - set to an error code if the operation fails
@@ -219,60 +209,50 @@
      *
      * @internal
      */
-    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
-        LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
-     * This method does basic glyph positioning. The default
-     * implementation positions the glyphs based on their advance
-     * widths. This is sufficient for most uses. It is not expected
-     * that many subclasses will override this method.
+     * This method does basic glyph positioning. The default implementation positions
+     * the glyphs based on their advance widths. This is sufficient for most uses. It
+     * is not expected that many subclasses will override this method.
      *
      * Input parameters:
-     * @param glyphStorage - the object which holds the per-glyph storage.
-     *            The glyph position array will be set.
+     * @param glyphStorage - the object which holds the per-glyph storage. The glyph position array will be set.
      * @param x - the starting X position
      * @param y - the starting Y position
      * @param success - set to an error code if the operation fails
      *
      * @internal
      */
-    virtual void positionGlyphs(LEGlyphStorage &glyphStorage,
-                     float x, float y, LEErrorCode &success);
+    virtual void positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success);
 
     /**
-     * This method does positioning adjustments like accent
-     * positioning and kerning. The default implementation does
-     * nothing. Subclasses needing position adjustments must override
-     * this method.
+     * This method does positioning adjustments like accent positioning and
+     * kerning. The default implementation does nothing. Subclasses needing
+     * position adjustments must override this method.
      *
-     * Note that this method has both characters and glyphs as input
-     * so that it can use the character codes to determine glyph types
-     * if that information isn't directly available. (e.g. Some Arabic
-     * OpenType fonts don't have a GDEF table)
+     * Note that this method has both characters and glyphs as input so that
+     * it can use the character codes to determine glyph types if that information
+     * isn't directly available. (e.g. Some Arabic OpenType fonts don't have a GDEF
+     * table)
      *
      * @param chars - the input character context
      * @param offset - the offset of the first character to process
      * @param count - the number of characters to process
-     * @param reverse - <code>TRUE</code> if the glyphs in the glyph
-     *     array have been reordered
-     * @param glyphStorage - the object which holds the per-glyph
-     *     storage. The glyph positions will be adjusted as needed.
-     * @param success - output parameter set to an error code if the
-     *     operation fails
+     * @param reverse - <code>TRUE</code> if the glyphs in the glyph array have been reordered
+     * @param glyphStorage - the object which holds the per-glyph storage. The glyph positions will be
+     *                       adjusted as needed.
+     * @param success - output parameter set to an error code if the operation fails
      *
      * @internal
      */
-    virtual void adjustGlyphPositions(const LEUnicode chars[],
-        le_int32 offset, le_int32 count, le_bool reverse,
-        LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
-     * This method gets a table from the font associated with the
-     * text. The default implementation gets the table from the font
-     * instance. Subclasses which need to get the tables some other
-     * way must override this method.
+     * This method gets a table from the font associated with
+     * the text. The default implementation gets the table from
+     * the font instance. Subclasses which need to get the tables
+     * some other way must override this method.
      *
      * @param tableTag - the four byte table tag.
      *
@@ -283,127 +263,106 @@
     virtual const void *getFontTable(LETag tableTag) const;
 
     /**
-     * This method does character to glyph mapping. The default
-     * implementation uses the font instance to do the mapping. It
-     * will allocate the glyph and character index arrays if they're
-     * not already allocated. If it allocates the character index
-     * array, it will fill it it.
+     * This method does character to glyph mapping. The default implementation
+     * uses the font instance to do the mapping. It will allocate the glyph and
+     * character index arrays if they're not already allocated. If it allocates the
+     * character index array, it will fill it it.
      *
-     * This method supports right to left text with the ability to
-     * store the glyphs in reverse order, and by supporting character
-     * mirroring, which will replace a character which has a left and
-     * right form, such as parens, with the opposite form before
-     * mapping it to a glyph index.
+     * This method supports right to left
+     * text with the ability to store the glyphs in reverse order, and by supporting
+     * character mirroring, which will replace a character which has a left and right
+     * form, such as parens, with the opposite form before mapping it to a glyph index.
      *
      * Input parameters:
      * @param chars - the input character context
      * @param offset - the offset of the first character to be mapped
      * @param count - the number of characters to be mapped
-     * @param reverse - if <code>TRUE</code>, the output will be in
-     *            reverse order
+     * @param reverse - if <code>TRUE</code>, the output will be in reverse order
      * @param mirror - if <code>TRUE</code>, do character mirroring
-     * @param glyphStorage - the object which holds the per-glyph
-     *            storage. The glyph and char indices arrays will be
-     *            filled in.
+     * @param glyphStorage - the object which holds the per-glyph storage. The glyph and char
+     *                       indices arrays will be filled in.
      * @param success - set to an error code if the operation fails
      *
      * @see LEFontInstance
      *
      * @internal
      */
-    virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_bool reverse, le_bool mirror,
-        LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
-     * This is a convenience method that forces the advance width of
-     * mark glyphs to be zero, which is required for proper selection
-     * and highlighting.
+     * This is a convenience method that forces the advance width of mark
+     * glyphs to be zero, which is required for proper selection and highlighting.
      *
-     * @param glyphStorage - the object containing the per-glyph
-     *     storage. The positions array will be modified.
+     * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
      * @param markFilter - used to identify mark glyphs
-     * @param success - output parameter set to an error code if the
-     *     operation fails
+     * @param success - output parameter set to an error code if the operation fails
      *
      * @see LEGlyphFilter
      *
      * @internal
      */
-    static void adjustMarkGlyphs(LEGlyphStorage &glyphStorage,
-        LEGlyphFilter *markFilter, LEErrorCode &success);
+    static void adjustMarkGlyphs(LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
 
 
     /**
-     * This is a convenience method that forces the advance width of
-     * mark glyphs to be zero, which is required for proper selection
-     * and highlighting.  This method uses the input characters to
-     * identify marks. This is required in cases where the font does
-     * not contain enough information to identify them based on the
-     * glyph IDs.
+     * This is a convenience method that forces the advance width of mark
+     * glyphs to be zero, which is required for proper selection and highlighting.
+     * This method uses the input characters to identify marks. This is required in
+     * cases where the font does not contain enough information to identify them based
+     * on the glyph IDs.
      *
      * @param chars - the array of input characters
      * @param charCount - the number of input characers
-     * @param glyphStorage - the object containing the per-glyph
-     *     storage. The positions array will be modified.
-     * @param reverse - <code>TRUE</code> if the glyph array has been
-     *     reordered
+     * @param glyphStorage - the object containing the per-glyph storage. The positions array will be modified.
+     * @param reverse - <code>TRUE</code> if the glyph array has been reordered
      * @param markFilter - used to identify mark glyphs
-     * @param success - output parameter set to an error code if the
-     *     operation fails
+     * @param success - output parameter set to an error code if the operation fails
      *
      * @see LEGlyphFilter
      *
      * @internal
      */
-    static void adjustMarkGlyphs(const LEUnicode chars[],
-        le_int32 charCount, le_bool reverse,
-        LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter,
-        LEErrorCode &success);
+    static void adjustMarkGlyphs(const LEUnicode chars[], le_int32 charCount, le_bool reverse, LEGlyphStorage &glyphStorage, LEGlyphFilter *markFilter, LEErrorCode &success);
+
 
 public:
     /**
      * The destructor. It will free any storage allocated for the
      * glyph, character index and position arrays by calling the reset
-     * method. It is declared virtual so that it will be invoked by
-     * the subclass destructors.
+     * method. It is declared virtual so that it will be invoked by the
+     * subclass destructors.
      *
      * @stable ICU 2.8
      */
     virtual ~LayoutEngine();
 
     /**
-     * This method will invoke the layout steps in their correct order
-     * by calling the 32 bit versions of the computeGlyphs and
-     * positionGlyphs methods.(It doesn't * call the
-     * adjustGlyphPositions method because that doesn't apply for
-     * default * processing.) It will compute the glyph, character
-     * index and position arrays.
+     * This method will invoke the layout steps in their correct order by calling
+     * the computeGlyphs, positionGlyphs and adjustGlyphPosition methods.. It will
+     * compute the glyph, character index and position arrays.
      *
      * @param chars - the input character context
      * @param offset - the offset of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - true if the characers are in a right to
-     *            left directional run
+     * @param rightToLeft - TRUE if the characers are in a right to left directional run
      * @param x - the initial X position
      * @param y - the initial Y position
-     * @param success - output parameter set to an error code if the
-     *            operation fails
+     * @param success - output parameter set to an error code if the operation fails
+     *
      * @return the number of glyphs in the glyph array
      *
-     * Note: the glyph, character index and position array can be
-     * accessed using the getter method below.
+     * Note; the glyph, character index and position array can be accessed
+     * using the getter method below.
+     *
+     * @stable ICU 2.8
      */
-    le_int32 layoutChars(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft, float x,
-        float y, LEErrorCode &success);
+    virtual le_int32 layoutChars(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, float x, float y, LEErrorCode &success);
 
     /**
-     * This method returns the number of glyphs in the glyph
-     * array. Note that the number of glyphs will be greater than or
-     * equal to the number of characters used to create the
-     * LayoutEngine.
+     * This method returns the number of glyphs in the glyph array. Note
+     * that the number of glyphs will be greater than or equal to the number
+     * of characters used to create the LayoutEngine.
      *
      * @return the number of glyphs in the glyph array
      *
@@ -412,9 +371,9 @@
     le_int32 getGlyphCount() const;
 
     /**
-     * This method copies the glyph array into a caller supplied
-     * array.  The caller must ensure that the array is large enough
-     * to hold all the glyphs.
+     * This method copies the glyph array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold all
+     * the glyphs.
      *
      * @param glyphs - the destiniation glyph array
      * @param success - set to an error code if the operation fails
@@ -424,10 +383,10 @@
     void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
 
     /**
-     * This method copies the glyph array into a caller supplied
-     * array, ORing in extra bits. (This functionality is needed by
-     * the JDK, which uses 32 bits pre glyph idex, with the high 16
-     * bits encoding the composite font slot number)
+     * This method copies the glyph array into a caller supplied array,
+     * ORing in extra bits. (This functionality is needed by the JDK,
+     * which uses 32 bits pre glyph idex, with the high 16 bits encoding
+     * the composite font slot number)
      *
      * @param glyphs - the destination (32 bit) glyph array
      * @param extraBits - this value will be ORed with each glyph index
@@ -435,13 +394,12 @@
      *
      * @stable ICU 2.8
      */
-    virtual void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits,
-        LEErrorCode &success) const;
+    virtual void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
 
     /**
-     * This method copies the character index array into a caller
-     * supplied array.  The caller must ensure that the array is large
-     * enough to hold a character index for each glyph.
+     * This method copies the character index array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold a
+     * character index for each glyph.
      *
      * @param charIndices - the destiniation character index array
      * @param success - set to an error code if the operation fails
@@ -451,9 +409,9 @@
     void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
 
     /**
-     * This method copies the character index array into a caller
-     * supplied array.  The caller must ensure that the array is large
-     * enough to hold a character index for each glyph.
+     * This method copies the character index array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold a
+     * character index for each glyph.
      *
      * @param charIndices - the destiniation character index array
      * @param indexBase - an offset which will be added to each index
@@ -461,14 +419,13 @@
      *
      * @stable ICU 2.8
      */
-    void getCharIndices(le_int32 charIndices[], le_int32 indexBase,
-        LEErrorCode &success) const;
+    void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
 
     /**
-     * This method copies the position array into a caller supplied
-     * array.  The caller must ensure that the array is large enough
-     * to hold an X and Y position for each glyph, plus an extra X and
-     * Y for the advance of the last glyph.
+     * This method copies the position array into a caller supplied array.
+     * The caller must ensure that the array is large enough to hold an
+     * X and Y position for each glyph, plus an extra X and Y for the
+     * advance of the last glyph.
      *
      * @param positions - the destiniation position array
      * @param success - set to an error code if the operation fails
@@ -491,8 +448,7 @@
      *
      * @stable ICU 2.8
      */
-    void getGlyphPosition(le_int32 glyphIndex, float &x, float &y,
-        LEErrorCode &success) const;
+    void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
 
     /**
      * This method frees the glyph, character index and position arrays
@@ -511,8 +467,7 @@
      * @param fontInstance - the font of the text
      * @param scriptCode - the script of the text
      * @param languageCode - the language of the text
-     * @param success - output parameter set to an error code if the
-     *     operation fails
+     * @param success - output parameter set to an error code if the operation fails
      *
      * @return a LayoutEngine which can layout text in the given font.
      *
@@ -520,17 +475,30 @@
      *
      * @stable ICU 2.8
      */
-    static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance,
-        le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success);
+    static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, LEErrorCode &success);
 
     /**
      * Override of existing call that provides flags to control typography.
      * @draft ICU 3.4
      */
-    static LayoutEngine *layoutEngineFactory(
-        const LEFontInstance *fontInstance,
-        le_int32 scriptCode, le_int32 languageCode,
-        le_int32 typo_flags, LEErrorCode &success);
+    static LayoutEngine *layoutEngineFactory(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typo_flags, LEErrorCode &success);
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/LayoutTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LayoutTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,11 +32,20 @@
 #ifndef __LAYOUTTABLES_H
 #define __LAYOUTTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 
+U_NAMESPACE_BEGIN
+
 #define ANY_NUMBER 1
 
 typedef le_int16 ByteOffset;
 typedef le_int16 WordOffset;
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -39,10 +39,14 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 #define ExtendedComplement(m) ((le_int32) (~((le_uint32) (m))))
 #define SignBit(m) ((ExtendedComplement(m) >> 1) & (le_int32)(m))
 #define SignExtend(v,m) (((v) & SignBit(m))? ((v) | ExtendedComplement(m)): (v))
 
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LigatureSubstitutionProcessor)
+
 LigatureSubstitutionProcessor::LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
   : StateTableProcessor(morphSubtableHeader)
 {
@@ -63,8 +67,7 @@
     m = -1;
 }
 
-ByteOffset LigatureSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage,
-    le_int32 &currGlyph, EntryTableIndex index)
+ByteOffset LigatureSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index)
 {
     const LigatureSubstitutionStateEntry *entry = &entryTable[index];
     ByteOffset newState = SWAPW(entry->newStateOffset);
@@ -135,3 +138,5 @@
 void LigatureSubstitutionProcessor::endStateTable()
 {
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstProc.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstProc.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __LIGATURESUBSTITUTIONPROCESSOR_H
 #define __LIGATURESUBSTITUTIONPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "StateTableProcessor.h"
 #include "LigatureSubstitution.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 #define nComponents 16
@@ -54,6 +61,20 @@
     LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader);
     virtual ~LigatureSubstitutionProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
     LigatureSubstitutionProcessor();
 
@@ -68,6 +89,8 @@
     le_int16 m;
 
     const LigatureSubstitutionHeader *ligatureSubstitutionHeader;
+
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
  *
  */
@@ -37,6 +38,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 LigatureSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
 {
     LEGlyphID glyph = glyphIterator->getCurrGlyphID();
@@ -92,3 +95,5 @@
 
     return 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __LIGATURESUBSTITUTIONSUBTABLES_H
 #define __LIGATURESUBSTITUTIONSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 #include "OpenTypeTables.h"
 #include "GlyphSubstitutionTables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct LigatureSetTable
 {
     le_uint16 ligatureCount;
@@ -59,4 +66,5 @@
     le_uint32  process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LigatureSubstitution.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LigatureSubstitution.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __LIGATURESUBSTITUTION_H
 #define __LIGATURESUBSTITUTION_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 #include "StateTables.h"
 #include "MorphTables.h"
 #include "MorphStateTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct LigatureSubstitutionHeader : MorphStateTableHeader
 {
     ByteOffset ligatureActionTableOffset;
@@ -65,4 +72,5 @@
     lafComponentOffsetMask  = 0x3FFFFFFF
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LookupProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -42,6 +42,8 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 LookupProcessor::applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator,
                                          const LEFontInstance *fontInstance) const
 {
@@ -65,10 +67,9 @@
     return 1;
 }
 
-le_int32 LookupProcessor::process(LEGlyphStorage &glyphStorage,
-    GlyphPositionAdjustments *glyphPositionAdjustments,
-    le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
-    const LEFontInstance *fontInstance) const
+le_int32 LookupProcessor::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
+                              le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
+                              const LEFontInstance *fontInstance) const
 {
     le_int32 glyphCount = glyphStorage.getGlyphCount();
 
@@ -133,8 +134,7 @@
 
 LookupProcessor::LookupProcessor(const char *baseAddress,
         Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
-        LETag scriptTag, LETag languageTag, const FeatureMap *featureMap,
-        le_int32 featureMapCount, le_bool orderFeatures)
+        LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures)
     : lookupListTable(NULL), featureListTable(NULL), lookupSelectArray(NULL),
       lookupOrderArray(NULL), lookupOrderCount(0)
 {
@@ -296,3 +296,5 @@
     LE_DELETE_ARRAY(lookupOrderArray);
     LE_DELETE_ARRAY(lookupSelectArray);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LookupProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -32,9 +33,18 @@
 #ifndef __LOOKUPPROCESSOR_H
 #define __LOOKUPPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
+//#include "Lookups.h"
+//#include "Features.h"
+
+U_NAMESPACE_BEGIN
 
 class  LEFontInstance;
 class  LEGlyphStorage;
@@ -46,13 +56,10 @@
 struct LookupSubtable;
 struct LookupTable;
 
-class LookupProcessor
-{
+class LookupProcessor : public UMemory {
 public:
-    le_int32 process(LEGlyphStorage &glyphStorage,
-        GlyphPositionAdjustments *glyphPositionAdjustments,
-        le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
-        const LEFontInstance *fontInstance) const;
+    le_int32 process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
+                 le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEFontInstance *fontInstance) const;
 
     le_uint32 applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
 
@@ -64,19 +71,18 @@
     virtual ~LookupProcessor();
 
 protected:
-    LookupProcessor(const char *baseAddress,
+     LookupProcessor(const char *baseAddress,
         Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
-        LETag scriptTag, LETag languageTag, const FeatureMap *featureMap,
-        le_int32 featureMapCount, le_bool orderFeatures);
+        LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures);
 
-    LookupProcessor();
+   LookupProcessor();
 
     le_int32 selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order);
 
     const LookupListTable   *lookupListTable;
     const FeatureListTable  *featureListTable;
 
-    FeatureMask             *lookupSelectArray;
+    FeatureMask            *lookupSelectArray;
 
     le_uint16               *lookupOrderArray;
     le_uint32               lookupOrderCount;
@@ -87,4 +93,5 @@
     LookupProcessor &operator=(const LookupProcessor &other); // forbid copying of this class
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/LookupTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -34,6 +34,8 @@
 #include "LookupTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 /*
     These are the rolled-up versions of the uniform binary search.
     Someday, if we need more performance, we can un-roll them.
@@ -104,3 +106,5 @@
 
     return NULL;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/LookupTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/LookupTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __LOOKUPTABLES_H
 #define __LOOKUPTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 
+U_NAMESPACE_BEGIN
+
 enum LookupTableFormat
 {
     ltfSimpleArray      = 0,
@@ -104,4 +111,5 @@
     LookupValue valueArray[ANY_NUMBER];
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/Lookups.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Lookups.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "CoverageTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 const LookupTable *LookupListTable::getLookupTable(le_uint16 lookupTableIndex) const
 {
     if (lookupTableIndex >= SWAPW(lookupCount)) {
@@ -63,3 +65,5 @@
 
     return coverageTable->getGlyphCoverage(glyphID);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/Lookups.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/Lookups.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __LOOKUPS_H
 #define __LOOKUPS_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 enum LookupFlags
 {
     lfBaselineIsLogicalEnd  = 0x0001,  // The MS spec. calls this flag "RightToLeft" but this name is more accurate
@@ -79,6 +86,5 @@
     return getGlyphCoverage(coverageTableOffset, glyphID);
 }
 
-
-
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/MPreFixups.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MPreFixups.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -33,6 +33,8 @@
 #include "LEGlyphStorage.h"
 #include "MPreFixups.h"
 
+U_NAMESPACE_BEGIN
+
 struct FixupData
 {
     le_int32 fBaseIndex;
@@ -92,7 +94,7 @@
 
         for (i = 0; i < mpreCount; i += 1) {
             mpreSave[i]  = glyphStorage[mpreIndex + i];
-            indexSave[i] = glyphStorage.getCharIndex(mpreIndex + i, success);
+            indexSave[i] = glyphStorage.getCharIndex(mpreIndex + i, success); //charIndices[mpreIndex + i];
         }
 
         for (i = 0; i < moveCount; i += 1) {
@@ -112,3 +114,5 @@
         LE_DELETE_ARRAY(mpreSave);
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MPreFixups.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MPreFixups.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,14 +32,22 @@
 #ifndef __MPREFIXUPS_H
 #define __MPREFIXUPS_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 // Might want to make this a private member...
 struct FixupData;
 
-class MPreFixups {
+class MPreFixups : public UMemory
+{
 public:
     MPreFixups(le_int32 charCount);
    ~MPreFixups();
@@ -53,4 +61,7 @@
     le_int32   fFixupCount;
 };
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/MarkArrays.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkArrays.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -36,6 +36,8 @@
 #include "MarkArrays.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_int32 MarkArray::getMarkClass(LEGlyphID glyphID, le_int32 coverageIndex, const LEFontInstance *fontInstance,
                               LEPoint &anchor) const
 {
@@ -58,3 +60,5 @@
 
     return markClass;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkArrays.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkArrays.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,10 +32,17 @@
 #ifndef __MARKARRAYS_H
 #define __MARKARRAYS_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct MarkRecord
 {
     le_uint16   markClass;
@@ -51,4 +58,7 @@
         LEPoint &anchor) const;
 };
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -40,6 +40,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 LEGlyphID MarkToBasePositioningSubtable::findBaseGlyph(GlyphIterator *glyphIterator) const
 {
     if (glyphIterator->prev()) {
@@ -106,7 +108,6 @@
     glyphIterator->setCurrGlyphBaseOffset(baseIterator.getCurrStreamPosition());
 
     if (glyphIterator->isRightToLeft()) {
-        // dlf flip advance to local coordinate system
         glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX, anchorDiffY, -markAdvance.fX, -markAdvance.fY);
     } else {
         LEPoint baseAdvance;
@@ -114,9 +115,10 @@
         fontInstance->getGlyphAdvance(baseGlyph, pixels);
         fontInstance->pixelsToUnits(pixels, baseAdvance);
 
-        // flip advances to local coordinate system
         glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - baseAdvance.fX, anchorDiffY - baseAdvance.fY, -markAdvance.fX, -markAdvance.fY);
     }
 
     return 1;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,11 @@
 #ifndef __MARKTOBASEPOSITIONINGSUBTABLES_H
 #define __MARKTOBASEPOSITIONINGSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
 #include "AttachmentPosnSubtables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct MarkToBasePositioningSubtable : AttachmentPositioningSubtable
 {
     le_int32   process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -56,4 +63,6 @@
     BaseRecord baseRecordArray[ANY_NUMBER];
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -39,6 +39,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 LEGlyphID MarkToLigaturePositioningSubtable::findLigatureGlyph(GlyphIterator *glyphIterator) const
 {
     if (glyphIterator->prev()) {
@@ -117,9 +119,10 @@
         fontInstance->getGlyphAdvance(ligatureGlyph, pixels);
         fontInstance->pixelsToUnits(pixels, ligatureAdvance);
 
-        glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - ligatureAdvance.fX,
-            anchorDiffY - ligatureAdvance.fY, -markAdvance.fX, -markAdvance.fY);
+        glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - ligatureAdvance.fX, anchorDiffY - ligatureAdvance.fY, -markAdvance.fX, -markAdvance.fY);
     }
 
     return 1;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,11 @@
 #ifndef __MARKTOLIGATUREPOSITIONINGSUBTABLES_H
 #define __MARKTOLIGATUREPOSITIONINGSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
 #include "AttachmentPosnSubtables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct MarkToLigaturePositioningSubtable : AttachmentPositioningSubtable
 {
     le_int32   process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -62,4 +69,6 @@
     Offset ligatureAttachTableOffsetArray[ANY_NUMBER];
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -40,6 +40,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 LEGlyphID MarkToMarkPositioningSubtable::findMark2Glyph(GlyphIterator *glyphIterator) const
 {
     if (glyphIterator->findMark2Glyph()) {
@@ -88,7 +90,7 @@
     const AnchorTable *anchorTable = (const AnchorTable *) ((char *) mark2Array + anchorTableOffset);
     LEPoint mark2Anchor, markAdvance, pixels;
 
-    if (anchorTableOffset == 0) { // jb4729
+    if (anchorTableOffset == 0) {
         // this seems to mean that the marks don't attach...
         return 0;
     }
@@ -111,9 +113,10 @@
         fontInstance->getGlyphAdvance(mark2Glyph, pixels);
         fontInstance->pixelsToUnits(pixels, mark2Advance);
 
-        glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - mark2Advance.fX,
-            anchorDiffY - mark2Advance.fY, -markAdvance.fX, -markAdvance.fY);
+        glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - mark2Advance.fX, anchorDiffY - mark2Advance.fY, -markAdvance.fX, -markAdvance.fY);
     }
 
     return 1;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,11 @@
 #ifndef __MARKTOMARKPOSITIONINGSUBTABLES_H
 #define __MARKTOMARKPOSITIONINGSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
 #include "AttachmentPosnSubtables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct MarkToMarkPositioningSubtable : AttachmentPositioningSubtable
 {
     le_int32   process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -56,4 +63,6 @@
     Mark2Record mark2RecordArray[ANY_NUMBER];
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/MirroredCharData.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MirroredCharData.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -36,6 +36,8 @@
 #include "LETypes.h"
 #include "DefaultCharMapper.h"
 
+U_NAMESPACE_BEGIN
+
 const LEUnicode32 DefaultCharMapper::mirroredChars[] = {
     0x0028, 0x0029, 0x003C, 0x003E, 0x005B, 0x005D, 0x007B, 0x007D,
     0x00AB, 0x00BB, 0x2039, 0x203A, 0x2045, 0x2046, 0x207D, 0x207E,
@@ -127,3 +129,5 @@
 };
 
 const le_int32 DefaultCharMapper::mirroredCharsCount = 332;
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MorphStateTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MorphStateTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,14 +32,22 @@
 #ifndef __MORPHSTATETABLES_H
 #define __MORPHSTATETABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 #include "MorphTables.h"
 #include "StateTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct MorphStateTableHeader : MorphSubtableHeader
 {
     StateTableHeader stHeader;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/MorphTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MorphTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -42,6 +42,8 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 void MorphTableHeader::process(LEGlyphStorage &glyphStorage) const
 {
     const ChainHeader *chainHeader = chains;
@@ -114,3 +116,5 @@
         delete processor;
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MorphTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MorphTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __MORPHTABLES_H
 #define __MORPHTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 typedef le_uint32 FeatureFlags;
@@ -98,4 +105,6 @@
     void process(LEGlyphStorage &glyphStorage) const;
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -37,6 +37,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 MultipleSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
 {
     LEGlyphID glyph = glyphIterator->getCurrGlyphID();
@@ -106,3 +108,5 @@
 
     return 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __MULTIPLESUBSTITUTIONSUBTABLES_H
 #define __MULTIPLESUBSTITUTIONSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 #include "OpenTypeTables.h"
 #include "GlyphSubstitutionTables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct SequenceTable
 {
     le_uint16 glyphCount;
@@ -52,4 +59,5 @@
     le_uint32 process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubst.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubst.h	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
  *
  */
@@ -32,14 +33,23 @@
 #ifndef __NONCONTEXTUALGLYPHSUBSTITUTION_H
 #define __NONCONTEXTUALGLYPHSUBSTITUTION_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 #include "LookupTables.h"
 #include "MorphTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct NonContextualGlyphSubstitutionHeader : MorphSubtableHeader
 {
     LookupTable table;
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -41,6 +41,8 @@
 #include "TrimmedArrayProcessor.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor()
 {
 }
@@ -79,3 +81,5 @@
         return NULL;
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,11 +32,18 @@
 #ifndef __NONCONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
 #define __NONCONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "NonContextualGlyphSubst.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class NonContextualGlyphSubstitutionProcessor : public SubtableProcessor
@@ -57,4 +64,5 @@
     NonContextualGlyphSubstitutionProcessor &operator=(const NonContextualGlyphSubstitutionProcessor &other); // forbid copying of this class
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -47,6 +47,10 @@
 
 #include "GDEFMarkFilter.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(OpenTypeLayoutEngine)
+
 #define ccmpFeatureTag LE_CCMP_FEATURE_TAG
 #define ligaFeatureTag LE_LIGA_FEATURE_TAG
 #define cligFeatureTag LE_CLIG_FEATURE_TAG
@@ -78,7 +82,7 @@
     {ccmpFeatureTag, ccmpFeatureMask},
     {ligaFeatureTag, ligaFeatureMask},
     {cligFeatureTag, cligFeatureMask},
-    {kernFeatureTag, kernFeatureMask},
+        {kernFeatureTag, kernFeatureMask},
     {paltFeatureTag, paltFeatureMask},
     {markFeatureTag, markFeatureMask},
     {mkmkFeatureTag, mkmkFeatureMask}
@@ -86,19 +90,15 @@
 
 static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
 
-OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags,
-    const GlyphSubstitutionTableHeader *gsubTable)
-    : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags),
-    fFeatureMask(minimalFeatures), fFeatureMap(featureMap),
-    fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE),
-    fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL),
-    fSubstitutionFilter(NULL)
+OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                        le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+    : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureMask(minimalFeatures),
+      fFeatureMap(featureMap), fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE),
+      fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
 {
     static const le_uint32 gdefTableTag = LE_GDEF_TABLE_TAG;
     static const le_uint32 gposTableTag = LE_GPOS_TABLE_TAG;
-    const GlyphPositioningTableHeader *gposTable =
-        (const GlyphPositioningTableHeader *) getFontTable(gposTableTag);
+    const GlyphPositioningTableHeader *gposTable = (const GlyphPositioningTableHeader *) getFontTable(gposTableTag);
 
     // todo: switch to more flags and bitfield rather than list of feature tags?
     switch (typoFlags) {
@@ -127,11 +127,10 @@
     LayoutEngine::reset();
 }
 
-OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
-    : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags),
-    fFeatureOrder(FALSE), fGSUBTable(NULL), fGDEFTable(NULL),
-    fGPOSTable(NULL), fSubstitutionFilter(NULL)
+OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                                           le_int32 typoFlags)
+    : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureOrder(FALSE),
+      fGSUBTable(NULL), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
 {
     setScriptAndLanguageTags();
 }
@@ -165,9 +164,8 @@
     fLangSysTag = getLangSysTag(fLanguageCode);
 }
 
-le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[],
-    le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+                LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -178,8 +176,7 @@
         return 0;
     }
 
-    le_int32 outCharCount = LayoutEngine::characterProcessing(chars, offset, count,
-         max, rightToLeft, outChars, glyphStorage, success);
+    le_int32 outCharCount = LayoutEngine::characterProcessing(chars, offset, count, max, rightToLeft, outChars, glyphStorage, success);
 
     if (LE_FAILURE(success)) {
         return 0;
@@ -197,16 +194,14 @@
 
 // Input: characters, tags
 // Output: glyphs, char indices
-le_int32 OpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_int32 max, le_bool rightToLeft,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+                                               LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
     }
 
-    if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
-         offset >= max || offset + count > max) {
+    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
         success = LE_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
@@ -218,16 +213,14 @@
     }
 
     if (fGSUBTable != NULL) {
-        count = fGSUBTable->process(glyphStorage, rightToLeft,
-            fScriptTag, fLangSysTag, fGDEFTable, fSubstitutionFilter,
-            fFeatureMap, fFeatureMapCount, fFeatureOrder);
+        count = fGSUBTable->process(glyphStorage, rightToLeft, fScriptTag, fLangSysTag, fGDEFTable, fSubstitutionFilter,
+                                    fFeatureMap, fFeatureMapCount, fFeatureOrder);
     }
 
     return count;
 }
 
-le_int32 OpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
@@ -241,9 +234,7 @@
     return glyphStorage.getGlyphCount();
 }
 
-le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage,
-    LEErrorCode &success)
+le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     LEUnicode *outChars = NULL;
     LEGlyphStorage fakeGlyphStorage;
@@ -253,25 +244,19 @@
         return 0;
     }
 
-    if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
-         offset >= max || offset + count > max) {
+    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
         success = LE_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
 
-    outCharCount = characterProcessing(chars, offset, count, max, rightToLeft,
-        outChars, fakeGlyphStorage, success);
+    outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, fakeGlyphStorage, success);
 
     if (outChars != NULL) {
-        fakeGlyphCount = glyphProcessing(outChars, 0, outCharCount, outCharCount,
-            rightToLeft, fakeGlyphStorage, success);
-        // FIXME: a subclass may have allocated this, in which case
-        // this delete might not work...
-        LE_DELETE_ARRAY(outChars);
+        fakeGlyphCount = glyphProcessing(outChars, 0, outCharCount, outCharCount, rightToLeft, fakeGlyphStorage, success);
+        LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
         //adjustGlyphs(outChars, 0, outCharCount, rightToLeft, fakeGlyphs, fakeGlyphCount);
     } else {
-        fakeGlyphCount = glyphProcessing(chars, offset, count, max, rightToLeft,
-            fakeGlyphStorage, success);
+        fakeGlyphCount = glyphProcessing(chars, offset, count, max, rightToLeft, fakeGlyphStorage, success);
         //adjustGlyphs(chars, offset, count, rightToLeft, fakeGlyphs, fakeGlyphCount);
     }
 
@@ -281,8 +266,8 @@
 }
 
 // apply GPOS table, if any
-void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_bool reverse,  LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse,
+                                                LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return;
@@ -318,8 +303,8 @@
         }
 #endif
 
-        fGPOSTable->process(glyphStorage, adjustments, reverse, fScriptTag, fLangSysTag,
-            fGDEFTable, fFontInstance, fFeatureMap, fFeatureMapCount, fFeatureOrder);
+        fGPOSTable->process(glyphStorage, adjustments, reverse, fScriptTag, fLangSysTag, fGDEFTable, fFontInstance,
+                            fFeatureMap, fFeatureMapCount, fFeatureOrder);
 
         float xAdjust = 0, yAdjust = 0;
 
@@ -354,4 +339,12 @@
 
         delete adjustments;
     }
+
+#if 0
+    // Don't know why this is here...
+    LE_DELETE_ARRAY(fFeatureTags);
+    fFeatureTags = NULL;
+#endif
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -23,9 +23,7 @@
  *
  */
 
-
 /*
- *
  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
  *
  */
@@ -42,6 +40,8 @@
 #include "GlyphDefinitionTables.h"
 #include "GlyphPositioningTables.h"
 
+U_NAMESPACE_BEGIN
+
 /**
  * OpenTypeLayoutEngine implements complex text layout for OpenType fonts - that is
  * fonts which have GSUB and GPOS tables associated with them. In order to do this,
@@ -87,7 +87,7 @@
      * @internal
      */
     OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
-                         le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+                            le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
 
     /**
      * This constructor is used when the font requires a "canned" GSUB table which can't be known
@@ -95,11 +95,12 @@
      *
      * @param fontInstance - the font
      * @param scriptCode - the script
-     * @param languageCode - the language
+     * @param langaugeCode - the language
      *
      * @internal
      */
-    OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
+    OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+                         le_int32 typoFlags);
 
     /**
      * The destructor, virtual for correct polymorphic invocation.
@@ -132,6 +133,20 @@
      */
     static LETag getLangSysTag(le_int32 languageCode);
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
 
     /**
@@ -254,9 +269,8 @@
      *
      * @internal
      */
-    virtual le_int32 characterProcessing(const LEUnicode /*chars*/[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
-        LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 characterProcessing(const LEUnicode /*chars*/[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
+            LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method does character to glyph mapping, and applies the GSUB table. The
@@ -287,9 +301,8 @@
      *
      * @internal
      */
-    virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
-        LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 glyphProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+            LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method does any processing necessary to convert "fake"
@@ -316,8 +329,7 @@
      *
      * @internal
      */
-    virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage,
-        LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 glyphPostProcessing(LEGlyphStorage &tempGlyphStorage, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method applies the characterProcessing, glyphProcessing and glyphPostProcessing
@@ -341,8 +353,7 @@
      *
      * @internal
      */
-    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
-        le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method uses the GPOS table, if there is one, to adjust the glyph positions.
@@ -359,8 +370,7 @@
      *
      * @internal
      */
-    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count,
-        le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+    virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     /**
      * This method frees the feature tag array so that the
@@ -372,4 +382,6 @@
     virtual void reset();
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/OpenTypeTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,8 +32,15 @@
 #ifndef __OPENTYPETABLES_H
 #define __OPENTYPETABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 
+U_NAMESPACE_BEGIN
+
 #define ANY_NUMBER 1
 
 typedef le_uint16 Offset;
@@ -62,4 +69,5 @@
     FeatureMask mask;
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -34,6 +34,8 @@
 #include "OpenTypeUtilities.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 //
 // Finds the high bit by binary searching
 // through the bits in n.
@@ -192,3 +194,7 @@
         array[i + 1] = v;
     }
 }
+
+
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/OpenTypeUtilities.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,10 +32,17 @@
 #ifndef __OPENTYPEUTILITIES_H
 #define __OPENTYPEUTILITIES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
-class OpenTypeUtilities {
+U_NAMESPACE_BEGIN
+
+class OpenTypeUtilities /* not : public UObject because all methods are static */ {
 public:
     static le_int8 highBit(le_int32 value);
     static Offset getTagOffset(LETag tag, const TagAndOffsetRecord *records, le_int32 recordCount);
@@ -48,4 +55,5 @@
     OpenTypeUtilities() {} // private - forbid instantiation
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -39,6 +39,8 @@
 #include "OpenTypeUtilities.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 PairPositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
 {
     switch(SWAPW(subtableFormat))
@@ -82,8 +84,7 @@
         const PairValueRecord *pairValueRecord = NULL;
 
         if (pairValueCount != 0) {
-            pairValueRecord = findPairValueRecord((TTGlyphID) LE_GET_GLYPH(secondGlyph),
-                pairSetTable->pairValueRecordArray, pairValueCount, recordSize);
+            pairValueRecord = findPairValueRecord((TTGlyphID) LE_GET_GLYPH(secondGlyph), pairSetTable->pairValueRecordArray, pairValueCount, recordSize);
         }
 
         if (pairValueRecord == NULL) {
@@ -91,8 +92,7 @@
         }
 
         if (valueFormat1 != 0) {
-            pairValueRecord->valueRecord1.adjustPosition(SWAPW(valueFormat1), (char *) this,
-                tempIterator, fontInstance);
+            pairValueRecord->valueRecord1.adjustPosition(SWAPW(valueFormat1), (char *) this, tempIterator, fontInstance);
         }
 
         if (valueFormat2 != 0) {
@@ -171,3 +171,5 @@
 
     return NULL;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/PairPositioningSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,11 @@
 #ifndef __PAIRPOSITIONINGSUBTABLES_H
 #define __PAIRPOSITIONINGSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
 #include "ValueRecords.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 // NOTE: ValueRecord has a variable size
 struct PairValueRecord
 {
@@ -96,4 +103,7 @@
     le_uint32  process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
 };
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
  *
  */
@@ -35,6 +36,8 @@
 #include "ScriptAndLanguage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 const LangSysTable *ScriptTable::findLanguage(LETag languageTag, le_bool exactMatch) const
 {
     le_uint16 count = SWAPW(langSysCount);
@@ -79,3 +82,5 @@
 
     return scriptTable->findLanguage(languageTag, exactMatch);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguage.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __SCRIPTANDLANGUAGE_H
 #define __SCRIPTANDLANGUAGE_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 typedef TagAndOffsetRecord LangSysRecord;
 
 struct LangSysTable
@@ -65,4 +72,6 @@
     const LangSysTable  *findLanguage(LETag scriptTag, LETag languageTag, le_bool exactMatch = FALSE) const;
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "ScriptAndLanguageTags.h"
 #include "OpenTypeLayoutEngine.h"
 
+U_NAMESPACE_BEGIN
+
 const LETag OpenTypeLayoutEngine::scriptTags[] = {
     zyyyScriptTag, /* 'zyyy' (COMMON) */
     qaaiScriptTag, /* 'qaai' (INHERITED) */
@@ -125,3 +127,5 @@
     zhsLanguageTag, /* 'ZHS' (Chinese (Simplified)) */
     zhtLanguageTag  /* 'ZHT' (Chinese (Traditional)) */
 };
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.h	Wed Oct 07 14:15:01 2009 -0700
@@ -36,6 +36,13 @@
 
 #include "LETypes.h"
 
+U_NAMESPACE_BEGIN
+
+/**
+ * \file
+ * \internal
+ */
+
 const LETag zyyyScriptTag = 0x7A797979; /* 'zyyy' (COMMON) */
 const LETag qaaiScriptTag = 0x71616169; /* 'qaai' (INHERITED) */
 const LETag arabScriptTag = 0x61726162; /* 'arab' (ARABIC) */
@@ -126,4 +133,6 @@
 const LETag zhsLanguageTag = 0x5A485320; /* 'ZHS' (Chinese (Simplified)) */
 const LETag zhtLanguageTag = 0x5A485420; /* 'ZHT' (Chinese (Traditional)) */
 
+
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,6 +38,10 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SegmentArrayProcessor)
+
 SegmentArrayProcessor::SegmentArrayProcessor()
 {
 }
@@ -77,3 +81,5 @@
         }
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __SEGMENTARRAYPROCESSOR_H
 #define __SEGMENTARRAYPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "NonContextualGlyphSubst.h"
 #include "NonContextualGlyphSubstProc.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class SegmentArrayProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,28 @@
 
     virtual ~SegmentArrayProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
     SegmentArrayProcessor();
 
 protected:
     const SegmentArrayLookupTable *segmentArrayLookupTable;
+
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,6 +38,10 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SegmentSingleProcessor)
+
 SegmentSingleProcessor::SegmentSingleProcessor()
 {
 }
@@ -71,3 +75,5 @@
         }
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SegmentSingleProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __SEGMENTSINGLEPROCESSOR_H
 #define __SEGMENTSINGLEPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "NonContextualGlyphSubst.h"
 #include "NonContextualGlyphSubstProc.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class SegmentSingleProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,28 @@
 
     virtual ~SegmentSingleProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
     SegmentSingleProcessor();
 
 protected:
     const SegmentSingleLookupTable *segmentSingleLookupTable;
+
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/ShapingTypeData.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ShapingTypeData.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -36,6 +36,8 @@
 #include "LETypes.h"
 #include "ArabicShaping.h"
 
+U_NAMESPACE_BEGIN
+
 const le_uint8 ArabicShaping::shapingTypeTable[] = {
     0x00, 0x02, 0x00, 0xAD, 0x00, 0xAD, 0x00, 0xAD, 0x00, 0x05, 0x03, 0x00, 0x03, 0x6F, 0x00, 0x05,
     0x04, 0x83, 0x04, 0x86, 0x00, 0x05, 0x04, 0x88, 0x04, 0x89, 0x00, 0x05, 0x05, 0x91, 0x05, 0xB9,
@@ -104,3 +106,5 @@
     0xFE, 0x20, 0xFE, 0x23, 0x00, 0x05, 0xFE, 0xFF, 0xFE, 0xFF, 0x00, 0x05, 0xFF, 0xF9, 0xFF, 0xFB,
     0x00, 0x05
 };
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,6 +38,10 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SimpleArrayProcessor)
+
 SimpleArrayProcessor::SimpleArrayProcessor()
 {
 }
@@ -68,3 +72,5 @@
         }
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SimpleArrayProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __SIMPLEARRAYPROCESSOR_H
 #define __SIMPLEARRAYPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "NonContextualGlyphSubst.h"
 #include "NonContextualGlyphSubstProc.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class SimpleArrayProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,28 @@
 
     virtual ~SimpleArrayProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
     SimpleArrayProcessor();
 
 protected:
     const SimpleArrayLookupTable *simpleArrayLookupTable;
+
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,6 +38,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 SinglePositioningSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
 {
     switch(SWAPW(subtableFormat))
@@ -84,11 +86,12 @@
     le_int16 coverageIndex = (le_int16) getGlyphCoverage(glyph);
 
     if (coverageIndex >= 0) {
-        valueRecordArray[0].adjustPosition(coverageIndex, SWAPW(valueFormat), (const char *) this,
-            *glyphIterator, fontInstance);
+        valueRecordArray[0].adjustPosition(coverageIndex, SWAPW(valueFormat), (const char *) this, *glyphIterator, fontInstance);
 
         return 1;
     }
 
     return 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,11 @@
 #ifndef __SINGLEPOSITIONINGSUBTABLES_H
 #define __SINGLEPOSITIONINGSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
 #include "ValueRecords.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct SinglePositioningSubtable : GlyphPositioningSubtable
 {
     le_uint32  process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
@@ -61,4 +68,7 @@
     le_uint32  process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const;
 };
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -37,6 +37,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 le_uint32 SingleSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
 {
     switch(SWAPW(subtableFormat))
@@ -98,3 +100,5 @@
 
     return 0;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __SINGLESUBSTITUTIONSUBTABLES_H
 #define __SINGLESUBSTITUTIONSUBTABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 #include "OpenTypeTables.h"
 #include "GlyphSubstitutionTables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 struct SingleSubstitutionSubtable : GlyphSubstitutionSubtable
 {
     le_uint32  process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
@@ -58,4 +65,7 @@
     le_uint32  process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter = NULL) const;
 };
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/SingleTableProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleTableProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,6 +38,10 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SingleTableProcessor)
+
 SingleTableProcessor::SingleTableProcessor()
 {
 }
@@ -68,3 +72,5 @@
         }
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SingleTableProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SingleTableProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __SINGLETABLEPROCESSOR_H
 #define __SINGLETABLEPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "NonContextualGlyphSubst.h"
 #include "NonContextualGlyphSubstProc.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class SingleTableProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,11 +56,27 @@
 
     virtual ~SingleTableProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
     SingleTableProcessor();
 
 protected:
     const SingleTableLookupTable *singleTableLookupTable;
+
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,6 +38,8 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 StateTableProcessor::StateTableProcessor()
 {
 }
@@ -96,3 +98,5 @@
 
     endStateTable();
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/StateTableProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/StateTableProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,11 +32,18 @@
 #ifndef __STATETABLEPROCESSOR_H
 #define __STATETABLEPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "MorphStateTables.h"
 #include "SubtableProcessor.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class StateTableProcessor : public SubtableProcessor
@@ -72,4 +79,5 @@
     StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class
 };
 
+U_NAMESPACE_END
 #endif
--- a/jdk/src/share/native/sun/font/layout/StateTables.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/StateTables.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,9 +32,16 @@
 #ifndef __STATETABLES_H
 #define __STATETABLES_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LayoutTables.h"
 
+U_NAMESPACE_BEGIN
+
 struct StateTableHeader
 {
     le_int16 stateSize;
@@ -78,4 +85,6 @@
     le_int16    flags;
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/SubstitutionLookups.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubstitutionLookups.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -39,6 +39,8 @@
 #include "CoverageTables.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 /*
     NOTE: This could be optimized somewhat by keeping track
     of the previous sequenceIndex in the loop and doing next()
@@ -65,3 +67,5 @@
         lookupProcessor->applySingleLookup(lookupListIndex, &tempIterator, fontInstance);
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SubstitutionLookups.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubstitutionLookups.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,6 +32,11 @@
 #ifndef __SUBSTITUTIONLOOKUPS_H
 #define __SUBSTITUTIONLOOKUPS_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
@@ -39,6 +44,8 @@
 #include "GlyphIterator.h"
 #include "LookupProcessor.h"
 
+U_NAMESPACE_BEGIN
+
 struct SubstitutionLookupRecord
 {
     le_uint16  sequenceIndex;
@@ -56,4 +63,6 @@
         le_int32 position);
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/SubtableProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubtableProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -34,6 +34,8 @@
 #include "SubtableProcessor.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 SubtableProcessor::SubtableProcessor()
 {
 }
@@ -50,3 +52,5 @@
 SubtableProcessor::~SubtableProcessor()
 {
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/SubtableProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/SubtableProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,13 +32,19 @@
 #ifndef __SUBTABLEPROCESSOR_H
 #define __SUBTABLEPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
-class SubtableProcessor
-{
+class SubtableProcessor : public UMemory {
 public:
     virtual void process(LEGlyphStorage &glyphStorage) = 0;
     virtual ~SubtableProcessor();
@@ -60,4 +66,6 @@
     SubtableProcessor &operator=(const SubtableProcessor &other); // forbid copying of this class
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,8 +38,11 @@
 
 #include "ThaiShaping.h"
 
-ThaiLayoutEngine::ThaiLayoutEngine(const LEFontInstance *fontInstance,
-    le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ThaiLayoutEngine)
+
+ThaiLayoutEngine::ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
     : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
 {
     fErrorChar = 0x25CC;
@@ -73,16 +76,13 @@
 // Output: glyphs, char indices
 // Returns: the glyph count
 // NOTE: this assumes that ThaiShaping::compose will allocate the outChars array...
-le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
-    le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
-    LEGlyphStorage &glyphStorage, LEErrorCode &success)
+le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
 {
     if (LE_FAILURE(success)) {
         return 0;
     }
 
-    if (chars == NULL || offset < 0 || count < 0 || max < 0 ||
-        offset >= max || offset + count > max) {
+    if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
         success = LE_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
@@ -107,8 +107,7 @@
         return 0;
     }
 
-    glyphCount = ThaiShaping::compose(chars, offset, count, fGlyphSet, fErrorChar,
-        outChars, glyphStorage);
+    glyphCount = ThaiShaping::compose(chars, offset, count, fGlyphSet, fErrorChar, outChars, glyphStorage);
     mapCharsToGlyphs(outChars, 0, glyphCount, FALSE, FALSE, glyphStorage, success);
 
     LE_DELETE_ARRAY(outChars);
@@ -116,3 +115,5 @@
     glyphStorage.adoptGlyphCount(glyphCount);
     return glyphCount;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiLayoutEngine.h	Wed Oct 07 14:15:01 2009 -0700
@@ -39,6 +39,8 @@
 
 #include "ThaiShaping.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 /**
@@ -66,8 +68,7 @@
      *
      * @internal
      */
-    ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode,
-        le_int32 languageCode, le_int32 typoFlags);
+    ThaiLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags);
 
     /**
      * The destructor, virtual for correct polymorphic invocation.
@@ -76,6 +77,20 @@
      */
     virtual ~ThaiLayoutEngine();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 protected:
     /**
      * A small integer indicating which Thai encoding
@@ -109,10 +124,8 @@
      * @param offset - the index of the first character to process
      * @param count - the number of characters to process
      * @param max - the number of characters in the input context
-     * @param rightToLeft - <code>TRUE</code> if the text is in a
-     *    right to left directional run
-     * @param glyphStorage - the glyph storage object. The glyph and
-     *    char index arrays will be set.
+     * @param rightToLeft - <code>TRUE</code> if the text is in a right to left directional run
+     * @param glyphStorage - the glyph storage object. The glyph and char index arrays will be set.
      *
      * Output parameters:
      * @param success - set to an error code if the operation fails
@@ -123,10 +136,11 @@
      *
      * @internal
      */
-    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset,
-        le_int32 count, le_int32 max, le_bool rightToLeft,
+    virtual le_int32 computeGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
         LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/ThaiShaping.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiShaping.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -35,6 +35,8 @@
 #include "LEGlyphStorage.h"
 #include "ThaiShaping.h"
 
+U_NAMESPACE_BEGIN
+
 enum {
     CH_SPACE        = 0x0020,
     CH_YAMAKKAN     = 0x0E4E,
@@ -248,9 +250,8 @@
      return transition.nextState;
 }
 
-le_uint8 ThaiShaping::getNextState(LEUnicode ch, le_uint8 prevState, le_int32 inputIndex,
-    le_uint8 glyphSet, LEUnicode errorChar,
-    le_uint8 &charClass, LEUnicode *output, LEGlyphStorage &glyphStorage, le_int32 &outputIndex)
+le_uint8 ThaiShaping::getNextState(LEUnicode ch, le_uint8 prevState, le_int32 inputIndex, le_uint8 glyphSet, LEUnicode errorChar,
+                              le_uint8 &charClass, LEUnicode *output, LEGlyphStorage &glyphStorage, le_int32 &outputIndex)
 {
     StateTransition transition;
 
@@ -327,3 +328,5 @@
 
     return outputIndex;
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ThaiShaping.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiShaping.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,13 +32,20 @@
 #ifndef __THAISHAPING_H
 #define __THAISHAPING_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEGlyphFilter.h"
 #include "OpenTypeTables.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
-class ThaiShaping {
+class ThaiShaping /* not : public UObject because all methods are static */ {
 public:
 
     enum {
@@ -120,4 +127,7 @@
     return thaiStateTable[state][currClass];
 }
 
+U_NAMESPACE_END
 #endif
+
+
--- a/jdk/src/share/native/sun/font/layout/ThaiStateTables.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ThaiStateTables.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 /*
  *
+ *
  * (C) Copyright IBM Corp. 1999-2003 - All Rights Reserved
  *
  * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
@@ -35,6 +36,8 @@
 #include "LETypes.h"
 #include "ThaiShaping.h"
 
+U_NAMESPACE_BEGIN
+
 const le_uint8 ThaiShaping::classTable[] = {
     //       0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
     //       -------------------------------------------------------------------------------
@@ -105,3 +108,5 @@
     /*50*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tS}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, {51, tC}, { 0, tR}, { 0, tC}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}},
     /*51*/ {{ 0, tA}, { 1, tA}, {18, tA}, {35, tA}, { 0, tA}, { 0, tS}, { 0, tA}, { 0, tA}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}, { 0, tR}}
 };
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -38,6 +38,10 @@
 #include "LEGlyphStorage.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TrimmedArrayProcessor)
+
 TrimmedArrayProcessor::TrimmedArrayProcessor()
 {
 }
@@ -72,3 +76,5 @@
         }
     }
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/TrimmedArrayProcessor.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,12 +32,19 @@
 #ifndef __TRIMMEDARRAYPROCESSOR_H
 #define __TRIMMEDARRAYPROCESSOR_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "MorphTables.h"
 #include "SubtableProcessor.h"
 #include "NonContextualGlyphSubst.h"
 #include "NonContextualGlyphSubstProc.h"
 
+U_NAMESPACE_BEGIN
+
 class LEGlyphStorage;
 
 class TrimmedArrayProcessor : public NonContextualGlyphSubstitutionProcessor
@@ -49,6 +56,20 @@
 
     virtual ~TrimmedArrayProcessor();
 
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for the actual class.
+     *
+     * @stable ICU 2.8
+     */
+    virtual UClassID getDynamicClassID() const;
+
+    /**
+     * ICU "poor man's RTTI", returns a UClassID for this class.
+     *
+     * @stable ICU 2.8
+     */
+    static UClassID getStaticClassID();
+
 private:
     TrimmedArrayProcessor();
 
@@ -56,6 +77,9 @@
     TTGlyphID firstGlyph;
     TTGlyphID lastGlyph;
     const TrimmedArrayLookupTable *trimmedArrayLookupTable;
+
 };
 
+U_NAMESPACE_END
 #endif
+
--- a/jdk/src/share/native/sun/font/layout/ValueRecords.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ValueRecords.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -37,6 +37,8 @@
 #include "GlyphIterator.h"
 #include "LESwaps.h"
 
+U_NAMESPACE_BEGIN
+
 #define Nibble(value, nibble) ((value >> (nibble * 4)) & 0xF)
 #define NibbleBits(value, nibble) (bitsInNibble[Nibble(value, nibble)])
 
@@ -161,8 +163,8 @@
         xPlacementAdjustment, yPlacementAdjustment, xAdvanceAdjustment, yAdvanceAdjustment);
 }
 
-void ValueRecord::adjustPosition(le_int16 index, ValueFormat valueFormat, const char *base,
-    GlyphIterator &glyphIterator, const LEFontInstance *fontInstance) const
+void ValueRecord::adjustPosition(le_int16 index, ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator,
+                                 const LEFontInstance *fontInstance) const
 {
     float xPlacementAdjustment = 0;
     float yPlacementAdjustment = 0;
@@ -323,3 +325,5 @@
 
     return getFieldCount(valueFormat & beforeMasks[field]);
 }
+
+U_NAMESPACE_END
--- a/jdk/src/share/native/sun/font/layout/ValueRecords.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/layout/ValueRecords.h	Wed Oct 07 14:15:01 2009 -0700
@@ -32,11 +32,18 @@
 #ifndef __VALUERECORDS_H
 #define __VALUERECORDS_H
 
+/**
+ * \file
+ * \internal
+ */
+
 #include "LETypes.h"
 #include "LEFontInstance.h"
 #include "OpenTypeTables.h"
 #include "GlyphIterator.h"
 
+U_NAMESPACE_BEGIN
+
 typedef le_uint16 ValueFormat;
 typedef le_int16 ValueRecordField;
 
@@ -84,5 +91,7 @@
     vfbAnyDevice    = vfbXPlaDevice + vfbYPlaDevice + vfbXAdvDevice + vfbYAdvDevice
 };
 
+U_NAMESPACE_END
+#endif
 
-#endif
+
--- a/jdk/src/share/native/sun/font/sunFont.c	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/sunFont.c	Wed Oct 07 14:15:01 2009 -0700
@@ -71,41 +71,14 @@
 
 void initLCDGammaTables();
 
-/*
- * Class:     sun_font_FontManager
- * Method:    getPlatformFontVar
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL
-Java_sun_font_FontManager_getPlatformFontVar(JNIEnv *env, jclass cl) {
-    char *c = getenv("JAVA2D_USEPLATFORMFONT");
-    if (c) {
-        return JNI_TRUE;
-    } else {
-        return JNI_FALSE;
-    }
-}
-
 /* placeholder for extern variable */
 FontManagerNativeIDs sunFontIDs;
 
 JNIEXPORT void JNICALL
-Java_sun_font_FontManager_initIDs
+Java_sun_font_SunFontManager_initIDs
     (JNIEnv *env, jclass cls) {
 
-     jclass tmpClass = (*env)->FindClass(env, "java/awt/Font");
-
-     sunFontIDs.getFont2DMID =
-         (*env)->GetMethodID(env, tmpClass, "getFont2D",
-                             "()Lsun/font/Font2D;");
-     sunFontIDs.font2DHandle =
-       (*env)->GetFieldID(env, tmpClass,
-                          "font2DHandle", "Lsun/font/Font2DHandle;");
-
-     sunFontIDs.createdFont =
-       (*env)->GetFieldID(env, tmpClass, "createdFont", "Z");
-
-     tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
+     jclass tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
      sunFontIDs.ttReadBlockMID =
          (*env)->GetMethodID(env, tmpClass, "readBlock",
                              "(Ljava/nio/ByteBuffer;II)I");
@@ -207,40 +180,6 @@
     return sunFontIDs;
 }
 
-JNIEXPORT jobject JNICALL
-Java_sun_font_FontManager_getFont2D(
-  JNIEnv *env,
-  jclass clsFM,
-  jobject javaFont) {
-
-    return (*env)->CallObjectMethod(env, javaFont, sunFontIDs.getFont2DMID);
-}
-
-JNIEXPORT void JNICALL
-Java_sun_font_FontManager_setFont2D(
-  JNIEnv *env,
-  jclass clsFM,
-  jobject javaFont,
-  jobject fontHandle) {
-    (*env)->SetObjectField(env, javaFont, sunFontIDs.font2DHandle, fontHandle);
-}
-
-JNIEXPORT void JNICALL
-Java_sun_font_FontManager_setCreatedFont(
-  JNIEnv *env,
-  jclass clsFM,
-  jobject javaFont) {
-    (*env)->SetBooleanField(env, javaFont, sunFontIDs.createdFont, JNI_TRUE);
-}
-
-JNIEXPORT jboolean JNICALL
-Java_sun_font_FontManager_isCreatedFont(
-  JNIEnv *env,
-  jclass clsFM,
-  jobject javaFont) {
-    return (*env)->GetBooleanField(env, javaFont, sunFontIDs.createdFont);
-}
-
 /*
  * Class:     sun_font_StrikeCache
  * Method:    freeIntPointer
--- a/jdk/src/share/native/sun/font/sunfontids.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/share/native/sun/font/sunfontids.h	Wed Oct 07 14:15:01 2009 -0700
@@ -34,11 +34,6 @@
 
 typedef struct FontManagerNativeIDs {
 
-    /* java/awt/Font methods & fields */
-    jmethodID getFont2DMID;
-    jfieldID font2DHandle;
-    jfieldID createdFont;
-
     /* sun/font/Font2D methods */
     jmethodID getMapperMID;
     jmethodID getTableBytesMID;
--- a/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -31,8 +31,6 @@
 import sun.awt.*;
 import java.awt.image.*;
 import java.text.BreakIterator;
-import java.util.logging.Logger;
-import java.util.logging.Level;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
--- a/jdk/src/solaris/classes/sun/awt/X11/ListHelper.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/ListHelper.java	Wed Oct 07 14:15:01 2009 -0700
@@ -33,7 +33,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import sun.awt.motif.X11FontMetrics;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 // FIXME: implement multi-select
 /*
@@ -43,7 +43,7 @@
  * posting of Item or ActionEvents
  */
 public class ListHelper implements XScrollbarClient {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.ListHelper");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.ListHelper");
 
     private final int FOCUS_INSET = 1;
 
@@ -263,7 +263,7 @@
     }
 
     public int y2index(int y) {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine("y=" + y +", firstIdx=" + firstDisplayedIndex() +", itemHeight=" + getItemHeight()
                      + ",item_margin=" + ITEM_MARGIN);
         }
--- a/jdk/src/solaris/classes/sun/awt/X11/UnsafeXDisposerRecord.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/UnsafeXDisposerRecord.java	Wed Oct 07 14:15:01 2009 -0700
@@ -25,10 +25,10 @@
 package sun.awt.X11;
 
 import sun.misc.Unsafe;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 class UnsafeXDisposerRecord implements sun.java2d.DisposerRecord {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.UnsafeXDisposerRecord");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.UnsafeXDisposerRecord");
     private static Unsafe unsafe = XlibWrapper.unsafe;
     final long[] unsafe_ptrs, x_ptrs;
     final String name;
@@ -59,11 +59,11 @@
         XToolkit.awtLock();
         try {
             if (!disposed) {
-                if (XlibWrapper.isBuildInternal && "Java2D Disposer".equals(Thread.currentThread().getName()) && log.isLoggable(Level.WARNING)) {
+                if (XlibWrapper.isBuildInternal && "Java2D Disposer".equals(Thread.currentThread().getName()) && log.isLoggable(PlatformLogger.WARNING)) {
                     if (place != null) {
-                        log.log(Level.WARNING, name + " object was not disposed before finalization!", place);
+                        log.warning(name + " object was not disposed before finalization!", place);
                     } else {
-                        log.log(Level.WARNING, name + " object was not disposed before finalization!");
+                        log.warning(name + " object was not disposed before finalization!");
                     }
                 }
 
--- a/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XAWTXSettings.java	Wed Oct 07 14:15:01 2009 -0700
@@ -35,15 +35,14 @@
 import java.util.*;
 import java.awt.*;
 import sun.awt.XSettings;
-import java.util.logging.*;
-
+import sun.util.logging.PlatformLogger;
 
 
 class XAWTXSettings extends XSettings implements XMSelectionListener {
 
     private final XAtom xSettingsPropertyAtom = XAtom.get("_XSETTINGS_SETTINGS");
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XAWTXSettings");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XAWTXSettings");
 
     /* The maximal length of the property data. */
     public static final long MAX_LENGTH = 1000000;
@@ -56,7 +55,7 @@
     }
 
     void initXSettings() {
-        if (log.isLoggable(Level.FINE)) log.fine("Initializing XAWT XSettings");
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Initializing XAWT XSettings");
         settings = new XMSelection("_XSETTINGS");
         settings.addSelectionListener(this);
         initPerScreenXSettings();
@@ -67,12 +66,12 @@
     }
 
     public void ownerDeath(int screen, XMSelection sel, long deadOwner) {
-        if (log.isLoggable(Level.FINE)) log.fine("Owner " + deadOwner + " died for selection " + sel + " screen "+ screen);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Owner " + deadOwner + " died for selection " + sel + " screen "+ screen);
     }
 
 
     public void ownerChanged(int screen, XMSelection sel, long newOwner, long data, long timestamp) {
-        if (log.isLoggable(Level.FINE)) log.fine("New Owner "+ newOwner + " for selection = " + sel + " screen " +screen );
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("New Owner "+ newOwner + " for selection = " + sel + " screen " +screen );
     }
 
     public void selectionChanged(int screen, XMSelection sel, long owner , XPropertyEvent event) {
@@ -81,7 +80,7 @@
     }
 
     void initPerScreenXSettings() {
-        if (log.isLoggable(Level.FINE)) log.fine("Updating Per XSettings changes");
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Updating Per XSettings changes");
 
         /*
          * As toolkit cannot yet cope with per-screen desktop properties,
@@ -115,7 +114,7 @@
     }
 
     private Map getUpdatedSettings(final long owner) {
-        if (log.isLoggable(Level.FINE)) log.fine("owner =" + owner);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("owner =" + owner);
         if (0 == owner) {
             return null;
         }
@@ -129,13 +128,13 @@
                 int status = getter.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
 
                 if (status != XConstants.Success || getter.getData() == 0) {
-                    if (log.isLoggable(Level.FINE)) log.fine("OH OH : getter failed  status = " + status );
+                    if (log.isLoggable(PlatformLogger.FINE)) log.fine("OH OH : getter failed  status = " + status );
                     settings = null;
                 }
 
                 long ptr = getter.getData();
 
-                if (log.isLoggable(Level.FINE)) log.fine("noItems = " + getter.getNumberOfItems());
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("noItems = " + getter.getNumberOfItems());
                 byte array[] = Native.toBytes(ptr,getter.getNumberOfItems());
                 if (array != null) {
                     settings = update(array);
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -33,7 +33,7 @@
 
 import java.util.ArrayList;
 import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 import sun.java2d.SurfaceData;
 import sun.java2d.SunGraphics2D;
 
@@ -49,7 +49,7 @@
      *
      ************************************************/
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XBaseMenuWindow");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XBaseMenuWindow");
 
     /*
      * Colors are calculated using MotifColorUtilities class
@@ -330,7 +330,7 @@
                 items.add(mp);
             }
         } else {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 log.fine("WARNING: Attempt to add menu item without a peer");
             }
         }
@@ -351,7 +351,7 @@
             if (index < items.size()) {
                 items.remove(index);
             } else {
-                if (log.isLoggable(Level.FINE)) {
+                if (log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("WARNING: Attempt to remove non-existing menu item, index : " + index + ", item count : " + items.size());
                 }
             }
@@ -386,7 +386,7 @@
             XMenuPeer showingSubmenu = getShowingSubmenu();
             int newSelectedIndex = (item != null) ? items.indexOf(item) : -1;
             if (this.selectedIndex != newSelectedIndex) {
-                if (log.isLoggable(Level.FINEST)) {
+                if (log.isLoggable(PlatformLogger.FINEST)) {
                     log.finest("Selected index changed, was : " + this.selectedIndex + ", new : " + newSelectedIndex);
                 }
                 this.selectedIndex = newSelectedIndex;
@@ -426,7 +426,7 @@
         try {
             synchronized(getMenuTreeLock()) {
                 if (showingSubmenu != submenuToShow) {
-                    if (log.isLoggable(Level.FINER)) {
+                    if (log.isLoggable(PlatformLogger.FINER)) {
                         log.finest("Changing showing submenu");
                     }
                     if (showingSubmenu != null) {
@@ -1122,7 +1122,7 @@
      * that grabs input focus
      */
     void doHandleJavaKeyEvent(KeyEvent event) {
-        if (log.isLoggable(Level.FINER)) log.finer(event.toString());
+        if (log.isLoggable(PlatformLogger.FINER)) log.finer(event.toString());
         if (event.getID() != KeyEvent.KEY_PRESSED) {
             return;
         }
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,15 +27,15 @@
 
 import java.awt.*;
 import sun.awt.*;
-import java.util.logging.*;
 import java.util.*;
+import sun.util.logging.PlatformLogger;
 
 public class XBaseWindow {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XBaseWindow");
-    private static final Logger insLog = Logger.getLogger("sun.awt.X11.insets.XBaseWindow");
-    private static final Logger eventLog = Logger.getLogger("sun.awt.X11.event.XBaseWindow");
-    private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XBaseWindow");
-    private static final Logger grabLog = Logger.getLogger("sun.awt.X11.grab.XBaseWindow");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XBaseWindow");
+    private static final PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XBaseWindow");
+    private static final PlatformLogger eventLog = PlatformLogger.getLogger("sun.awt.X11.event.XBaseWindow");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XBaseWindow");
+    private static final PlatformLogger grabLog = PlatformLogger.getLogger("sun.awt.X11.grab.XBaseWindow");
 
     public static final String
         PARENT_WINDOW = "parent window", // parent window, Long
@@ -160,7 +160,7 @@
      * with class-specific values and perform post-initialization actions.
      */
     void postInit(XCreateWindowParams params) {
-        if (log.isLoggable(Level.FINE)) log.fine("WM name is " + getWMName());
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("WM name is " + getWMName());
         updateWMName();
 
         // Set WM_CLIENT_LEADER property
@@ -198,7 +198,7 @@
             awtUnlock();
             throw re;
         } catch (Throwable t) {
-            log.log(Level.WARNING, "Exception during peer initialization", t);
+            log.warning("Exception during peer initialization", t);
             awtLock();
             initialising = InitialiseState.FAILED_INITIALISATION;
             awtLockNotifyAll();
@@ -360,7 +360,7 @@
                     value_mask |= XConstants.CWBitGravity;
                 }
 
-                if (log.isLoggable(Level.FINE)) {
+                if (log.isLoggable(PlatformLogger.FINE)) {
                     log.fine("Creating window for " + this + " with the following attributes: \n" + params);
                 }
                 window = XlibWrapper.XCreateWindow(XToolkit.getDisplay(),
@@ -480,7 +480,7 @@
     }
 
     public void setSizeHints(long flags, int x, int y, int width, int height) {
-        if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(flags));
+        if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(flags));
         XToolkit.awtLock();
         try {
             XSizeHints hints = getHints();
@@ -541,7 +541,7 @@
             flags |= XUtilConstants.PWinGravity;
             hints.set_flags(flags);
             hints.set_win_gravity((int)XConstants.NorthWestGravity);
-            if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, resulted flags " + XlibWrapper.hintsToString(flags) +
+            if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, resulted flags " + XlibWrapper.hintsToString(flags) +
                                                              ", values " + hints);
             XlibWrapper.XSetWMNormalHints(XToolkit.getDisplay(), getWindow(), hints.pData);
         } finally {
@@ -593,7 +593,7 @@
     public void xRequestFocus(long time) {
         XToolkit.awtLock();
         try {
-            if (focusLog.isLoggable(Level.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()) + " with time " + time);
+            if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()) + " with time " + time);
             XlibWrapper.XSetInputFocus2(XToolkit.getDisplay(), getWindow(), time);
         } finally {
             XToolkit.awtUnlock();
@@ -602,7 +602,7 @@
     public void xRequestFocus() {
         XToolkit.awtLock();
         try {
-            if (focusLog.isLoggable(Level.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()));
+            if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("XSetInputFocus on " + Long.toHexString(getWindow()));
              XlibWrapper.XSetInputFocus(XToolkit.getDisplay(), getWindow());
         } finally {
             XToolkit.awtUnlock();
@@ -619,7 +619,7 @@
     }
 
     public void xSetVisible(boolean visible) {
-        if (log.isLoggable(Level.FINE)) log.fine("Setting visible on " + this + " to " + visible);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting visible on " + this + " to " + visible);
         XToolkit.awtLock();
         try {
             this.visible = visible;
@@ -824,7 +824,7 @@
      * The active grab overrides activated automatic grab.
      */
     public boolean grabInput() {
-        grabLog.log(Level.FINE, "Grab input on {0}", new Object[] {this});
+        grabLog.fine("Grab input on {0}", this);
 
         XToolkit.awtLock();
         try {
@@ -887,7 +887,7 @@
         XToolkit.awtLock();
         try {
             XBaseWindow grabWindow = XAwtState.getGrabWindow();
-            grabLog.log(Level.FINE, "UnGrab input on {0}", new Object[] {grabWindow});
+            grabLog.fine("UnGrab input on {0}", grabWindow);
             if (grabWindow != null) {
                 grabWindow.ungrabInputImpl();
                 if (!XToolkit.getSunAwtDisableGrab()) {
@@ -929,7 +929,7 @@
         mapped = false;
     }
     public void handleReparentNotifyEvent(XEvent xev) {
-        if (eventLog.isLoggable(Level.FINER)) {
+        if (eventLog.isLoggable(PlatformLogger.FINER)) {
             XReparentEvent msg = xev.get_xreparent();
             eventLog.finer(msg.toString());
         }
@@ -939,8 +939,8 @@
         if (XPropertyCache.isCachingSupported()) {
             XPropertyCache.clearCache(window, XAtom.get(msg.get_atom()));
         }
-        if (eventLog.isLoggable(Level.FINER)) {
-            eventLog.log(Level.FINER, "{0}", new Object[] {msg});
+        if (eventLog.isLoggable(PlatformLogger.FINER)) {
+            eventLog.finer("{0}", msg);
         }
     }
 
@@ -969,7 +969,7 @@
     }
 
     public void handleClientMessage(XEvent xev) {
-        if (eventLog.isLoggable(Level.FINER)) {
+        if (eventLog.isLoggable(PlatformLogger.FINER)) {
             XClientMessageEvent msg = xev.get_xclient();
             eventLog.finer(msg.toString());
         }
@@ -1021,8 +1021,7 @@
     }
     public void handleConfigureNotifyEvent(XEvent xev) {
         XConfigureEvent xe = xev.get_xconfigure();
-        insLog.log(Level.FINER, "Configure, {0}",
-                   new Object[] {xe});
+        insLog.finer("Configure, {0}", xe);
         x = xe.get_x();
         y = xe.get_y();
         width = xe.get_width();
@@ -1073,7 +1072,7 @@
     }
 
     public void dispatchEvent(XEvent xev) {
-        if (eventLog.isLoggable(Level.FINEST)) eventLog.finest(xev.toString());
+        if (eventLog.isLoggable(PlatformLogger.FINEST)) eventLog.finest(xev.toString());
         int type = xev.get_type();
 
         if (isDisposed()) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,8 +29,6 @@
 import java.awt.peer.*;
 import java.awt.event.*;
 
-import java.util.logging.*;
-
 import java.lang.reflect.Field;
 import sun.awt.SunToolkit;
 
@@ -42,8 +40,6 @@
      *
      ************************************************/
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XCheckboxMenuItemPeer");
-
     /*
      * CheckboxMenuItem's fields
      */
--- a/jdk/src/solaris/classes/sun/awt/X11/XCheckboxPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XCheckboxPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -32,11 +32,11 @@
 import javax.swing.plaf.basic.BasicGraphicsUtils;
 import java.awt.geom.AffineTransform;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 class XCheckboxPeer extends XComponentPeer implements CheckboxPeer {
 
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XCheckboxPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XCheckboxPeer");
 
     private static final Insets focusInsets = new Insets(0,0,0,0);
     private static final Insets borderInsets = new Insets(2,2,2,2);
@@ -172,7 +172,7 @@
             Checkbox cb = (Checkbox) e.getSource();
 
             if (cb.contains(e.getX(), e.getY())) {
-                if (log.isLoggable(Level.FINER)) {
+                if (log.isLoggable(PlatformLogger.FINER)) {
                     log.finer("mousePressed() on " + target.getName() + " : armed = " + armed + ", pressed = " + pressed
                               + ", selected = " + selected + ", enabled = " + isEnabled());
                 }
@@ -190,7 +190,7 @@
     }
 
     public void mouseReleased(MouseEvent e) {
-        if (log.isLoggable(Level.FINER)) {
+        if (log.isLoggable(PlatformLogger.FINER)) {
             log.finer("mouseReleased() on " + target.getName() + ": armed = " + armed + ", pressed = " + pressed
                       + ", selected = " + selected + ", enabled = " + isEnabled());
         }
@@ -215,7 +215,7 @@
     }
 
     public void mouseEntered(MouseEvent e) {
-        if (log.isLoggable(Level.FINER)) {
+        if (log.isLoggable(PlatformLogger.FINER)) {
             log.finer("mouseEntered() on " + target.getName() + ": armed = " + armed + ", pressed = " + pressed
                       + ", selected = " + selected + ", enabled = " + isEnabled());
         }
@@ -226,7 +226,7 @@
     }
 
     public void mouseExited(MouseEvent e) {
-        if (log.isLoggable(Level.FINER)) {
+        if (log.isLoggable(PlatformLogger.FINER)) {
             log.finer("mouseExited() on " + target.getName() + ": armed = " + armed + ", pressed = " + pressed
                       + ", selected = " + selected + ", enabled = " + isEnabled());
         }
--- a/jdk/src/solaris/classes/sun/awt/X11/XChoicePeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XChoicePeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -28,7 +28,7 @@
 import java.awt.*;
 import java.awt.peer.*;
 import java.awt.event.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 // FIXME: tab traversal should be disabled when mouse is captured (4816336)
 
@@ -43,7 +43,7 @@
 // TODO: make painting more efficient (i.e. when down arrow is pressed, only two items should need to be repainted.
 
 public class XChoicePeer extends XComponentPeer implements ChoicePeer, ToplevelStateListener {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XChoicePeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XChoicePeer");
 
     private static final int MAX_UNFURLED_ITEMS = 10;  // Maximum number of
     // items to be displayed
@@ -892,7 +892,7 @@
                 if (transX > 0 && transX < width &&
                     transY > 0 && transY < height) {
                     int newIdx = helper.y2index(transY);
-                    if (log.isLoggable(Level.FINE)) {
+                    if (log.isLoggable(PlatformLogger.FINE)) {
                         log.fine("transX=" + transX + ", transY=" + transY
                                  + ",width=" + width + ", height=" + height
                                  + ", newIdx=" + newIdx + " on " + target);
--- a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -66,7 +66,8 @@
 import java.util.HashSet;
 import java.util.Set;
 import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
 import sun.awt.*;
 import sun.awt.event.IgnorePaintEvent;
 import sun.awt.image.SunVolatileImage;
@@ -77,12 +78,12 @@
 public class XComponentPeer extends XWindow implements ComponentPeer, DropTargetPeer,
     BackBufferCapsProvider
 {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XComponentPeer");
-    private static final Logger buffersLog = Logger.getLogger("sun.awt.X11.XComponentPeer.multibuffer");
-    private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XComponentPeer");
-    private static final Logger fontLog = Logger.getLogger("sun.awt.X11.font.XComponentPeer");
-    private static final Logger enableLog = Logger.getLogger("sun.awt.X11.enable.XComponentPeer");
-    private static final Logger shapeLog = Logger.getLogger("sun.awt.X11.shape.XComponentPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XComponentPeer");
+    private static final PlatformLogger buffersLog = PlatformLogger.getLogger("sun.awt.X11.XComponentPeer.multibuffer");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XComponentPeer");
+    private static final PlatformLogger fontLog = PlatformLogger.getLogger("sun.awt.X11.font.XComponentPeer");
+    private static final PlatformLogger enableLog = PlatformLogger.getLogger("sun.awt.X11.enable.XComponentPeer");
+    private static final PlatformLogger shapeLog = PlatformLogger.getLogger("sun.awt.X11.shape.XComponentPeer");
 
     boolean paintPending = false;
     boolean isLayouting = false;
@@ -159,7 +160,7 @@
                 break;
             }
         }
-        enableLog.log(Level.FINE, "Initial enable state: {0}", new Object[] {Boolean.valueOf(enabled)});
+        enableLog.fine("Initial enable state: {0}", Boolean.valueOf(enabled));
 
         if (target.isVisible()) {
             setVisible(true);
@@ -253,7 +254,7 @@
      * Called when component receives focus
      */
     public void focusGained(FocusEvent e) {
-        focusLog.log(Level.FINE, "{0}", new Object[] {e});
+        focusLog.fine("{0}", e);
         bHasFocus = true;
     }
 
@@ -261,7 +262,7 @@
      * Called when component loses focus
      */
     public void focusLost(FocusEvent e) {
-        focusLog.log(Level.FINE, "{0}", new Object[] {e});
+        focusLog.fine("{0}", e);
         bHasFocus = false;
     }
 
@@ -333,7 +334,7 @@
           case XKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
               // Currently we just generate focus events like we deal with lightweight instead of calling
               // XSetInputFocus on native window
-              if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Proceeding with request to " +
+              if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Proceeding with request to " +
                   lightweightChild + " in " + target);
               /**
                * The problems with requests in non-focused window arise because shouldNativelyFocusHeavyweight
@@ -358,7 +359,7 @@
                */
               boolean res = wpeer.requestWindowFocus(null);
 
-              if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Requested window focus: " + res);
+              if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Requested window focus: " + res);
               // If parent window can be made focused and has been made focused(synchronously)
               // then we can proceed with children, otherwise we retreat.
               if (!(res && parentWindow.isFocused())) {
@@ -378,13 +379,13 @@
     }
 
     private boolean rejectFocusRequestHelper(String logMsg) {
-        if (focusLog.isLoggable(Level.FINER)) focusLog.finer(logMsg);
+        if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(logMsg);
         XKeyboardFocusManagerPeer.removeLastFocusRequest(target);
         return false;
     }
 
     void handleJavaFocusEvent(AWTEvent e) {
-        if (focusLog.isLoggable(Level.FINER)) focusLog.finer(e.toString());
+        if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(e.toString());
         if (e.getID() == FocusEvent.FOCUS_GAINED) {
             focusGained((FocusEvent)e);
         } else {
@@ -414,7 +415,7 @@
      * @see java.awt.peer.ComponentPeer
      */
     public void setEnabled(boolean value) {
-        enableLog.log(Level.FINE, "{0}ing {1}", new Object[] {(value?"Enabl":"Disabl"), this});
+        enableLog.fine("{0}ing {1}", (value?"Enabl":"Disabl"), this);
         boolean repaintNeeded = (enabled != value);
         enabled = value;
         if (target instanceof Container) {
@@ -690,7 +691,7 @@
     }
 
     public void setBackground(Color c) {
-        if (log.isLoggable(Level.FINE)) log.fine("Set background to " + c);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Set background to " + c);
         synchronized (getStateLock()) {
             background = c;
         }
@@ -699,7 +700,7 @@
     }
 
     public void setForeground(Color c) {
-        if (log.isLoggable(Level.FINE)) log.fine("Set foreground to " + c);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Set foreground to " + c);
         synchronized (getStateLock()) {
             foreground = c;
         }
@@ -718,7 +719,7 @@
      * @since     JDK1.0
      */
     public FontMetrics getFontMetrics(Font font) {
-        if (fontLog.isLoggable(Level.FINE)) fontLog.fine("Getting font metrics for " + font);
+        if (fontLog.isLoggable(PlatformLogger.FINE)) fontLog.fine("Getting font metrics for " + font);
         return sun.font.FontDesignMetrics.getMetrics(font);
     }
 
@@ -1188,7 +1189,7 @@
     public void createBuffers(int numBuffers, BufferCapabilities caps)
       throws AWTException
     {
-        if (buffersLog.isLoggable(Level.FINE)) {
+        if (buffersLog.isLoggable(PlatformLogger.FINE)) {
             buffersLog.fine("createBuffers(" + numBuffers + ", " + caps + ")");
         }
         // set the caps first, they're used when creating the bb
@@ -1206,7 +1207,7 @@
     public void flip(int x1, int y1, int x2, int y2,
                      BufferCapabilities.FlipContents flipAction)
     {
-        if (buffersLog.isLoggable(Level.FINE)) {
+        if (buffersLog.isLoggable(PlatformLogger.FINE)) {
             buffersLog.fine("flip(" + flipAction + ")");
         }
         if (backBuffer == 0) {
@@ -1217,7 +1218,7 @@
     }
 
     public Image getBackBuffer() {
-        if (buffersLog.isLoggable(Level.FINE)) {
+        if (buffersLog.isLoggable(PlatformLogger.FINE)) {
             buffersLog.fine("getBackBuffer()");
         }
         if (backBuffer == 0) {
@@ -1227,7 +1228,7 @@
     }
 
     public void destroyBuffers() {
-        if (buffersLog.isLoggable(Level.FINE)) {
+        if (buffersLog.isLoggable(PlatformLogger.FINE)) {
             buffersLog.fine("destroyBuffers()");
         }
         graphicsConfig.destroyBackBuffer(backBuffer);
@@ -1262,7 +1263,7 @@
      * ButtonPress, ButtonRelease, KeyPress, KeyRelease, EnterNotify, LeaveNotify, MotionNotify
      */
     protected boolean isEventDisabled(XEvent e) {
-        enableLog.log(Level.FINEST, "Component is {1}, checking for disabled event {0}", new Object[] {e, (isEnabled()?"enabled":"disable")});
+        enableLog.finest("Component is {1}, checking for disabled event {0}", e, (isEnabled()?"enabled":"disable"));
         if (!isEnabled()) {
             switch (e.get_type()) {
               case XConstants.ButtonPress:
@@ -1272,7 +1273,7 @@
               case XConstants.EnterNotify:
               case XConstants.LeaveNotify:
               case XConstants.MotionNotify:
-                  enableLog.log(Level.FINER, "Event {0} is disable", new Object[] {e});
+                  enableLog.finer("Event {0} is disable", e);
                   return true;
             }
         }
@@ -1393,7 +1394,7 @@
      */
     public void applyShape(Region shape) {
         if (XlibUtil.isShapingSupported()) {
-            if (shapeLog.isLoggable(Level.FINER)) {
+            if (shapeLog.isLoggable(PlatformLogger.FINER)) {
                 shapeLog.finer(
                         "*** INFO: Setting shape: PEER: " + this
                         + "; WINDOW: " + getWindow()
@@ -1423,7 +1424,7 @@
                 XToolkit.awtUnlock();
             }
         } else {
-            if (shapeLog.isLoggable(Level.FINER)) {
+            if (shapeLog.isLoggable(PlatformLogger.FINER)) {
                 shapeLog.finer("*** WARNING: Shaping is NOT supported!");
             }
         }
--- a/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,8 +30,7 @@
 
 import java.awt.event.ComponentEvent;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.ComponentAccessor;
 
@@ -44,7 +43,7 @@
  * decorated window.  So coordinates in it would be the same as java coordinates.
  */
 public final class XContentWindow extends XWindow {
-    private static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XContentWindow");
+    private static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XContentWindow");
 
     static XContentWindow createContent(XDecoratedPeer parentFrame) {
         final WindowDimensions dims = parentFrame.getDimensions();
@@ -116,8 +115,8 @@
             if (in != null) {
                 newBounds.setLocation(-in.left, -in.top);
             }
-            if (insLog.isLoggable(Level.FINE)) insLog.log(Level.FINE, "Setting content bounds {0}, old bounds {1}",
-                                                          new Object[] {newBounds, getBounds()});
+            if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting content bounds {0}, old bounds {1}",
+                                                                    newBounds, getBounds());
             // Fix for 5023533:
             // Change in the size of the content window means, well, change of the size
             // Change in the location of the content window means change in insets
--- a/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,17 +30,16 @@
 import java.awt.event.InvocationEvent;
 import java.awt.event.WindowEvent;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.ComponentAccessor;
 import sun.awt.SunToolkit;
 
 abstract class XDecoratedPeer extends XWindowPeer {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XDecoratedPeer");
-    private static final Logger insLog = Logger.getLogger("sun.awt.X11.insets.XDecoratedPeer");
-    private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XDecoratedPeer");
-    private static final Logger iconLog = Logger.getLogger("sun.awt.X11.icon.XDecoratedPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XDecoratedPeer");
+    private static final PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XDecoratedPeer");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XDecoratedPeer");
+    private static final PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XDecoratedPeer");
 
     // Set to true when we get the first ConfigureNotify after being
     // reparented - indicates that WM has adopted the top-level.
@@ -79,7 +78,7 @@
         Rectangle bounds = (Rectangle)params.get(BOUNDS);
         dimensions = new WindowDimensions(bounds, getRealInsets(), false);
         params.put(BOUNDS, dimensions.getClientRect());
-        insLog.log(Level.FINE, "Initial dimensions {0}", new Object[] { dimensions });
+        insLog.fine("Initial dimensions {0}", dimensions);
 
         // Deny default processing of these events on the shell - proxy will take care of
         // them instead
@@ -175,7 +174,7 @@
     }
 
     public void setTitle(String title) {
-        if (log.isLoggable(Level.FINE)) log.fine("Title is " + title);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Title is " + title);
         winAttr.title = title;
         updateWMName();
     }
@@ -265,7 +264,7 @@
             wm_set_insets = XWM.getInsetsFromProp(getWindow(), changedAtom);
         }
 
-        insLog.log(Level.FINER, "FRAME_EXTENTS: {0}", new Object[]{wm_set_insets});
+        insLog.finer("FRAME_EXTENTS: {0}", wm_set_insets);
 
         if (wm_set_insets != null) {
             wm_set_insets = copy(wm_set_insets);
@@ -292,7 +291,7 @@
 
     public void handleReparentNotifyEvent(XEvent xev) {
         XReparentEvent  xe = xev.get_xreparent();
-        if (insLog.isLoggable(Level.FINE)) insLog.fine(xe.toString());
+        if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine(xe.toString());
         reparent_serial = xe.get_serial();
         XToolkit.awtLock();
         try {
@@ -331,7 +330,7 @@
                 // Check if we have insets provided by the WM
                 Insets correctWM = getWMSetInsets(null);
                 if (correctWM != null) {
-                    insLog.log(Level.FINER, "wm-provided insets {0}", new Object[]{correctWM});
+                    insLog.finer("wm-provided insets {0}", correctWM);
                     // If these insets are equal to our current insets - no actions are necessary
                     Insets dimInsets = dimensions.getInsets();
                     if (correctWM.equals(dimInsets)) {
@@ -345,9 +344,9 @@
                     correctWM = XWM.getWM().getInsets(this, xe.get_window(), xe.get_parent());
 
                     if (correctWM != null) {
-                        insLog.log(Level.FINER, "correctWM {0}", new Object[] {correctWM});
+                        insLog.finer("correctWM {0}", correctWM);
                     } else {
-                        insLog.log(Level.FINER, "correctWM insets are not available, waiting for configureNotify");
+                        insLog.finer("correctWM insets are not available, waiting for configureNotify");
                     }
                 }
 
@@ -368,7 +367,7 @@
              * initial insets were wrong (most likely they were).
              */
             Insets correction = difference(correctWM, currentInsets);
-            insLog.log(Level.FINEST, "Corrention {0}", new Object[] {correction});
+            insLog.finest("Corrention {0}", correction);
             if (!isNull(correction)) {
                 currentInsets = copy(correctWM);
                 applyGuessedInsets();
@@ -378,7 +377,7 @@
                 //update minimum size hints
                 updateMinSizeHints();
             }
-            if (insLog.isLoggable(Level.FINER)) insLog.finer("Dimensions before reparent: " + dimensions);
+            if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Dimensions before reparent: " + dimensions);
 
             dimensions.setInsets(getRealInsets());
             insets_corrected = true;
@@ -452,8 +451,8 @@
     public Insets getInsets() {
         Insets in = copy(getRealInsets());
         in.top += getMenuBarHeight();
-        if (insLog.isLoggable(Level.FINEST)) {
-            insLog.log(Level.FINEST, "Get insets returns {0}", new Object[] {in});
+        if (insLog.isLoggable(PlatformLogger.FINEST)) {
+            insLog.finest("Get insets returns {0}", in);
         }
         return in;
     }
@@ -482,7 +481,7 @@
     public void reshape(WindowDimensions newDimensions, int op,
                         boolean userReshape)
     {
-        if (insLog.isLoggable(Level.FINE)) {
+        if (insLog.isLoggable(PlatformLogger.FINE)) {
             insLog.fine("Reshaping " + this + " to " + newDimensions + " op " + op + " user reshape " + userReshape);
         }
         if (userReshape) {
@@ -503,8 +502,8 @@
         XToolkit.awtLock();
         try {
             if (!isReparented() || !isVisible()) {
-                insLog.log(Level.FINE, "- not reparented({0}) or not visible({1}), default reshape",
-                           new Object[] {Boolean.valueOf(isReparented()), Boolean.valueOf(visible)});
+                insLog.fine("- not reparented({0}) or not visible({1}), default reshape",
+                           Boolean.valueOf(isReparented()), Boolean.valueOf(visible));
 
                 // Fix for 6323293.
                 // This actually is needed to preserve compatibility with previous releases -
@@ -609,8 +608,9 @@
               dims.setSize(width, height);
               break;
         }
-        if (insLog.isLoggable(Level.FINE)) insLog.log(Level.FINE, "For the operation {0} new dimensions are {1}",
-                                                      new Object[] {operationToString(operation), dims});
+        if (insLog.isLoggable(PlatformLogger.FINE))
+            insLog.fine("For the operation {0} new dimensions are {1}",
+                        operationToString(operation), dims);
 
         reshape(dims, operation, userReshape);
     }
@@ -640,7 +640,7 @@
     public void handleConfigureNotifyEvent(XEvent xev) {
         assert (SunToolkit.isAWTLockHeldByCurrentThread());
         XConfigureEvent xe = xev.get_xconfigure();
-        insLog.log(Level.FINE, "Configure notify {0}", new Object[] {xe});
+        insLog.fine("Configure notify {0}", xe);
 
         // XXX: should really only consider synthetic events, but
         if (isReparented()) {
@@ -677,9 +677,9 @@
          * it!!!! or we wind up in a bogus location.
          */
         int runningWM = XWM.getWMID();
-        if (insLog.isLoggable(Level.FINE)) {
-            insLog.log(Level.FINE, "reparented={0}, visible={1}, WM={2}, decorations={3}",
-                    new Object[] {isReparented(), isVisible(), runningWM, getDecorations()});
+        if (insLog.isLoggable(PlatformLogger.FINE)) {
+            insLog.fine("reparented={0}, visible={1}, WM={2}, decorations={3}",
+                        isReparented(), isVisible(), runningWM, getDecorations());
         }
         if (!isReparented() && isVisible() && runningWM != XWM.NO_WM
                 &&  !XWM.isNonReparentingWM()
@@ -691,7 +691,7 @@
         if (!insets_corrected && getDecorations() != XWindowAttributesData.AWT_DECOR_NONE) {
             long parent = XlibUtil.getParentWindow(window);
             Insets correctWM = (parent != -1) ? XWM.getWM().getInsets(this, window, parent) : null;
-            if (insLog.isLoggable(Level.FINER)) {
+            if (insLog.isLoggable(PlatformLogger.FINER)) {
                 if (correctWM != null) {
                     insLog.finer("Configure notify - insets : " + correctWM);
                 } else {
@@ -732,7 +732,7 @@
                 case XWM.SAWFISH_WM:
                 {
                     Point xlocation = queryXLocation();
-                    if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "New X location: {0}", new Object[]{xlocation});
+                    if (log.isLoggable(PlatformLogger.FINE)) log.fine("New X location: {0}", xlocation);
                     if (xlocation != null) {
                         newLocation = xlocation;
                     }
@@ -749,8 +749,8 @@
                 copy(currentInsets),
                 true);
 
-        insLog.log(Level.FINER, "Insets are {0}, new dimensions {1}",
-                new Object[] {currentInsets, newDimensions});
+        insLog.finer("Insets are {0}, new dimensions {1}",
+                     currentInsets, newDimensions);
 
         checkIfOnNewScreen(newDimensions.getBounds());
 
@@ -789,8 +789,8 @@
     }
 
     public void setShellBounds(Rectangle rec) {
-        if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell bounds on " +
-                                                       this + " to " + rec);
+        if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell bounds on " +
+                                                                this + " to " + rec);
         XToolkit.awtLock();
         try {
             updateSizeHints(rec.x, rec.y, rec.width, rec.height);
@@ -802,8 +802,8 @@
         }
     }
     public void setShellSize(Rectangle rec) {
-        if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell size on " +
-                                                       this + " to " + rec);
+        if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell size on " +
+                                                                this + " to " + rec);
         XToolkit.awtLock();
         try {
             updateSizeHints(rec.x, rec.y, rec.width, rec.height);
@@ -814,8 +814,8 @@
         }
     }
     public void setShellPosition(Rectangle rec) {
-        if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell position on " +
-                                                       this + " to " + rec);
+        if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell position on " +
+                                                                this + " to " + rec);
         XToolkit.awtLock();
         try {
             updateSizeHints(rec.x, rec.y, rec.width, rec.height);
@@ -915,9 +915,9 @@
                 return toGlobal(0,0);
             } else {
                 Point location = target.getLocation();
-                if (insLog.isLoggable(Level.FINE))
-                    insLog.log(Level.FINE, "getLocationOnScreen {0} not reparented: {1} ",
-                               new Object[] {this, location});
+                if (insLog.isLoggable(PlatformLogger.FINE))
+                    insLog.fine("getLocationOnScreen {0} not reparented: {1} ",
+                                this, location);
                 return location;
             }
         } finally {
@@ -954,7 +954,7 @@
     }
 
     public void setVisible(boolean vis) {
-        log.log(Level.FINER, "Setting {0} to visible {1}", new Object[] {this, Boolean.valueOf(vis)});
+        log.finer("Setting {0} to visible {1}", this, Boolean.valueOf(vis));
         if (vis && !isVisible()) {
             XWM.setShellDecor(this);
             super.setVisible(vis);
@@ -1005,7 +1005,7 @@
     }
 
     private void handleWmTakeFocus(XClientMessageEvent cl) {
-        focusLog.log(Level.FINE, "WM_TAKE_FOCUS on {0}", new Object[]{this});
+        focusLog.fine("WM_TAKE_FOCUS on {0}", this);
         requestWindowFocus(cl.get_data(1), true);
     }
 
@@ -1018,9 +1018,9 @@
         // by "proxy" - invisible mapped window. When we want to set X input focus to
         // toplevel set it on proxy instead.
         if (focusProxy == null) {
-            if (focusLog.isLoggable(Level.FINE)) focusLog.warning("Focus proxy is null for " + this);
+            if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.warning("Focus proxy is null for " + this);
         } else {
-            if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Requesting focus to proxy: " + focusProxy);
+            if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.fine("Requesting focus to proxy: " + focusProxy);
             if (timeProvided) {
                 focusProxy.xRequestFocus(time);
             } else {
@@ -1111,9 +1111,9 @@
         Window focusedWindow = XKeyboardFocusManagerPeer.getCurrentNativeFocusedWindow();
         Window activeWindow = XWindowPeer.getDecoratedOwner(focusedWindow);
 
-        focusLog.log(Level.FINER, "Current window is: active={0}, focused={1}",
-                     new Object[]{ Boolean.valueOf(target == activeWindow),
-                                   Boolean.valueOf(target == focusedWindow)});
+        focusLog.finer("Current window is: active={0}, focused={1}",
+                       Boolean.valueOf(target == activeWindow),
+                       Boolean.valueOf(target == focusedWindow));
 
         XWindowPeer toFocus = this;
         while (toFocus.nextTransientFor != null) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java	Wed Oct 07 14:15:01 2009 -0700
@@ -32,7 +32,7 @@
 
 import java.util.Map;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import sun.misc.Unsafe;
 
@@ -42,8 +42,8 @@
  * @since 1.5
  */
 class XDnDDragSourceProtocol extends XDragSourceProtocol {
-    private static final Logger logger =
-        Logger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDragSourceProtocol");
+    private static final PlatformLogger logger =
+        PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDragSourceProtocol");
 
     private static final Unsafe unsafe = XlibWrapper.unsafe;
 
@@ -395,7 +395,7 @@
                 return false;
             }
 
-            if (logger.isLoggable(Level.FINEST)) {
+            if (logger.isLoggable(PlatformLogger.FINEST)) {
                 logger.finest("        sourceWindow=" + sourceWindow +
                               " get_window=" + xclient.get_window() +
                               " xclient=" + xclient);
--- a/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java	Wed Oct 07 14:15:01 2009 -0700
@@ -33,7 +33,7 @@
 
 import java.io.IOException;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import sun.misc.Unsafe;
 
@@ -43,8 +43,8 @@
  * @since 1.5
  */
 class XDnDDropTargetProtocol extends XDropTargetProtocol {
-    private static final Logger logger =
-        Logger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDropTargetProtocol");
+    private static final PlatformLogger logger =
+        PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDropTargetProtocol");
 
     private static final Unsafe unsafe = XlibWrapper.unsafe;
 
@@ -999,7 +999,7 @@
             if (sourceFormats != null && sourceFormats.length > 3) {
                 data1 |= XDnDConstants.XDND_DATA_TYPES_BIT;
             }
-            if (logger.isLoggable(Level.FINEST)) {
+            if (logger.isLoggable(PlatformLogger.FINEST)) {
                 logger.finest("         "
                               + " entryVersion=" + version
                               + " sourceProtocolVersion=" +
@@ -1058,7 +1058,7 @@
 
     public boolean forwardEventToEmbedded(long embedded, long ctxt,
                                           int eventID) {
-        if (logger.isLoggable(Level.FINEST)) {
+        if (logger.isLoggable(PlatformLogger.FINEST)) {
             logger.finest("        ctxt=" + ctxt +
                           " type=" + (ctxt != 0 ?
                                       getMessageType(new
@@ -1086,7 +1086,7 @@
                 long data3 = Native.getLong(ctxt + size + 2 * Native.getLongSize());
                 long data4 = Native.getLong(ctxt + size + 3 * Native.getLongSize());
 
-                if (logger.isLoggable(Level.FINEST)) {
+                if (logger.isLoggable(PlatformLogger.FINEST)) {
                     logger.finest("         1 "
                                   + " embedded=" + embedded
                                   + " source=" + xclient.get_data(0)
@@ -1120,7 +1120,7 @@
 
                                 if (XToolkit.saved_error != null &&
                                     XToolkit.saved_error.get_error_code() != XConstants.Success) {
-                                    if (logger.isLoggable(Level.WARNING)) {
+                                    if (logger.isLoggable(PlatformLogger.WARNING)) {
                                         logger.warning("Cannot set XdndTypeList on the proxy window");
                                     }
                                 }
@@ -1128,7 +1128,7 @@
                                 XToolkit.awtUnlock();
                             }
                         } else {
-                            if (logger.isLoggable(Level.WARNING)) {
+                            if (logger.isLoggable(PlatformLogger.WARNING)) {
                                 logger.warning("Cannot read XdndTypeList from the source window");
                             }
                         }
@@ -1143,7 +1143,7 @@
                 overXEmbedClient = true;
             }
 
-            if (logger.isLoggable(Level.FINEST)) {
+            if (logger.isLoggable(PlatformLogger.FINEST)) {
                 logger.finest("         2 "
                               + " embedded=" + embedded
                               + " xclient=" + xclient);
--- a/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -37,7 +37,8 @@
 
 import java.util.*;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
 import sun.awt.ComponentAccessor;
 
 import sun.awt.dnd.SunDragSourceContextPeer;
@@ -52,8 +53,8 @@
  */
 public final class XDragSourceContextPeer
     extends SunDragSourceContextPeer implements XDragSourceProtocolListener {
-    private static final Logger logger =
-        Logger.getLogger("sun.awt.X11.xembed.xdnd.XDragSourceContextPeer");
+    private static final PlatformLogger logger =
+        PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDragSourceContextPeer");
 
     /* The events selected on the root window when the drag begins. */
     private static final int ROOT_EVENT_MASK = (int)XConstants.ButtonMotionMask |
@@ -542,7 +543,7 @@
             return false;
         }
 
-        if (logger.isLoggable(Level.FINEST)) {
+        if (logger.isLoggable(PlatformLogger.FINEST)) {
             logger.finest("        proxyModeSourceWindow=" +
                           getProxyModeSourceWindow() +
                           " ev=" + ev);
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetContextPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetContextPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -31,7 +31,8 @@
 import java.io.IOException;
 
 import java.util.Iterator;
-import java.util.logging.*;
+
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.AppContext;
 import sun.awt.SunToolkit;
@@ -48,8 +49,8 @@
  * @since 1.5
  */
 final class XDropTargetContextPeer extends SunDropTargetContextPeer {
-    private static final Logger logger =
-        Logger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetContextPeer");
+    private static final PlatformLogger logger =
+        PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetContextPeer");
 
     private static final Unsafe unsafe = XlibWrapper.unsafe;
 
@@ -198,7 +199,7 @@
                    structure. */
                 long ctxt = getNativeDragContext();
 
-                if (logger.isLoggable(Level.FINER)) {
+                if (logger.isLoggable(PlatformLogger.FINER)) {
                     logger.finer("        processing " + event + " ctxt=" + ctxt +
                                  " consumed=" + event.isConsumed());
                 }
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetProtocol.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetProtocol.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,7 +29,7 @@
 
 import java.util.HashMap;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 /**
  * An abstract class for drop protocols on X11 systems.
@@ -38,8 +38,8 @@
  * @since 1.5
  */
 abstract class XDropTargetProtocol {
-    private static final Logger logger =
-        Logger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetProtocol");
+    private static final PlatformLogger logger =
+        PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetProtocol");
 
     private final XDropTargetProtocolListener listener;
 
@@ -116,16 +116,16 @@
                                                            XClientMessageEvent xclient) {
         EmbedderRegistryEntry entry = getEmbedderRegistryEntry(toplevel);
 
-        if (logger.isLoggable(Level.FINEST)) {
-            logger.log(Level.FINEST, "        entry={0}", new Object[] {entry});
+        if (logger.isLoggable(PlatformLogger.FINEST)) {
+            logger.finest("        entry={0}", entry);
         }
         // Window not registered as an embedder for this protocol.
         if (entry == null) {
             return false;
         }
 
-        if (logger.isLoggable(Level.FINEST)) {
-            logger.log(Level.FINEST, "        entry.isOverriden()={0}", new Object[] {entry.isOverriden()});
+        if (logger.isLoggable(PlatformLogger.FINEST)) {
+            logger.finest("        entry.isOverriden()={0}", entry.isOverriden());
         }
         // Window didn't have an associated drop site, so there is no need
         // to forward the message.
@@ -137,8 +137,8 @@
 
         long proxy = entry.getProxy();
 
-        if (logger.isLoggable(Level.FINEST)) {
-            logger.log(Level.FINEST, "        proxy={0} toplevel={1}", new Object[] {proxy, toplevel});
+        if (logger.isLoggable(PlatformLogger.FINEST)) {
+            logger.finest("        proxy={0} toplevel={1}", proxy, toplevel);
         }
         if (proxy == 0) {
             proxy = toplevel;
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java	Wed Oct 07 14:15:01 2009 -0700
@@ -31,7 +31,7 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import java.awt.Point;
 
@@ -42,8 +42,8 @@
  * @since 1.5
  */
 final class XDropTargetRegistry {
-    private static final Logger logger =
-        Logger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetRegistry");
+    private static final PlatformLogger logger =
+        PlatformLogger.getLogger("sun.awt.X11.xembed.xdnd.XDropTargetRegistry");
 
     private static final long DELAYED_REGISTRATION_PERIOD = 200;
 
@@ -614,7 +614,7 @@
         if (info != null &&
             info.getProtocolVersion() >= XDnDConstants.XDND_MIN_PROTOCOL_VERSION) {
 
-            if (logger.isLoggable(Level.FINE)) {
+            if (logger.isLoggable(PlatformLogger.FINE)) {
                 logger.fine("        XEmbed drop site will be registered for " + Long.toHexString(clientWindow));
             }
             registerEmbeddedDropSite(canvasWindow, clientWindow);
@@ -628,14 +628,14 @@
                 dropTargetProtocol.registerEmbeddedDropSite(clientWindow);
             }
 
-            if (logger.isLoggable(Level.FINE)) {
+            if (logger.isLoggable(PlatformLogger.FINE)) {
                 logger.fine("        XEmbed drop site has been registered for " + Long.toHexString(clientWindow));
             }
         }
     }
 
     public void unregisterXEmbedClient(long canvasWindow, long clientWindow) {
-        if (logger.isLoggable(Level.FINE)) {
+        if (logger.isLoggable(PlatformLogger.FINE)) {
             logger.fine("        XEmbed drop site will be unregistered for " + Long.toHexString(clientWindow));
         }
         Iterator dropTargetProtocols =
@@ -649,7 +649,7 @@
 
         unregisterEmbeddedDropSite(canvasWindow, clientWindow);
 
-        if (logger.isLoggable(Level.FINE)) {
+        if (logger.isLoggable(PlatformLogger.FINE)) {
             logger.fine("        XEmbed drop site has beed unregistered for " + Long.toHexString(clientWindow));
         }
     }
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -37,7 +37,7 @@
 import sun.awt.*;
 import sun.awt.motif.X11FontMetrics;
 import java.lang.reflect.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 import java.util.*;
 import static sun.awt.X11.XEmbedHelper.*;
 
@@ -45,7 +45,7 @@
 import sun.security.action.GetBooleanAction;
 
 public class XEmbedCanvasPeer extends XCanvasPeer implements WindowFocusListener, KeyEventPostProcessor, ModalityListener, WindowIDProvider {
-    private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedCanvasPeer");
+    private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbedCanvasPeer");
 
     boolean applicationActive; // Whether the application is active(has focus)
     XEmbedServer xembed = new XEmbedServer(); // Helper object, contains XEmbed intrinsics
@@ -129,7 +129,7 @@
     }
 
     void initDispatching() {
-        if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Init embedding for " + Long.toHexString(xembed.handle));
+        if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Init embedding for " + Long.toHexString(xembed.handle));
         XToolkit.awtLock();
         try {
             XToolkit.addEventDispatcher(xembed.handle, xembed);
@@ -196,10 +196,10 @@
         switch (ev.get_type()) {
           case XConstants.CreateNotify:
               XCreateWindowEvent cr = ev.get_xcreatewindow();
-              if (xembedLog.isLoggable(Level.FINEST)) {
+              if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
                   xembedLog.finest("Message on embedder: " + cr);
               }
-              if (xembedLog.isLoggable(Level.FINER)) {
+              if (xembedLog.isLoggable(PlatformLogger.FINER)) {
                   xembedLog.finer("Create notify for parent " + Long.toHexString(cr.get_parent()) +
                                   ", window " + Long.toHexString(cr.get_window()));
               }
@@ -207,20 +207,20 @@
               break;
           case XConstants.DestroyNotify:
               XDestroyWindowEvent dn = ev.get_xdestroywindow();
-              if (xembedLog.isLoggable(Level.FINEST)) {
+              if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
                   xembedLog.finest("Message on embedder: " + dn);
               }
-              if (xembedLog.isLoggable(Level.FINER)) {
+              if (xembedLog.isLoggable(PlatformLogger.FINER)) {
                   xembedLog.finer("Destroy notify for parent: " + dn);
               }
               childDestroyed();
               break;
           case XConstants.ReparentNotify:
               XReparentEvent rep = ev.get_xreparent();
-              if (xembedLog.isLoggable(Level.FINEST)) {
+              if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
                   xembedLog.finest("Message on embedder: " + rep);
               }
-              if (xembedLog.isLoggable(Level.FINER)) {
+              if (xembedLog.isLoggable(PlatformLogger.FINER)) {
                   xembedLog.finer("Reparent notify for parent " + Long.toHexString(rep.get_parent()) +
                                   ", window " + Long.toHexString(rep.get_window()) +
                                   ", event " + Long.toHexString(rep.get_event()));
@@ -323,7 +323,7 @@
     }
 
     void childResized() {
-        if (xembedLog.isLoggable(Level.FINER)) {
+        if (xembedLog.isLoggable(PlatformLogger.FINER)) {
             Rectangle bounds = getClientBounds();
             xembedLog.finer("Child resized: " + bounds);
             // It is not required to update embedder's size when client size changes
@@ -388,7 +388,7 @@
     }
 
     void detachChild() {
-        if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Detaching child " + Long.toHexString(xembed.handle));
+        if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Detaching child " + Long.toHexString(xembed.handle));
         /**
          *  XEmbed specification:
          *  "The embedder can unmap the client and reparent the client window to the root window. If the
@@ -477,7 +477,7 @@
         try {
             XKeyEvent ke = new XKeyEvent(data);
             ke.set_window(xembed.handle);
-            if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Forwarding native key event: " + ke);
+            if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Forwarding native key event: " + ke);
             XToolkit.awtLock();
             try {
                 XlibWrapper.XSendEvent(XToolkit.getDisplay(), xembed.handle, false, XConstants.NoEventMask, data);
@@ -508,7 +508,7 @@
         postEvent(new InvocationEvent(target, new Runnable() {
                 public void run() {
                     GrabbedKey grab = new GrabbedKey(keysym, modifiers);
-                    if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Grabbing key: " + grab);
+                    if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Grabbing key: " + grab);
                     synchronized(GRAB_LOCK) {
                         grabbed_keys.add(grab);
                     }
@@ -520,7 +520,7 @@
         postEvent(new InvocationEvent(target, new Runnable() {
                 public void run() {
                     GrabbedKey grab = new GrabbedKey(keysym, modifiers);
-                    if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("UnGrabbing key: " + grab);
+                    if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("UnGrabbing key: " + grab);
                     synchronized(GRAB_LOCK) {
                         grabbed_keys.remove(grab);
                     }
@@ -533,7 +533,7 @@
                 public void run() {
                     AWTKeyStroke stroke = xembed.getKeyStrokeForKeySym(keysym, modifiers);
                     if (stroke != null) {
-                        if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Registering accelerator " + accel_id + " for " + stroke);
+                        if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Registering accelerator " + accel_id + " for " + stroke);
                         synchronized(ACCEL_LOCK) {
                             accelerators.put(accel_id, stroke);
                             accel_lookup.put(stroke, accel_id);
@@ -551,7 +551,7 @@
                     synchronized(ACCEL_LOCK) {
                         stroke = accelerators.get(accel_id);
                         if (stroke != null) {
-                            if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Unregistering accelerator: " + accel_id);
+                            if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Unregistering accelerator: " + accel_id);
                             accelerators.remove(accel_id);
                             accel_lookup.remove(stroke); // FIXME: How about several accelerators with the same stroke?
                         }
@@ -597,7 +597,7 @@
 
         boolean result = false;
 
-        if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Post-processing event " + e);
+        if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Post-processing event " + e);
 
         // Process ACCELERATORS
         AWTKeyStroke stroke = AWTKeyStroke.getAWTKeyStrokeForEvent(e);
@@ -610,7 +610,7 @@
             }
         }
         if (exists) {
-            if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Activating accelerator " + accel_id);
+            if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Activating accelerator " + accel_id);
             xembed.sendMessage(xembed.handle, XEMBED_ACTIVATE_ACCELERATOR, accel_id, 0, 0); // FIXME: How about overloaded?
             result = true;
         }
@@ -622,7 +622,7 @@
             exists = grabbed_keys.contains(key);
         }
         if (exists) {
-            if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Forwarding grabbed key " + e);
+            if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Forwarding grabbed key " + e);
             forwardKeyEvent(e);
             result = true;
         }
@@ -641,9 +641,9 @@
     public void handleClientMessage(XEvent xev) {
         super.handleClientMessage(xev);
         XClientMessageEvent msg = xev.get_xclient();
-        if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Client message to embedder: " + msg);
+        if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Client message to embedder: " + msg);
         if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
-            if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine(xembed.XEmbedMessageToString(msg));
+            if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine(xembed.XEmbedMessageToString(msg));
         }
         if (isXEmbedActive()) {
             switch ((int)msg.get_data(1)) {
@@ -709,7 +709,7 @@
     }
 
     public boolean processXEmbedDnDEvent(long ctxt, int eventID) {
-        if (xembedLog.isLoggable(Level.FINEST)) {
+        if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
             xembedLog.finest("     Drop target=" + target.getDropTarget());
         }
         if (target.getDropTarget() instanceof XEmbedDropTarget) {
@@ -744,7 +744,7 @@
                 boolean new_mapped = (flags & XEMBED_MAPPED) != 0;
                 boolean currently_mapped = XlibUtil.getWindowMapState(handle) != XConstants.IsUnmapped;
                 if (new_mapped != currently_mapped) {
-                    if (xembedLog.isLoggable(Level.FINER))
+                    if (xembedLog.isLoggable(PlatformLogger.FINER))
                         xembedLog.fine("Mapping state of the client has changed, old state: " + currently_mapped + ", new state: " + new_mapped);
                     if (new_mapped) {
                         XToolkit.awtLock();
@@ -773,7 +773,7 @@
         public void handlePropertyNotify(XEvent xev) {
             if (isXEmbedActive()) {
                 XPropertyEvent ev = xev.get_xproperty();
-                if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Property change on client: " + ev);
+                if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Property change on client: " + ev);
                 if (ev.get_atom() == XAtom.XA_WM_NORMAL_HINTS) {
                     childResized();
                 } else if (ev.get_atom() == XEmbedInfo.getAtom()) {
@@ -794,7 +794,7 @@
         void handleConfigureNotify(XEvent xev) {
             if (isXEmbedActive()) {
                 XConfigureEvent ev = xev.get_xconfigure();
-                if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Bounds change on client: " + ev);
+                if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Bounds change on client: " + ev);
                 if (xev.get_xany().get_window() == handle) {
                     childResized();
                 }
@@ -845,7 +845,7 @@
 
                 // We recognize only these masks
                 modifiers = ke.get_state() & (XConstants.ShiftMask | XConstants.ControlMask | XConstants.LockMask);
-                if (xembedLog.isLoggable(Level.FINEST)) xembedLog.finest("Mapped " + e + " to " + this);
+                if (xembedLog.isLoggable(PlatformLogger.FINEST)) xembedLog.finest("Mapped " + e + " to " + this);
             } finally {
                 XlibWrapper.unsafe.freeMemory(data);
             }
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java	Wed Oct 07 14:15:01 2009 -0700
@@ -26,10 +26,10 @@
 package sun.awt.X11;
 
 import java.awt.AWTKeyStroke;
-import java.util.logging.*;
 import sun.awt.SunToolkit;
 import java.awt.Component;
 import java.awt.Container;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.X11GraphicsConfig;
 import sun.awt.X11GraphicsDevice;
@@ -40,7 +40,7 @@
  * call install and forward all XClientMessageEvents to it.
  */
 public class XEmbedClientHelper extends XEmbedHelper implements XEventDispatcher {
-    private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedClientHelper");
+    private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbedClientHelper");
 
     private XEmbeddedFramePeer embedded; // XEmbed client
     private long server; // XEmbed server
@@ -53,7 +53,7 @@
     }
 
     void setClient(XEmbeddedFramePeer client) {
-        if (xembedLog.isLoggable(Level.FINE)) {
+        if (xembedLog.isLoggable(PlatformLogger.FINE)) {
             xembedLog.fine("XEmbed client: " + client);
         }
         if (embedded != null) {
@@ -67,7 +67,7 @@
     }
 
     void install() {
-        if (xembedLog.isLoggable(Level.FINE)) {
+        if (xembedLog.isLoggable(PlatformLogger.FINE)) {
             xembedLog.fine("Installing xembedder on " + embedded);
         }
         long[] info = new long[] { XEMBED_VERSION, XEMBED_MAPPED };
@@ -95,9 +95,9 @@
 
     void handleClientMessage(XEvent xev) {
         XClientMessageEvent msg = xev.get_xclient();
-        if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine(msg.toString());
+        if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine(msg.toString());
         if (msg.get_message_type() == XEmbed.getAtom()) {
-            if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Embedded message: " + msgidToString((int)msg.get_data(1)));
+            if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Embedded message: " + msgidToString((int)msg.get_data(1)));
             switch ((int)msg.get_data(1)) {
               case XEMBED_EMBEDDED_NOTIFY: // Notification about embedding protocol start
                   active = true;
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,7 +27,8 @@
 
 import sun.misc.Unsafe;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
 import java.awt.AWTKeyStroke;
 import java.awt.event.InputEvent;
 
@@ -36,7 +37,7 @@
  * Contains constant definitions and helper routines.
  */
 public class XEmbedHelper {
-    private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed");
+    private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed");
     final static Unsafe unsafe = Unsafe.getUnsafe();
 
     final static int XEMBED_VERSION = 0,
@@ -81,11 +82,11 @@
     XEmbedHelper() {
         if (XEmbed == null) {
             XEmbed = XAtom.get("_XEMBED");
-            if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Created atom " + XEmbed.toString());
+            if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Created atom " + XEmbed.toString());
         }
         if (XEmbedInfo == null) {
             XEmbedInfo = XAtom.get("_XEMBED_INFO");
-            if (xembedLog.isLoggable(Level.FINER)) xembedLog.finer("Created atom " + XEmbedInfo.toString());
+            if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Created atom " + XEmbedInfo.toString());
         }
     }
 
@@ -105,7 +106,7 @@
         msg.set_data(4, data2);
         XToolkit.awtLock();
         try {
-            if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Sending " + XEmbedMessageToString(msg));
+            if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Sending " + XEmbedMessageToString(msg));
             XlibWrapper.XSendEvent(XToolkit.getDisplay(), window, false, XConstants.NoEventMask, msg.pData);
         }
         finally {
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java	Wed Oct 07 14:15:01 2009 -0700
@@ -28,7 +28,7 @@
 //import static sun.awt.X11.XEmbed.*;
 import java.awt.*;
 import java.awt.event.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 import static sun.awt.X11.XConstants.*;
 import java.util.LinkedList;
 
@@ -37,7 +37,7 @@
  * specification and references.
  */
 public class XEmbedServerTester implements XEventDispatcher {
-    private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedServerTester");
+    private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbedServerTester");
     private final Object EVENT_LOCK = new Object();
     static final int SYSTEM_EVENT_MASK = 0x8000;
     int my_version, server_version;
@@ -544,7 +544,7 @@
             try {
                 EVENT_LOCK.wait(3000);
             } catch (InterruptedException ie) {
-                xembedLog.log(Level.WARNING, "Event wait interrupted", ie);
+                xembedLog.warning("Event wait interrupted", ie);
             }
             eventWaited = -1;
             if (checkEventList(position, event) == -1) {
@@ -634,7 +634,7 @@
         if (ev.get_type() == ClientMessage) {
             XClientMessageEvent msg = ev.get_xclient();
             if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
-                if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Embedded message: " + XEmbedHelper.msgidToString((int)msg.get_data(1)));
+                if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Embedded message: " + XEmbedHelper.msgidToString((int)msg.get_data(1)));
                 switch ((int)msg.get_data(1)) {
                   case XEmbedHelper.XEMBED_EMBEDDED_NOTIFY: // Notification about embedding protocol start
                       xembedActive = true;
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,15 +30,14 @@
 import java.util.LinkedList;
 import java.util.Iterator;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.EmbeddedFrame;
 import sun.awt.SunToolkit;
 
 public class XEmbeddedFramePeer extends XFramePeer {
 
-    private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbeddedFramePeer");
+    private static final PlatformLogger xembedLog = PlatformLogger.getLogger("sun.awt.X11.xembed.XEmbeddedFramePeer");
 
     LinkedList<AWTKeyStroke> strokes;
 
@@ -138,7 +137,7 @@
     {
         assert (SunToolkit.isAWTLockHeldByCurrentThread());
         XConfigureEvent xe = xev.get_xconfigure();
-        if (xembedLog.isLoggable(Level.FINE)) {
+        if (xembedLog.isLoggable(PlatformLogger.FINE)) {
             xembedLog.fine(xe.toString());
         }
 
--- a/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -34,12 +34,12 @@
 import java.util.Arrays;
 import com.sun.java.swing.plaf.motif.*;
 import javax.swing.plaf.ComponentUI;
-import java.util.logging.*;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+import sun.util.logging.PlatformLogger;
 
 class XFileDialogPeer extends XDialogPeer implements FileDialogPeer, ActionListener, ItemListener, KeyEventDispatcher, XChoicePeerListener {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XFileDialogPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XFileDialogPeer");
 
     FileDialog  target;
 
--- a/jdk/src/solaris/classes/sun/awt/X11/XFocusProxyWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFocusProxyWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -26,7 +26,6 @@
 package sun.awt.X11;
 
 import java.awt.*;
-import java.util.logging.*;
 
 /**
  * This class represent focus holder window implementation. When toplevel requests or receives focus
@@ -34,7 +33,6 @@
  * and therefore X doesn't control focus after we have set it to proxy.
  */
 public class XFocusProxyWindow extends XBaseWindow {
-    private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XFocusProxyWindow");
     XWindowPeer owner;
 
     public XFocusProxyWindow(XWindowPeer owner) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -34,14 +34,13 @@
 import java.awt.MenuBar;
 import java.awt.Rectangle;
 import java.awt.peer.FramePeer;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 import sun.awt.AWTAccessor;
 
 class XFramePeer extends XDecoratedPeer implements FramePeer {
-    private static Logger log = Logger.getLogger("sun.awt.X11.XFramePeer");
-    private static Logger stateLog = Logger.getLogger("sun.awt.X11.states");
-    private static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XFramePeer");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XFramePeer");
+    private static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states");
+    private static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XFramePeer");
 
     XMenuBarPeer menubarPeer;
     MenuBar menubar;
@@ -76,10 +75,10 @@
         winAttr.isResizable = true; // target.isResizable();
         winAttr.title = target.getTitle();
         winAttr.initialResizability = target.isResizable();
-        if (log.isLoggable(Level.FINE)) {
-            log.log(Level.FINE, "Frame''s initial attributes: decor {0}, resizable {1}, undecorated {2}, initial state {3}",
-                     new Object[] {Integer.valueOf(winAttr.decorations), Boolean.valueOf(winAttr.initialResizability),
-                                   Boolean.valueOf(!winAttr.nativeDecor), Integer.valueOf(winAttr.initialState)});
+        if (log.isLoggable(PlatformLogger.FINE)) {
+            log.fine("Frame''s initial attributes: decor {0}, resizable {1}, undecorated {2}, initial state {3}",
+                     Integer.valueOf(winAttr.decorations), Boolean.valueOf(winAttr.initialResizability),
+                     Boolean.valueOf(!winAttr.nativeDecor), Integer.valueOf(winAttr.initialState));
         }
     }
 
@@ -208,7 +207,7 @@
     }
 
     public void setMaximizedBounds(Rectangle b) {
-        if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting maximized bounds to " + b);
+        if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting maximized bounds to " + b);
         if (b == null) return;
         maxBounds = new Rectangle(b);
         XToolkit.awtLock();
@@ -225,7 +224,7 @@
             } else {
                 hints.set_max_height((int)XlibWrapper.DisplayHeight(XToolkit.getDisplay(), XlibWrapper.DefaultScreen(XToolkit.getDisplay())));
             }
-            if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
+            if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
             XlibWrapper.XSetWMNormalHints(XToolkit.getDisplay(), window, hints.pData);
         } finally {
             XToolkit.awtUnlock();
@@ -253,14 +252,14 @@
         int changed = state ^ newState;
         int changeIconic = changed & Frame.ICONIFIED;
         boolean iconic = (newState & Frame.ICONIFIED) != 0;
-        stateLog.log(Level.FINER, "Changing state, old state {0}, new state {1}(iconic {2})",
-                     new Object[] {Integer.valueOf(state), Integer.valueOf(newState), Boolean.valueOf(iconic)});
+        stateLog.finer("Changing state, old state {0}, new state {1}(iconic {2})",
+                       Integer.valueOf(state), Integer.valueOf(newState), Boolean.valueOf(iconic));
         if (changeIconic != 0 && iconic) {
-            if (stateLog.isLoggable(Level.FINER)) stateLog.finer("Iconifying shell " + getShell() + ", this " + this + ", screen " + getScreenNumber());
+            if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("Iconifying shell " + getShell() + ", this " + this + ", screen " + getScreenNumber());
             XToolkit.awtLock();
             try {
                 int res = XlibWrapper.XIconifyWindow(XToolkit.getDisplay(), getShell(), getScreenNumber());
-                if (stateLog.isLoggable(Level.FINER)) stateLog.finer("XIconifyWindow returned " + res);
+                if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("XIconifyWindow returned " + res);
             }
             finally {
                 XToolkit.awtUnlock();
@@ -270,7 +269,7 @@
             setExtendedState(newState);
         }
         if (changeIconic != 0 && !iconic) {
-            if (stateLog.isLoggable(Level.FINER)) stateLog.finer("DeIconifying " + this);
+            if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("DeIconifying " + this);
             xSetVisible(true);
         }
     }
@@ -283,7 +282,7 @@
         super.handlePropertyNotify(xev);
         XPropertyEvent ev = xev.get_xproperty();
 
-        log.log(Level.FINER, "Property change {0}", new Object[] {ev});
+        log.finer("Property change {0}", ev);
         /*
          * Let's see if this is a window state protocol message, and
          * if it is - decode a new state in terms of java constants.
@@ -348,7 +347,7 @@
             XWMHints hints = getWMHints();
             hints.set_flags((int)XUtilConstants.StateHint | hints.get_flags());
             hints.set_initial_state(wm_state);
-            if (stateLog.isLoggable(Level.FINE)) stateLog.fine("Setting initial WM state on " + this + " to " + wm_state);
+            if (stateLog.isLoggable(PlatformLogger.FINE)) stateLog.fine("Setting initial WM state on " + this + " to " + wm_state);
             XlibWrapper.XSetWMHints(XToolkit.getDisplay(), getWindow(), hints.pData);
         }
         finally {
--- a/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,10 +30,10 @@
 import sun.awt.image.ToolkitImage;
 import sun.awt.image.ImageRepresentation;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 public class XIconWindow extends XBaseWindow {
-    private final static Logger log = Logger.getLogger("sun.awt.X11.XIconWindow");
+    private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XIconWindow");
     XDecoratedPeer parent;
     Dimension size;
     long iconPixmap = 0;
@@ -61,7 +61,7 @@
             final long screen = adata.get_awt_visInfo().get_screen();
             final long display = XToolkit.getDisplay();
 
-            if (log.isLoggable(Level.FINEST)) log.finest(adata.toString());
+            if (log.isLoggable(PlatformLogger.FINEST)) log.finest(adata.toString());
 
             long status =
                 XlibWrapper.XGetIconSizes(display, XToolkit.getDefaultRootWindow(),
@@ -71,11 +71,11 @@
             }
             int count = Native.getInt(XlibWrapper.iarg1);
             long sizes_ptr = Native.getLong(XlibWrapper.larg1); // XIconSize*
-            log.log(Level.FINEST, "count = {1}, sizes_ptr = {0}", new Object[] {Long.valueOf(sizes_ptr), Integer.valueOf(count)});
+            log.finest("count = {1}, sizes_ptr = {0}", Long.valueOf(sizes_ptr), Integer.valueOf(count));
             XIconSize[] res = new XIconSize[count];
             for (int i = 0; i < count; i++, sizes_ptr += XIconSize.getSize()) {
                 res[i] = new XIconSize(sizes_ptr);
-                log.log(Level.FINEST, "sizes_ptr[{1}] = {0}", new Object[] {res[i], Integer.valueOf(i)});
+                log.finest("sizes_ptr[{1}] = {0}", res[i], Integer.valueOf(i));
             }
             return res;
         } finally {
@@ -87,12 +87,12 @@
         if (XWM.getWMID() == XWM.ICE_WM) {
             // ICE_WM has a bug - it only displays icons of the size
             // 16x16, while reporting 32x32 in its size list
-            log.log(Level.FINEST, "Returning ICE_WM icon size: 16x16");
+            log.finest("Returning ICE_WM icon size: 16x16");
             return new Dimension(16, 16);
         }
 
         XIconSize[] sizeList = getIconSizes();
-        log.log(Level.FINEST, "Icon sizes: {0}", new Object[] {sizeList});
+        log.finest("Icon sizes: {0}", sizeList);
         if (sizeList == null) {
             // No icon sizes so we simply fall back to 16x16
             return new Dimension(16, 16);
@@ -139,11 +139,11 @@
                 }
             }
         }
-        if (log.isLoggable(Level.FINEST)) {
+        if (log.isLoggable(PlatformLogger.FINEST)) {
             log.finest("found=" + found);
         }
         if (!found) {
-            if (log.isLoggable(Level.FINEST)) {
+            if (log.isLoggable(PlatformLogger.FINEST)) {
                 log.finest("widthHint=" + widthHint + ", heightHint=" + heightHint
                            + ", saveWidth=" + saveWidth + ", saveHeight=" + saveHeight
                            + ", max_width=" + sizeList[0].get_max_width()
@@ -159,7 +159,7 @@
                 /* determine which way to scale */
                 int wdiff = widthHint - sizeList[0].get_max_width();
                 int hdiff = heightHint - sizeList[0].get_max_height();
-                if (log.isLoggable(Level.FINEST)) {
+                if (log.isLoggable(PlatformLogger.FINEST)) {
                     log.finest("wdiff=" + wdiff + ", hdiff=" + hdiff);
                 }
                 if (wdiff >= hdiff) { /* need to scale width more  */
@@ -191,7 +191,7 @@
             XToolkit.awtUnlock();
         }
 
-        if (log.isLoggable(Level.FINEST)) {
+        if (log.isLoggable(PlatformLogger.FINEST)) {
             log.finest("return " + saveWidth + "x" + saveHeight);
         }
         return new Dimension(saveWidth, saveHeight);
@@ -418,7 +418,7 @@
             }
         }
         if (min != null) {
-            log.log(Level.FINER, "Icon: {0}x{1}", new Object[] { min.getWidth(null), min.getHeight(null)});
+            log.finer("Icon: {0}x{1}", min.getWidth(null), min.getHeight(null));
             setIconImage(min);
         }
     }
@@ -444,7 +444,7 @@
             }
             Dimension iconSize = getIconSize(width, height);
             if (iconSize != null) {
-                log.log(Level.FINEST, "Icon size: {0}", iconSize);
+                log.finest("Icon size: {0}", iconSize);
                 iconWidth = iconSize.width;
                 iconHeight = iconSize.height;
             } else {
--- a/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java	Wed Oct 07 14:15:01 2009 -0700
@@ -33,7 +33,7 @@
 import java.awt.peer.ComponentPeer;
 import sun.awt.X11InputMethod;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 /**
  * Input Method Adapter for XIM (without Motif)
@@ -41,7 +41,7 @@
  * @author JavaSoft International
  */
 public class XInputMethod extends X11InputMethod {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XInputMethod");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XInputMethod");
 
     public XInputMethod() throws AWTException {
         super();
@@ -102,13 +102,13 @@
     protected ComponentPeer getPeer(Component client) {
         XComponentPeer peer;
 
-        if (log.isLoggable(Level.FINE)) log.fine("Client is " + client);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Client is " + client);
         peer = (XComponentPeer)XToolkit.targetToPeer(client);
         while (client != null && peer == null) {
             client = getParent(client);
             peer = (XComponentPeer)XToolkit.targetToPeer(client);
         }
-        log.log(Level.FINE, "Peer is {0}, client is {1}", new Object[] {peer, client});
+        log.fine("Peer is {0}, client is {1}", peer, client);
 
         if (peer != null)
             return peer;
--- a/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -36,15 +36,14 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.CausedFocusEvent;
 import sun.awt.SunToolkit;
 import sun.awt.KeyboardFocusManagerPeerImpl;
 
 public class XKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
-    private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XKeyboardFocusManagerPeer");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XKeyboardFocusManagerPeer");
 
     private static Object lock = new Object() {};
     private static Component currentFocusOwner;
@@ -82,7 +81,7 @@
     }
 
     public static void setCurrentNativeFocusedWindow(Window win) {
-        if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Setting current native focused window " + win);
+        if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Setting current native focused window " + win);
         XWindowPeer from = null, to = null;
 
         synchronized(lock) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,8 +29,7 @@
 import java.util.Hashtable;
 import sun.misc.Unsafe;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 public class XKeysym {
 
@@ -70,7 +69,7 @@
     static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
     static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
     static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
-    private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XKeysym");
+    private static PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XKeysym");
     public static char convertKeysym( long ks, int state ) {
 
         /* First check for Latin-1 characters (1:1 mapping) */
--- a/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -34,13 +34,13 @@
 import java.util.Vector;
 import java.awt.geom.*;
 import java.awt.image.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 // TODO: some input actions should do nothing if Shift or Control are down
 
 class XListPeer extends XComponentPeer implements ListPeer, XScrollbarClient {
 
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XListPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XListPeer");
 
     public final static int     MARGIN = 2;
     public final static int     SPACE = 1;
@@ -578,10 +578,10 @@
     }
 
     void mousePressed(MouseEvent mouseEvent) {
-        if (log.isLoggable(Level.FINER)) log.finer(mouseEvent.toString() + ", hsb " + hsbVis + ", vsb " + vsbVis);
+        if (log.isLoggable(PlatformLogger.FINER)) log.finer(mouseEvent.toString() + ", hsb " + hsbVis + ", vsb " + vsbVis);
         if (isEnabled() && mouseEvent.getButton() == MouseEvent.BUTTON1) {
             if (inWindow(mouseEvent.getX(), mouseEvent.getY())) {
-                if (log.isLoggable(Level.FINE)) log.fine("Mouse press in items area");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("Mouse press in items area");
                 active = WINDOW;
                 int i = y2index(mouseEvent.getY());
                 if (i >= 0) {
@@ -618,14 +618,14 @@
                     currentIndex = -1;
                 }
             } else if (inVerticalScrollbar(mouseEvent.getX(), mouseEvent.getY())) {
-                if (log.isLoggable(Level.FINE)) log.fine("Mouse press in vertical scrollbar");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("Mouse press in vertical scrollbar");
                 active = VERSCROLLBAR;
                 vsb.handleMouseEvent(mouseEvent.getID(),
                                      mouseEvent.getModifiers(),
                                      mouseEvent.getX() - (width - SCROLLBAR_WIDTH),
                                      mouseEvent.getY());
             } else if (inHorizontalScrollbar(mouseEvent.getX(), mouseEvent.getY())) {
-                if (log.isLoggable(Level.FINE)) log.fine("Mouse press in horizontal scrollbar");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("Mouse press in horizontal scrollbar");
                 active = HORSCROLLBAR;
                 hsb.handleMouseEvent(mouseEvent.getID(),
                                      mouseEvent.getModifiers(),
@@ -808,7 +808,7 @@
 
     void keyPressed(KeyEvent e) {
         int keyCode = e.getKeyCode();
-        if (log.isLoggable(Level.FINE)) log.fine(e.toString());
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine(e.toString());
         switch(keyCode) {
           case KeyEvent.VK_UP:
           case KeyEvent.VK_KP_UP: // TODO: I assume we also want this, too
@@ -993,7 +993,7 @@
      */
     public void notifyValue(XScrollbar obj, int type, int v, boolean isAdjusting) {
 
-        if (log.isLoggable(Level.FINE)) log.fine("Notify value changed on " + obj + " to " + v);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Notify value changed on " + obj + " to " + v);
         int value = obj.getValue();
         if (obj == vsb) {
             scrollVertical(v - value);
@@ -1076,7 +1076,7 @@
                 }
             }
         }
-        if (log.isLoggable(Level.FINER)) log.finer("Adding item '" + item + "' to " + addedIndex);
+        if (log.isLoggable(PlatformLogger.FINER)) log.finer("Adding item '" + item + "' to " + addedIndex);
 
         // Update maxLength
         boolean repaintItems = !isItemHidden(addedIndex);
@@ -1094,7 +1094,7 @@
                 | ((vsb.needsRepaint())?(PAINT_VSCROLL):0);
 
         }
-        if (log.isLoggable(Level.FINEST)) log.finest("Last visible: " + getLastVisibleItem() +
+        if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Last visible: " + getLastVisibleItem() +
                                                      ", hsb changed : " + (hsbWasVis ^ hsbVis) + ", items changed " + repaintItems);
         repaint(addedIndex, getLastVisibleItem(), options);
     }
@@ -1110,9 +1110,9 @@
         boolean vsbWasVisible = vsbVis;
         int oldLastDisplayed = lastItemDisplayed();
 
-        if (log.isLoggable(Level.FINE)) log.fine("Deleting from " + s + " to " + e);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Deleting from " + s + " to " + e);
 
-        if (log.isLoggable(Level.FINEST)) log.finest("Last displayed item: " + oldLastDisplayed + ", items in window " + itemsInWindow() +
+        if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Last displayed item: " + oldLastDisplayed + ", items in window " + itemsInWindow() +
                                                      ", size " + items.size());
 
         if (items.size() == 0) {
@@ -1180,7 +1180,7 @@
             options |= PAINT_FOCUS;
         }
 
-        if (log.isLoggable(Level.FINEST)) log.finest("Multiple selections: " + multipleSelections);
+        if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Multiple selections: " + multipleSelections);
 
         // update vsb.val
         if (vsb.getValue() >= s) {
@@ -1433,7 +1433,7 @@
      * y is the number of items to scroll
      */
     void scrollVertical(int y) {
-        if (log.isLoggable(Level.FINE)) log.fine("Scrolling vertically by " + y);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Scrolling vertically by " + y);
         int itemsInWin = itemsInWindow();
         int h = getItemHeight();
         int pixelsToScroll = y * h;
@@ -1473,7 +1473,7 @@
      * x is the number of pixels to scroll
      */
     void scrollHorizontal(int x) {
-        if (log.isLoggable(Level.FINE)) log.fine("Scrolling horizontally by " + y);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Scrolling horizontally by " + y);
         int w = getListWidth();
         w -= ((2 * SPACE) + (2 * MARGIN));
         int h = height - (SCROLLBAR_AREA + (2 * MARGIN));
@@ -1706,7 +1706,7 @@
             }
 
             if (localBuffer == null) {
-                if (log.isLoggable(Level.FINE)) log.fine("Creating buffer " + width + "x" + height);
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("Creating buffer " + width + "x" + height);
                 // use GraphicsConfig.cCVI() instead of Component.cVI(),
                 // because the latter may cause a deadlock with the tree lock
                 localBuffer =
@@ -1743,7 +1743,7 @@
 
         private void paint(Graphics listG, int firstItem, int lastItem, int options,
                            Rectangle source, Point distance) {
-            if (log.isLoggable(Level.FINER)) log.finer("Repaint from " + firstItem + " to " + lastItem + " options " + options);
+            if (log.isLoggable(PlatformLogger.FINER)) log.finer("Repaint from " + firstItem + " to " + lastItem + " options " + options);
             if (firstItem > lastItem) {
                 int t = lastItem;
                 lastItem = firstItem;
@@ -1832,7 +1832,7 @@
         }
 
         private void paintItems(Graphics g, int firstItem, int lastItem, int options) {
-            if (log.isLoggable(Level.FINER)) log.finer("Painting items from " + firstItem + " to " + lastItem + ", focused " + focusIndex + ", first " + getFirstVisibleItem() + ", last " + getLastVisibleItem());
+            if (log.isLoggable(PlatformLogger.FINER)) log.finer("Painting items from " + firstItem + " to " + lastItem + ", focused " + focusIndex + ", first " + getFirstVisibleItem() + ", last " + getLastVisibleItem());
 
             firstItem = Math.max(getFirstVisibleItem(), firstItem);
             if (firstItem > lastItem) {
@@ -1843,7 +1843,7 @@
             firstItem = Math.max(getFirstVisibleItem(), firstItem);
             lastItem = Math.min(lastItem, items.size()-1);
 
-            if (log.isLoggable(Level.FINER)) log.finer("Actually painting items from " + firstItem + " to " + lastItem +
+            if (log.isLoggable(PlatformLogger.FINER)) log.finer("Actually painting items from " + firstItem + " to " + lastItem +
                                                        ", items in window " + itemsInWindow());
             for (int i = firstItem; i <= lastItem; i++) {
                 paintItem(g, i);
@@ -1851,7 +1851,7 @@
         }
 
         private void paintItem(Graphics g, int index) {
-            if (log.isLoggable(Level.FINEST)) log.finest("Painting item " + index);
+            if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painting item " + index);
             // 4895367 - only paint items which are visible
             if (!isItemHidden(index)) {
                 Shape clip = g.getClip();
@@ -1859,18 +1859,18 @@
                 int h = getItemHeight();
                 int y = getItemY(index);
                 int x = getItemX();
-                if (log.isLoggable(Level.FINEST)) log.finest("Setting clip " + new Rectangle(x, y, w - (SPACE*2), h-(SPACE*2)));
+                if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Setting clip " + new Rectangle(x, y, w - (SPACE*2), h-(SPACE*2)));
                 g.setClip(x, y, w - (SPACE*2), h-(SPACE*2));
 
                 // Always paint the background so that focus is unpainted in
                 // multiselect mode
                 if (isSelected(index)) {
-                    if (log.isLoggable(Level.FINEST)) log.finest("Painted item is selected");
+                    if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painted item is selected");
                     g.setColor(getListForeground());
                 } else {
                     g.setColor(getListBackground());
                 }
-                if (log.isLoggable(Level.FINEST)) log.finest("Filling " + new Rectangle(x, y, w, h));
+                if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Filling " + new Rectangle(x, y, w, h));
                 g.fillRect(x, y, w, h);
 
                 if (index <= getLastVisibleItem() && index < items.size()) {
@@ -1894,7 +1894,7 @@
         }
 
         void paintScrollBar(XScrollbar scr, Graphics g, int x, int y, int width, int height, boolean paintAll) {
-            if (log.isLoggable(Level.FINEST)) log.finest("Painting scrollbar " + scr + " width " +
+            if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painting scrollbar " + scr + " width " +
                                                          width + " height " + height + ", paintAll " + paintAll);
             g.translate(x, y);
             scr.paint(g, getSystemColors(), paintAll);
@@ -1932,22 +1932,22 @@
             if (paintFocus && !hasFocus()) {
                 paintFocus = false;
             }
-            if (log.isLoggable(Level.FINE)) log.fine("Painting focus, focus index " + getFocusIndex() + ", focus is " +
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("Painting focus, focus index " + getFocusIndex() + ", focus is " +
                                                      (isItemHidden(getFocusIndex())?("invisible"):("visible")) + ", paint focus is " + paintFocus);
             Shape clip = g.getClip();
             g.setClip(0, 0, listWidth, listHeight);
-            if (log.isLoggable(Level.FINEST)) log.finest("Setting focus clip " + new Rectangle(0, 0, listWidth, listHeight));
+            if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Setting focus clip " + new Rectangle(0, 0, listWidth, listHeight));
             Rectangle rect = getFocusRect();
             if (prevFocusRect != null) {
                 // Erase focus rect
-                if (log.isLoggable(Level.FINEST)) log.finest("Erasing previous focus rect " + prevFocusRect);
+                if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Erasing previous focus rect " + prevFocusRect);
                 g.setColor(getListBackground());
                 g.drawRect(prevFocusRect.x, prevFocusRect.y, prevFocusRect.width, prevFocusRect.height);
                 prevFocusRect = null;
             }
             if (paintFocus) {
                 // Paint new
-                if (log.isLoggable(Level.FINEST)) log.finest("Painting focus rect " + rect);
+                if (log.isLoggable(PlatformLogger.FINEST)) log.finest("Painting focus rect " + rect);
                 g.setColor(getListForeground());  // Focus color is always black on Linux
                 g.drawRect(rect.x, rect.y, rect.width, rect.height);
                 prevFocusRect = rect;
--- a/jdk/src/solaris/classes/sun/awt/X11/XMSelection.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMSelection.java	Wed Oct 07 14:15:01 2009 -0700
@@ -32,8 +32,7 @@
 package sun.awt.X11;
 
 import java.util.*;
-import java.util.logging.*;
-
+import sun.util.logging.PlatformLogger;
 
 public class  XMSelection {
 
@@ -56,7 +55,7 @@
      */
 
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XMSelection");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMSelection");
     /* Name of the selection */
     String selectionName;
 
@@ -129,7 +128,7 @@
             long display = XToolkit.getDisplay();
             synchronized(this) {
                 setOwner(owner, screen);
-                if (log.isLoggable(Level.FINE)) log.fine("New Selection Owner for screen " + screen + " = " + owner );
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("New Selection Owner for screen " + screen + " = " + owner );
                 XlibWrapper.XSelectInput(display, owner, XConstants.StructureNotifyMask | eventMask);
                 XToolkit.addEventDispatcher(owner,
                         new XEventDispatcher() {
@@ -149,19 +148,19 @@
         try {
             try {
                 long display = XToolkit.getDisplay();
-                if (log.isLoggable(Level.FINE)) log.fine("Grabbing XServer");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("Grabbing XServer");
                 XlibWrapper.XGrabServer(display);
 
                 synchronized(this) {
                     String selection_name = getName()+"_S"+screen;
-                    if (log.isLoggable(Level.FINE)) log.fine("Screen = " + screen + " selection name = " + selection_name);
+                    if (log.isLoggable(PlatformLogger.FINE)) log.fine("Screen = " + screen + " selection name = " + selection_name);
                     XAtom atom = XAtom.get(selection_name);
                     selectionMap.put(Long.valueOf(atom.getAtom()),this); // add mapping from atom to the instance of XMSelection
                     setAtom(atom,screen);
                     long owner = XlibWrapper.XGetSelectionOwner(display, atom.getAtom());
                     if (owner != 0) {
                         setOwner(owner, screen);
-                        if (log.isLoggable(Level.FINE)) log.fine("Selection Owner for screen " + screen + " = " + owner );
+                        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Selection Owner for screen " + screen + " = " + owner );
                         XlibWrapper.XSelectInput(display, owner, XConstants.StructureNotifyMask | extra_mask);
                         XToolkit.addEventDispatcher(owner,
                                 new XEventDispatcher() {
@@ -176,7 +175,7 @@
                 e.printStackTrace();
             }
             finally {
-                if (log.isLoggable(Level.FINE)) log.fine("UnGrabbing XServer");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("UnGrabbing XServer");
                 XlibWrapper.XUngrabServer(XToolkit.getDisplay());
             }
         } finally {
@@ -188,7 +187,7 @@
     static boolean processClientMessage(XEvent xev, int screen) {
         XClientMessageEvent xce = xev.get_xclient();
         if (xce.get_message_type() == XA_MANAGER.getAtom()) {
-            if (log.isLoggable(Level.FINE)) log.fine("client messags = " + xce);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("client messags = " + xce);
             long timestamp = xce.get_data(0);
             long atom = xce.get_data(1);
             long owner = xce.get_data(2);
@@ -295,7 +294,7 @@
 
 
     synchronized void dispatchSelectionChanged( XPropertyEvent ev, int screen) {
-        if (log.isLoggable(Level.FINE)) log.fine("Selection Changed : Screen = " + screen + "Event =" + ev);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Selection Changed : Screen = " + screen + "Event =" + ev);
         if (listeners != null) {
             Iterator iter = listeners.iterator();
             while (iter.hasNext()) {
@@ -306,7 +305,7 @@
     }
 
     synchronized void dispatchOwnerDeath(XDestroyWindowEvent de, int screen) {
-        if (log.isLoggable(Level.FINE)) log.fine("Owner dead : Screen = " + screen + "Event =" + de);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Owner dead : Screen = " + screen + "Event =" + de);
         if (listeners != null) {
             Iterator iter = listeners.iterator();
             while (iter.hasNext()) {
@@ -318,7 +317,7 @@
     }
 
     void dispatchSelectionEvent(XEvent xev, int screen) {
-        if (log.isLoggable(Level.FINE)) log.fine("Event =" + xev);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Event =" + xev);
         if (xev.get_type() == XConstants.DestroyNotify) {
             XDestroyWindowEvent de = xev.get_xdestroywindow();
             dispatchOwnerDeath( de, screen);
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,7 +30,7 @@
 
 import java.lang.reflect.Field;
 import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 import sun.awt.SunToolkit;
 
 public class XMenuBarPeer extends XBaseMenuWindow implements MenuBarPeer {
@@ -41,7 +41,7 @@
      *
      ************************************************/
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XMenuBarPeer");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMenuBarPeer");
 
     /*
      * Primary members
@@ -533,7 +533,7 @@
      */
     public void handleKeyPress(XEvent xev) {
         XKeyEvent xkey = xev.get_xkey();
-        if (log.isLoggable(Level.FINE)) log.fine(xkey.toString());
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine(xkey.toString());
         if (isEventDisabled(xev)) {
             return;
         }
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuItemPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -28,8 +28,6 @@
 import java.awt.peer.*;
 import java.awt.event.*;
 
-import java.util.logging.*;
-
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
@@ -43,8 +41,6 @@
      *
      ************************************************/
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XMenuItemPeer");
-
     /*
      * Primary members
      */
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,7 +29,7 @@
 
 import java.lang.reflect.Field;
 import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 import sun.awt.SunToolkit;
 
 public class XMenuPeer extends XMenuItemPeer implements MenuPeer {
@@ -39,7 +39,7 @@
      * Data members
      *
      ************************************************/
-    private static Logger log = Logger.getLogger("sun.awt.X11.XMenuPeer");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMenuPeer");
 
     /**
      * Window that correspond to this menu
@@ -122,7 +122,7 @@
      * for adding separators
      */
     public void addSeparator() {
-        if (log.isLoggable(Level.FINER)) log.finer("addSeparator is not implemented");
+        if (log.isLoggable(PlatformLogger.FINER)) log.finer("addSeparator is not implemented");
     }
 
     public void addItem(MenuItem item) {
@@ -130,7 +130,7 @@
         if (menuWindow != null) {
             menuWindow.addItem(item);
         } else {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 log.fine("Attempt to use XMenuWindowPeer without window");
             }
         }
@@ -141,7 +141,7 @@
         if (menuWindow != null) {
             menuWindow.delItem(index);
         } else {
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 log.fine("Attempt to use XMenuWindowPeer without window");
             }
         }
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -32,7 +32,7 @@
 import java.awt.geom.Point2D;
 
 import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 public class XMenuWindow extends XBaseMenuWindow {
 
@@ -42,7 +42,7 @@
      *
      ************************************************/
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XMenuWindow");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XMenuWindow");
 
     /*
      * Primary members
@@ -399,7 +399,7 @@
         if (!isCreated()) {
             return;
         }
-        if (log.isLoggable(Level.FINER)) {
+        if (log.isLoggable(PlatformLogger.FINER)) {
             log.finer("showing menu window + " + getWindow() + " at " + bounds);
         }
         XToolkit.awtLock();
--- a/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,14 +27,13 @@
 package sun.awt.X11;
 
 import java.awt.Frame;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 final class XNETProtocol extends XProtocol implements XStateProtocol, XLayerProtocol
 {
-    private final static Logger log = Logger.getLogger("sun.awt.X11.XNETProtocol");
-    private final static Logger iconLog = Logger.getLogger("sun.awt.X11.icon.XNETProtocol");
-    private static Logger stateLog = Logger.getLogger("sun.awt.X11.states.XNETProtocol");
+    private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XNETProtocol");
+    private final static PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XNETProtocol");
+    private static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states.XNETProtocol");
 
     /**
      * XStateProtocol
@@ -44,7 +43,7 @@
     }
 
     public void setState(XWindowPeer window, int state) {
-        if (log.isLoggable(Level.FINE)) log.fine("Setting state of " + window + " to " + state);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting state of " + window + " to " + state);
         if (window.isShowing()) {
             requestState(window, state);
         } else {
@@ -54,7 +53,7 @@
 
     private void setInitialState(XWindowPeer window, int state) {
         XAtomList old_state = window.getNETWMState();
-        log.log(Level.FINE, "Current state of the window {0} is {1}", new Object[] {window, old_state});
+        log.fine("Current state of the window {0} is {1}", window, old_state);
         if ((state & Frame.MAXIMIZED_VERT) != 0) {
             old_state.add(XA_NET_WM_STATE_MAXIMIZED_VERT);
         } else {
@@ -65,7 +64,7 @@
         } else {
             old_state.remove(XA_NET_WM_STATE_MAXIMIZED_HORZ);
         }
-        log.log(Level.FINE, "Setting initial state of the window {0} to {1}", new Object[] {window, old_state});
+        log.fine("Setting initial state of the window {0} to {1}", window, old_state);
         window.setNETWMState(old_state);
     }
 
@@ -98,7 +97,7 @@
               default:
                   return;
             }
-            if (log.isLoggable(Level.FINE)) log.fine("Requesting state on " + window + " for " + state);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("Requesting state on " + window + " for " + state);
             req.set_type((int)XConstants.ClientMessage);
             req.set_window(window.getWindow());
             req.set_message_type(XA_NET_WM_STATE.getAtom());
@@ -180,7 +179,7 @@
             req.set_data(1, state.getAtom());
             // Fix for 6735584: req.data[2] must be set to 0 when only one property is changed
             req.set_data(2, 0);
-            log.log(Level.FINE, "Setting _NET_STATE atom {0} on {1} for {2}", new Object[] {state, window, Boolean.valueOf(isAdd)});
+            log.fine("Setting _NET_STATE atom {0} on {1} for {2}", state, window, Boolean.valueOf(isAdd));
             XToolkit.awtLock();
             try {
                 XlibWrapper.XSendEvent(XToolkit.getDisplay(),
@@ -205,20 +204,20 @@
      * @param reset Indicates operation, 'set' if false, 'reset' if true
      */
     private void setStateHelper(XWindowPeer window, XAtom state, boolean set) {
-        log.log(Level.FINER, "Window visibility is: withdrawn={0}, visible={1}, mapped={2} showing={3}",
-                new Object[] {Boolean.valueOf(window.isWithdrawn()), Boolean.valueOf(window.isVisible()),
-                              Boolean.valueOf(window.isMapped()), Boolean.valueOf(window.isShowing())});
+        log.finer("Window visibility is: withdrawn={0}, visible={1}, mapped={2} showing={3}",
+                  Boolean.valueOf(window.isWithdrawn()), Boolean.valueOf(window.isVisible()),
+                  Boolean.valueOf(window.isMapped()), Boolean.valueOf(window.isShowing()));
         if (window.isShowing()) {
             requestState(window, state, set);
         } else {
             XAtomList net_wm_state = window.getNETWMState();
-            log.log(Level.FINE, "Current state on {0} is {1}", new Object[] {window, net_wm_state});
+            log.finer("Current state on {0} is {1}", window, net_wm_state);
             if (!set) {
                 net_wm_state.remove(state);
             } else {
                 net_wm_state.add(state);
             }
-            log.log(Level.FINE, "Setting states on {0} to {1}", new Object[] {window, net_wm_state});
+            log.fine("Setting states on {0} to {1}", window, net_wm_state);
             window.setNETWMState(net_wm_state);
         }
         XToolkit.XSync();
@@ -272,7 +271,7 @@
         }
         NetWindow = checkAnchor(XA_NET_SUPPORTING_WM_CHECK, XAtom.XA_WINDOW);
         supportChecked = true;
-        if (log.isLoggable(Level.FINE)) log.fine("### " + this + " is active: " + (NetWindow != 0));
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " is active: " + (NetWindow != 0));
     }
 
     boolean active() {
@@ -309,7 +308,7 @@
         if (net_wm_name_string == null) {
             return false;
         }
-        if (log.isLoggable(Level.FINE)) log.fine("### WM_NAME = " + net_wm_name_string);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### WM_NAME = " + net_wm_name_string);
         return net_wm_name_string.startsWith(name);
     }
 
--- a/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -33,7 +33,7 @@
 import java.lang.reflect.InvocationTargetException;
 
 import java.util.Vector;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.SunToolkit;
 
@@ -44,7 +44,7 @@
      * Data members
      *
      ************************************************/
-    private static Logger log = Logger.getLogger("sun.awt.X11.XBaseMenuWindow");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XBaseMenuWindow");
 
     /*
      * Primary members
@@ -146,7 +146,7 @@
      * for adding separators
      */
     public void addSeparator() {
-        if (log.isLoggable(Level.FINER)) log.finer("addSeparator is not implemented");
+        if (log.isLoggable(PlatformLogger.FINER)) log.finer("addSeparator is not implemented");
     }
 
     /*
@@ -382,7 +382,7 @@
      */
     public void handleKeyPress(XEvent xev) {
         XKeyEvent xkey = xev.get_xkey();
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(xkey.toString());
         }
         if (isEventDisabled(xev)) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XProtocol.java	Wed Oct 07 14:15:01 2009 -0700
@@ -25,12 +25,12 @@
 
 package sun.awt.X11;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import java.util.*;
 
 class XProtocol {
-    private final static Logger log = Logger.getLogger("sun.awt.X11.XProtocol");
+    private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XProtocol");
 
     private Map<XAtom, XAtomList> atomToList = new HashMap<XAtom, XAtomList>();
     private Map<XAtom, Long> atomToAnchor = new HashMap<XAtom, Long>();
@@ -54,7 +54,7 @@
         } finally {
             if (firstCheck) {
                 firstCheck = false;
-                log.log(Level.FINE, "{0}:{1} supports {2}", new Object[] {this, listName, protocols});
+                log.fine("{0}:{1} supports {2}", this, listName, protocols);
             }
         }
     }
--- a/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java	Wed Oct 07 14:15:01 2009 -0700
@@ -28,11 +28,9 @@
 package sun.awt.X11;
 
 import sun.misc.Unsafe;
-import java.util.logging.*;
 
 public class XQueryTree {
         private static Unsafe unsafe = XlibWrapper.unsafe;
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XQueryTree");
         private boolean __executed = false;
         long _w;
         long root_ptr = unsafe.allocateMemory(Native.getLongSize());
--- a/jdk/src/solaris/classes/sun/awt/X11/XScrollbar.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XScrollbar.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,14 +30,14 @@
 import java.awt.image.BufferedImage;
 import sun.awt.SunToolkit;
 import sun.awt.X11GraphicsConfig;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 /**
 * A simple vertical scroll bar.
 */
 abstract class XScrollbar {
 
-    private static Logger log = Logger.getLogger("sun.awt.X11.XScrollbar");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XScrollbar");
     /**
      * The thread that asynchronously tells the scrollbar to scroll.
      * @see #startScrolling
@@ -118,7 +118,7 @@
     abstract protected void rebuildArrows();
 
     public void setSize(int width, int height) {
-        if (log.isLoggable(Level.FINER)) log.finer("Setting scroll bar " + this + " size to " + width + "x" + height);
+        if (log.isLoggable(PlatformLogger.FINER)) log.finer("Setting scroll bar " + this + " size to " + width + "x" + height);
         this.width = width;
         this.height = height;
     }
@@ -164,7 +164,7 @@
      * @param paintAll paint the whole scrollbar if true, just the thumb is false
      */
     void paint(Graphics g, Color colors[], boolean paintAll) {
-        if (log.isLoggable(Level.FINER)) log.finer("Painting scrollbar " + this);
+        if (log.isLoggable(PlatformLogger.FINER)) log.finer("Painting scrollbar " + this);
 
         boolean useBufferedImage = false;
         Graphics2D g2 = null;
@@ -454,7 +454,7 @@
             return;
         }
 
-        if (log.isLoggable(Level.FINER)) {
+        if (log.isLoggable(PlatformLogger.FINER)) {
              String type;
              switch (id) {
                 case MouseEvent.MOUSE_PRESSED:
--- a/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -28,10 +28,10 @@
 import java.awt.*;
 import java.awt.event.*;
 import java.awt.peer.*;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 class XScrollbarPeer extends XComponentPeer implements ScrollbarPeer, XScrollbarClient {
-    private final static Logger log = Logger.getLogger("sun.awt.X11.XScrollbarPeer");
+    private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XScrollbarPeer");
 
     private static final int DEFAULT_LENGTH = 50;
     private static final int DEFAULT_WIDTH_SOLARIS = 19;
@@ -162,7 +162,7 @@
 
     public void handleJavaKeyEvent(KeyEvent event) {
         super.handleJavaKeyEvent(event);
-        if (log.isLoggable(Level.FINEST)) log.finer("KeyEvent on scrollbar: " + event);
+        if (log.isLoggable(PlatformLogger.FINEST)) log.finer("KeyEvent on scrollbar: " + event);
         if (!(event.isConsumed()) && event.getID() == KeyEvent.KEY_RELEASED) {
             switch(event.getKeyCode()) {
             case KeyEvent.VK_UP:
--- a/jdk/src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,14 +27,14 @@
 
 import java.awt.*;
 import java.awt.peer.SystemTrayPeer;
-import java.util.logging.Logger;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 import sun.awt.SunToolkit;
 import sun.awt.AppContext;
+import sun.util.logging.PlatformLogger;
 
 public class XSystemTrayPeer implements SystemTrayPeer, XMSelectionListener {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XSystemTrayPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XSystemTrayPeer");
 
     SystemTray target;
     static XSystemTrayPeer peerInstance; // there is only one SystemTray peer per application
--- a/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -52,12 +52,13 @@
 import com.sun.java.swing.plaf.motif.*;
 import java.awt.im.InputMethodRequests;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
+
 import sun.awt.CausedFocusEvent;
 import sun.awt.ComponentAccessor;
 
 public class XTextFieldPeer extends XComponentPeer implements TextFieldPeer {
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XTextField");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XTextField");
 
     String text;
     XAWTTextField xtext;
@@ -256,7 +257,7 @@
     }
 
     public void setBackground(Color c) {
-        if (log.isLoggable(Level.FINE)) log.fine("target="+ target + ", old=" + background + ", new=" + c);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("target="+ target + ", old=" + background + ", new=" + c);
         background = c;
         if (xtext != null) {
             xtext.setBackground(c);
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	Wed Oct 07 14:15:01 2009 -0700
@@ -46,22 +46,22 @@
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import javax.swing.LookAndFeel;
 import javax.swing.UIDefaults;
 import sun.awt.*;
+import sun.font.FontConfigManager;
 import sun.font.FontManager;
 import sun.misc.PerformanceLogger;
 import sun.print.PrintJob2D;
 import sun.security.action.GetBooleanAction;
+import sun.util.logging.PlatformLogger;
 
 public final class XToolkit extends UNIXToolkit implements Runnable {
-    private static Logger log = Logger.getLogger("sun.awt.X11.XToolkit");
-    private static Logger eventLog = Logger.getLogger("sun.awt.X11.event.XToolkit");
-    private static final Logger timeoutTaskLog = Logger.getLogger("sun.awt.X11.timeoutTask.XToolkit");
-    private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XToolkit");
-    private static final Logger backingStoreLog = Logger.getLogger("sun.awt.X11.backingStore.XToolkit");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XToolkit");
+    private static final PlatformLogger eventLog = PlatformLogger.getLogger("sun.awt.X11.event.XToolkit");
+    private static final PlatformLogger timeoutTaskLog = PlatformLogger.getLogger("sun.awt.X11.timeoutTask.XToolkit");
+    private static final PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XToolkit");
+    private static final PlatformLogger backingStoreLog = PlatformLogger.getLogger("sun.awt.X11.backingStore.XToolkit");
 
     //There is 400 ms is set by default on Windows and 500 by default on KDE and GNOME.
     //We use the same hardcoded constant.
@@ -95,6 +95,8 @@
      */
     private XSettings xs;
 
+    private FontConfigManager fcManager = new FontConfigManager();
+
     static int arrowCursor;
     static TreeMap winMap = new TreeMap();
     static HashMap specialPeerMap = new HashMap();
@@ -178,13 +180,13 @@
             // Default XErrorHandler may just terminate the process. Don't call it.
             // return XlibWrapper.CallErrorHandler(saved_error_handler, display, error.pData);
         }
-        if (log.isLoggable(Level.FINE)) {
-            log.log(Level.FINE, "Unhandled XErrorEvent: " +
-                    "id=" + error.get_resourceid() + ", " +
-                    "serial=" + error.get_serial() + ", " +
-                    "ec=" + error.get_error_code() + ", " +
-                    "rc=" + error.get_request_code() + ", " +
-                    "mc=" + error.get_minor_code());
+        if (log.isLoggable(PlatformLogger.FINE)) {
+            log.fine("Unhandled XErrorEvent: " +
+                     "id=" + error.get_resourceid() + ", " +
+                     "serial=" + error.get_serial() + ", " +
+                     "ec=" + error.get_error_code() + ", " +
+                     "rc=" + error.get_request_code() + ", " +
+                     "mc=" + error.get_minor_code());
         }
         return 0;
     }
@@ -203,7 +205,7 @@
                 return SAVED_ERROR_HANDLER(display, event);
             }
         } catch (Throwable z) {
-            log.log(Level.FINE, "Error in GlobalErrorHandler", z);
+            log.fine("Error in GlobalErrorHandler", z);
         }
         return 0;
     }
@@ -321,7 +323,7 @@
                     ((XAWTXSettings)xs).dispose();
                 }
                 freeXKB();
-                if (log.isLoggable(Level.FINE)) {
+                if (log.isLoggable(PlatformLogger.FINE)) {
                     dumpPeers();
                 }
 
@@ -564,8 +566,8 @@
     }
 
     static void processException(Throwable thr) {
-        if (log.isLoggable(Level.WARNING)) {
-            log.log(Level.WARNING, "Exception on Toolkit thread", thr);
+        if (log.isLoggable(PlatformLogger.WARNING)) {
+            log.warning("Exception on Toolkit thread", thr);
         }
     }
 
@@ -626,8 +628,8 @@
                     continue;
                 }
 
-                if (eventLog.isLoggable(Level.FINER)) {
-                    eventLog.log(Level.FINER, "{0}", ev);
+                if (eventLog.isLoggable(PlatformLogger.FINER)) {
+                    eventLog.finer("{0}", ev);
                 }
 
                 // Check if input method consumes the event
@@ -642,13 +644,13 @@
                         }
                     }
                 }
-                if( keyEventLog.isLoggable(Level.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
+                if( keyEventLog.isLoggable(PlatformLogger.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
                     keyEventLog.fine("before XFilterEvent:"+ev);
                 }
                 if (XlibWrapper.XFilterEvent(ev.getPData(), w)) {
                     continue;
                 }
-                if( keyEventLog.isLoggable(Level.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
+                if( keyEventLog.isLoggable(PlatformLogger.FINE) && (ev.get_type() == XConstants.KeyPress || ev.get_type() == XConstants.KeyRelease) ) {
                     keyEventLog.fine("after XFilterEvent:"+ev); // IS THIS CORRECT?
                 }
 
@@ -1335,7 +1337,7 @@
     }
 
     static void dumpPeers() {
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine("Mapped windows:");
             Iterator iter = winMap.entrySet().iterator();
             while (iter.hasNext()) {
@@ -1431,7 +1433,7 @@
                 }
             } catch (InterruptedException ie) {
             // Note: the returned timeStamp can be incorrect in this case.
-                if (log.isLoggable(Level.FINE)) log.fine("Catched exception, timeStamp may not be correct (ie = " + ie + ")");
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("Catched exception, timeStamp may not be correct (ie = " + ie + ")");
             }
         } finally {
             awtUnlock();
@@ -1530,7 +1532,7 @@
                  */
                 if (desktopProperties.get(SunToolkit.DESKTOPFONTHINTS) == null) {
                     if (XWM.isKDE2()) {
-                        Object hint = FontManager.getFontConfigAAHint();
+                        Object hint = fcManager.getFontConfigAAHint();
                         if (hint != null) {
                             /* set the fontconfig/KDE property so that
                              * getDesktopHints() below will see it
@@ -1764,7 +1766,7 @@
         } finally {
             awtUnlock();
         }
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine("metaMask = " + metaMask);
             log.fine("altMask = " + altMask);
             log.fine("numLockMask = " + numLockMask);
@@ -1786,11 +1788,11 @@
         }
         awtLock();
         try {
-            if (timeoutTaskLog.isLoggable(Level.FINER)) {
+            if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
                 timeoutTaskLog.finer("Removing task " + task);
             }
             if (timeoutTasks == null) {
-                if (timeoutTaskLog.isLoggable(Level.FINER)) {
+                if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
                     timeoutTaskLog.finer("Task is not scheduled");
                 }
                 return;
@@ -1837,11 +1839,11 @@
 
         awtLock();
         try {
-            if (timeoutTaskLog.isLoggable(Level.FINER)) {
-                timeoutTaskLog.log(Level.FINER, "XToolkit.schedule(): current time={0}" +
-                                   ";  interval={1}" +
-                                   ";  task being added={2}" + ";  tasks before addition={3}", new Object[] {
-                                   Long.valueOf(System.currentTimeMillis()), Long.valueOf(interval), task, timeoutTasks});
+            if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
+                timeoutTaskLog.finer("XToolkit.schedule(): current time={0}" +
+                                     ";  interval={1}" +
+                                     ";  task being added={2}" + ";  tasks before addition={3}",
+                                     Long.valueOf(System.currentTimeMillis()), Long.valueOf(interval), task, timeoutTasks);
             }
 
             if (timeoutTasks == null) {
@@ -1884,9 +1886,9 @@
      * Called from run() under awtLock.
      */
     private static void callTimeoutTasks() {
-        if (timeoutTaskLog.isLoggable(Level.FINER)) {
-            timeoutTaskLog.log(Level.FINER, "XToolkit.callTimeoutTasks(): current time={0}" +
-                               ";  tasks={1}",  new Object[] {Long.valueOf(System.currentTimeMillis()), timeoutTasks});
+        if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
+            timeoutTaskLog.finer("XToolkit.callTimeoutTasks(): current time={0}" +
+                                 ";  tasks={1}", Long.valueOf(System.currentTimeMillis()), timeoutTasks);
         }
 
         if (timeoutTasks == null || timeoutTasks.isEmpty()) {
@@ -1902,9 +1904,9 @@
             for (Iterator iter = tasks.iterator(); iter.hasNext();) {
                 Runnable task = (Runnable)iter.next();
 
-                if (timeoutTaskLog.isLoggable(Level.FINER)) {
-                    timeoutTaskLog.log(Level.FINER, "XToolkit.callTimeoutTasks(): current time={0}" +
-                                       ";  about to run task={1}", new Object[] {Long.valueOf(currentTime), task});
+                if (timeoutTaskLog.isLoggable(PlatformLogger.FINER)) {
+                    timeoutTaskLog.finer("XToolkit.callTimeoutTasks(): current time={0}" +
+                                         ";  about to run task={1}", Long.valueOf(currentTime), task);
                 }
 
                 try {
@@ -1977,7 +1979,7 @@
          */
 
         long current_time_utc = System.currentTimeMillis();
-        if (log.isLoggable(Level.FINER)) {
+        if (log.isLoggable(PlatformLogger.FINER)) {
             log.finer("reset_time=" + reset_time_utc + ", current_time=" + current_time_utc
                       + ", server_offset=" + server_offset + ", wrap_time=" + WRAP_TIME_MILLIS);
         }
@@ -1986,7 +1988,7 @@
             reset_time_utc = System.currentTimeMillis() - getCurrentServerTime();
         }
 
-        if (log.isLoggable(Level.FINER)) {
+        if (log.isLoggable(PlatformLogger.FINER)) {
             log.finer("result = " + (reset_time_utc + server_offset));
         }
         return reset_time_utc + server_offset;
@@ -2071,14 +2073,14 @@
 
         if (prop == null) {
             backingStoreType = XConstants.NotUseful;
-            if (backingStoreLog.isLoggable(Level.CONFIG)) {
+            if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
                 backingStoreLog.config("The system property sun.awt.backingStore is not set" +
                                        ", by default backingStore=NotUseful");
             }
             return;
         }
 
-        if (backingStoreLog.isLoggable(Level.CONFIG)) {
+        if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
             backingStoreLog.config("The system property sun.awt.backingStore is " + prop);
         }
         prop = prop.toLowerCase();
@@ -2090,7 +2092,7 @@
             backingStoreType = XConstants.NotUseful;
         }
 
-        if (backingStoreLog.isLoggable(Level.CONFIG)) {
+        if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
             backingStoreLog.config("backingStore(as provided by the system property)=" +
                                    ( backingStoreType == XConstants.NotUseful ? "NotUseful"
                                      : backingStoreType == XConstants.WhenMapped ?
@@ -2100,7 +2102,7 @@
         if (sun.java2d.x11.X11SurfaceData.isDgaAvailable()) {
             backingStoreType = XConstants.NotUseful;
 
-            if (backingStoreLog.isLoggable(Level.CONFIG)) {
+            if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
                 backingStoreLog.config("DGA is available, backingStore=NotUseful");
             }
 
@@ -2115,7 +2117,7 @@
                         == XConstants.NotUseful) {
                     backingStoreType = XConstants.NotUseful;
 
-                    if (backingStoreLog.isLoggable(Level.CONFIG)) {
+                    if (backingStoreLog.isLoggable(PlatformLogger.CONFIG)) {
                         backingStoreLog.config("Backing store is not available on the screen " +
                                                i + ", backingStore=NotUseful");
                     }
@@ -2361,7 +2363,7 @@
             // Wait for selection notify for oops on win
             long event_number = getEventNumber();
             XAtom atom = XAtom.get("WM_S0");
-            eventLog.log(Level.FINER, "WM_S0 selection owner {0}", new Object[] {XlibWrapper.XGetSelectionOwner(getDisplay(), atom.getAtom())});
+            eventLog.finer("WM_S0 selection owner {0}", XlibWrapper.XGetSelectionOwner(getDisplay(), atom.getAtom()));
             XlibWrapper.XConvertSelection(getDisplay(), atom.getAtom(),
                                           XAtom.get("VERSION").getAtom(), oops.getAtom(),
                                           win.getWindow(), XConstants.CurrentTime);
@@ -2387,7 +2389,7 @@
                 // If selection update failed we can simply wait some time
                 // hoping some events will arrive
                 awtUnlock();
-                eventLog.log(Level.FINEST, "Emergency sleep");
+                eventLog.finest("Emergency sleep");
                 try {
                     Thread.sleep(WORKAROUND_SLEEP);
                 } catch (InterruptedException ie) {
@@ -2399,7 +2401,7 @@
             return getEventNumber() - event_number > 2;
         } finally {
             removeEventDispatcher(win.getWindow(), oops_waiter);
-            eventLog.log(Level.FINER, "Exiting syncNativeQueue");
+            eventLog.finer("Exiting syncNativeQueue");
             awtUnlock();
         }
     }
--- a/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -31,18 +31,17 @@
 import sun.awt.*;
 import java.awt.image.*;
 import java.text.BreakIterator;
-import java.util.logging.Logger;
-import java.util.logging.Level;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.lang.reflect.InvocationTargetException;
+import sun.util.logging.PlatformLogger;
 
 public class XTrayIconPeer implements TrayIconPeer,
        InfoWindow.Balloon.LiveArguments,
        InfoWindow.Tooltip.LiveArguments
 {
-    private static final Logger ctrLog = Logger.getLogger("sun.awt.X11.XTrayIconPeer.centering");
+    private static final PlatformLogger ctrLog = PlatformLogger.getLogger("sun.awt.X11.XTrayIconPeer.centering");
 
     TrayIcon target;
     TrayIconEventProxy eventProxy;
@@ -107,9 +106,9 @@
 
                     XConfigureEvent ce = ev.get_xconfigure();
 
-                    ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}: {1}x{2}+{3}+{4} (old: {5}+{6})",
-                               new Object[] { XTrayIconPeer.this, ce.get_width(), ce.get_height(),
-                                              ce.get_x(), ce.get_y(), old_x, old_y });
+                    ctrLog.fine("ConfigureNotify on parent of {0}: {1}x{2}+{3}+{4} (old: {5}+{6})",
+                                XTrayIconPeer.this, ce.get_width(), ce.get_height(),
+                                ce.get_x(), ce.get_y(), old_x, old_y);
 
                     // A workaround for Gnome/Metacity (it doesn't affect the behaviour on KDE).
                     // On Metacity the EmbeddedFrame's parent window bounds are larger
@@ -129,14 +128,14 @@
                         // If both the height and the width differ from the fixed size then WM
                         // must level at least one side to the fixed size. For some reason it may take
                         // a few hops (even after reparenting) and we have to skip the intermediate ones.
-                        ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Skipping as intermediate resizing.",
-                                   XTrayIconPeer.this);
+                        ctrLog.fine("ConfigureNotify on parent of {0}. Skipping as intermediate resizing.",
+                                    XTrayIconPeer.this);
                         return;
 
                     } else if (ce.get_height() > TRAY_ICON_HEIGHT) {
 
-                        ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Centering by \"Y\".",
-                                   XTrayIconPeer.this);
+                        ctrLog.fine("ConfigureNotify on parent of {0}. Centering by \"Y\".",
+                                    XTrayIconPeer.this);
 
                         XlibWrapper.XMoveResizeWindow(XToolkit.getDisplay(), eframeParentID,
                                                       ce.get_x(),
@@ -148,8 +147,8 @@
 
                     } else if (ce.get_width() > TRAY_ICON_WIDTH) {
 
-                        ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Centering by \"X\".",
-                                   XTrayIconPeer.this);
+                        ctrLog.fine("ConfigureNotify on parent of {0}. Centering by \"X\".",
+                                    XTrayIconPeer.this);
 
                         XlibWrapper.XMoveResizeWindow(XToolkit.getDisplay(), eframeParentID,
                                                       ce.get_x()+ce.get_width()/2 - TRAY_ICON_WIDTH/2,
@@ -166,8 +165,8 @@
 
                         if (ex_height != 0) {
 
-                            ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Move detected. Centering by \"Y\".",
-                                       XTrayIconPeer.this);
+                            ctrLog.fine("ConfigureNotify on parent of {0}. Move detected. Centering by \"Y\".",
+                                        XTrayIconPeer.this);
 
                             XlibWrapper.XMoveWindow(XToolkit.getDisplay(), eframeParentID,
                                                     ce.get_x(),
@@ -175,15 +174,15 @@
 
                         } else if (ex_width != 0) {
 
-                            ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Move detected. Centering by \"X\".",
-                                       XTrayIconPeer.this);
+                            ctrLog.fine("ConfigureNotify on parent of {0}. Move detected. Centering by \"X\".",
+                                        XTrayIconPeer.this);
 
                             XlibWrapper.XMoveWindow(XToolkit.getDisplay(), eframeParentID,
                                                     ce.get_x() + ex_width/2 - TRAY_ICON_WIDTH/2,
                                                     ce.get_y());
                         } else {
-                            ctrLog.log(Level.FINE, "ConfigureNotify on parent of {0}. Move detected. Skipping.",
-                                       XTrayIconPeer.this);
+                            ctrLog.fine("ConfigureNotify on parent of {0}. Move detected. Skipping.",
+                                        XTrayIconPeer.this);
                         }
                     }
                     old_x = ce.get_x();
--- a/jdk/src/solaris/classes/sun/awt/X11/XWINProtocol.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWINProtocol.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,11 +27,10 @@
 package sun.awt.X11;
 
 import java.awt.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 class XWINProtocol extends XProtocol implements XStateProtocol, XLayerProtocol {
-    final static Logger log = Logger.getLogger("sun.awt.X11.XWINProtocol");
+    final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWINProtocol");
 
 /* Gnome WM spec  */
     XAtom XA_WIN_SUPPORTING_WM_CHECK = XAtom.get("_WIN_SUPPORTING_WM_CHECK");
@@ -64,7 +63,7 @@
             req.set_format(32);
             req.set_data(0, (WIN_STATE_MAXIMIZED_HORIZ | WIN_STATE_MAXIMIZED_VERT));
             req.set_data(1, win_state);
-            if (log.isLoggable(Level.FINE)) log.fine("Sending WIN_STATE to root to change the state to " + win_state);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("Sending WIN_STATE to root to change the state to " + win_state);
             try {
                 XToolkit.awtLock();
                 XlibWrapper.XSendEvent(XToolkit.getDisplay(),
@@ -112,7 +111,7 @@
                 win_state &= ~WIN_STATE_MAXIMIZED_HORIZ;
             }
             if ((old_win_state ^ win_state) != 0) {
-                if (log.isLoggable(Level.FINE)) log.fine("Setting WIN_STATE on " + window + " to change the state to " + win_state);
+                if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting WIN_STATE on " + window + " to change the state to " + win_state);
                 XA_WIN_STATE.setCard32Property(window, win_state);
             }
         }
@@ -157,7 +156,7 @@
             req.set_data(0, layer == LAYER_NORMAL ? WIN_LAYER_NORMAL : WIN_LAYER_ONTOP);
             req.set_data(1, 0);
             req.set_data(2, 0);
-            if (log.isLoggable(Level.FINE)) log.fine("Setting layer " + layer + " by root message : " + req);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting layer " + layer + " by root message : " + req);
             XToolkit.awtLock();
             try {
                 XlibWrapper.XSendEvent(XToolkit.getDisplay(),
@@ -172,7 +171,7 @@
             }
             req.dispose();
         } else {
-            if (log.isLoggable(Level.FINE)) log.fine("Setting layer property to " + layer);
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting layer property to " + layer);
             XA_WIN_LAYER.setCard32Property(window, layer == LAYER_NORMAL ? WIN_LAYER_NORMAL : WIN_LAYER_ONTOP);
         }
     }
@@ -198,7 +197,7 @@
         }
         WinWindow = checkAnchor(XA_WIN_SUPPORTING_WM_CHECK, XAtom.XA_CARDINAL);
         supportChecked = true;
-        if (log.isLoggable(Level.FINE)) log.fine("### " + this + " is active: " + (WinWindow != 0));
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " is active: " + (WinWindow != 0));
     }
 
     boolean active() {
@@ -207,13 +206,13 @@
     }
     boolean doStateProtocol() {
         boolean res = active() && checkProtocol(XA_WIN_PROTOCOLS, XA_WIN_STATE);
-        if (log.isLoggable(Level.FINE)) log.fine("### " + this + " supports state: " + res);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " supports state: " + res);
         return res;
     }
 
     boolean doLayerProtocol() {
         boolean res = active() && checkProtocol(XA_WIN_PROTOCOLS, XA_WIN_LAYER);
-        if (log.isLoggable(Level.FINE)) log.fine("### " + this + " supports layer: " + res);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("### " + this + " supports layer: " + res);
         return res;
     }
 }
--- a/jdk/src/solaris/classes/sun/awt/X11/XWM.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWM.java	Wed Oct 07 14:15:01 2009 -0700
@@ -37,10 +37,10 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import sun.util.logging.PlatformLogger;
+
 
 /**
  * Class incapsulating knowledge about window managers in general
@@ -49,9 +49,9 @@
 final class XWM
 {
 
-    private final static Logger log = Logger.getLogger("sun.awt.X11.XWM");
-    private final static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XWM");
-    private final static Logger stateLog = Logger.getLogger("sun.awt.X11.states.XWM");
+    private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWM");
+    private final static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XWM");
+    private final static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states.XWM");
 
     static final XAtom XA_MWM_HINTS = new XAtom();
 
@@ -142,7 +142,7 @@
     XWM(int WMID) {
         this.WMID = WMID;
         initializeProtocols();
-        if (log.isLoggable(Level.FINE)) log.fine("Window manager: " + toString());
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Window manager: " + toString());
     }
     int getID() {
         return WMID;
@@ -246,7 +246,7 @@
              * having a window manager running. I.e. it does not reparent
              * top level shells.
              */
-            if (insLog.isLoggable(Level.FINE)) {
+            if (insLog.isLoggable(PlatformLogger.FINE)) {
                 insLog.finer("eXcursion means NO_WM");
             }
             return true;
@@ -264,7 +264,7 @@
             long selection_owner =
                 XlibWrapper.XGetSelectionOwner(XToolkit.getDisplay(),
                                                XAtom.get(selection_name).getAtom());
-            if (insLog.isLoggable(Level.FINE)) {
+            if (insLog.isLoggable(PlatformLogger.FINE)) {
                 insLog.finer("selection owner of " + selection_name
                              + " is " + selection_owner);
             }
@@ -293,7 +293,7 @@
                                                     XToolkit.getDefaultRootWindow(),
                                                     XConstants.CWEventMask,
                                                     substruct.pData);
-                if (insLog.isLoggable(Level.FINE)) {
+                if (insLog.isLoggable(PlatformLogger.FINE)) {
                     insLog.finer("It looks like there is no WM thus NO_WM");
                 }
             }
@@ -355,7 +355,7 @@
                     return 0;
                 }
             } catch (Exception e) {
-                if (log.isLoggable(Level.FINER)) {
+                if (log.isLoggable(PlatformLogger.FINER)) {
                     e.printStackTrace();
                 }
                 return 0;
@@ -401,7 +401,7 @@
     static boolean isCDE() {
 
         if (!XA_DT_SM_WINDOW_INFO.isInterned()) {
-            log.log(Level.FINER, "{0} is not interned", new Object[] {XA_DT_SM_WINDOW_INFO});
+            log.finer("{0} is not interned", XA_DT_SM_WINDOW_INFO);
             return false;
         }
 
@@ -432,7 +432,7 @@
 
             /* Now check that this window has _DT_SM_STATE_INFO (ignore contents) */
             if (!XA_DT_SM_STATE_INFO.isInterned()) {
-                log.log(Level.FINER, "{0} is not interned", new Object[] {XA_DT_SM_STATE_INFO});
+                log.finer("{0} is not interned", XA_DT_SM_STATE_INFO);
                 return false;
             }
             WindowPropertyGetter getter2 =
@@ -596,7 +596,7 @@
          */
 
         if (!XA_ICEWM_WINOPTHINT.isInterned()) {
-            log.log(Level.FINER, "{0} is not interned", new Object[] {XA_ICEWM_WINOPTHINT});
+            log.finer("{0} is not interned", XA_ICEWM_WINOPTHINT);
             return false;
         }
 
@@ -629,7 +629,7 @@
      */
     static boolean isIceWM() {
         if (!XA_ICEWM_WINOPTHINT.isInterned()) {
-            log.log(Level.FINER, "{0} is not interned", new Object[] {XA_ICEWM_WINOPTHINT});
+            log.finer("{0} is not interned", XA_ICEWM_WINOPTHINT);
             return false;
         }
 
@@ -694,7 +694,7 @@
         return wm;
     }
     static int getWMID() {
-        if (insLog.isLoggable(Level.FINEST)) {
+        if (insLog.isLoggable(PlatformLogger.FINEST)) {
             insLog.finest("awt_wmgr = " + awt_wmgr);
         }
         /*
@@ -718,7 +718,7 @@
             // Later, WM will initialize its own version of protocol
             XNETProtocol l_net_protocol = g_net_protocol = new XNETProtocol();
             l_net_protocol.detect();
-            if (log.isLoggable(Level.FINE) && l_net_protocol.active()) {
+            if (log.isLoggable(PlatformLogger.FINE) && l_net_protocol.active()) {
                 log.fine("_NET_WM_NAME is " + l_net_protocol.getWMName());
             }
             XWINProtocol win = g_win_protocol = new XWINProtocol();
@@ -798,7 +798,7 @@
             }
 
             hints.set_flags(hints.get_flags() & ~mask);
-            if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
+            if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting hints, flags " + XlibWrapper.hintsToString(hints.get_flags()));
             XlibWrapper.XSetWMNormalHints(XToolkit.getDisplay(),
                                           window.getWindow(),
                                           hints.pData);
@@ -855,7 +855,7 @@
 
         XAtomList decorDel = new XAtomList();
         decorations = normalizeMotifDecor(decorations);
-        if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting OL_DECOR to " + Integer.toBinaryString(decorations));
+        if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting OL_DECOR to " + Integer.toBinaryString(decorations));
         if ((decorations & MWMConstants.MWM_DECOR_TITLE) == 0) {
             decorDel.add(XA_OL_DECOR_HEADER);
         }
@@ -872,7 +872,7 @@
             insLog.finer("Deleting OL_DECOR");
             XA_OL_DECOR_DEL.DeleteProperty(window);
         } else {
-            if (insLog.isLoggable(Level.FINER)) insLog.finer("Setting OL_DECOR to " + decorDel);
+            if (insLog.isLoggable(PlatformLogger.FINER)) insLog.finer("Setting OL_DECOR to " + decorDel);
             XA_OL_DECOR_DEL.setAtomListProperty(window, decorDel);
         }
     }
@@ -900,7 +900,7 @@
         hints.set_functions(functions);
         hints.set_decorations(decorations);
 
-        if (stateLog.isLoggable(Level.FINER)) stateLog.finer("Setting MWM_HINTS to " + hints);
+        if (stateLog.isLoggable(PlatformLogger.FINER)) stateLog.finer("Setting MWM_HINTS to " + hints);
         window.setMWMHints(hints);
     }
 
@@ -962,7 +962,7 @@
      * Make specified shell resizable.
      */
     static void setShellResizable(XDecoratedPeer window) {
-        if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting shell resizable " + window);
+        if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting shell resizable " + window);
         XToolkit.awtLock();
         try {
             Rectangle shellBounds = window.getShellBounds();
@@ -992,7 +992,7 @@
     static void setShellNotResizable(XDecoratedPeer window, WindowDimensions newDimensions, Rectangle shellBounds,
                                      boolean justChangeSize)
     {
-        if (insLog.isLoggable(Level.FINE)) insLog.fine("Setting non-resizable shell " + window + ", dimensions " + newDimensions +
+        if (insLog.isLoggable(PlatformLogger.FINE)) insLog.fine("Setting non-resizable shell " + window + ", dimensions " + newDimensions +
                                                        ", shellBounds " + shellBounds +", just change size: " + justChangeSize);
         XToolkit.awtLock();
         try {
@@ -1285,7 +1285,7 @@
                   res = defaultInsets;
             }
         }
-        if (insLog.isLoggable(Level.FINEST)) insLog.finest("WM guessed insets: " + res);
+        if (insLog.isLoggable(PlatformLogger.FINEST)) insLog.finest("WM guessed insets: " + res);
         return res;
     }
     /*
@@ -1354,7 +1354,7 @@
         XNETProtocol net_protocol = getWM().getNETProtocol();
         if (net_protocol != null && net_protocol.active()) {
             Insets insets = getInsetsFromProp(window, XA_NET_FRAME_EXTENTS);
-            insLog.log(Level.FINE, "_NET_FRAME_EXTENTS: {0}", insets);
+            insLog.fine("_NET_FRAME_EXTENTS: {0}", insets);
 
             if (insets != null) {
                 return insets;
@@ -1495,7 +1495,7 @@
          *       [mwm, e!, kwin, fvwm2 ... ]
          */
         Insets correctWM = XWM.getInsetsFromExtents(window);
-        insLog.log(Level.FINER, "Got insets from property: {0}", correctWM);
+        insLog.finer("Got insets from property: {0}", correctWM);
 
         if (correctWM == null) {
             correctWM = new Insets(0,0,0,0);
@@ -1556,7 +1556,7 @@
                   }
                   case XWM.OTHER_WM:
                   default: {                /* this is very similar to the E! case above */
-                      insLog.log(Level.FINEST, "Getting correct insets for OTHER_WM/default, parent: {0}", parent);
+                      insLog.finest("Getting correct insets for OTHER_WM/default, parent: {0}", parent);
                       syncTopLevelPos(parent, lwinAttr);
                       int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
                                                                     window, lwinAttr.pData);
@@ -1583,8 +1583,8 @@
                           && lwinAttr.get_width()+2*lwinAttr.get_border_width() == pattr.get_width()
                           && lwinAttr.get_height()+2*lwinAttr.get_border_width() == pattr.get_height())
                       {
-                          insLog.log(Level.FINEST, "Double reparenting detected, pattr({2})={0}, lwinAttr({3})={1}",
-                                     new Object[] {lwinAttr, pattr, parent, window});
+                          insLog.finest("Double reparenting detected, pattr({2})={0}, lwinAttr({3})={1}",
+                                        lwinAttr, pattr, parent, window);
                           lwinAttr.set_x(pattr.get_x());
                           lwinAttr.set_y(pattr.get_y());
                           lwinAttr.set_border_width(lwinAttr.get_border_width()+pattr.get_border_width());
@@ -1611,8 +1611,8 @@
                        * widths and inner/outer distinction, so for the time
                        * being, just ignore it.
                        */
-                      insLog.log(Level.FINEST, "Attrs before calculation: pattr({2})={0}, lwinAttr({3})={1}",
-                                 new Object[] {lwinAttr, pattr, parent, window});
+                      insLog.finest("Attrs before calculation: pattr({2})={0}, lwinAttr({3})={1}",
+                                    lwinAttr, pattr, parent, window);
                       correctWM = new Insets(lwinAttr.get_y() + lwinAttr.get_border_width(),
                                              lwinAttr.get_x() + lwinAttr.get_border_width(),
                                              pattr.get_height() - (lwinAttr.get_y() + lwinAttr.get_height() + 2*lwinAttr.get_border_width()),
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Wed Oct 07 14:15:01 2009 -0700
@@ -35,8 +35,7 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.*;
 
@@ -46,11 +45,11 @@
 import sun.java2d.SurfaceData;
 
 public class XWindow extends XBaseWindow implements X11ComponentPeer {
-    private static Logger log = Logger.getLogger("sun.awt.X11.XWindow");
-    private static Logger insLog = Logger.getLogger("sun.awt.X11.insets.XWindow");
-    private static Logger eventLog = Logger.getLogger("sun.awt.X11.event.XWindow");
-    private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XWindow");
-    private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XWindow");
+    private static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWindow");
+    private static PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XWindow");
+    private static PlatformLogger eventLog = PlatformLogger.getLogger("sun.awt.X11.event.XWindow");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XWindow");
+    private static PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XWindow");
   /* If a motion comes in while a multi-click is pending,
    * allow a smudge factor so that moving the mouse by a small
    * amount does not wipe out the multi-click state variables.
@@ -414,7 +413,7 @@
                     ((Component)e.getSource()).dispatchEvent(e);
                 }
             }, PeerEvent.ULTIMATE_PRIORITY_EVENT);
-        if (focusLog.isLoggable(Level.FINER) && (e instanceof FocusEvent)) focusLog.finer("Sending " + e);
+        if (focusLog.isLoggable(PlatformLogger.FINER) && (e instanceof FocusEvent)) focusLog.finer("Sending " + e);
         XToolkit.postEvent(XToolkit.targetToAppContext(e.getSource()), pe);
     }
 
@@ -670,7 +669,7 @@
         if (isEventDisabled(xev)) {
             return;
         }
-        if (eventLog.isLoggable(Level.FINE)) eventLog.fine(xbe.toString());
+        if (eventLog.isLoggable(PlatformLogger.FINE)) eventLog.fine(xbe.toString());
         long when;
         int modifiers;
         boolean popupTrigger = false;
@@ -704,7 +703,7 @@
             /*
                multiclick checking
             */
-            if (eventLog.isLoggable(Level.FINEST)) eventLog.finest("lastWindow = " + lastWindow + ", lastButton "
+            if (eventLog.isLoggable(PlatformLogger.FINEST)) eventLog.finest("lastWindow = " + lastWindow + ", lastButton "
                                                                    + lastButton + ", lastTime " + lastTime + ", multiClickTime "
                                                                    + XToolkit.getMultiClickTime());
             if (lastWindow == this && lastButton == lbutton && (when - lastTime) < XToolkit.getMultiClickTime()) {
@@ -895,7 +894,7 @@
         super.handleXCrossingEvent(xev);
         XCrossingEvent xce = xev.get_xcrossing();
 
-        if (eventLog.isLoggable(Level.FINEST)) eventLog.finest(xce.toString());
+        if (eventLog.isLoggable(PlatformLogger.FINEST)) eventLog.finest(xce.toString());
 
         if (xce.get_type() == XConstants.EnterNotify) {
             enterNotify(xce.get_window());
@@ -997,8 +996,8 @@
         Rectangle oldBounds = getBounds();
 
         super.handleConfigureNotifyEvent(xev);
-        insLog.log(Level.FINER, "Configure, {0}, event disabled: {1}",
-                   new Object[] {xev.get_xconfigure(), isEventDisabled(xev)});
+        insLog.finer("Configure, {0}, event disabled: {1}",
+                     xev.get_xconfigure(), isEventDisabled(xev));
         if (isEventDisabled(xev)) {
             return;
         }
@@ -1017,7 +1016,7 @@
 
     public void handleMapNotifyEvent(XEvent xev) {
         super.handleMapNotifyEvent(xev);
-        log.log(Level.FINE, "Mapped {0}", new Object[] {this});
+        log.fine("Mapped {0}", this);
         if (isEventDisabled(xev)) {
             return;
         }
@@ -1074,7 +1073,7 @@
     public void handleKeyPress(XEvent xev) {
         super.handleKeyPress(xev);
         XKeyEvent ev = xev.get_xkey();
-        if (eventLog.isLoggable(Level.FINE)) eventLog.fine(ev.toString());
+        if (eventLog.isLoggable(PlatformLogger.FINE)) eventLog.fine(ev.toString());
         if (isEventDisabled(xev)) {
             return;
         }
@@ -1087,14 +1086,14 @@
         int unicodeKey = 0;
         keysym[0] = XConstants.NoSymbol;
 
-        if (keyEventLog.isLoggable(Level.FINE)) {
+        if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
             logIncomingKeyEvent( ev );
         }
         if ( //TODO check if there's an active input method instance
              // without calling a native method. Is it necessary though?
             haveCurrentX11InputMethodInstance()) {
             if (x11inputMethodLookupString(ev.pData, keysym)) {
-                if (keyEventLog.isLoggable(Level.FINE)) {
+                if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
                     keyEventLog.fine("--XWindow.java XIM did process event; return; dec keysym processed:"+(keysym[0])+
                                    "; hex keysym processed:"+Long.toHexString(keysym[0])
                                    );
@@ -1102,7 +1101,7 @@
                 return;
             }else {
                 unicodeKey = keysymToUnicode( keysym[0], ev.get_state() );
-                if (keyEventLog.isLoggable(Level.FINE)) {
+                if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
                     keyEventLog.fine("--XWindow.java XIM did NOT process event, hex keysym:"+Long.toHexString(keysym[0])+"\n"+
                                      "                                         unicode key:"+Integer.toHexString((int)unicodeKey));
                 }
@@ -1112,7 +1111,7 @@
             // Produce do-it-yourself keysym and perhaps unicode character.
             keysym[0] = xkeycodeToKeysym(ev);
             unicodeKey = keysymToUnicode( keysym[0], ev.get_state() );
-            if (keyEventLog.isLoggable(Level.FINE)) {
+            if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
                 keyEventLog.fine("--XWindow.java XIM is absent;             hex keysym:"+Long.toHexString(keysym[0])+"\n"+
                                  "                                         unicode key:"+Integer.toHexString((int)unicodeKey));
             }
@@ -1135,7 +1134,7 @@
         // is undefined, we still have a guess of what has been engraved on a keytop.
         int unicodeFromPrimaryKeysym = keysymToUnicode( xkeycodeToPrimaryKeysym(ev) ,0);
 
-        if (keyEventLog.isLoggable(Level.FINE)) {
+        if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
             keyEventLog.fine(">>>Fire Event:"+
                (ev.get_type() == XConstants.KeyPress ? "KEY_PRESSED; " : "KEY_RELEASED; ")+
                "jkeycode:decimal="+jkc.getJavaKeycode()+
@@ -1178,7 +1177,7 @@
     public void handleKeyRelease(XEvent xev) {
         super.handleKeyRelease(xev);
         XKeyEvent ev = xev.get_xkey();
-        if (eventLog.isLoggable(Level.FINE)) eventLog.fine(ev.toString());
+        if (eventLog.isLoggable(PlatformLogger.FINE)) eventLog.fine(ev.toString());
         if (isEventDisabled(xev)) {
             return;
         }
@@ -1190,7 +1189,7 @@
         int unicodeKey = 0;
         keysym[0] = XConstants.NoSymbol;
 
-        if (keyEventLog.isLoggable(Level.FINE)) {
+        if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
             logIncomingKeyEvent( ev );
         }
         // Keysym should be converted to Unicode, if possible and necessary,
@@ -1201,7 +1200,7 @@
         if( jkc == null ) {
             jkc = new XKeysym.Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN);
         }
-        if (keyEventLog.isLoggable(Level.FINE)) {
+        if (keyEventLog.isLoggable(PlatformLogger.FINE)) {
             keyEventLog.fine(">>>Fire Event:"+
                (ev.get_type() == XConstants.KeyPress ? "KEY_PRESSED; " : "KEY_RELEASED; ")+
                "jkeycode:decimal="+jkc.getJavaKeycode()+
@@ -1333,10 +1332,10 @@
     void updateSizeHints(int x, int y, int width, int height) {
         long flags = XUtilConstants.PSize | (isLocationByPlatform() ? 0 : (XUtilConstants.PPosition | XUtilConstants.USPosition));
         if (!isResizable()) {
-            log.log(Level.FINER, "Window {0} is not resizable", new Object[] {this});
+            log.finer("Window {0} is not resizable", this);
             flags |= XUtilConstants.PMinSize | XUtilConstants.PMaxSize;
         } else {
-            log.log(Level.FINER, "Window {0} is resizable", new Object[] {this});
+            log.finer("Window {0} is resizable", this);
         }
         setSizeHints(flags, x, y, width, height);
     }
@@ -1344,10 +1343,10 @@
     void updateSizeHints(int x, int y) {
         long flags = isLocationByPlatform() ? 0 : (XUtilConstants.PPosition | XUtilConstants.USPosition);
         if (!isResizable()) {
-            log.log(Level.FINER, "Window {0} is not resizable", new Object[] {this});
+            log.finer("Window {0} is not resizable", this);
             flags |= XUtilConstants.PMinSize | XUtilConstants.PMaxSize | XUtilConstants.PSize;
         } else {
-            log.log(Level.FINER, "Window {0} is resizable", new Object[] {this});
+            log.finer("Window {0} is resizable", this);
         }
         setSizeHints(flags, x, y, width, height);
     }
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -41,8 +41,7 @@
 import java.util.Set;
 import java.util.Vector;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.AWTAccessor;
 import sun.awt.ComponentAccessor;
@@ -58,11 +57,11 @@
 class XWindowPeer extends XPanelPeer implements WindowPeer,
                                                 DisplayChangedListener {
 
-    private static final Logger log = Logger.getLogger("sun.awt.X11.XWindowPeer");
-    private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XWindowPeer");
-    private static final Logger insLog = Logger.getLogger("sun.awt.X11.insets.XWindowPeer");
-    private static final Logger grabLog = Logger.getLogger("sun.awt.X11.grab.XWindowPeer");
-    private static final Logger iconLog = Logger.getLogger("sun.awt.X11.icon.XWindowPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XWindowPeer");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.X11.focus.XWindowPeer");
+    private static final PlatformLogger insLog = PlatformLogger.getLogger("sun.awt.X11.insets.XWindowPeer");
+    private static final PlatformLogger grabLog = PlatformLogger.getLogger("sun.awt.X11.grab.XWindowPeer");
+    private static final PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XWindowPeer");
 
     // should be synchronized on awtLock
     private static Set<XWindowPeer> windows = new HashSet<XWindowPeer>();
@@ -201,7 +200,7 @@
         Window owner = t_window.getOwner();
         if (owner != null) {
             ownerPeer = (XWindowPeer)owner.getPeer();
-            if (focusLog.isLoggable(Level.FINER)) {
+            if (focusLog.isLoggable(PlatformLogger.FINER)) {
                 focusLog.fine("Owner is " + owner);
                 focusLog.fine("Owner peer is " + ownerPeer);
                 focusLog.fine("Owner X window " + Long.toHexString(ownerPeer.getWindow()));
@@ -214,7 +213,7 @@
                 XToolkit.awtLock();
                 try {
                     // Set WM_TRANSIENT_FOR
-                    if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Setting transient on " + Long.toHexString(getWindow())
+                    if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.fine("Setting transient on " + Long.toHexString(getWindow())
                                                                        + " for " + Long.toHexString(ownerWindow));
                     setToplevelTransientFor(this, ownerPeer, false, true);
 
@@ -259,7 +258,7 @@
             for (Iterator<Image> i = iconImages.iterator(); i.hasNext(); ) {
                 Image image = i.next();
                 if (image == null) {
-                    if (log.isLoggable(Level.FINEST)) {
+                    if (log.isLoggable(PlatformLogger.FINEST)) {
                         log.finest("XWindowPeer.updateIconImages: Skipping the image passed into Java because it's null.");
                     }
                     continue;
@@ -268,7 +267,7 @@
                 try {
                     iconInfo = new XIconInfo(image);
                 } catch (Exception e){
-                    if (log.isLoggable(Level.FINEST)) {
+                    if (log.isLoggable(PlatformLogger.FINEST)) {
                         log.finest("XWindowPeer.updateIconImages: Perhaps the image passed into Java is broken. Skipping this icon.");
                     }
                     continue;
@@ -339,9 +338,9 @@
             }
         }
 
-        if (iconLog.isLoggable(Level.FINEST)) {
-            iconLog.log(Level.FINEST, ">>> Length_ of buffer of icons data: " + totalLength +
-                                      ", maximum length: " + MAXIMUM_BUFFER_LENGTH_NET_WM_ICON);
+        if (iconLog.isLoggable(PlatformLogger.FINEST)) {
+            iconLog.finest(">>> Length_ of buffer of icons data: " + totalLength +
+                           ", maximum length: " + MAXIMUM_BUFFER_LENGTH_NET_WM_ICON);
         }
 
         return result;
@@ -351,10 +350,10 @@
      * Dumps each icon from the list
      */
     static void dumpIcons(java.util.List<XIconInfo> icons) {
-        if (iconLog.isLoggable(Level.FINEST)) {
-            iconLog.log(Level.FINEST, ">>> Sizes of icon images:");
+        if (iconLog.isLoggable(PlatformLogger.FINEST)) {
+            iconLog.finest(">>> Sizes of icon images:");
             for (Iterator<XIconInfo> i = icons.iterator(); i.hasNext(); ) {
-                iconLog.log(Level.FINEST, "    {0}", i.next());
+                iconLog.finest("    {0}", i.next());
             }
         }
     }
@@ -631,7 +630,7 @@
             return;
         }
 
-        if (log.isLoggable(Level.FINEST)) {
+        if (log.isLoggable(PlatformLogger.FINEST)) {
             log.finest("XWindowPeer: Check if we've been moved to a new screen since we're running in Xinerama mode");
         }
 
@@ -668,7 +667,7 @@
             }
         }
         if (newScreenNum != curScreenNum) {
-            if (log.isLoggable(Level.FINEST)) {
+            if (log.isLoggable(PlatformLogger.FINEST)) {
                 log.finest("XWindowPeer: Moved to a new screen");
             }
             executeDisplayChangedOnEDT(newGC);
@@ -743,7 +742,7 @@
         // override_redirect all we can do is check whether our parent
         // is active. If it is - we can freely synthesize focus transfer.
         // Luckily, this logic is already implemented in requestWindowFocus.
-        if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Requesting window focus");
+        if (focusLog.isLoggable(PlatformLogger.FINE)) focusLog.fine("Requesting window focus");
         requestWindowFocus(time, timeProvided);
     }
 
@@ -769,7 +768,7 @@
     public void handleFocusEvent(XEvent xev) {
         XFocusChangeEvent xfe = xev.get_xfocus();
         FocusEvent fe;
-        focusLog.log(Level.FINE, "{0}", new Object[] {xfe});
+        focusLog.fine("{0}", xfe);
         if (isEventDisabled(xev)) {
             return;
         }
@@ -952,7 +951,7 @@
     }
 
     private void updateAlwaysOnTop() {
-        log.log(Level.FINE, "Promoting always-on-top state {0}", Boolean.valueOf(alwaysOnTop));
+        log.fine("Promoting always-on-top state {0}", Boolean.valueOf(alwaysOnTop));
         XWM.getWM().setLayer(this,
                              alwaysOnTop ?
                              XLayerProtocol.LAYER_ALWAYS_ON_TOP :
@@ -1388,7 +1387,7 @@
             synchronized(getStateLock()) {
                 XDialogPeer blockerPeer = (XDialogPeer) ComponentAccessor.getPeer(d);
                 if (blocked) {
-                    log.log(Level.FINE, "{0} is blocked by {1}", new Object[] { this, blockerPeer});
+                    log.fine("{0} is blocked by {1}", this, blockerPeer);
                     modalBlocker = d;
 
                     if (isReparented() || XWM.isNonReparentingWM()) {
@@ -1741,7 +1740,7 @@
     }
 
     public void xSetVisible(boolean visible) {
-        if (log.isLoggable(Level.FINE)) log.fine("Setting visible on " + this + " to " + visible);
+        if (log.isLoggable(PlatformLogger.FINE)) log.fine("Setting visible on " + this + " to " + visible);
         XToolkit.awtLock();
         try {
             this.visible = visible;
@@ -1864,9 +1863,9 @@
 
     public void handleXCrossingEvent(XEvent xev) {
         XCrossingEvent xce = xev.get_xcrossing();
-        if (grabLog.isLoggable(Level.FINE)) {
-            grabLog.log(Level.FINE, "{0}, when grabbed {1}, contains {2}",
-                        new Object[] {xce, isGrabbed(), containsGlobal(xce.get_x_root(), xce.get_y_root())});
+        if (grabLog.isLoggable(PlatformLogger.FINE)) {
+            grabLog.fine("{0}, when grabbed {1}, contains {2}",
+                         xce, isGrabbed(), containsGlobal(xce.get_x_root(), xce.get_y_root()));
         }
         if (isGrabbed()) {
             // When window is grabbed, all events are dispatched to
@@ -1877,7 +1876,7 @@
             // since it generates MOUSE_ENTERED/MOUSE_EXITED for frame and dialog.
             // (fix for 6390326)
             XBaseWindow target = XToolkit.windowToXWindow(xce.get_window());
-            grabLog.log(Level.FINER, "  -  Grab event target {0}", new Object[] {target});
+            grabLog.finer("  -  Grab event target {0}", target);
             if (target != null && target != this) {
                 target.dispatchEvent(xev);
                 return;
@@ -1888,9 +1887,9 @@
 
     public void handleMotionNotify(XEvent xev) {
         XMotionEvent xme = xev.get_xmotion();
-        if (grabLog.isLoggable(Level.FINE)) {
-            grabLog.log(Level.FINER, "{0}, when grabbed {1}, contains {2}",
-                        new Object[] {xme, isGrabbed(), containsGlobal(xme.get_x_root(), xme.get_y_root())});
+        if (grabLog.isLoggable(PlatformLogger.FINE)) {
+            grabLog.finer("{0}, when grabbed {1}, contains {2}",
+                          xme, isGrabbed(), containsGlobal(xme.get_x_root(), xme.get_y_root()));
         }
         if (isGrabbed()) {
             boolean dragging = false;
@@ -1919,7 +1918,7 @@
                 xme.set_x(localCoord.x);
                 xme.set_y(localCoord.y);
             }
-            grabLog.log(Level.FINER, "  -  Grab event target {0}", new Object[] {target});
+            grabLog.finer("  -  Grab event target {0}", target);
             if (target != null) {
                 if (target != getContentXWindow() && target != this) {
                     target.dispatchEvent(xev);
@@ -1951,9 +1950,9 @@
         if (xbe.get_button() > SunToolkit.MAX_BUTTONS_SUPPORTED) {
             return;
         }
-        if (grabLog.isLoggable(Level.FINE)) {
-            grabLog.log(Level.FINE, "{0}, when grabbed {1}, contains {2} ({3}, {4}, {5}x{6})",
-                        new Object[] {xbe, isGrabbed(), containsGlobal(xbe.get_x_root(), xbe.get_y_root()), getAbsoluteX(), getAbsoluteY(), getWidth(), getHeight()});
+        if (grabLog.isLoggable(PlatformLogger.FINE)) {
+            grabLog.fine("{0}, when grabbed {1}, contains {2} ({3}, {4}, {5}x{6})",
+                         xbe, isGrabbed(), containsGlobal(xbe.get_x_root(), xbe.get_y_root()), getAbsoluteX(), getAbsoluteY(), getWidth(), getHeight());
         }
         if (isGrabbed()) {
             // When window is grabbed, all events are dispatched to
@@ -1962,7 +1961,7 @@
             // translation)
             XBaseWindow target = XToolkit.windowToXWindow(xbe.get_window());
             try {
-                grabLog.log(Level.FINER, "  -  Grab event target {0} (press target {1})", new Object[] {target, pressTarget});
+                grabLog.finer("  -  Grab event target {0} (press target {1})", target, pressTarget);
                 if (xbe.get_type() == XConstants.ButtonPress
                     && xbe.get_button() == XConstants.buttons[0])
                 {
@@ -1995,7 +1994,7 @@
                         // Outside this toplevel hierarchy
                         // According to the specification of UngrabEvent, post it
                         // when press occurs outside of the window and not on its owned windows
-                        grabLog.log(Level.FINE, "Generating UngrabEvent on {0} because not inside of shell", this);
+                        grabLog.fine("Generating UngrabEvent on {0} because not inside of shell", this);
                         postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
                         return;
                     }
@@ -2013,18 +2012,18 @@
                             // toplevel == null - outside of
                             // hierarchy, toplevel is Dialog - should
                             // send ungrab (but shouldn't for Window)
-                            grabLog.log(Level.FINE, "Generating UngrabEvent on {0} because hierarchy ended", this);
+                            grabLog.fine("Generating UngrabEvent on {0} because hierarchy ended", this);
                             postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
                         }
                     } else {
                         // toplevel is null - outside of hierarchy
-                        grabLog.log(Level.FINE, "Generating UngrabEvent on {0} because toplevel is null", this);
+                        grabLog.fine("Generating UngrabEvent on {0} because toplevel is null", this);
                         postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
                         return;
                     }
                 } else {
                     // target doesn't map to XAWT window - outside of hierarchy
-                    grabLog.log(Level.FINE, "Generating UngrabEvent on because target is null {0}", this);
+                    grabLog.fine("Generating UngrabEvent on because target is null {0}", this);
                     postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource()));
                     return;
                 }
--- a/jdk/src/solaris/classes/sun/awt/X11/XWrapperBase.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWrapperBase.java	Wed Oct 07 14:15:01 2009 -0700
@@ -26,10 +26,10 @@
 package sun.awt.X11;
 
 // This class serves as the base class for all the wrappers.
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 abstract class XWrapperBase {
-    static final Logger log = Logger.getLogger("sun.awt.X11.wrappers");
+    static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.wrappers");
 
     public String toString() {
         String ret = "";
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	Wed Oct 07 14:15:01 2009 -0700
@@ -27,7 +27,8 @@
 import java.io.*;
 import java.nio.charset.*;
 import java.text.MessageFormat;
-import java.util.logging.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 public class WrapperGenerator {
     /* XLibParser converts Xlib.h to a Java Object that encapsulates the
@@ -835,7 +836,7 @@
 
                 pw.println("package "+package_name+";\n");
                 pw.println("import sun.misc.*;\n");
-                pw.println("import java.util.logging.*;");
+                pw.println("import sun.util.logging.PlatformLogger;");
                 String baseClass = stp.getBaseClass();
                 if (baseClass == null) {
                     baseClass = defaultBaseClass;
--- a/jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Wed Oct 07 14:15:01 2009 -0700
@@ -67,8 +67,7 @@
 tojava import java.util.Hashtable;
 tojava import sun.misc.Unsafe;
 tojava
-tojava import java.util.logging.Level;
-tojava import java.util.logging.Logger;
+tojava import sun.util.logging.PlatformLogger;
 tojava
 tojava public class XKeysym {
 tojava
@@ -108,7 +107,7 @@
 tojava     static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
 tojava     static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
 tojava     static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
-tojava     private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XKeysym");
+tojava     private static PlatformLogger keyEventLog = PlatformLogger.getLogger("sun.awt.X11.kye.XKeysym");
 tojava     public static char convertKeysym( long ks, int state ) {
 tojava
 tojava         /* First check for Latin-1 characters (1:1 mapping) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11FontManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,850 @@
+package sun.awt;
+
+import java.awt.GraphicsEnvironment;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StreamTokenizer;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+import javax.swing.plaf.FontUIResource;
+import sun.awt.motif.MFontConfiguration;
+import sun.font.CompositeFont;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
+import sun.font.FontConfigManager;
+import sun.font.FcFontConfiguration;
+import sun.font.FontAccess;
+import sun.font.FontUtilities;
+import sun.font.NativeFont;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * The X11 implementation of {@link FontManager}.
+ */
+public class X11FontManager extends SunFontManager {
+
+    // constants identifying XLFD and font ID fields
+    private static final int FOUNDRY_FIELD = 1;
+    private static final int FAMILY_NAME_FIELD = 2;
+    private static final int WEIGHT_NAME_FIELD = 3;
+    private static final int SLANT_FIELD = 4;
+    private static final int SETWIDTH_NAME_FIELD = 5;
+    private static final int ADD_STYLE_NAME_FIELD = 6;
+    private static final int PIXEL_SIZE_FIELD = 7;
+    private static final int POINT_SIZE_FIELD = 8;
+    private static final int RESOLUTION_X_FIELD = 9;
+    private static final int RESOLUTION_Y_FIELD = 10;
+    private static final int SPACING_FIELD = 11;
+    private static final int AVERAGE_WIDTH_FIELD = 12;
+    private static final int CHARSET_REGISTRY_FIELD = 13;
+    private static final int CHARSET_ENCODING_FIELD = 14;
+
+    /*
+     * fontNameMap is a map from a fontID (which is a substring of an XLFD like
+     * "-monotype-arial-bold-r-normal-iso8859-7")
+     * to font file path like
+     * /usr/openwin/lib/locale/iso_8859_7/X11/fonts/TrueType/ArialBoldItalic.ttf
+     * It's used in a couple of methods like
+     * getFileNameFomPlatformName(..) to help locate the font file.
+     * We use this substring of a full XLFD because the font configuration files
+     * define the XLFDs in a way that's easier to make into a request.
+     * E.g., the -0-0-0-0-p-0- reported by X is -*-%d-*-*-p-*- in the font
+     * configuration files. We need to remove that part for comparisons.
+     */
+    private static Map fontNameMap = new HashMap();
+
+    /*
+     * xlfdMap is a map from a platform path like
+     * /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-GothicB.ttf to an XLFD like
+     * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
+     * Because there may be multiple native names, because the font is used
+     * to support multiple X encodings for example, the value of an entry in
+     * this map is always a vector where we store all the native names.
+     * For fonts which we don't understand the key isn't a pathname, its
+     * the full XLFD string like :-
+     * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
+     */
+    private static Map xlfdMap = new HashMap();
+
+    /* xFontDirsMap is also a map from a font ID to a font filepath.
+     * The difference from fontNameMap is just that it does not have
+     * resolved symbolic links. Normally this is not interesting except
+     * that we need to know the directory in which a font was found to
+     * add it to the X font server path, since although the files may
+     * be linked, the fonts.dir is different and specific to the encoding
+     * handled by that directory. This map is nulled out after use to free
+     * heap space. If the optimal path is taken, such that all fonts in
+     * font configuration files are referenced by filename, then the font
+     * dir can be directly derived as its parent directory.
+     * If a font is used by two XLFDs, each corresponding to a different
+     * X11 font directory, then precautions must be taken to include both
+     * directories.
+     */
+     private static Map xFontDirsMap;
+
+     /*
+      * This is the set of font directories needed to be on the X font path
+      * to enable AWT heavyweights to find all of the font configuration fonts.
+      * It is populated by :
+      * - awtfontpath entries in the fontconfig.properties
+      * - parent directories of "core" fonts used in the fontconfig.properties
+      * - looking up font dirs in the xFontDirsMap where the key is a fontID
+      *   (cut down version of the XLFD read from the font configuration file).
+      * This set is nulled out after use to free heap space.
+      */
+     private static HashSet<String> fontConfigDirs = null;
+
+    /* These maps are used on Linux where we reference the Lucida oblique
+     * fonts in fontconfig files even though they aren't in the standard
+     * font directory. This explicitly remaps the XLFDs for these to the
+     * correct base font. This is needed to prevent composite fonts from
+     * defaulting to the Lucida Sans which is a bad substitute for the
+     * monospaced Lucida Sans Typewriter. Also these maps prevent the
+     * JRE from doing wasted work at start up.
+     */
+    HashMap<String, String> oblmap = null;
+
+
+    /*
+     * Used to eliminate redundant work. When a font directory is
+     * registered it added to this list. Subsequent registrations for the
+     * same directory can then be skipped by checking this Map.
+     * Access to this map is not synchronised here since creation
+     * of the singleton GE instance is already synchronised and that is
+     * the only code path that accesses this map.
+     */
+     private static HashMap registeredDirs = new HashMap();
+
+     /* Array of directories to be added to the X11 font path.
+      * Used by static method called from Toolkits which use X11 fonts.
+      * Specifically this means MToolkit
+      */
+     private static String[] fontdirs = null;
+
+    private static String[] defaultPlatformFont = null;
+
+    private FontConfigManager fcManager = null;
+
+    public static X11FontManager getInstance() {
+        return (X11FontManager) SunFontManager.getInstance();
+    }
+
+    /**
+     * Takes family name property in the following format:
+     * "-linotype-helvetica-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1"
+     * and returns the name of the corresponding physical font.
+     * This code is used to resolve font configuration fonts, and expects
+     * only to get called for these fonts.
+     */
+    @Override
+    public String getFileNameFromPlatformName(String platName) {
+
+        /* If the FontConfig file doesn't use xlfds, or its
+         * FcFontConfiguration, this may be already a file name.
+         */
+        if (platName.startsWith("/")) {
+            return platName;
+        }
+
+        String fileName = null;
+        String fontID = specificFontIDForName(platName);
+
+        /* If the font filename has been explicitly assigned in the
+         * font configuration file, use it. This avoids accessing
+         * the wrong fonts on Linux, where different fonts (some
+         * of which may not be usable by 2D) may share the same
+         * specific font ID. It may also speed up the lookup.
+         */
+        fileName = super.getFileNameFromPlatformName(platName);
+        if (fileName != null) {
+            if (isHeadless() && fileName.startsWith("-")) {
+                /* if it's headless, no xlfd should be used */
+                    return null;
+            }
+            if (fileName.startsWith("/")) {
+                /* If a path is assigned in the font configuration file,
+                 * it is required that the config file also specify using the
+                 * new awtfontpath key the X11 font directories
+                 * which must be added to the X11 font path to support
+                 * AWT access to that font. For that reason we no longer
+                 * have code here to add the parent directory to the list
+                 * of font config dirs, since the parent directory may not
+                 * be sufficient if fonts are symbolically linked to a
+                 * different directory.
+                 *
+                 * Add this XLFD (platform name) to the list of known
+                 * ones for this file.
+                 */
+                Vector xVal = (Vector) xlfdMap.get(fileName);
+                if (xVal == null) {
+                    /* Try to be robust on Linux distros which move fonts
+                     * around by verifying that the fileName represents a
+                     * file that exists.  If it doesn't, set it to null
+                     * to trigger a search.
+                     */
+                    if (getFontConfiguration().needToSearchForFile(fileName)) {
+                        fileName = null;
+                    }
+                    if (fileName != null) {
+                        xVal = new Vector();
+                        xVal.add(platName);
+                        xlfdMap.put(fileName, xVal);
+                    }
+                } else {
+                    if (!xVal.contains(platName)) {
+                        xVal.add(platName);
+                    }
+                }
+            }
+            if (fileName != null) {
+                fontNameMap.put(fontID, fileName);
+                return fileName;
+            }
+        }
+
+        if (fontID != null) {
+            fileName = (String)fontNameMap.get(fontID);
+            /* On Linux check for the Lucida Oblique fonts */
+            if (fileName == null && FontUtilities.isLinux && !isOpenJDK()) {
+                if (oblmap == null) {
+                    initObliqueLucidaFontMap();
+                }
+                String oblkey = getObliqueLucidaFontID(fontID);
+                if (oblkey != null) {
+                    fileName = oblmap.get(oblkey);
+                }
+            }
+            if (fontPath == null &&
+                (fileName == null || !fileName.startsWith("/"))) {
+                if (FontUtilities.debugFonts()) {
+                    FontUtilities.getLogger()
+                          .warning("** Registering all font paths because " +
+                                   "can't find file for " + platName);
+                }
+                fontPath = getPlatformFontPath(noType1Font);
+                registerFontDirs(fontPath);
+                if (FontUtilities.debugFonts()) {
+                    FontUtilities.getLogger()
+                            .warning("** Finished registering all font paths");
+                }
+                fileName = (String)fontNameMap.get(fontID);
+            }
+            if (fileName == null && !isHeadless()) {
+                /* Query X11 directly to see if this font is available
+                 * as a native font.
+                 */
+                fileName = getX11FontName(platName);
+            }
+            if (fileName == null) {
+                fontID = switchFontIDForName(platName);
+                fileName = (String)fontNameMap.get(fontID);
+            }
+            if (fileName != null) {
+                fontNameMap.put(fontID, fileName);
+            }
+        }
+        return fileName;
+    }
+
+    @Override
+    protected String[] getNativeNames(String fontFileName,
+            String platformName) {
+        Vector nativeNames;
+        if ((nativeNames=(Vector)xlfdMap.get(fontFileName))==null) {
+            if (platformName == null) {
+                return null;
+            } else {
+                /* back-stop so that at least the name used in the
+                 * font configuration file is known as a native name
+                 */
+                String []natNames = new String[1];
+                natNames[0] = platformName;
+                return natNames;
+            }
+        } else {
+            int len = nativeNames.size();
+            return (String[])nativeNames.toArray(new String[len]);
+        }
+    }
+
+    /* NOTE: this method needs to be executed in a privileged context.
+     * The superclass constructor which is the primary caller of
+     * this method executes entirely in such a context. Additionally
+     * the loadFonts() method does too. So all should be well.
+
+     */
+    @Override
+    protected void registerFontDir(String path) {
+        /* fonts.dir file format looks like :-
+         * 47
+         * Arial.ttf -monotype-arial-regular-r-normal--0-0-0-0-p-0-iso8859-1
+         * Arial-Bold.ttf -monotype-arial-bold-r-normal--0-0-0-0-p-0-iso8859-1
+         * ...
+         */
+        if (FontUtilities.debugFonts()) {
+            FontUtilities.getLogger().info("ParseFontDir " + path);
+        }
+        File fontsDotDir = new File(path + File.separator + "fonts.dir");
+        FileReader fr = null;
+        try {
+            if (fontsDotDir.canRead()) {
+                fr = new FileReader(fontsDotDir);
+                BufferedReader br = new BufferedReader(fr, 8192);
+                StreamTokenizer st = new StreamTokenizer(br);
+                st.eolIsSignificant(true);
+                int ttype = st.nextToken();
+                if (ttype == StreamTokenizer.TT_NUMBER) {
+                    int numEntries = (int)st.nval;
+                    ttype = st.nextToken();
+                    if (ttype == StreamTokenizer.TT_EOL) {
+                        st.resetSyntax();
+                        st.wordChars(32, 127);
+                        st.wordChars(128 + 32, 255);
+                        st.whitespaceChars(0, 31);
+
+                        for (int i=0; i < numEntries; i++) {
+                            ttype = st.nextToken();
+                            if (ttype == StreamTokenizer.TT_EOF) {
+                                break;
+                            }
+                            if (ttype != StreamTokenizer.TT_WORD) {
+                                break;
+                            }
+                            int breakPos = st.sval.indexOf(' ');
+                            if (breakPos <= 0) {
+                                /* On TurboLinux 8.0 a fonts.dir file had
+                                 * a line with integer value "24" which
+                                 * appeared to be the number of remaining
+                                 * entries in the file. This didn't add to
+                                 * the value on the first line of the file.
+                                 * Seemed like XFree86 didn't like this line
+                                 * much either. It failed to parse the file.
+                                 * Ignore lines like this completely, and
+                                 * don't let them count as an entry.
+                                 */
+                                numEntries++;
+                                ttype = st.nextToken();
+                                if (ttype != StreamTokenizer.TT_EOL) {
+                                    break;
+                                }
+
+                                continue;
+                            }
+                            if (st.sval.charAt(0) == '!') {
+                                /* TurboLinux 8.0 comment line: ignore.
+                                 * can't use st.commentChar('!') to just
+                                 * skip because this line mustn't count
+                                 * against numEntries.
+                                 */
+                                numEntries++;
+                                ttype = st.nextToken();
+                                if (ttype != StreamTokenizer.TT_EOL) {
+                                    break;
+                                }
+                                continue;
+                            }
+                            String fileName = st.sval.substring(0, breakPos);
+                            /* TurboLinux 8.0 uses some additional syntax to
+                             * indicate algorithmic styling values.
+                             * Ignore ':' separated files at the beginning
+                             * of the fileName
+                             */
+                            int lastColon = fileName.lastIndexOf(':');
+                            if (lastColon > 0) {
+                                if (lastColon+1 >= fileName.length()) {
+                                    continue;
+                                }
+                                fileName = fileName.substring(lastColon+1);
+                            }
+                            String fontPart = st.sval.substring(breakPos+1);
+                            String fontID = specificFontIDForName(fontPart);
+                            String sVal = (String) fontNameMap.get(fontID);
+
+                            if (FontUtilities.debugFonts()) {
+                                PlatformLogger logger = FontUtilities.getLogger();
+                                logger.info("file=" + fileName +
+                                            " xlfd=" + fontPart);
+                                logger.info("fontID=" + fontID +
+                                            " sVal=" + sVal);
+                            }
+                            String fullPath = null;
+                            try {
+                                File file = new File(path,fileName);
+                                /* we may have a resolved symbolic link
+                                 * this becomes important for an xlfd we
+                                 * still need to know the location it was
+                                 * found to update the X server font path
+                                 * for use by AWT heavyweights - and when 2D
+                                 * wants to use the native rasteriser.
+                                 */
+                                if (xFontDirsMap == null) {
+                                    xFontDirsMap = new HashMap();
+                                }
+                                xFontDirsMap.put(fontID, path);
+                                fullPath = file.getCanonicalPath();
+                            } catch (IOException e) {
+                                fullPath = path + File.separator + fileName;
+                            }
+                            Vector xVal = (Vector) xlfdMap.get(fullPath);
+                            if (FontUtilities.debugFonts()) {
+                                FontUtilities.getLogger()
+                                      .info("fullPath=" + fullPath +
+                                            " xVal=" + xVal);
+                            }
+                            if ((xVal == null || !xVal.contains(fontPart)) &&
+                                (sVal == null) || !sVal.startsWith("/")) {
+                                if (FontUtilities.debugFonts()) {
+                                    FontUtilities.getLogger()
+                                          .info("Map fontID:"+fontID +
+                                                "to file:" + fullPath);
+                                }
+                                fontNameMap.put(fontID, fullPath);
+                                if (xVal == null) {
+                                    xVal = new Vector();
+                                    xlfdMap.put (fullPath, xVal);
+                                }
+                                xVal.add(fontPart);
+                            }
+
+                            ttype = st.nextToken();
+                            if (ttype != StreamTokenizer.TT_EOL) {
+                                break;
+                            }
+                        }
+                    }
+                }
+                fr.close();
+            }
+        } catch (IOException ioe1) {
+        } finally {
+            if (fr != null) {
+                try {
+                    fr.close();
+                }  catch (IOException ioe2) {
+                }
+            }
+        }
+    }
+
+    @Override
+    public void loadFonts() {
+        super.loadFonts();
+        /* These maps are greatly expanded during a loadFonts but
+         * can be reset to their initial state afterwards.
+         * Since preferLocaleFonts() and preferProportionalFonts() will
+         * trigger a partial repopulating from the FontConfiguration
+         * it has to be the inital (empty) state for the latter two, not
+         * simply nulling out.
+         * xFontDirsMap is a special case in that the implementation
+         * will typically not ever need to initialise it so it can be null.
+         */
+        xFontDirsMap = null;
+        xlfdMap = new HashMap(1);
+        fontNameMap = new HashMap(1);
+    }
+
+    private String getObliqueLucidaFontID(String fontID) {
+        if (fontID.startsWith("-lucidasans-medium-i-normal") ||
+            fontID.startsWith("-lucidasans-bold-i-normal") ||
+            fontID.startsWith("-lucidatypewriter-medium-i-normal") ||
+            fontID.startsWith("-lucidatypewriter-bold-i-normal")) {
+            return fontID.substring(0, fontID.indexOf("-i-"));
+        } else {
+            return null;
+        }
+    }
+
+    private static String getX11FontName(String platName) {
+        String xlfd = platName.replaceAll("%d", "*");
+        if (NativeFont.fontExists(xlfd)) {
+            return xlfd;
+        } else {
+            return null;
+        }
+    }
+
+    private void initObliqueLucidaFontMap() {
+        oblmap = new HashMap<String, String>();
+        oblmap.put("-lucidasans-medium",
+                   jreLibDirName+"/fonts/LucidaSansRegular.ttf");
+        oblmap.put("-lucidasans-bold",
+                   jreLibDirName+"/fonts/LucidaSansDemiBold.ttf");
+        oblmap.put("-lucidatypewriter-medium",
+                   jreLibDirName+"/fonts/LucidaTypewriterRegular.ttf");
+        oblmap.put("-lucidatypewriter-bold",
+                   jreLibDirName+"/fonts/LucidaTypewriterBold.ttf");
+    }
+
+    private boolean isHeadless() {
+        GraphicsEnvironment ge =
+            GraphicsEnvironment.getLocalGraphicsEnvironment();
+        return GraphicsEnvironment.isHeadless();
+    }
+
+    private String specificFontIDForName(String name) {
+
+        int[] hPos = new int[14];
+        int hyphenCnt = 1;
+        int pos = 1;
+
+        while (pos != -1 && hyphenCnt < 14) {
+            pos = name.indexOf('-', pos);
+            if (pos != -1) {
+                hPos[hyphenCnt++] = pos;
+                    pos++;
+            }
+        }
+
+        if (hyphenCnt != 14) {
+            if (FontUtilities.debugFonts()) {
+                FontUtilities.getLogger()
+                    .severe("Font Configuration Font ID is malformed:" + name);
+            }
+            return name; // what else can we do?
+        }
+
+        StringBuffer sb =
+            new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
+                                            hPos[SETWIDTH_NAME_FIELD]));
+        sb.append(name.substring(hPos[CHARSET_REGISTRY_FIELD-1]));
+        String retval = sb.toString().toLowerCase (Locale.ENGLISH);
+        return retval;
+    }
+
+    private String switchFontIDForName(String name) {
+
+        int[] hPos = new int[14];
+        int hyphenCnt = 1;
+        int pos = 1;
+
+        while (pos != -1 && hyphenCnt < 14) {
+            pos = name.indexOf('-', pos);
+            if (pos != -1) {
+                hPos[hyphenCnt++] = pos;
+                    pos++;
+            }
+        }
+
+        if (hyphenCnt != 14) {
+            if (FontUtilities.debugFonts()) {
+                FontUtilities.getLogger()
+                    .severe("Font Configuration Font ID is malformed:" + name);
+            }
+            return name; // what else can we do?
+        }
+
+        String slant = name.substring(hPos[SLANT_FIELD-1]+1,
+                                           hPos[SLANT_FIELD]);
+        String family = name.substring(hPos[FAMILY_NAME_FIELD-1]+1,
+                                           hPos[FAMILY_NAME_FIELD]);
+        String registry = name.substring(hPos[CHARSET_REGISTRY_FIELD-1]+1,
+                                           hPos[CHARSET_REGISTRY_FIELD]);
+        String encoding = name.substring(hPos[CHARSET_ENCODING_FIELD-1]+1);
+
+        if (slant.equals("i")) {
+            slant = "o";
+        } else if (slant.equals("o")) {
+            slant = "i";
+        }
+        // workaround for #4471000
+        if (family.equals("itc zapfdingbats")
+            && registry.equals("sun")
+            && encoding.equals("fontspecific")){
+            registry = "adobe";
+        }
+        StringBuffer sb =
+            new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
+                                            hPos[SLANT_FIELD-1]+1));
+        sb.append(slant);
+        sb.append(name.substring(hPos[SLANT_FIELD],
+                                 hPos[SETWIDTH_NAME_FIELD]+1));
+        sb.append(registry);
+        sb.append(name.substring(hPos[CHARSET_ENCODING_FIELD-1]));
+        String retval = sb.toString().toLowerCase (Locale.ENGLISH);
+        return retval;
+    }
+
+    /**
+     * Returns the face name for the given XLFD.
+     */
+    public String getFileNameFromXLFD(String name) {
+        String fileName = null;
+        String fontID = specificFontIDForName(name);
+        if (fontID != null) {
+            fileName = (String)fontNameMap.get(fontID);
+            if (fileName == null) {
+                fontID = switchFontIDForName(name);
+                fileName = (String)fontNameMap.get(fontID);
+            }
+            if (fileName == null) {
+                fileName = getDefaultFontFile();
+            }
+        }
+        return fileName;
+    }
+
+    /* Register just the paths, (it doesn't register the fonts).
+     * If a font configuration file has specified a baseFontPath
+     * fontPath is just those directories, unless on usage we
+     * find it doesn't contain what we need for the logical fonts.
+     * Otherwise, we register all the paths on Solaris, because
+     * the fontPath we have here is the complete one from
+     * parsing /var/sadm/install/contents, not just
+     * what's on the X font path (may be this should be
+     * changed).
+     * But for now what it means is that if we didn't do
+     * this then if the font weren't listed anywhere on the
+     * less complete font path we'd trigger loadFonts which
+     * actually registers the fonts. This may actually be
+     * the right thing tho' since that would also set up
+     * the X font path without which we wouldn't be able to
+     * display some "native" fonts.
+     * So something to revisit is that probably fontPath
+     * here ought to be only the X font path + jre font dir.
+     * loadFonts should have a separate native call to
+     * get the rest of the platform font path.
+     *
+     * Registering the directories can now be avoided in the
+     * font configuration initialisation when filename entries
+     * exist in the font configuration file for all fonts.
+     * (Perhaps a little confusingly a filename entry is
+     * actually keyed using the XLFD used in the font entries,
+     * and it maps *to* a real filename).
+     * In the event any are missing, registration of all
+     * directories will be invoked to find the real files.
+     *
+     * But registering the directory performed other
+     * functions such as filling in the map of all native names
+     * for the font. So when this method isn't invoked, they still
+     * must be found. This is mitigated by getNativeNames now
+     * being able to return at least the platform name, but mostly
+     * by ensuring that when a filename key is found, that
+     * xlfd key is stored as one of the set of platform names
+     * for the font. Its a set because typical font configuration
+     * files reference the same CJK font files using multiple
+     * X11 encodings. For the code that adds this to the map
+     * see X11GE.getFileNameFromPlatformName(..)
+     * If you don't get all of these then some code points may
+     * not use the Xserver, and will not get the PCF bitmaps
+     * that are available for some point sizes.
+     * So, in the event that there is such a problem,
+     * unconditionally making this call may be necessary, at
+     * some cost to JRE start-up
+     */
+    @Override
+    protected void registerFontDirs(String pathName) {
+
+        StringTokenizer parser = new StringTokenizer(pathName,
+                                                     File.pathSeparator);
+        try {
+            while (parser.hasMoreTokens()) {
+                String dirPath = parser.nextToken();
+                if (dirPath != null && !registeredDirs.containsKey(dirPath)) {
+                    registeredDirs.put(dirPath, null);
+                    registerFontDir(dirPath);
+                }
+            }
+        } catch (NoSuchElementException e) {
+        }
+    }
+
+    // An X font spec (xlfd) includes an encoding. The same TrueType font file
+    // may be referenced from different X font directories in font.dir files
+    // to support use in multiple encodings by X apps.
+    // So for the purposes of font configuration logical fonts where AWT
+    // heavyweights need to access the font via X APIs we need to ensure that
+    // the directory for precisely the encodings needed by this are added to
+    // the x font path. This requires that we note the platform names
+    // specified in font configuration files and use that to identify the
+    // X font directory that contains a font.dir file for that platform name
+    // and add it to the X font path (if display is local)
+    // Here we make use of an already built map of xlfds to font locations
+    // to add the font location to the set of those required to build the
+    // x font path needed by AWT.
+    // These are added to the x font path later.
+    // All this is necessary because on Solaris the font.dir directories
+    // may contain not real font files, but symbolic links to the actual
+    // location but that location is not suitable for the x font path, since
+    // it probably doesn't have a font.dir at all and certainly not one
+    // with the required encodings
+    // If the fontconfiguration file is properly set up so that all fonts
+    // are mapped to files then we will never trigger initialising
+    // xFontDirsMap (it will be null). In this case the awtfontpath entries
+    // must specify all the X11 directories needed by AWT.
+    @Override
+    protected void addFontToPlatformFontPath(String platformName) {
+        // Lazily initialize fontConfigDirs.
+        getPlatformFontPathFromFontConfig();
+        if (xFontDirsMap != null) {
+            String fontID = specificFontIDForName(platformName);
+            String dirName = (String)xFontDirsMap.get(fontID);
+            if (dirName != null) {
+                fontConfigDirs.add(dirName);
+            }
+        }
+        return;
+    }
+
+    private void getPlatformFontPathFromFontConfig() {
+        if (fontConfigDirs == null) {
+            fontConfigDirs = getFontConfiguration().getAWTFontPathSet();
+            if (FontUtilities.debugFonts() && fontConfigDirs != null) {
+                String[] names = fontConfigDirs.toArray(new String[0]);
+                for (int i=0;i<names.length;i++) {
+                    FontUtilities.getLogger().info("awtfontpath : " + names[i]);
+                }
+            }
+        }
+    }
+
+    @Override
+    protected void registerPlatformFontsUsedByFontConfiguration() {
+        // Lazily initialize fontConfigDirs.
+        getPlatformFontPathFromFontConfig();
+        if (fontConfigDirs == null) {
+            return;
+        }
+        if (FontUtilities.isLinux) {
+            fontConfigDirs.add(jreLibDirName+File.separator+"oblique-fonts");
+        }
+        fontdirs = (String[])fontConfigDirs.toArray(new String[0]);
+    }
+
+    /* Called by MToolkit to set the X11 font path */
+    public static void setNativeFontPath() {
+        if (fontdirs == null) {
+            return;
+        }
+
+        // need to register these individually rather than by one call
+        // to ensure that one bad directory doesn't cause all to be rejected
+        for (int i=0; i<fontdirs.length; i++) {
+            if (FontUtilities.debugFonts()) {
+                FontUtilities.getLogger().info("Add " + fontdirs[i] + " to X11 fontpath");
+            }
+            setNativeFontPath(fontdirs[i]);
+        }
+    }
+
+    private synchronized static native void setNativeFontPath(String fontPath);
+
+
+    // Implements SunGraphicsEnvironment.createFontConfiguration.
+    protected FontConfiguration createFontConfiguration() {
+        /* The logic here decides whether to use a preconfigured
+         * fontconfig.properties file, or synthesise one using platform APIs.
+         * On Solaris (as opposed to OpenSolaris) we try to use the
+         * pre-configured ones, but if the files it specifies are missing
+         * we fail-safe to synthesising one. This might happen if Solaris
+         * changes its fonts.
+         * For OpenSolaris I don't expect us to ever create fontconfig files,
+         * so it will always synthesise. Note that if we misidentify
+         * OpenSolaris as Solaris, then the test for the presence of
+         * Solaris-only font files will correct this.
+         * For Linux we require an exact match of distro and version to
+         * use the preconfigured file, and also that it points to
+         * existent fonts.
+         * If synthesising fails, we fall back to any preconfigured file
+         * and do the best we can. For the commercial JDK this will be
+         * fine as it includes the Lucida fonts. OpenJDK should not hit
+         * this as the synthesis should always work on its platforms.
+         */
+        FontConfiguration mFontConfig = new MFontConfiguration(this);
+        if (FontUtilities.isOpenSolaris ||
+            (FontUtilities.isLinux &&
+             (!mFontConfig.foundOsSpecificFile() ||
+              !mFontConfig.fontFilesArePresent()) ||
+             (FontUtilities.isSolaris && !mFontConfig.fontFilesArePresent()))) {
+            FcFontConfiguration fcFontConfig =
+                new FcFontConfiguration(this);
+            if (fcFontConfig.init()) {
+                return fcFontConfig;
+            }
+        }
+        mFontConfig.init();
+        return mFontConfig;
+    }
+    public FontConfiguration
+        createFontConfiguration(boolean preferLocaleFonts,
+                                boolean preferPropFonts) {
+
+        return new MFontConfiguration(this,
+                                      preferLocaleFonts, preferPropFonts);
+    }
+
+    public synchronized native String getFontPath(boolean noType1Fonts);
+
+    public String[] getDefaultPlatformFont() {
+        if (defaultPlatformFont != null) {
+            return defaultPlatformFont;
+        }
+        String[] info = new String[2];
+        getFontConfigManager().initFontConfigFonts(false);
+        FontConfigManager.FcCompFont[] fontConfigFonts =
+            getFontConfigManager().getFontConfigFonts();
+        for (int i=0; i<fontConfigFonts.length; i++) {
+            if ("sans".equals(fontConfigFonts[i].fcFamily) &&
+                0 == fontConfigFonts[i].style) {
+                info[0] = fontConfigFonts[i].firstFont.familyName;
+                info[1] = fontConfigFonts[i].firstFont.fontFile;
+                break;
+            }
+        }
+        /* Absolute last ditch attempt in the face of fontconfig problems.
+         * If we didn't match, pick the first, or just make something
+         * up so we don't NPE.
+         */
+        if (info[0] == null) {
+            if (fontConfigFonts.length > 0 &&
+                fontConfigFonts[0].firstFont.fontFile != null) {
+                info[0] = fontConfigFonts[0].firstFont.familyName;
+                info[1] = fontConfigFonts[0].firstFont.fontFile;
+            } else {
+                info[0] = "Dialog";
+                info[1] = "/dialog.ttf";
+            }
+        }
+        defaultPlatformFont = info;
+        return defaultPlatformFont;
+    }
+
+    public synchronized FontConfigManager getFontConfigManager() {
+
+        if (fcManager == null) {
+            fcManager = new FontConfigManager();
+        }
+
+        return fcManager;
+    }
+
+    @Override
+    protected FontUIResource getFontConfigFUIR(String family, int style, int size) {
+
+        CompositeFont font2D = getFontConfigManager().getFontConfigFont(family, style);
+
+        if (font2D == null) { // Not expected, just a precaution.
+           return new FontUIResource(family, style, size);
+        }
+
+        /* The name of the font will be that of the physical font in slot,
+         * but by setting the handle to that of the CompositeFont it
+         * renders as that CompositeFont.
+         * It also needs to be marked as a created font which is the
+         * current mechanism to signal that deriveFont etc must copy
+         * the handle from the original font.
+         */
+        FontUIResource fuir =
+            new FontUIResource(font2D.getFamilyName(null), style, size);
+        FontAccess.getFontAccess().setFont2D(fuir, font2D.handle);
+        FontAccess.getFontAccess().setCreatedFont(fuir);
+        return fuir;
+    }
+}
--- a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	Wed Oct 07 14:15:01 2009 -0700
@@ -41,7 +41,6 @@
 import java.net.UnknownHostException;
 
 import java.util.*;
-import java.util.logging.*;
 
 import sun.awt.motif.MFontConfiguration;
 import sun.font.FcFontConfiguration;
@@ -51,6 +50,7 @@
 import sun.java2d.SunGraphicsEnvironment;
 import sun.java2d.SurfaceManagerFactory;
 import sun.java2d.UnixSurfaceManagerFactory;
+import sun.util.logging.PlatformLogger;
 
 /**
  * This is an implementation of a GraphicsEnvironment object for the
@@ -63,82 +63,11 @@
 public class X11GraphicsEnvironment
     extends SunGraphicsEnvironment
 {
-    private static final Logger log = Logger.getLogger("sun.awt.X11GraphicsEnvironment");
-    private static final Logger screenLog = Logger.getLogger("sun.awt.screen.X11GraphicsEnvironment");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11GraphicsEnvironment");
+    private static final PlatformLogger screenLog = PlatformLogger.getLogger("sun.awt.screen.X11GraphicsEnvironment");
 
     private static Boolean xinerState;
 
-    /*
-     * This is the set of font directories needed to be on the X font path
-     * to enable AWT heavyweights to find all of the font configuration fonts.
-     * It is populated by :
-     * - awtfontpath entries in the fontconfig.properties
-     * - parent directories of "core" fonts used in the fontconfig.properties
-     * - looking up font dirs in the xFontDirsMap where the key is a fontID
-     *   (cut down version of the XLFD read from the font configuration file).
-     * This set is nulled out after use to free heap space.
-     */
-    private static HashSet<String> fontConfigDirs = null;
-
-   /*
-    * fontNameMap is a map from a fontID (which is a substring of an XLFD like
-    * "-monotype-arial-bold-r-normal-iso8859-7")
-    * to font file path like
-    * /usr/openwin/lib/locale/iso_8859_7/X11/fonts/TrueType/ArialBoldItalic.ttf
-    * It's used in a couple of methods like
-    * getFileNameFomPlatformName(..) to help locate the font file.
-    * We use this substring of a full XLFD because the font configuration files
-    * define the XLFDs in a way that's easier to make into a request.
-    * E.g., the -0-0-0-0-p-0- reported by X is -*-%d-*-*-p-*- in the font
-    * configuration files. We need to remove that part for comparisons.
-    */
-    private static Map fontNameMap = new HashMap();
-
-    /* xFontDirsMap is also a map from a font ID to a font filepath.
-     * The difference from fontNameMap is just that it does not have
-     * resolved symbolic links. Normally this is not interesting except
-     * that we need to know the directory in which a font was found to
-     * add it to the X font server path, since although the files may
-     * be linked, the fonts.dir is different and specific to the encoding
-     * handled by that directory. This map is nulled out after use to free
-     * heap space. If the optimal path is taken, such that all fonts in
-     * font configuration files are referenced by filename, then the font
-     * dir can be directly derived as its parent directory.
-     * If a font is used by two XLFDs, each corresponding to a different
-     * X11 font directory, then precautions must be taken to include both
-     * directories.
-     */
-     private static Map xFontDirsMap;
-
-    /*
-     * xlfdMap is a map from a platform path like
-     * /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-GothicB.ttf to an XLFD like
-     * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
-     * Because there may be multiple native names, because the font is used
-     * to support multiple X encodings for example, the value of an entry in
-     * this map is always a vector where we store all the native names.
-     * For fonts which we don't understand the key isn't a pathname, its
-     * the full XLFD string like :-
-     * "-ricoh-hg gothic b-medium-r-normal--0-0-0-0-m-0-jisx0201.1976-0"
-     */
-     private static Map xlfdMap = new HashMap();
-
-    /*
-     * Used to eliminate redundant work. When a font directory is
-     * registered it added to this list. Subsequent registrations for the
-     * same directory can then be skipped by checking this Map.
-     * Access to this map is not synchronised here since creation
-     * of the singleton GE instance is already synchronised and that is
-     * the only code path that accesses this map.
-     */
-     private static HashMap registeredDirs = new HashMap();
-
-    /* Array of directories to be added to the X11 font path.
-     * Used by static method called from Toolkits which use X11 fonts.
-     * Specifically this means MToolkit
-     */
-    private static String[] fontdirs = null;
-
     static {
         java.security.AccessController.doPrivileged(
                           new java.security.PrivilegedAction() {
@@ -234,7 +163,6 @@
         return getScreenDevices()[getDefaultScreenNum()];
     }
 
-    @Override
     public boolean isDisplayLocal() {
         if (isDisplayLocal == null) {
             SunToolkit.awtLock();
@@ -311,657 +239,7 @@
         return result.booleanValue();
     }
 
-    /* These maps are used on Linux where we reference the Lucida oblique
-     * fonts in fontconfig files even though they aren't in the standard
-     * font directory. This explicitly remaps the XLFDs for these to the
-     * correct base font. This is needed to prevent composite fonts from
-     * defaulting to the Lucida Sans which is a bad substitute for the
-     * monospaced Lucida Sans Typewriter. Also these maps prevent the
-     * JRE from doing wasted work at start up.
-     */
-    HashMap<String, String> oblmap = null;
 
-    private String getObliqueLucidaFontID(String fontID) {
-        if (fontID.startsWith("-lucidasans-medium-i-normal") ||
-            fontID.startsWith("-lucidasans-bold-i-normal") ||
-            fontID.startsWith("-lucidatypewriter-medium-i-normal") ||
-            fontID.startsWith("-lucidatypewriter-bold-i-normal")) {
-            return fontID.substring(0, fontID.indexOf("-i-"));
-        } else {
-            return null;
-        }
-    }
-
-   private void initObliqueLucidaFontMap() {
-       oblmap = new HashMap<String, String>();
-       oblmap.put("-lucidasans-medium",
-                  jreLibDirName+"/fonts/LucidaSansRegular.ttf");
-       oblmap.put("-lucidasans-bold",
-                  jreLibDirName+"/fonts/LucidaSansDemiBold.ttf");
-       oblmap.put("-lucidatypewriter-medium",
-                  jreLibDirName+"/fonts/LucidaTypewriterRegular.ttf");
-       oblmap.put("-lucidatypewriter-bold",
-                  jreLibDirName+"/fonts/LucidaTypewriterBold.ttf");
-   }
-
-    /**
-     * Takes family name property in the following format:
-     * "-linotype-helvetica-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1"
-     * and returns the name of the corresponding physical font.
-     * This code is used to resolve font configuration fonts, and expects
-     * only to get called for these fonts.
-     */
-    public String getFileNameFromPlatformName(String platName) {
-
-        /* If the FontConfig file doesn't use xlfds, or its
-         * FcFontConfiguration, this may be already a file name.
-         */
-        if (platName.startsWith("/")) {
-            return platName;
-        }
-
-        String fileName = null;
-        String fontID = specificFontIDForName(platName);
-
-        /* If the font filename has been explicitly assigned in the
-         * font configuration file, use it. This avoids accessing
-         * the wrong fonts on Linux, where different fonts (some
-         * of which may not be usable by 2D) may share the same
-         * specific font ID. It may also speed up the lookup.
-         */
-        fileName = super.getFileNameFromPlatformName(platName);
-        if (fileName != null) {
-            if (isHeadless() && fileName.startsWith("-")) {
-                /* if it's headless, no xlfd should be used */
-                    return null;
-            }
-            if (fileName.startsWith("/")) {
-                /* If a path is assigned in the font configuration file,
-                 * it is required that the config file also specify using the
-                 * new awtfontpath key the X11 font directories
-                 * which must be added to the X11 font path to support
-                 * AWT access to that font. For that reason we no longer
-                 * have code here to add the parent directory to the list
-                 * of font config dirs, since the parent directory may not
-                 * be sufficient if fonts are symbolically linked to a
-                 * different directory.
-                 *
-                 * Add this XLFD (platform name) to the list of known
-                 * ones for this file.
-                 */
-                Vector xVal = (Vector) xlfdMap.get(fileName);
-                if (xVal == null) {
-                    /* Try to be robust on Linux distros which move fonts
-                     * around by verifying that the fileName represents a
-                     * file that exists.  If it doesn't, set it to null
-                     * to trigger a search.
-                     */
-                    if (getFontConfiguration().needToSearchForFile(fileName)) {
-                        fileName = null;
-                    }
-                    if (fileName != null) {
-                        xVal = new Vector();
-                        xVal.add(platName);
-                        xlfdMap.put(fileName, xVal);
-                    }
-                } else {
-                    if (!xVal.contains(platName)) {
-                        xVal.add(platName);
-                    }
-                }
-            }
-            if (fileName != null) {
-                fontNameMap.put(fontID, fileName);
-                return fileName;
-            }
-        }
-
-        if (fontID != null) {
-            fileName = (String)fontNameMap.get(fontID);
-            /* On Linux check for the Lucida Oblique fonts */
-            if (fileName == null && isLinux && !isOpenJDK()) {
-                if (oblmap == null) {
-                    initObliqueLucidaFontMap();
-                }
-                String oblkey = getObliqueLucidaFontID(fontID);
-                if (oblkey != null) {
-                    fileName = oblmap.get(oblkey);
-                }
-            }
-            if (fontPath == null &&
-                (fileName == null || !fileName.startsWith("/"))) {
-                if (debugFonts) {
-                    logger.warning("** Registering all font paths because " +
-                                   "can't find file for " + platName);
-                }
-                fontPath = getPlatformFontPath(noType1Font);
-                registerFontDirs(fontPath);
-                if (debugFonts) {
-                    logger.warning("** Finished registering all font paths");
-                }
-                fileName = (String)fontNameMap.get(fontID);
-            }
-            if (fileName == null && !isHeadless()) {
-                /* Query X11 directly to see if this font is available
-                 * as a native font.
-                 */
-                fileName = getX11FontName(platName);
-            }
-            if (fileName == null) {
-                fontID = switchFontIDForName(platName);
-                fileName = (String)fontNameMap.get(fontID);
-            }
-            if (fileName != null) {
-                fontNameMap.put(fontID, fileName);
-            }
-        }
-        return fileName;
-    }
-
-    private static String getX11FontName(String platName) {
-        String xlfd = platName.replaceAll("%d", "*");
-        if (NativeFont.fontExists(xlfd)) {
-            return xlfd;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Returns the face name for the given XLFD.
-     */
-    public String getFileNameFromXLFD(String name) {
-        String fileName = null;
-        String fontID = specificFontIDForName(name);
-        if (fontID != null) {
-            fileName = (String)fontNameMap.get(fontID);
-            if (fileName == null) {
-                fontID = switchFontIDForName(name);
-                fileName = (String)fontNameMap.get(fontID);
-            }
-            if (fileName == null) {
-                fileName = getDefaultFontFile();
-            }
-        }
-        return fileName;
-    }
-
-    // constants identifying XLFD and font ID fields
-    private static final int FOUNDRY_FIELD = 1;
-    private static final int FAMILY_NAME_FIELD = 2;
-    private static final int WEIGHT_NAME_FIELD = 3;
-    private static final int SLANT_FIELD = 4;
-    private static final int SETWIDTH_NAME_FIELD = 5;
-    private static final int ADD_STYLE_NAME_FIELD = 6;
-    private static final int PIXEL_SIZE_FIELD = 7;
-    private static final int POINT_SIZE_FIELD = 8;
-    private static final int RESOLUTION_X_FIELD = 9;
-    private static final int RESOLUTION_Y_FIELD = 10;
-    private static final int SPACING_FIELD = 11;
-    private static final int AVERAGE_WIDTH_FIELD = 12;
-    private static final int CHARSET_REGISTRY_FIELD = 13;
-    private static final int CHARSET_ENCODING_FIELD = 14;
-
-    private String switchFontIDForName(String name) {
-
-        int[] hPos = new int[14];
-        int hyphenCnt = 1;
-        int pos = 1;
-
-        while (pos != -1 && hyphenCnt < 14) {
-            pos = name.indexOf('-', pos);
-            if (pos != -1) {
-                hPos[hyphenCnt++] = pos;
-                    pos++;
-            }
-        }
-
-        if (hyphenCnt != 14) {
-            if (debugFonts) {
-                logger.severe("Font Configuration Font ID is malformed:" + name);
-            }
-            return name; // what else can we do?
-        }
-
-        String slant = name.substring(hPos[SLANT_FIELD-1]+1,
-                                           hPos[SLANT_FIELD]);
-        String family = name.substring(hPos[FAMILY_NAME_FIELD-1]+1,
-                                           hPos[FAMILY_NAME_FIELD]);
-        String registry = name.substring(hPos[CHARSET_REGISTRY_FIELD-1]+1,
-                                           hPos[CHARSET_REGISTRY_FIELD]);
-        String encoding = name.substring(hPos[CHARSET_ENCODING_FIELD-1]+1);
-
-        if (slant.equals("i")) {
-            slant = "o";
-        } else if (slant.equals("o")) {
-            slant = "i";
-        }
-        // workaround for #4471000
-        if (family.equals("itc zapfdingbats")
-            && registry.equals("sun")
-            && encoding.equals("fontspecific")){
-            registry = "adobe";
-        }
-        StringBuffer sb =
-            new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
-                                            hPos[SLANT_FIELD-1]+1));
-        sb.append(slant);
-        sb.append(name.substring(hPos[SLANT_FIELD],
-                                 hPos[SETWIDTH_NAME_FIELD]+1));
-        sb.append(registry);
-        sb.append(name.substring(hPos[CHARSET_ENCODING_FIELD-1]));
-        String retval = sb.toString().toLowerCase (Locale.ENGLISH);
-        return retval;
-    }
-
-
-    private String specificFontIDForName(String name) {
-
-        int[] hPos = new int[14];
-        int hyphenCnt = 1;
-        int pos = 1;
-
-        while (pos != -1 && hyphenCnt < 14) {
-            pos = name.indexOf('-', pos);
-            if (pos != -1) {
-                hPos[hyphenCnt++] = pos;
-                    pos++;
-            }
-        }
-
-        if (hyphenCnt != 14) {
-            if (debugFonts) {
-                logger.severe("Font Configuration Font ID is malformed:" + name);
-            }
-            return name; // what else can we do?
-        }
-
-        StringBuffer sb =
-            new StringBuffer(name.substring(hPos[FAMILY_NAME_FIELD-1],
-                                            hPos[SETWIDTH_NAME_FIELD]));
-        sb.append(name.substring(hPos[CHARSET_REGISTRY_FIELD-1]));
-        String retval = sb.toString().toLowerCase (Locale.ENGLISH);
-        return retval;
-    }
-
-    protected String[] getNativeNames(String fontFileName,
-                                      String platformName) {
-        Vector nativeNames;
-        if ((nativeNames=(Vector)xlfdMap.get(fontFileName))==null) {
-            if (platformName == null) {
-                return null;
-            } else {
-                /* back-stop so that at least the name used in the
-                 * font configuration file is known as a native name
-                 */
-                String []natNames = new String[1];
-                natNames[0] = platformName;
-                return natNames;
-            }
-        } else {
-            int len = nativeNames.size();
-            return (String[])nativeNames.toArray(new String[len]);
-        }
-    }
-
-
-    // An X font spec (xlfd) includes an encoding. The same TrueType font file
-    // may be referenced from different X font directories in font.dir files
-    // to support use in multiple encodings by X apps.
-    // So for the purposes of font configuration logical fonts where AWT
-    // heavyweights need to access the font via X APIs we need to ensure that
-    // the directory for precisely the encodings needed by this are added to
-    // the x font path. This requires that we note the platform names
-    // specified in font configuration files and use that to identify the
-    // X font directory that contains a font.dir file for that platform name
-    // and add it to the X font path (if display is local)
-    // Here we make use of an already built map of xlfds to font locations
-    // to add the font location to the set of those required to build the
-    // x font path needed by AWT.
-    // These are added to the x font path later.
-    // All this is necessary because on Solaris the font.dir directories
-    // may contain not real font files, but symbolic links to the actual
-    // location but that location is not suitable for the x font path, since
-    // it probably doesn't have a font.dir at all and certainly not one
-    // with the required encodings
-    // If the fontconfiguration file is properly set up so that all fonts
-    // are mapped to files then we will never trigger initialising
-    // xFontDirsMap (it will be null). In this case the awtfontpath entries
-    // must specify all the X11 directories needed by AWT.
-    protected void addFontToPlatformFontPath(String platformName) {
-        if (xFontDirsMap != null) {
-            String fontID = specificFontIDForName(platformName);
-            String dirName = (String)xFontDirsMap.get(fontID);
-            if (dirName != null) {
-                fontConfigDirs.add(dirName);
-            }
-        }
-        return;
-    }
-
-    protected void getPlatformFontPathFromFontConfig() {
-        if (fontConfigDirs == null) {
-            fontConfigDirs = getFontConfiguration().getAWTFontPathSet();
-            if (debugFonts && fontConfigDirs != null) {
-                String[] names = fontConfigDirs.toArray(new String[0]);
-                for (int i=0;i<names.length;i++) {
-                    logger.info("awtfontpath : " + names[i]);
-                }
-            }
-        }
-    }
-
-    protected void registerPlatformFontsUsedByFontConfiguration() {
-        if (fontConfigDirs == null) {
-            return;
-        }
-        if (isLinux) {
-            fontConfigDirs.add(jreLibDirName+File.separator+"oblique-fonts");
-        }
-        fontdirs = (String[])fontConfigDirs.toArray(new String[0]);
-    }
-
-    /* Called by MToolkit to set the X11 font path */
-    public static void setNativeFontPath() {
-        if (fontdirs == null) {
-            return;
-        }
-
-        // need to register these individually rather than by one call
-        // to ensure that one bad directory doesn't cause all to be rejected
-        for (int i=0; i<fontdirs.length; i++) {
-            if (debugFonts) {
-                logger.info("Add " + fontdirs[i] + " to X11 fontpath");
-            }
-            FontManager.setNativeFontPath(fontdirs[i]);
-        }
-    }
-
-    /* Register just the paths, (it doesn't register the fonts).
-     * If a font configuration file has specified a baseFontPath
-     * fontPath is just those directories, unless on usage we
-     * find it doesn't contain what we need for the logical fonts.
-     * Otherwise, we register all the paths on Solaris, because
-     * the fontPath we have here is the complete one from
-     * parsing /var/sadm/install/contents, not just
-     * what's on the X font path (may be this should be
-     * changed).
-     * But for now what it means is that if we didn't do
-     * this then if the font weren't listed anywhere on the
-     * less complete font path we'd trigger loadFonts which
-     * actually registers the fonts. This may actually be
-     * the right thing tho' since that would also set up
-     * the X font path without which we wouldn't be able to
-     * display some "native" fonts.
-     * So something to revisit is that probably fontPath
-     * here ought to be only the X font path + jre font dir.
-     * loadFonts should have a separate native call to
-     * get the rest of the platform font path.
-     *
-     * Registering the directories can now be avoided in the
-     * font configuration initialisation when filename entries
-     * exist in the font configuration file for all fonts.
-     * (Perhaps a little confusingly a filename entry is
-     * actually keyed using the XLFD used in the font entries,
-     * and it maps *to* a real filename).
-     * In the event any are missing, registration of all
-     * directories will be invoked to find the real files.
-     *
-     * But registering the directory performed other
-     * functions such as filling in the map of all native names
-     * for the font. So when this method isn't invoked, they still
-     * must be found. This is mitigated by getNativeNames now
-     * being able to return at least the platform name, but mostly
-     * by ensuring that when a filename key is found, that
-     * xlfd key is stored as one of the set of platform names
-     * for the font. Its a set because typical font configuration
-     * files reference the same CJK font files using multiple
-     * X11 encodings. For the code that adds this to the map
-     * see X11GE.getFileNameFromPlatformName(..)
-     * If you don't get all of these then some code points may
-     * not use the Xserver, and will not get the PCF bitmaps
-     * that are available for some point sizes.
-     * So, in the event that there is such a problem,
-     * unconditionally making this call may be necessary, at
-     * some cost to JRE start-up
-     */
-    protected void registerFontDirs(String pathName) {
-
-        StringTokenizer parser = new StringTokenizer(pathName,
-                                                     File.pathSeparator);
-        try {
-            while (parser.hasMoreTokens()) {
-                String dirPath = parser.nextToken();
-                if (dirPath != null && !registeredDirs.containsKey(dirPath)) {
-                    registeredDirs.put(dirPath, null);
-                    registerFontDir(dirPath);
-                }
-            }
-        } catch (NoSuchElementException e) {
-        }
-    }
-
-    /* NOTE: this method needs to be executed in a privileged context.
-     * The superclass constructor which is the primary caller of
-     * this method executes entirely in such a context. Additionally
-     * the loadFonts() method does too. So all should be well.
-
-     */
-    protected void registerFontDir(String path) {
-        /* fonts.dir file format looks like :-
-         * 47
-         * Arial.ttf -monotype-arial-regular-r-normal--0-0-0-0-p-0-iso8859-1
-         * Arial-Bold.ttf -monotype-arial-bold-r-normal--0-0-0-0-p-0-iso8859-1
-         * ...
-         */
-        if (debugFonts) {
-            logger.info("ParseFontDir " + path);
-        }
-        File fontsDotDir = new File(path + File.separator + "fonts.dir");
-        FileReader fr = null;
-        try {
-            if (fontsDotDir.canRead()) {
-                fr = new FileReader(fontsDotDir);
-                BufferedReader br = new BufferedReader(fr, 8192);
-                StreamTokenizer st = new StreamTokenizer(br);
-                st.eolIsSignificant(true);
-                int ttype = st.nextToken();
-                if (ttype == StreamTokenizer.TT_NUMBER) {
-                    int numEntries = (int)st.nval;
-                    ttype = st.nextToken();
-                    if (ttype == StreamTokenizer.TT_EOL) {
-                        st.resetSyntax();
-                        st.wordChars(32, 127);
-                        st.wordChars(128 + 32, 255);
-                        st.whitespaceChars(0, 31);
-
-                        for (int i=0; i < numEntries; i++) {
-                            ttype = st.nextToken();
-                            if (ttype == StreamTokenizer.TT_EOF) {
-                                break;
-                            }
-                            if (ttype != StreamTokenizer.TT_WORD) {
-                                break;
-                            }
-                            int breakPos = st.sval.indexOf(' ');
-                            if (breakPos <= 0) {
-                                /* On TurboLinux 8.0 a fonts.dir file had
-                                 * a line with integer value "24" which
-                                 * appeared to be the number of remaining
-                                 * entries in the file. This didn't add to
-                                 * the value on the first line of the file.
-                                 * Seemed like XFree86 didn't like this line
-                                 * much either. It failed to parse the file.
-                                 * Ignore lines like this completely, and
-                                 * don't let them count as an entry.
-                                 */
-                                numEntries++;
-                                ttype = st.nextToken();
-                                if (ttype != StreamTokenizer.TT_EOL) {
-                                    break;
-                                }
-
-                                continue;
-                            }
-                            if (st.sval.charAt(0) == '!') {
-                                /* TurboLinux 8.0 comment line: ignore.
-                                 * can't use st.commentChar('!') to just
-                                 * skip because this line mustn't count
-                                 * against numEntries.
-                                 */
-                                numEntries++;
-                                ttype = st.nextToken();
-                                if (ttype != StreamTokenizer.TT_EOL) {
-                                    break;
-                                }
-                                continue;
-                            }
-                            String fileName = st.sval.substring(0, breakPos);
-                            /* TurboLinux 8.0 uses some additional syntax to
-                             * indicate algorithmic styling values.
-                             * Ignore ':' separated files at the beginning
-                             * of the fileName
-                             */
-                            int lastColon = fileName.lastIndexOf(':');
-                            if (lastColon > 0) {
-                                if (lastColon+1 >= fileName.length()) {
-                                    continue;
-                                }
-                                fileName = fileName.substring(lastColon+1);
-                            }
-                            String fontPart = st.sval.substring(breakPos+1);
-                            String fontID = specificFontIDForName(fontPart);
-                            String sVal = (String) fontNameMap.get(fontID);
-
-                            if (debugFonts) {
-                                logger.info("file=" + fileName +
-                                            " xlfd=" + fontPart);
-                                logger.info("fontID=" + fontID +
-                                            " sVal=" + sVal);
-                            }
-                            String fullPath = null;
-                            try {
-                                File file = new File(path,fileName);
-                                /* we may have a resolved symbolic link
-                                 * this becomes important for an xlfd we
-                                 * still need to know the location it was
-                                 * found to update the X server font path
-                                 * for use by AWT heavyweights - and when 2D
-                                 * wants to use the native rasteriser.
-                                 */
-                                if (xFontDirsMap == null) {
-                                    xFontDirsMap = new HashMap();
-                                }
-                                xFontDirsMap.put(fontID, path);
-                                fullPath = file.getCanonicalPath();
-                            } catch (IOException e) {
-                                fullPath = path + File.separator + fileName;
-                            }
-                            Vector xVal = (Vector) xlfdMap.get(fullPath);
-                            if (debugFonts) {
-                                logger.info("fullPath=" + fullPath +
-                                            " xVal=" + xVal);
-                            }
-                            if ((xVal == null || !xVal.contains(fontPart)) &&
-                                (sVal == null) || !sVal.startsWith("/")) {
-                                if (debugFonts) {
-                                    logger.info("Map fontID:"+fontID +
-                                                "to file:" + fullPath);
-                                }
-                                fontNameMap.put(fontID, fullPath);
-                                if (xVal == null) {
-                                    xVal = new Vector();
-                                    xlfdMap.put (fullPath, xVal);
-                                }
-                                xVal.add(fontPart);
-                            }
-
-                            ttype = st.nextToken();
-                            if (ttype != StreamTokenizer.TT_EOL) {
-                                break;
-                            }
-                        }
-                    }
-                }
-                fr.close();
-            }
-        } catch (IOException ioe1) {
-        } finally {
-            if (fr != null) {
-                try {
-                    fr.close();
-                }  catch (IOException ioe2) {
-                }
-            }
-        }
-    }
-
-    @Override
-    public void loadFonts() {
-        super.loadFonts();
-        /* These maps are greatly expanded during a loadFonts but
-         * can be reset to their initial state afterwards.
-         * Since preferLocaleFonts() and preferProportionalFonts() will
-         * trigger a partial repopulating from the FontConfiguration
-         * it has to be the inital (empty) state for the latter two, not
-         * simply nulling out.
-         * xFontDirsMap is a special case in that the implementation
-         * will typically not ever need to initialise it so it can be null.
-         */
-        xFontDirsMap = null;
-        xlfdMap = new HashMap(1);
-        fontNameMap = new HashMap(1);
-    }
-
-    // Implements SunGraphicsEnvironment.createFontConfiguration.
-    protected FontConfiguration createFontConfiguration() {
-
-        /* The logic here decides whether to use a preconfigured
-         * fontconfig.properties file, or synthesise one using platform APIs.
-         * On Solaris (as opposed to OpenSolaris) we try to use the
-         * pre-configured ones, but if the files it specifies are missing
-         * we fail-safe to synthesising one. This might happen if Solaris
-         * changes its fonts.
-         * For OpenSolaris I don't expect us to ever create fontconfig files,
-         * so it will always synthesise. Note that if we misidentify
-         * OpenSolaris as Solaris, then the test for the presence of
-         * Solaris-only font files will correct this.
-         * For Linux we require an exact match of distro and version to
-         * use the preconfigured file, and also that it points to
-         * existent fonts.
-         * If synthesising fails, we fall back to any preconfigured file
-         * and do the best we can. For the commercial JDK this will be
-         * fine as it includes the Lucida fonts. OpenJDK should not hit
-         * this as the synthesis should always work on its platforms.
-         */
-        FontConfiguration mFontConfig = new MFontConfiguration(this);
-        if (isOpenSolaris ||
-            (isLinux &&
-             (!mFontConfig.foundOsSpecificFile() ||
-              !mFontConfig.fontFilesArePresent()) ||
-             (isSolaris && !mFontConfig.fontFilesArePresent()))) {
-            FcFontConfiguration fcFontConfig =
-                new FcFontConfiguration(this);
-            if (fcFontConfig.init()) {
-                return fcFontConfig;
-            }
-        }
-        mFontConfig.init();
-        return mFontConfig;
-    }
-    public FontConfiguration
-        createFontConfiguration(boolean preferLocaleFonts,
-                                boolean preferPropFonts) {
-
-        FontConfiguration config = getFontConfiguration();
-        if (config instanceof FcFontConfiguration) {
-            // Doesn't need to implement the alternate support.
-            return config;
-        }
-
-        return new MFontConfiguration(this,
-                                      preferLocaleFonts, preferPropFonts);
-    }
 
     /**
      * Returns face name for default font, or null if
@@ -1006,8 +284,8 @@
             // pRunningXinerama() simply returns a global boolean variable,
             // so there is no need to synchronize here
             xinerState = Boolean.valueOf(pRunningXinerama());
-            if (screenLog.isLoggable(Level.FINER)) {
-                screenLog.log(Level.FINER, "Running Xinerama: " + xinerState);
+            if (screenLog.isLoggable(PlatformLogger.FINER)) {
+                screenLog.finer("Running Xinerama: " + xinerState);
             }
         }
         return xinerState.booleanValue();
@@ -1090,24 +368,24 @@
             (unionRect.width / 2) + unionRect.x < center.x + 1 &&
             (unionRect.height / 2) + unionRect.y < center.y + 1) {
 
-            if (screenLog.isLoggable(Level.FINER)) {
-                screenLog.log(Level.FINER, "Video Wall: center point is at center of all displays.");
+            if (screenLog.isLoggable(PlatformLogger.FINER)) {
+                screenLog.finer("Video Wall: center point is at center of all displays.");
             }
             return unionRect;
         }
 
         // next, check if at center of one monitor
         if (centerMonitorRect != null) {
-            if (screenLog.isLoggable(Level.FINER)) {
-                screenLog.log(Level.FINER, "Center point at center of a particular " +
-                                           "monitor, but not of the entire virtual display.");
+            if (screenLog.isLoggable(PlatformLogger.FINER)) {
+                screenLog.finer("Center point at center of a particular " +
+                                "monitor, but not of the entire virtual display.");
             }
             return centerMonitorRect;
         }
 
         // otherwise, the center is at some weird spot: return unionRect
-        if (screenLog.isLoggable(Level.FINER)) {
-            screenLog.log(Level.FINER, "Center point is somewhere strange - return union of all bounds.");
+        if (screenLog.isLoggable(PlatformLogger.FINER)) {
+            screenLog.finer("Center point is somewhere strange - return union of all bounds.");
         }
         return unionRect;
     }
--- a/jdk/src/solaris/classes/sun/awt/X11InputMethod.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11InputMethod.java	Wed Oct 07 14:15:01 2009 -0700
@@ -57,7 +57,7 @@
 import java.io.FileReader;
 import java.io.BufferedReader;
 import java.io.IOException;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 import java.util.StringTokenizer;
 import java.util.regex.Pattern;
 
@@ -68,7 +68,7 @@
  * @author JavaSoft International
  */
 public abstract class X11InputMethod extends InputMethodAdapter {
-    private static final Logger log = Logger.getLogger("sun.awt.X11InputMethod");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11InputMethod");
     /*
      * The following XIM* values must be the same as those defined in
      * Xlib.h
@@ -324,8 +324,8 @@
             return;
 
         if (lastXICFocussedComponent != null){
-            if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "XICFocused {0}, AWTFocused {1}", new Object[] {
-                lastXICFocussedComponent, awtFocussedComponent});
+            if (log.isLoggable(PlatformLogger.FINE)) log.fine("XICFocused {0}, AWTFocused {1}",
+                                                              lastXICFocussedComponent, awtFocussedComponent);
         }
 
         if (pData == 0) {
--- a/jdk/src/solaris/classes/sun/awt/motif/MFontConfiguration.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/motif/MFontConfiguration.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,37 +30,42 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Locale;
-import java.util.logging.Logger;
 import java.util.Properties;
 import java.util.Scanner;
 import sun.awt.FontConfiguration;
+import sun.awt.X11FontManager;
 import sun.awt.X11GraphicsEnvironment;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
+import sun.font.FontManagerFactory;
+import sun.font.FontUtilities;
 import sun.java2d.SunGraphicsEnvironment;
-import java.nio.charset.Charset;
+import sun.util.logging.PlatformLogger;
 
 public class MFontConfiguration extends FontConfiguration {
 
     private static FontConfiguration fontConfig = null;
-    private static Logger logger;
+    private static PlatformLogger logger;
 
-    public MFontConfiguration(SunGraphicsEnvironment environment) {
-        super(environment);
-        if (SunGraphicsEnvironment.debugFonts) {
-            logger = Logger.getLogger("sun.awt.FontConfiguration");
+    public MFontConfiguration(SunFontManager fm) {
+        super(fm);
+        if (FontUtilities.debugFonts()) {
+            logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
         }
         initTables();
     }
 
 
-    public MFontConfiguration(SunGraphicsEnvironment environment,
+    public MFontConfiguration(SunFontManager fm,
                               boolean preferLocaleFonts,
                               boolean preferPropFonts) {
-        super(environment, preferLocaleFonts, preferPropFonts);
-        if (SunGraphicsEnvironment.debugFonts) {
-            logger = Logger.getLogger("sun.awt.FontConfiguration");
+        super(fm, preferLocaleFonts, preferPropFonts);
+        if (FontUtilities.debugFonts()) {
+            logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
         }
         initTables();
     }
@@ -90,7 +95,7 @@
         reorderMap.put("UTF-8.th", "thai");
         reorderMap.put("UTF-8.zh.TW", "chinese-big5");
         reorderMap.put("UTF-8.zh.HK", split("chinese-big5,chinese-hkscs"));
-        if (sun.font.FontManager.isSolaris8) {
+        if (FontUtilities.isSolaris8) {
             reorderMap.put("UTF-8.zh.CN", split("chinese-gb2312,chinese-big5"));
         } else {
             reorderMap.put("UTF-8.zh.CN",
@@ -100,7 +105,7 @@
                        split("chinese-big5,chinese-hkscs,chinese-gb18030-0,chinese-gb18030-1"));
         reorderMap.put("Big5", "chinese-big5");
         reorderMap.put("Big5-HKSCS", split("chinese-big5,chinese-hkscs"));
-        if (! sun.font.FontManager.isSolaris8 && ! sun.font.FontManager.isSolaris9) {
+        if (! FontUtilities.isSolaris8 && ! FontUtilities.isSolaris9) {
             reorderMap.put("GB2312", split("chinese-gbk,chinese-gb2312"));
         } else {
             reorderMap.put("GB2312","chinese-gb2312");
@@ -209,7 +214,7 @@
 
     protected String mapFileName(String fileName) {
         if (fileName != null && fileName.startsWith(fontsDirPrefix)) {
-            return SunGraphicsEnvironment.jreFontDirName
+            return SunFontManager.jreFontDirName
                     + fileName.substring(fontsDirPrefix.length());
         }
         return fileName;
@@ -310,7 +315,7 @@
             !needToSearchForFile(fileName)) {
             return fileName;
         }
-        return ((X11GraphicsEnvironment) environment).getFileNameFromXLFD(componentFontName);
+        return ((X11FontManager) fontManager).getFileNameFromXLFD(componentFontName);
     }
 
     /**
--- a/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/motif/MToolkit.java	Wed Oct 07 14:15:01 2009 -0700
@@ -43,7 +43,6 @@
 import java.util.Properties;
 import java.util.Map;
 import java.util.Iterator;
-import java.util.logging.*;
 
 import sun.awt.AppContext;
 import sun.awt.AWTAutoShutdown;
@@ -61,6 +60,7 @@
 import java.awt.dnd.peer.DragSourceContextPeer;
 
 //import sun.awt.motif.MInputMethod;
+import sun.awt.X11FontManager;
 import sun.awt.X11GraphicsConfig;
 import sun.awt.X11GraphicsEnvironment;
 import sun.awt.XSettings;
@@ -73,10 +73,11 @@
 import sun.misc.Unsafe;
 
 import sun.security.action.GetBooleanAction;
+import sun.util.logging.PlatformLogger;
 
 public class MToolkit extends UNIXToolkit implements Runnable {
 
-    private static final Logger log = Logger.getLogger("sun.awt.motif.MToolkit");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.motif.MToolkit");
 
     // the system clipboard - CLIPBOARD selection
     //X11Clipboard clipboard;
@@ -124,7 +125,7 @@
          * and when we know that MToolkit is the one that will be used,
          * since XToolkit doesn't need the X11 font path set
          */
-        X11GraphicsEnvironment.setNativeFontPath();
+        X11FontManager.getInstance().setNativeFontPath();
 
         motifdnd = ((Boolean)java.security.AccessController.doPrivileged(
             new GetBooleanAction("awt.dnd.motifdnd"))).booleanValue();
@@ -616,8 +617,8 @@
     protected Boolean lazilyLoadDynamicLayoutSupportedProperty(String name) {
         boolean nativeDynamic = isDynamicLayoutSupportedNative();
 
-        if (log.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, "nativeDynamic == " + nativeDynamic);
+        if (log.isLoggable(PlatformLogger.FINER)) {
+            log.finer("nativeDynamic == " + nativeDynamic);
         }
 
         return Boolean.valueOf(nativeDynamic);
--- a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java	Wed Oct 07 14:15:01 2009 -0700
@@ -35,18 +35,19 @@
 import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.logging.Logger;
 import java.util.Properties;
 import java.util.Scanner;
 import sun.awt.FontConfiguration;
 import sun.awt.FontDescriptor;
 import sun.awt.SunToolkit;
+import sun.awt.X11FontManager;
 import sun.font.CompositeFontDescriptor;
 import sun.font.FontManager;
-import sun.font.FontManager.FontConfigInfo;
-import sun.font.FontManager.FcCompFont;
-import sun.font.FontManager.FontConfigFont;
+import sun.font.FontConfigManager.FontConfigInfo;
+import sun.font.FontConfigManager.FcCompFont;
+import sun.font.FontConfigManager.FontConfigFont;
 import sun.java2d.SunGraphicsEnvironment;
+import sun.util.logging.PlatformLogger;
 
 public class FcFontConfiguration extends FontConfiguration {
 
@@ -68,16 +69,16 @@
 
     private FcCompFont[] fcCompFonts = null;
 
-    public FcFontConfiguration(SunGraphicsEnvironment environment) {
-        super(environment);
+    public FcFontConfiguration(SunFontManager fm) {
+        super(fm);
         init();
     }
 
     /* This isn't called but is needed to satisfy super-class contract. */
-    public FcFontConfiguration(SunGraphicsEnvironment environment,
+    public FcFontConfiguration(SunFontManager fm,
                                boolean preferLocaleFonts,
                                boolean preferPropFonts) {
-        super(environment, preferLocaleFonts, preferPropFonts);
+        super(fm, preferLocaleFonts, preferPropFonts);
         init();
     }
 
@@ -89,24 +90,23 @@
 
         setFontConfiguration();
         readFcInfo();
+        X11FontManager fm = (X11FontManager) fontManager;
+        FontConfigManager fcm = fm.getFontConfigManager();
         if (fcCompFonts == null) {
-            fcCompFonts = FontManager.loadFontConfig();
+            fcCompFonts = fcm.loadFontConfig();
             if (fcCompFonts != null) {
                 try {
                     writeFcInfo();
                 } catch (Exception e) {
-                    if (SunGraphicsEnvironment.debugFonts) {
-                        Logger logger =
-                            Logger.getLogger("sun.awt.FontConfiguration");
-                        logger.warning("Exception writing fcInfo " + e);
+                    if (FontUtilities.debugFonts()) {
+                        warning("Exception writing fcInfo " + e);
                     }
                 }
-            } else if (SunGraphicsEnvironment.debugFonts) {
-                Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
-                logger.warning("Failed to get info from libfontconfig");
+            } else if (FontUtilities.debugFonts()) {
+                warning("Failed to get info from libfontconfig");
             }
         } else {
-            FontManager.populateFontConfig(fcCompFonts);
+            fcm.populateFontConfig(fcCompFonts);
         }
 
         if (fcCompFonts == null) {
@@ -184,7 +184,9 @@
     @Override
     public String[] getPlatformFontNames() {
         HashSet<String> nameSet = new HashSet<String>();
-        FcCompFont[] fcCompFonts = FontManager.loadFontConfig();
+        X11FontManager fm = (X11FontManager) fontManager;
+        FontConfigManager fcm = fm.getFontConfigManager();
+        FcCompFont[] fcCompFonts = fcm.loadFontConfig();
         for (int i=0; i<fcCompFonts.length; i++) {
             for (int j=0; j<fcCompFonts[i].allFonts.length; j++) {
                 nameSet.add(fcCompFonts[i].allFonts[j].fontFile);
@@ -223,7 +225,9 @@
     @Override
     public CompositeFontDescriptor[] get2DCompositeFontInfo() {
 
-        FcCompFont[] fcCompFonts = FontManager.loadFontConfig();
+        X11FontManager fm = (X11FontManager) fontManager;
+        FontConfigManager fcm = fm.getFontConfigManager();
+        FcCompFont[] fcCompFonts = fcm.loadFontConfig();
 
         CompositeFontDescriptor[] result =
                 new CompositeFontDescriptor[NUM_FONTS * NUM_STYLES];
@@ -321,9 +325,8 @@
                 osVersion = getVersionString(f);
             }
         } catch (Exception e) {
-            if (SunGraphicsEnvironment.debugFonts) {
-                Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
-                logger.warning("Exception identifying Linux distro.");
+            if (FontUtilities.debugFonts()) {
+                warning("Exception identifying Linux distro.");
             }
         }
     }
@@ -356,7 +359,9 @@
     private void writeFcInfo() {
         Properties props = new Properties();
         props.setProperty("version", fileVersion);
-        FontConfigInfo fcInfo = FontManager.getFontConfigInfo();
+        X11FontManager fm = (X11FontManager) fontManager;
+        FontConfigManager fcm = fm.getFontConfigManager();
+        FontConfigInfo fcInfo = fcm.getFontConfigInfo();
         props.setProperty("fcversion", Integer.toString(fcInfo.fcVersion));
         if (fcInfo.cacheDirs != null) {
             for (int i=0;i<fcInfo.cacheDirs.length;i++) {
@@ -391,15 +396,13 @@
                       "JDK Font Configuration Generated File: *Do Not Edit*");
             fos.close();
             boolean renamed = tempFile.renameTo(fcInfoFile);
-            if (!renamed && SunGraphicsEnvironment.debugFonts) {
+            if (!renamed && FontUtilities.debugFonts()) {
                 System.out.println("rename failed");
-                Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
-                logger.warning("Failed renaming file to "+ getFcInfoFile());
+                warning("Failed renaming file to "+ getFcInfoFile());
             }
         } catch (Exception e) {
-            if (SunGraphicsEnvironment.debugFonts) {
-                Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
-                logger.warning("IOException writing to "+ getFcInfoFile());
+            if (FontUtilities.debugFonts()) {
+                warning("IOException writing to "+ getFcInfoFile());
             }
         }
     }
@@ -415,14 +418,15 @@
             return;
         }
         Properties props = new Properties();
+        X11FontManager fm = (X11FontManager) fontManager;
+        FontConfigManager fcm = fm.getFontConfigManager();
         try {
             FileInputStream fis = new FileInputStream(fcFile);
             props.load(fis);
             fis.close();
         } catch (IOException e) {
-            if (SunGraphicsEnvironment.debugFonts) {
-                Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
-                logger.warning("IOException reading from "+fcFile.toString());
+            if (FontUtilities.debugFonts()) {
+                warning("IOException reading from "+fcFile.toString());
             }
             return;
         }
@@ -439,15 +443,12 @@
             try {
                 fcVersion = Integer.parseInt(fcVersionStr);
                 if (fcVersion != 0 &&
-                    fcVersion != FontManager.getFontConfigVersion()) {
+                    fcVersion != fcm.getFontConfigVersion()) {
                     return;
                 }
             } catch (Exception e) {
-                if (SunGraphicsEnvironment.debugFonts) {
-                    Logger logger =
-                        Logger.getLogger("sun.awt.FontConfiguration");
-                    logger.warning("Exception parsing version " +
-                                   fcVersionStr);
+                if (FontUtilities.debugFonts()) {
+                    warning("Exception parsing version " + fcVersionStr);
                 }
                 return;
             }
@@ -509,10 +510,14 @@
             }
             fcCompFonts = fci;
         } catch (Throwable t) {
-            if (SunGraphicsEnvironment.debugFonts) {
-                Logger logger = Logger.getLogger("sun.awt.FontConfiguration");
-                logger.warning(t.toString());
+            if (FontUtilities.debugFonts()) {
+                warning(t.toString());
             }
         }
     }
+
+    private static void warning(String msg) {
+        PlatformLogger logger = PlatformLogger.getLogger("sun.awt.FontConfiguration");
+        logger.warning(msg);
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/solaris/classes/sun/font/FontConfigManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,472 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.font;
+
+import java.util.Locale;
+
+import sun.awt.SunHints;
+import sun.awt.SunToolkit;
+import sun.util.logging.PlatformLogger;
+
+/**
+ * Small utility class to manage FontConfig.
+ */
+public class FontConfigManager {
+
+    static boolean fontConfigFailed = false;
+
+    /* This is populated by native */
+    private static final FontConfigInfo fcInfo = new FontConfigInfo();
+
+    /* Begin support for GTK Look and Feel - query libfontconfig and
+     * return a composite Font to Swing that uses the desktop font(s).
+     */
+
+    /* These next three classes are just data structures.
+     */
+    public static class FontConfigFont {
+        public String familyName;        // eg Bitstream Vera Sans
+        public String styleStr;          // eg Bold
+        public String fullName;          // eg Bitstream Vera Sans Bold
+        public String fontFile;          // eg /usr/X11/lib/fonts/foo.ttf
+    }
+
+    public static class FcCompFont {
+        public String fcName;            // eg sans
+        public String fcFamily;          // eg sans
+        public String jdkName;           // eg sansserif
+        public int style;                // eg 0=PLAIN
+        public FontConfigFont firstFont;
+        public FontConfigFont[] allFonts;
+        //boolean preferBitmaps;    // if embedded bitmaps preferred over AA
+        public CompositeFont compFont;   // null if not yet created/known.
+    }
+
+    public static class FontConfigInfo {
+        public int fcVersion;
+        public String[] cacheDirs = new String[4];
+    }
+
+    /* fontconfig recognises slants roman, italic, as well as oblique,
+     * and a slew of weights, where the ones that matter here are
+     * regular and bold.
+     * To fully qualify what we want, we can for example ask for (eg)
+     * Font.PLAIN             : "serif:regular:roman"
+     * Font.BOLD              : "serif:bold:roman"
+     * Font.ITALIC            : "serif:regular:italic"
+     * Font.BOLD|Font.ITALIC  : "serif:bold:italic"
+     */
+    private static String[] fontConfigNames = {
+        "sans:regular:roman",
+        "sans:bold:roman",
+        "sans:regular:italic",
+        "sans:bold:italic",
+
+        "serif:regular:roman",
+        "serif:bold:roman",
+        "serif:regular:italic",
+        "serif:bold:italic",
+
+        "monospace:regular:roman",
+        "monospace:bold:roman",
+        "monospace:regular:italic",
+        "monospace:bold:italic",
+    };
+
+    /* This array has the array elements created in Java code and is
+     * passed down to native to be filled in.
+     */
+    private FcCompFont[] fontConfigFonts;
+
+    /**
+     * Instantiates a new FontConfigManager getting the default instance
+     * of FontManager from the FontManagerFactory.
+     */
+    public FontConfigManager() {
+    }
+
+    public static String[] getFontConfigNames() {
+        return fontConfigNames;
+    }
+
+    /* Called from code that needs to know what are the AA settings
+     * that apps using FC would pick up for the default desktop font.
+     * Note apps can change the default desktop font. etc, so this
+     * isn't certain to be right but its going to correct for most cases.
+     * Native return values map to the text aa values in sun.awt.SunHints.
+     * which is used to look up the renderinghint value object.
+     */
+    public static Object getFontConfigAAHint() {
+        return getFontConfigAAHint("sans");
+    }
+
+    /* This is public solely so that for debugging purposes it can be called
+     * with other names, which might (eg) include a size, eg "sans-24"
+     * The return value is a text aa rendering hint value.
+     * Normally we should call the no-args version.
+     */
+    public static Object getFontConfigAAHint(String fcFamily) {
+        if (FontUtilities.isWindows) {
+            return null;
+        } else {
+            int hint = getFontConfigAASettings(getFCLocaleStr(), fcFamily);
+            if (hint < 0) {
+                return null;
+            } else {
+                return SunHints.Value.get(SunHints.INTKEY_TEXT_ANTIALIASING,
+                                          hint);
+            }
+        }
+    }
+
+
+    private static String getFCLocaleStr() {
+        Locale l = SunToolkit.getStartupLocale();
+        String localeStr = l.getLanguage();
+        String country = l.getCountry();
+        if (!country.equals("")) {
+            localeStr = localeStr + "-" + country;
+        }
+        return localeStr;
+    }
+
+    /* This does cause the native libfontconfig to be loaded and unloaded,
+     * but it does not incur the overhead of initialisation of its
+     * data structures, so shouldn't have a measurable impact.
+     */
+    public static native int getFontConfigVersion();
+
+    /* This can be made public if it's needed to force a re-read
+     * rather than using the cached values. The re-read would be needed
+     * only if some event signalled that the fontconfig has changed.
+     * In that event this method would need to return directly the array
+     * to be used by the caller in case it subsequently changed.
+     */
+    public synchronized void initFontConfigFonts(boolean includeFallbacks) {
+
+        if (fontConfigFonts != null) {
+            if (!includeFallbacks || (fontConfigFonts[0].allFonts != null)) {
+                return;
+            }
+        }
+
+        if (FontUtilities.isWindows || fontConfigFailed) {
+            return;
+        }
+
+        long t0 = 0;
+        if (FontUtilities.isLogging()) {
+            t0 = System.nanoTime();
+        }
+
+        String[] fontConfigNames = FontConfigManager.getFontConfigNames();
+        FcCompFont[] fontArr = new FcCompFont[fontConfigNames.length];
+
+        for (int i = 0; i< fontArr.length; i++) {
+            fontArr[i] = new FcCompFont();
+            fontArr[i].fcName = fontConfigNames[i];
+            int colonPos = fontArr[i].fcName.indexOf(':');
+            fontArr[i].fcFamily = fontArr[i].fcName.substring(0, colonPos);
+            fontArr[i].jdkName = FontUtilities.mapFcName(fontArr[i].fcFamily);
+            fontArr[i].style = i % 4; // depends on array order.
+        }
+        getFontConfig(getFCLocaleStr(), fcInfo, fontArr, includeFallbacks);
+        FontConfigFont anyFont = null;
+        /* If don't find anything (eg no libfontconfig), then just return */
+        for (int i = 0; i< fontArr.length; i++) {
+            FcCompFont fci = fontArr[i];
+            if (fci.firstFont == null) {
+                if (FontUtilities.isLogging()) {
+                    PlatformLogger logger = FontUtilities.getLogger();
+                    logger.info("Fontconfig returned no font for " +
+                                fontArr[i].fcName);
+                }
+                fontConfigFailed = true;
+            } else if (anyFont == null) {
+                anyFont = fci.firstFont;
+            }
+        }
+
+        if (anyFont == null) {
+            if (FontUtilities.isLogging()) {
+                PlatformLogger logger = FontUtilities.getLogger();
+                logger.info("Fontconfig returned no fonts at all.");
+                return;
+            }
+        } else if (fontConfigFailed) {
+            for (int i = 0; i< fontArr.length; i++) {
+                if (fontArr[i].firstFont == null) {
+                    fontArr[i].firstFont = anyFont;
+                }
+            }
+        }
+
+        fontConfigFonts = fontArr;
+
+        if (FontUtilities.isLogging()) {
+
+            PlatformLogger logger = FontUtilities.getLogger();
+
+            long t1 = System.nanoTime();
+            logger.info("Time spent accessing fontconfig="
+                        + ((t1 - t0) / 1000000) + "ms.");
+
+            for (int i = 0; i< fontConfigFonts.length; i++) {
+                FcCompFont fci = fontConfigFonts[i];
+                logger.info("FC font " + fci.fcName+" maps to family " +
+                            fci.firstFont.familyName +
+                            " in file " + fci.firstFont.fontFile);
+                if (fci.allFonts != null) {
+                    for (int f=0;f<fci.allFonts.length;f++) {
+                        FontConfigFont fcf = fci.allFonts[f];
+                        logger.info("Family=" + fcf.familyName +
+                                    " Style="+ fcf.styleStr +
+                                    " Fullname="+fcf.fullName +
+                                    " File="+fcf.fontFile);
+                    }
+                }
+            }
+        }
+    }
+
+    public PhysicalFont registerFromFcInfo(FcCompFont fcInfo) {
+
+        SunFontManager fm = SunFontManager.getInstance();
+
+        /* If it's a TTC file we need to know that as we will need to
+         * make sure we return the right font */
+        String fontFile = fcInfo.firstFont.fontFile;
+        int offset = fontFile.length()-4;
+        if (offset <= 0) {
+            return null;
+        }
+        String ext = fontFile.substring(offset).toLowerCase();
+        boolean isTTC = ext.equals(".ttc");
+
+        /* If this file is already registered, can just return its font.
+         * However we do need to check in case it's a TTC as we need
+         * a specific font, so rather than directly returning it, let
+         * findFont2D resolve that.
+         */
+        PhysicalFont physFont = fm.getRegisteredFontFile(fontFile);
+        if (physFont != null) {
+            if (isTTC) {
+                Font2D f2d = fm.findFont2D(fcInfo.firstFont.familyName,
+                                           fcInfo.style,
+                                           FontManager.NO_FALLBACK);
+                if (f2d instanceof PhysicalFont) { /* paranoia */
+                    return (PhysicalFont)f2d;
+                } else {
+                    return null;
+                }
+            } else {
+                return physFont;
+            }
+        }
+
+        /* If the font may hide a JRE font (eg fontconfig says it is
+         * Lucida Sans), we want to use the JRE version, so make it
+         * point to the JRE font.
+         */
+        physFont = fm.findJREDeferredFont(fcInfo.firstFont.familyName,
+                                          fcInfo.style);
+
+        /* It is also possible the font file is on the "deferred" list,
+         * in which case we can just initialise it now.
+         */
+        if (physFont == null &&
+            fm.isDeferredFont(fontFile) == true) {
+            physFont = fm.initialiseDeferredFont(fcInfo.firstFont.fontFile);
+            /* use findFont2D to get the right font from TTC's */
+            if (physFont != null) {
+                if (isTTC) {
+                    Font2D f2d = fm.findFont2D(fcInfo.firstFont.familyName,
+                                               fcInfo.style,
+                                               FontManager.NO_FALLBACK);
+                    if (f2d instanceof PhysicalFont) { /* paranoia */
+                        return (PhysicalFont)f2d;
+                    } else {
+                        return null;
+                    }
+                } else {
+                    return physFont;
+                }
+            }
+        }
+
+        /* In the majority of cases we reach here, and need to determine
+         * the type and rank to register the font.
+         */
+        if (physFont == null) {
+            int fontFormat = SunFontManager.FONTFORMAT_NONE;
+            int fontRank = Font2D.UNKNOWN_RANK;
+
+            if (ext.equals(".ttf") || isTTC) {
+                fontFormat = SunFontManager.FONTFORMAT_TRUETYPE;
+                fontRank = Font2D.TTF_RANK;
+            } else if (ext.equals(".pfa") || ext.equals(".pfb")) {
+                fontFormat = SunFontManager.FONTFORMAT_TYPE1;
+                fontRank = Font2D.TYPE1_RANK;
+            }
+            physFont = fm.registerFontFile(fcInfo.firstFont.fontFile, null,
+                                      fontFormat, true, fontRank);
+        }
+        return physFont;
+    }
+
+    /*
+     * We need to return a Composite font which has as the font in
+     * its first slot one obtained from fontconfig.
+     */
+    public CompositeFont getFontConfigFont(String name, int style) {
+
+        name = name.toLowerCase();
+
+        initFontConfigFonts(false);
+
+        FcCompFont fcInfo = null;
+        for (int i=0; i<fontConfigFonts.length; i++) {
+            if (name.equals(fontConfigFonts[i].fcFamily) &&
+                style == fontConfigFonts[i].style) {
+                fcInfo = fontConfigFonts[i];
+                break;
+            }
+        }
+        if (fcInfo == null) {
+            fcInfo = fontConfigFonts[0];
+        }
+
+        if (FontUtilities.isLogging()) {
+            FontUtilities.getLogger()
+                          .info("FC name=" + name + " style=" + style +
+                                " uses " + fcInfo.firstFont.familyName +
+                                " in file: " + fcInfo.firstFont.fontFile);
+        }
+
+        if (fcInfo.compFont != null) {
+            return fcInfo.compFont;
+        }
+
+        /* jdkFont is going to be used for slots 1..N and as a fallback.
+         * Slot 0 will be the physical font from fontconfig.
+         */
+        FontManager fm = FontManagerFactory.getInstance();
+        CompositeFont jdkFont = (CompositeFont)
+            fm.findFont2D(fcInfo.jdkName, style, FontManager.LOGICAL_FALLBACK);
+
+        if (fcInfo.firstFont.familyName == null ||
+            fcInfo.firstFont.fontFile == null) {
+            return (fcInfo.compFont = jdkFont);
+        }
+
+        /* First, see if the family and exact style is already registered.
+         * If it is, use it. If it's not, then try to register it.
+         * If that registration fails (signalled by null) just return the
+         * regular JDK composite.
+         * Algorithmically styled fonts won't match on exact style, so
+         * will fall through this code, but the regisration code will
+         * find that file already registered and return its font.
+         */
+        FontFamily family = FontFamily.getFamily(fcInfo.firstFont.familyName);
+        PhysicalFont physFont = null;
+        if (family != null) {
+            Font2D f2D = family.getFontWithExactStyleMatch(fcInfo.style);
+            if (f2D instanceof PhysicalFont) {
+                physFont = (PhysicalFont)f2D;
+            }
+        }
+
+        if (physFont == null ||
+            !fcInfo.firstFont.fontFile.equals(physFont.platName)) {
+            physFont = registerFromFcInfo(fcInfo);
+            if (physFont == null) {
+                return (fcInfo.compFont = jdkFont);
+            }
+            family = FontFamily.getFamily(physFont.getFamilyName(null));
+        }
+
+        /* Now register the fonts in the family (the other styles) after
+         * checking that they aren't already registered and are actually in
+         * a different file. They may be the same file in CJK cases.
+         * For cases where they are different font files - eg as is common for
+         * Latin fonts, then we rely on fontconfig to report these correctly.
+         * Assume that all styles of this font are found by fontconfig,
+         * so we can find all the family members which must be registered
+         * together to prevent synthetic styling.
+         */
+        for (int i=0; i<fontConfigFonts.length; i++) {
+            FcCompFont fc = fontConfigFonts[i];
+            if (fc != fcInfo &&
+                physFont.getFamilyName(null).equals(fc.firstFont.familyName) &&
+                !fc.firstFont.fontFile.equals(physFont.platName) &&
+                family.getFontWithExactStyleMatch(fc.style) == null) {
+
+                registerFromFcInfo(fontConfigFonts[i]);
+            }
+        }
+
+        /* Now we have a physical font. We will back this up with the JDK
+         * logical font (sansserif, serif, or monospaced) that corresponds
+         * to the Pango/GTK/FC logical font name.
+         */
+        return (fcInfo.compFont = new CompositeFont(physFont, jdkFont));
+    }
+
+    /**
+     *
+     * @param locale
+     * @param fcFamily
+     * @return
+     */
+    public FcCompFont[] getFontConfigFonts() {
+        return fontConfigFonts;
+    }
+
+    /* Return an array of FcCompFont structs describing the primary
+     * font located for each of fontconfig/GTK/Pango's logical font names.
+     */
+    private static native void getFontConfig(String locale,
+                                             FontConfigInfo fcInfo,
+                                             FcCompFont[] fonts,
+                                             boolean includeFallbacks);
+
+    void populateFontConfig(FcCompFont[] fcInfo) {
+        fontConfigFonts = fcInfo;
+    }
+
+    FcCompFont[] loadFontConfig() {
+        initFontConfigFonts(true);
+        return fontConfigFonts;
+    }
+
+    FontConfigInfo getFontConfigInfo() {
+        initFontConfigFonts(true);
+        return fcInfo;
+    }
+
+    private static native int
+    getFontConfigAASettings(String locale, String fcFamily);
+}
--- a/jdk/src/solaris/classes/sun/font/NativeFont.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/font/NativeFont.java	Wed Oct 07 14:15:01 2009 -0700
@@ -242,7 +242,8 @@
                 mapper = new NativeGlyphMapper(this);
             } else {
                 /* we need to delegate */
-                delegateFont = FontManager.getDefaultPhysicalFont();
+                SunFontManager fm = SunFontManager.getInstance();
+                delegateFont = fm.getDefaultPhysicalFont();
                 mapper = delegateFont.getMapper();
             }
         }
@@ -254,7 +255,8 @@
             return new NativeStrike(this, desc);
         } else {
             if (delegateFont == null) {
-                delegateFont = FontManager.getDefaultPhysicalFont();
+                SunFontManager fm = SunFontManager.getInstance();
+                delegateFont = fm.getDefaultPhysicalFont();
             }
             /* If no FileFont's are found, delegate font may be
              * a NativeFont, so we need to avoid recursing here.
@@ -314,7 +316,8 @@
 
     PhysicalFont getDelegateFont() {
         if (delegateFont == null) {
-            delegateFont = FontManager.getDefaultPhysicalFont();
+            SunFontManager fm = SunFontManager.getInstance();
+            delegateFont = fm.getDefaultPhysicalFont();
         }
         return delegateFont;
     }
--- a/jdk/src/solaris/classes/sun/font/NativeStrike.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/font/NativeStrike.java	Wed Oct 07 14:15:01 2009 -0700
@@ -112,11 +112,12 @@
          double scale = Math.abs(desc.devTx.getScaleX());
          pScalerContext = createScalerContext(nameBytes, ptSize, scale);
          if (pScalerContext == 0L) {
-             FontManager.deRegisterBadFont(nativeFont);
+             SunFontManager.getInstance().deRegisterBadFont(nativeFont);
              pScalerContext = createNullScalerContext();
              numGlyphs = 0;
-             if (FontManager.logging) {
-                 FontManager.logger.severe("Could not create native strike " +
+             if (FontUtilities.isLogging()) {
+                 FontUtilities.getLogger()
+                                   .severe("Could not create native strike " +
                                            new String(nameBytes));
              }
              return;
@@ -134,7 +135,7 @@
      private boolean usingIntGlyphImages() {
          if (intGlyphImages != null) {
             return true;
-        } else if (FontManager.longAddresses) {
+        } else if (longAddresses) {
             return false;
         } else {
             /* We could obtain minGlyphIndex and index relative to that
@@ -153,7 +154,7 @@
      }
 
      private long[] getLongGlyphImages() {
-        if (longGlyphImages == null && FontManager.longAddresses) {
+        if (longGlyphImages == null && longAddresses) {
 
             /* We could obtain minGlyphIndex and index relative to that
              * if we need to save space.
--- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java	Wed Oct 07 14:15:01 2009 -0700
@@ -661,9 +661,10 @@
                 }
             }
         } else if (category == OrientationRequested.class) {
-            if (flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
-                flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
-                flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT)) {
+            if ((flavor != null) &&
+                (flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) ||
+                 flavor.equals(DocFlavor.URL.POSTSCRIPT) ||
+                 flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) {
                 return null;
             }
 
--- a/jdk/src/solaris/native/sun/awt/fontpath.c	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/solaris/native/sun/awt/fontpath.c	Wed Oct 07 14:15:01 2009 -0700
@@ -150,15 +150,26 @@
     static jboolean isLocalSet = False;
     jboolean ret;
 
-    if (isLocalSet) {
-        return isLocal;
+    if (! isLocalSet) {
+      jclass geCls = (*env)->FindClass(env, "java/awt/GraphicsEnvironment");
+      jmethodID getLocalGE = (*env)->GetStaticMethodID(env, geCls,
+                                                 "getLocalGraphicsEnvironment",
+                                           "()Ljava/awt/GraphicsEnvironment;");
+      jobject ge = (*env)->CallStaticObjectMethod(env, geCls, getLocalGE);
+
+      jclass sgeCls = (*env)->FindClass(env,
+                                        "sun/java2d/SunGraphicsEnvironment");
+      if ((*env)->IsInstanceOf(env, ge, sgeCls)) {
+        jmethodID isDisplayLocal = (*env)->GetMethodID(env, sgeCls,
+                                                       "isDisplayLocal",
+                                                       "()Z");
+        isLocal = (*env)->CallBooleanMethod(env, ge, isDisplayLocal);
+      } else {
+        isLocal = True;
+      }
+      isLocalSet = True;
     }
 
-    isLocal = JNU_CallStaticMethodByName(env, NULL,
-                                         "sun/awt/X11GraphicsEnvironment",
-                                         "_isDisplayLocal",
-                                         "()Z").z;
-    isLocalSet = True;
     return isLocal;
 }
 
@@ -516,8 +527,8 @@
     return path;
 }
 
-JNIEXPORT jstring JNICALL Java_sun_font_FontManager_getFontPath
-(JNIEnv *env, jclass obj, jboolean noType1) {
+JNIEXPORT jstring JNICALL Java_sun_awt_X11FontManager_getFontPath
+(JNIEnv *env, jobject thiz, jboolean noType1) {
     jstring ret;
     static char *ptr = NULL; /* retain result across calls */
 
@@ -564,7 +575,7 @@
 }
 #endif /* !HEADLESS */
 
-JNIEXPORT void JNICALL Java_sun_font_FontManager_setNativeFontPath
+JNIEXPORT void JNICALL Java_sun_font_X11FontManager_setNativeFontPath
 (JNIEnv *env, jclass obj, jstring theString) {
 #ifdef HEADLESS
     return;
@@ -592,21 +603,6 @@
 #endif
 }
 
-/* This isn't yet used on unix, the implementation is added since shared
- * code calls this method in preparation for future use.
- */
-/* Obtain all the fontname -> filename mappings.
- * This is called once and the results returned to Java code which can
- * use it for lookups to reduce or avoid the need to search font files.
- */
-JNIEXPORT void JNICALL
-Java_sun_font_FontManager_populateFontFileNameMap
-(JNIEnv *env, jclass obj, jobject fontToFileMap,
- jobject fontToFamilyMap, jobject familyToFontListMap, jobject locale)
-{
-    return;
-}
-
 #include <dlfcn.h>
 #ifndef __linux__ /* i.e. is solaris */
 #include <link.h>
@@ -865,7 +861,7 @@
 #define TEXT_AA_LCD_VBGR 7
 
 JNIEXPORT jint JNICALL
-Java_sun_font_FontManager_getFontConfigAASettings
+Java_sun_font_FontConfigManager_getFontConfigAASettings
 (JNIEnv *env, jclass obj, jstring localeStr, jstring fcNameStr) {
 
     FcNameParseFuncType FcNameParse;
@@ -975,7 +971,7 @@
 }
 
 JNIEXPORT jint JNICALL
-Java_sun_font_FontManager_getFontConfigVersion
+Java_sun_font_FontConfigManager_getFontConfigVersion
     (JNIEnv *env, jclass obj) {
 
     void* libfontconfig;
@@ -1000,7 +996,7 @@
 
 
 JNIEXPORT void JNICALL
-Java_sun_font_FontManager_getFontConfig
+Java_sun_font_FontConfigManager_getFontConfig
 (JNIEnv *env, jclass obj, jstring localeStr, jobject fcInfoObj,
  jobjectArray fcCompFontArray,  jboolean includeFallbacks) {
 
@@ -1034,11 +1030,11 @@
     char* debugMinGlyphsStr = getenv("J2D_DEBUG_MIN_GLYPHS");
 
     jclass fcInfoClass =
-        (*env)->FindClass(env, "sun/font/FontManager$FontConfigInfo");
+        (*env)->FindClass(env, "sun/font/FontConfigManager$FontConfigInfo");
     jclass fcCompFontClass =
-        (*env)->FindClass(env, "sun/font/FontManager$FcCompFont");
+        (*env)->FindClass(env, "sun/font/FontConfigManager$FcCompFont");
     jclass fcFontClass =
-         (*env)->FindClass(env, "sun/font/FontManager$FontConfigFont");
+         (*env)->FindClass(env, "sun/font/FontConfigManager$FontConfigFont");
 
     if (fcInfoObj == NULL || fcCompFontArray == NULL || fcInfoClass == NULL ||
         fcCompFontClass == NULL || fcFontClass == NULL) {
@@ -1054,11 +1050,11 @@
                                   "fcName", "Ljava/lang/String;");
     fcFirstFontID =
         (*env)->GetFieldID(env, fcCompFontClass, "firstFont",
-                           "Lsun/font/FontManager$FontConfigFont;");
+                           "Lsun/font/FontConfigManager$FontConfigFont;");
 
     fcAllFontsID =
         (*env)->GetFieldID(env, fcCompFontClass, "allFonts",
-                           "[Lsun/font/FontManager$FontConfigFont;");
+                           "[Lsun/font/FontConfigManager$FontConfigFont;");
 
     fcFontCons = (*env)->GetMethodID(env, fcFontClass, "<init>", "()V");
 
@@ -1207,11 +1203,7 @@
          * Inspect the returned fonts and the ones we like (adds enough glyphs)
          * are added to the arrays and we increment 'fontCount'.
          */
-        if (includeFallbacks) {
-            nfonts = fontset->nfont;
-        } else {
-            nfonts = 1;
-        }
+        nfonts = fontset->nfont;
         family   = (FcChar8**)calloc(nfonts, sizeof(FcChar8*));
         styleStr = (FcChar8**)calloc(nfonts, sizeof(FcChar8*));
         fullname = (FcChar8**)calloc(nfonts, sizeof(FcChar8*));
@@ -1253,7 +1245,7 @@
              * adversely affects load time for minimal value-add.
              * This is still likely far more than we've had in the past.
              */
-            if (nfonts==10) {
+            if (j==10) {
                 minGlyphs = 50;
             }
             if (unionCharset == NULL) {
@@ -1272,6 +1264,9 @@
             (*FcPatternGetString)(fontPattern, FC_FAMILY, 0, &family[j]);
             (*FcPatternGetString)(fontPattern, FC_STYLE, 0, &styleStr[j]);
             (*FcPatternGetString)(fontPattern, FC_FULLNAME, 0, &fullname[j]);
+            if (!includeFallbacks) {
+                break;
+            }
         }
 
         /* Once we get here 'fontCount' is the number of returned fonts
@@ -1313,6 +1308,8 @@
                 }
                 if (includeFallbacks) {
                     (*env)->SetObjectArrayElement(env, fcFontArr, fn++,fcFont);
+                } else {
+                    break;
                 }
             }
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/windows/classes/sun/awt/Win32FontManager.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,280 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package sun.awt;
+
+import java.awt.FontFormatException;
+import java.awt.GraphicsEnvironment;
+import java.io.File;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+
+import sun.awt.Win32GraphicsEnvironment;
+import sun.awt.windows.WFontConfiguration;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
+import sun.font.TrueTypeFont;
+import sun.java2d.HeadlessGraphicsEnvironment;
+import sun.java2d.SunGraphicsEnvironment;
+
+/**
+ * The X11 implementation of {@link FontManager}.
+ */
+public class Win32FontManager extends SunFontManager {
+
+    private static String[] defaultPlatformFont = null;
+
+    private static TrueTypeFont eudcFont;
+
+    static {
+
+        AccessController.doPrivileged(new PrivilegedAction() {
+
+                public Object run() {
+                    String eudcFile = getEUDCFontFile();
+                    if (eudcFile != null) {
+                        try {
+                            eudcFont = new TrueTypeFont(eudcFile, null, 0,
+                                                        true);
+                        } catch (FontFormatException e) {
+                        }
+                    }
+                    return null;
+                }
+
+            });
+    }
+
+    /* Used on Windows to obtain from the windows registry the name
+     * of a file containing the system EUFC font. If running in one of
+     * the locales for which this applies, and one is defined, the font
+     * defined by this file is appended to all composite fonts as a
+     * fallback component.
+     */
+    private static native String getEUDCFontFile();
+
+    public Win32FontManager() {
+        super();
+        AccessController.doPrivileged(new PrivilegedAction() {
+                public Object run() {
+
+                    /* Register the JRE fonts so that the native platform can
+                     * access them. This is used only on Windows so that when
+                     * printing the printer driver can access the fonts.
+                     */
+                    registerJREFontsWithPlatform(jreFontDirName);
+                    return null;
+                }
+            });
+    }
+
+    /* Unlike the shared code version, this expects a base file name -
+     * not a full path name.
+     * The font configuration file has base file names and the FontConfiguration
+     * class reports these back to the GraphicsEnvironment, so these
+     * are the componentFileNames of CompositeFonts.
+     */
+    protected void registerFontFile(String fontFileName, String[] nativeNames,
+                                    int fontRank, boolean defer) {
+
+        // REMIND: case compare depends on platform
+        if (registeredFontFiles.contains(fontFileName)) {
+            return;
+        }
+        registeredFontFiles.add(fontFileName);
+
+        int fontFormat;
+        if (getTrueTypeFilter().accept(null, fontFileName)) {
+            fontFormat = SunFontManager.FONTFORMAT_TRUETYPE;
+        } else if (getType1Filter().accept(null, fontFileName)) {
+            fontFormat = SunFontManager.FONTFORMAT_TYPE1;
+        } else {
+            /* on windows we don't use/register native fonts */
+            return;
+        }
+
+        if (fontPath == null) {
+            fontPath = getPlatformFontPath(noType1Font);
+        }
+
+        /* Look in the JRE font directory first.
+         * This is playing it safe as we would want to find fonts in the
+         * JRE font directory ahead of those in the system directory
+         */
+        String tmpFontPath = jreFontDirName+File.pathSeparator+fontPath;
+        StringTokenizer parser = new StringTokenizer(tmpFontPath,
+                                                     File.pathSeparator);
+
+        boolean found = false;
+        try {
+            while (!found && parser.hasMoreTokens()) {
+                String newPath = parser.nextToken();
+                File theFile = new File(newPath, fontFileName);
+                if (theFile.canRead()) {
+                    found = true;
+                    String path = theFile.getAbsolutePath();
+                    if (defer) {
+                        registerDeferredFont(fontFileName, path,
+                                             nativeNames,
+                                             fontFormat, true,
+                                             fontRank);
+                    } else {
+                        registerFontFile(path, nativeNames,
+                                         fontFormat, true,
+                                         fontRank);
+                    }
+                    break;
+                }
+            }
+        } catch (NoSuchElementException e) {
+            System.err.println(e);
+        }
+        if (!found) {
+            addToMissingFontFileList(fontFileName);
+        }
+    }
+
+    @Override
+    protected FontConfiguration createFontConfiguration() {
+
+       FontConfiguration fc = new WFontConfiguration(this);
+       fc.init();
+       return fc;
+    }
+
+    @Override
+    public FontConfiguration createFontConfiguration(boolean preferLocaleFonts,
+            boolean preferPropFonts) {
+
+        return new WFontConfiguration(this,
+                                      preferLocaleFonts,preferPropFonts);
+    }
+
+    protected void
+        populateFontFileNameMap(HashMap<String,String> fontToFileMap,
+                                HashMap<String,String> fontToFamilyNameMap,
+                                HashMap<String,ArrayList<String>>
+                                familyToFontListMap,
+                                Locale locale) {
+
+        populateFontFileNameMap0(fontToFileMap, fontToFamilyNameMap,
+                                 familyToFontListMap, locale);
+
+    }
+
+    private static native void
+        populateFontFileNameMap0(HashMap<String,String> fontToFileMap,
+                                 HashMap<String,String> fontToFamilyNameMap,
+                                 HashMap<String,ArrayList<String>>
+                                     familyToFontListMap,
+                                 Locale locale);
+
+    public synchronized native String getFontPath(boolean noType1Fonts);
+
+    public String[] getDefaultPlatformFont() {
+
+        if (defaultPlatformFont != null) {
+            return defaultPlatformFont;
+        }
+
+        String[] info = new String[2];
+        info[0] = "Arial";
+        info[1] = "c:\\windows\\fonts";
+        final String[] dirs = getPlatformFontDirs(true);
+        if (dirs.length > 1) {
+            String dir = (String)
+                AccessController.doPrivileged(new PrivilegedAction() {
+                        public Object run() {
+                            for (int i=0; i<dirs.length; i++) {
+                                String path =
+                                    dirs[i] + File.separator + "arial.ttf";
+                                File file = new File(path);
+                                if (file.exists()) {
+                                    return dirs[i];
+                                }
+                            }
+                            return null;
+                        }
+                    });
+            if (dir != null) {
+                info[1] = dir;
+            }
+        } else {
+            info[1] = dirs[0];
+        }
+        info[1] = info[1] + File.separator + "arial.ttf";
+        defaultPlatformFont = info;
+        return defaultPlatformFont;
+    }
+
+    /* register only TrueType/OpenType fonts
+     * Because these need to be registed just for use when printing,
+     * we defer the actual registration and the static initialiser
+     * for the printing class makes the call to registerJREFontsForPrinting()
+     */
+    static String fontsForPrinting = null;
+    protected void registerJREFontsWithPlatform(String pathName) {
+        fontsForPrinting = pathName;
+    }
+
+    public static void registerJREFontsForPrinting() {
+        final String pathName;
+        synchronized (Win32GraphicsEnvironment.class) {
+            GraphicsEnvironment.getLocalGraphicsEnvironment();
+            if (fontsForPrinting == null) {
+                return;
+            }
+            pathName = fontsForPrinting;
+            fontsForPrinting = null;
+        }
+        java.security.AccessController.doPrivileged(
+            new java.security.PrivilegedAction() {
+                public Object run() {
+                    File f1 = new File(pathName);
+                    String[] ls = f1.list(SunFontManager.getInstance().
+                            getTrueTypeFilter());
+                    if (ls == null) {
+                        return null;
+                    }
+                    for (int i=0; i <ls.length; i++ ) {
+                        File fontFile = new File(f1, ls[i]);
+                        registerFontWithPlatform(fontFile.getAbsolutePath());
+                    }
+                    return null;
+                }
+         });
+    }
+
+    protected static native void registerFontWithPlatform(String fontName);
+
+    protected static native void deRegisterFontWithPlatform(String fontName);
+
+}
--- a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	Wed Oct 07 14:15:01 2009 -0700
@@ -43,6 +43,8 @@
 import sun.awt.windows.WPrinterJob;
 import sun.awt.windows.WToolkit;
 import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.SunFontManager;
 import sun.java2d.SunGraphicsEnvironment;
 import sun.java2d.SurfaceManagerFactory;
 import sun.java2d.WindowsSurfaceManagerFactory;
@@ -68,7 +70,6 @@
         // setup flags before initializing native layer
         WindowsFlags.initFlags();
         initDisplayWrapper();
-        eudcFontFileName = getEUDCFontFile();
 
         // Install correct surface manager factory.
         SurfaceManagerFactory.setInstance(new WindowsSurfaceManagerFactory());
@@ -211,14 +212,6 @@
  * ----END DISPLAY CHANGE SUPPORT----
  */
 
-    /* Used on Windows to obtain from the windows registry the name
-     * of a file containing the system EUFC font. If running in one of
-     * the locales for which this applies, and one is defined, the font
-     * defined by this file is appended to all composite fonts as a
-     * fallback component.
-     */
-    private static native String getEUDCFontFile();
-
     /**
      * Whether registerFontFile expects absolute or relative
      * font file names.
@@ -227,114 +220,6 @@
         return false;
     }
 
-    /* Unlike the shared code version, this expects a base file name -
-     * not a full path name.
-     * The font configuration file has base file names and the FontConfiguration
-     * class reports these back to the GraphicsEnvironment, so these
-     * are the componentFileNames of CompositeFonts.
-     */
-    protected void registerFontFile(String fontFileName, String[] nativeNames,
-                                    int fontRank, boolean defer) {
-
-        // REMIND: case compare depends on platform
-        if (registeredFontFiles.contains(fontFileName)) {
-            return;
-        }
-        registeredFontFiles.add(fontFileName);
-
-        int fontFormat;
-        if (ttFilter.accept(null, fontFileName)) {
-            fontFormat = FontManager.FONTFORMAT_TRUETYPE;
-        } else if (t1Filter.accept(null, fontFileName)) {
-            fontFormat = FontManager.FONTFORMAT_TYPE1;
-        } else {
-            /* on windows we don't use/register native fonts */
-            return;
-        }
-
-        if (fontPath == null) {
-            fontPath = getPlatformFontPath(noType1Font);
-        }
-
-        /* Look in the JRE font directory first.
-         * This is playing it safe as we would want to find fonts in the
-         * JRE font directory ahead of those in the system directory
-         */
-        String tmpFontPath = jreFontDirName+File.pathSeparator+fontPath;
-        StringTokenizer parser = new StringTokenizer(tmpFontPath,
-                                                     File.pathSeparator);
-
-        boolean found = false;
-        try {
-            while (!found && parser.hasMoreTokens()) {
-                String newPath = parser.nextToken();
-                boolean ujr = newPath.equals(jreFontDirName);
-                File theFile = new File(newPath, fontFileName);
-                if (theFile.canRead()) {
-                    found = true;
-                    String path = theFile.getAbsolutePath();
-                    if (defer) {
-                        FontManager.registerDeferredFont(fontFileName, path,
-                                                         nativeNames,
-                                                         fontFormat, ujr,
-                                                         fontRank);
-                    } else {
-                        FontManager.registerFontFile(path, nativeNames,
-                                                     fontFormat, ujr,
-                                                     fontRank);
-                    }
-                    break;
-                }
-            }
-        } catch (NoSuchElementException e) {
-            System.err.println(e);
-        }
-        if (!found) {
-            addToMissingFontFileList(fontFileName);
-        }
-    }
-
-    /* register only TrueType/OpenType fonts
-     * Because these need to be registed just for use when printing,
-     * we defer the actual registration and the static initialiser
-     * for the printing class makes the call to registerJREFontsForPrinting()
-     */
-    static String fontsForPrinting = null;
-    protected void registerJREFontsWithPlatform(String pathName) {
-        fontsForPrinting = pathName;
-    }
-
-    public static void registerJREFontsForPrinting() {
-        final String pathName;
-        synchronized (Win32GraphicsEnvironment.class) {
-            GraphicsEnvironment.getLocalGraphicsEnvironment();
-            if (fontsForPrinting == null) {
-                return;
-            }
-            pathName = fontsForPrinting;
-            fontsForPrinting = null;
-        }
-        java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction() {
-                public Object run() {
-                    File f1 = new File(pathName);
-                    String[] ls = f1.list(new TTFilter());
-                    if (ls == null) {
-                        return null;
-                    }
-                    for (int i=0; i <ls.length; i++ ) {
-                        File fontFile = new File(f1, ls[i]);
-                        registerFontWithPlatform(fontFile.getAbsolutePath());
-                    }
-                    return null;
-                }
-         });
-    }
-
-    protected static native void registerFontWithPlatform(String fontName);
-
-    protected static native void deRegisterFontWithPlatform(String fontName);
-
     protected GraphicsDevice makeScreenDevice(int screennum) {
         GraphicsDevice device = null;
         if (WindowsFlags.isD3DEnabled()) {
@@ -348,7 +233,7 @@
 
     // Implements SunGraphicsEnvironment.createFontConfiguration.
     protected FontConfiguration createFontConfiguration() {
-       FontConfiguration fc = new WFontConfiguration(this);
+       FontConfiguration fc = new WFontConfiguration(SunFontManager.getInstance());
        fc.init();
        return fc;
     }
@@ -356,7 +241,12 @@
     public FontConfiguration createFontConfiguration(boolean preferLocaleFonts,
                                                      boolean preferPropFonts) {
 
-        return new WFontConfiguration(this, preferLocaleFonts,preferPropFonts);
+        return new WFontConfiguration(SunFontManager.getInstance(),
+                preferLocaleFonts,preferPropFonts);
+    }
+
+    public boolean isDisplayLocal() {
+        return true;
     }
 
     @Override
@@ -394,11 +284,6 @@
         isDWMCompositionEnabled = enabled;
     }
 
-    @Override
-    public boolean isDisplayLocal() {
-        return true;
-    }
-
     /**
      * Used to find out if the OS is Windows Vista or later.
      *
--- a/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -59,8 +59,7 @@
 import java.awt.dnd.peer.DropTargetPeer;
 import sun.awt.ComponentAccessor;
 
-import java.util.logging.*;
-
+import sun.util.logging.PlatformLogger;
 
 public abstract class WComponentPeer extends WObjectPeer
     implements ComponentPeer, DropTargetPeer
@@ -70,9 +69,9 @@
      */
     protected volatile long hwnd;
 
-    private static final Logger log = Logger.getLogger("sun.awt.windows.WComponentPeer");
-    private static final Logger shapeLog = Logger.getLogger("sun.awt.windows.shape.WComponentPeer");
-    private static final Logger focusLog = Logger.getLogger("sun.awt.windows.focus.WComponentPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WComponentPeer");
+    private static final PlatformLogger shapeLog = PlatformLogger.getLogger("sun.awt.windows.shape.WComponentPeer");
+    private static final PlatformLogger focusLog = PlatformLogger.getLogger("sun.awt.windows.focus.WComponentPeer");
 
     // ComponentPeer implementation
     SurfaceData surfaceData;
@@ -178,10 +177,10 @@
     void dynamicallyLayoutContainer() {
         // If we got the WM_SIZING, this must be a Container, right?
         // In fact, it must be the top-level Container.
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             Container parent = WToolkit.getNativeContainer((Component)target);
             if (parent != null) {
-                log.log(Level.FINE, "Assertion (parent == null) failed");
+                log.fine("Assertion (parent == null) failed");
             }
         }
         final Container cont = (Container)target;
@@ -283,14 +282,14 @@
             paintArea.add(r, e.getID());
         }
 
-        if (log.isLoggable(Level.FINEST)) {
+        if (log.isLoggable(PlatformLogger.FINEST)) {
             switch(e.getID()) {
             case PaintEvent.UPDATE:
-                log.log(Level.FINEST, "coalescePaintEvent: UPDATE: add: x = " +
+                log.finest("coalescePaintEvent: UPDATE: add: x = " +
                     r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
                 return;
             case PaintEvent.PAINT:
-                log.log(Level.FINEST, "coalescePaintEvent: PAINT: add: x = " +
+                log.finest("coalescePaintEvent: PAINT: add: x = " +
                     r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
                 return;
             }
@@ -360,7 +359,7 @@
     }
 
     void handleJavaFocusEvent(FocusEvent fe) {
-        if (focusLog.isLoggable(Level.FINER)) focusLog.finer(fe.toString());
+        if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(fe.toString());
         setFocus(fe.getID() == FocusEvent.FOCUS_GAINED);
     }
 
@@ -641,7 +640,7 @@
           case WKeyboardFocusManagerPeer.SNFH_FAILURE:
               return false;
           case WKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
-              if (focusLog.isLoggable(Level.FINER)) {
+              if (focusLog.isLoggable(PlatformLogger.FINER)) {
                   focusLog.finer("Proceeding with request to " + lightweightChild + " in " + target);
               }
               Window parentWindow = SunToolkit.getContainingWindow((Component)target);
@@ -654,7 +653,7 @@
               }
               boolean res = wpeer.requestWindowFocus(cause);
 
-              if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Requested window focus: " + res);
+              if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer("Requested window focus: " + res);
               // If parent window can be made focused and has been made focused(synchronously)
               // then we can proceed with children, otherwise we retreat.
               if (!(res && parentWindow.isFocused())) {
@@ -674,7 +673,7 @@
     }
 
     private boolean rejectFocusRequestHelper(String logMsg) {
-        if (focusLog.isLoggable(Level.FINER)) focusLog.finer(logMsg);
+        if (focusLog.isLoggable(PlatformLogger.FINER)) focusLog.finer(logMsg);
         WKeyboardFocusManagerPeer.removeLastFocusRequest((Component)target);
         return false;
     }
@@ -1017,7 +1016,7 @@
      * @since 1.7
      */
     public void applyShape(Region shape) {
-        if (shapeLog.isLoggable(Level.FINER)) {
+        if (shapeLog.isLoggable(PlatformLogger.FINER)) {
             shapeLog.finer(
                     "*** INFO: Setting shape: PEER: " + this
                     + "; TARGET: " + target
--- a/jdk/src/windows/classes/sun/awt/windows/WDesktopProperties.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WDesktopProperties.java	Wed Oct 07 14:15:01 2009 -0700
@@ -34,8 +34,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.SunToolkit;
 
@@ -54,7 +53,7 @@
  * itself when running on a Windows platform.
  */
 class WDesktopProperties {
-    private static final Logger log = Logger.getLogger("sun.awt.windows.WDesktopProperties");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WDesktopProperties");
     private static final String PREFIX = "win.";
     private static final String FILE_PREFIX = "awt.file.";
     private static final String PROP_NAMES = "win.propNames";
@@ -111,7 +110,7 @@
      */
     private synchronized void setBooleanProperty(String key, boolean value) {
         assert( key != null );
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(key + "=" + String.valueOf(value));
         }
         map.put(key, Boolean.valueOf(value));
@@ -122,7 +121,7 @@
      */
     private synchronized void setIntegerProperty(String key, int value) {
         assert( key != null );
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(key + "=" + String.valueOf(value));
         }
         map.put(key, Integer.valueOf(value));
@@ -133,7 +132,7 @@
      */
     private synchronized void setStringProperty(String key, String value) {
         assert( key != null );
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(key + "=" + value);
         }
         map.put(key, value);
@@ -145,7 +144,7 @@
     private synchronized void setColorProperty(String key, int r, int g, int b) {
         assert( key != null && r <= 255 && g <=255 && b <= 255 );
         Color color = new Color(r, g, b);
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(key + "=" + color);
         }
         map.put(key, color);
@@ -173,14 +172,14 @@
             name = mappedName;
         }
         Font    font = new Font(name, style, size);
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(key + "=" + font);
         }
         map.put(key, font);
 
         String sizeKey = key + ".height";
         Integer iSize = Integer.valueOf(size);
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(sizeKey + "=" + iSize);
         }
         map.put(sizeKey, iSize);
@@ -193,7 +192,7 @@
         assert( key != null && winEventName != null );
 
         Runnable soundRunnable = new WinPlaySound(winEventName);
-        if (log.isLoggable(Level.FINE)) {
+        if (log.isLoggable(PlatformLogger.FINE)) {
             log.fine(key + "=" + soundRunnable);
         }
         map.put(key, soundRunnable);
--- a/jdk/src/windows/classes/sun/awt/windows/WFontConfiguration.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WFontConfiguration.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,6 +29,8 @@
 import java.util.Hashtable;
 import sun.awt.FontDescriptor;
 import sun.awt.FontConfiguration;
+import sun.font.FontManager;
+import sun.font.SunFontManager;
 import sun.java2d.SunGraphicsEnvironment;
 import java.nio.charset.*;
 
@@ -37,16 +39,16 @@
     // whether compatibility fallbacks for TimesRoman and Co. are used
     private boolean useCompatibilityFallbacks;
 
-    public WFontConfiguration(SunGraphicsEnvironment environment) {
-        super(environment);
+    public WFontConfiguration(SunFontManager fm) {
+        super(fm);
         useCompatibilityFallbacks = "windows-1252".equals(encoding);
         initTables(encoding);
     }
 
-    public WFontConfiguration(SunGraphicsEnvironment environment,
+    public WFontConfiguration(SunFontManager fm,
                               boolean preferLocaleFonts,
                               boolean preferPropFonts) {
-        super(environment, preferLocaleFonts, preferPropFonts);
+        super(fm, preferLocaleFonts, preferPropFonts);
         useCompatibilityFallbacks = "windows-1252".equals(encoding);
     }
 
--- a/jdk/src/windows/classes/sun/awt/windows/WMenuItemPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WMenuItemPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -31,11 +31,10 @@
 import java.awt.event.ActionEvent;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.util.logging.Logger;
-import java.util.logging.Level;
+import sun.util.logging.PlatformLogger;
 
 class WMenuItemPeer extends WObjectPeer implements MenuItemPeer {
-    private static final Logger log = Logger.getLogger("sun.awt.WMenuItemPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.WMenuItemPeer");
 
     static {
         initIDs();
@@ -166,8 +165,8 @@
                         ResourceBundle rb = ResourceBundle.getBundle("sun.awt.windows.awtLocalization");
                         return Font.decode(rb.getString("menuFont"));
                     } catch (MissingResourceException e) {
-                        if (log.isLoggable(Level.FINE)) {
-                            log.log(Level.FINE, "WMenuItemPeer: " + e.getMessage()+". Using default MenuItem font.", e);
+                        if (log.isLoggable(PlatformLogger.FINE)) {
+                            log.fine("WMenuItemPeer: " + e.getMessage()+". Using default MenuItem font.", e);
                         }
                         return new Font("SanSerif", Font.PLAIN, 11);
                     }
--- a/jdk/src/windows/classes/sun/awt/windows/WPanelPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WPanelPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -30,11 +30,9 @@
 import java.util.Vector;
 
 import sun.awt.SunGraphicsCallback;
-import java.util.logging.*;
 
 class WPanelPeer extends WCanvasPeer implements PanelPeer {
 
-    private static final Logger log = Logger.getLogger("sun.awt.windows.WPanelPeer");
     // ComponentPeer overrides
 
     public void paint(Graphics g) {
--- a/jdk/src/windows/classes/sun/awt/windows/WPathGraphics.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WPathGraphics.java	Wed Oct 07 14:15:01 2009 -0700
@@ -64,7 +64,7 @@
 import sun.font.CharToGlyphMapper;
 import sun.font.CompositeFont;
 import sun.font.Font2D;
-import sun.font.FontManager;
+import sun.font.FontUtilities;
 import sun.font.PhysicalFont;
 import sun.font.TrueTypeFont;
 
@@ -119,6 +119,7 @@
      *                       this graphics context.
      * @since      JDK1.0
      */
+    @Override
     public Graphics create() {
 
         return new WPathGraphics((Graphics2D) getDelegate().create(),
@@ -143,6 +144,7 @@
      * @see #setClip
      * @see #setComposite
      */
+    @Override
     public void draw(Shape s) {
 
         Stroke stroke = getStroke();
@@ -250,10 +252,12 @@
      * @see         java.awt.Graphics#drawChars
      * @since       JDK1.0
      */
+    @Override
     public void drawString(String str, int x, int y) {
         drawString(str, (float) x, (float) y);
     }
 
+    @Override
      public void drawString(String str, float x, float y) {
          drawString(str, x, y, getFont(), getFontRenderContext(), 0f);
      }
@@ -270,6 +274,7 @@
      * the default render context (as canDrawStringToWidth() will return
      * false. That is why it ignores the frc and width arguments.
      */
+    @Override
     protected int platformFontCount(Font font, String str) {
 
         AffineTransform deviceTransform = getTransform();
@@ -294,7 +299,7 @@
          * fail that case. Just do a quick check whether its a TrueTypeFont
          * - ie not a Type1 font etc, and let drawString() resolve the rest.
          */
-        Font2D font2D = FontManager.getFont2D(font);
+        Font2D font2D = FontUtilities.getFont2D(font);
         if (font2D instanceof CompositeFont ||
             font2D instanceof TrueTypeFont) {
             return 1;
@@ -320,14 +325,14 @@
      */
     private boolean strNeedsTextLayout(String str, Font font) {
         char[] chars = str.toCharArray();
-        boolean isComplex = FontManager.isComplexText(chars, 0, chars.length);
+        boolean isComplex = FontUtilities.isComplexText(chars, 0, chars.length);
         if (!isComplex) {
             return false;
         } else if (!useGDITextLayout) {
             return true;
         } else {
             if (preferGDITextLayout ||
-                (isXP() && FontManager.textLayoutIsCompatible(font))) {
+                (isXP() && FontUtilities.textLayoutIsCompatible(font))) {
                 return false;
             } else {
                 return true;
@@ -388,6 +393,7 @@
      * @see #setComposite
      * @see #setClip
      */
+    @Override
     public void drawString(String str, float x, float y,
                            Font font, FontRenderContext frc, float targetW) {
         if (str.length() == 0) {
@@ -498,7 +504,7 @@
         float awScale = getAwScale(scaleFactorX, scaleFactorY);
         int iangle = getAngle(ptx);
 
-        Font2D font2D = FontManager.getFont2D(font);
+        Font2D font2D = FontUtilities.getFont2D(font);
         if (font2D instanceof TrueTypeFont) {
             textOut(str, font, (TrueTypeFont)font2D, frc,
                     scaledFontSizeY, iangle, awScale,
@@ -549,6 +555,7 @@
     /** return true if the Graphics instance can directly print
      * this glyphvector
      */
+    @Override
     protected boolean printGlyphVector(GlyphVector gv, float x, float y) {
         /* We don't want to try to handle per-glyph transforms. GDI can't
          * handle per-glyph rotations, etc. There's no way to express it
@@ -693,7 +700,7 @@
                                    glyphAdvPos, 0,      //destination
                                    glyphPos.length/2);  //num points
 
-        Font2D font2D = FontManager.getFont2D(font);
+        Font2D font2D = FontUtilities.getFont2D(font);
         if (font2D instanceof TrueTypeFont) {
             String family = font2D.getFamilyName(null);
             int style = font.getStyle() | font2D.getStyle();
@@ -792,7 +799,7 @@
              char[] chars = str.toCharArray();
              int len = chars.length;
              GlyphVector gv = null;
-             if (!FontManager.isComplexText(chars, 0, len)) {
+             if (!FontUtilities.isComplexText(chars, 0, len)) {
                  gv = font.createGlyphVector(frc, str);
              }
              if (gv == null) {
--- a/jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java	Wed Oct 07 14:15:01 2009 -0700
@@ -98,6 +98,8 @@
 import javax.print.attribute.Size2DSyntax;
 import javax.print.StreamPrintService;
 
+import sun.awt.Win32FontManager;
+
 import sun.print.RasterPrinterJob;
 import sun.print.SunAlternateMedia;
 import sun.print.SunPageSelection;
@@ -359,7 +361,7 @@
 
         initIDs();
 
-        Win32GraphicsEnvironment.registerJREFontsForPrinting();
+        Win32FontManager.registerJREFontsForPrinting();
     }
 
     /* Constructors */
--- a/jdk/src/windows/classes/sun/awt/windows/WScrollPanePeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WScrollPanePeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -29,11 +29,11 @@
 import java.awt.peer.ScrollPanePeer;
 import sun.awt.PeerEvent;
 
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 class WScrollPanePeer extends WPanelPeer implements ScrollPanePeer {
 
-    private static final Logger log = Logger.getLogger("sun.awt.windows.WScrollPanePeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WScrollPanePeer");
 
     int scrollbarWidth;
     int scrollbarHeight;
@@ -159,8 +159,8 @@
         }
 
         public PeerEvent coalesceEvents(PeerEvent newEvent) {
-            if (log.isLoggable(Level.FINEST)) {
-                log.log(Level.FINEST, "ScrollEvent coalesced: " + newEvent);
+            if (log.isLoggable(PlatformLogger.FINEST)) {
+                log.finest("ScrollEvent coalesced: " + newEvent);
             }
             if (newEvent instanceof ScrollEvent) {
                 return newEvent;
@@ -204,8 +204,8 @@
             } else if (orient == Adjustable.HORIZONTAL) {
                 adj = (ScrollPaneAdjustable)sp.getHAdjustable();
             } else {
-                if (log.isLoggable(Level.FINE)) {
-                    log.log(Level.FINE, "Assertion failed: unknown orient");
+                if (log.isLoggable(PlatformLogger.FINE)) {
+                    log.fine("Assertion failed: unknown orient");
                 }
             }
 
@@ -231,8 +231,8 @@
                   newpos = this.pos;
                   break;
               default:
-                  if (log.isLoggable(Level.FINE)) {
-                      log.log(Level.FINE, "Assertion failed: unknown type");
+                  if (log.isLoggable(PlatformLogger.FINE)) {
+                      log.fine("Assertion failed: unknown type");
                   }
                   return;
             }
@@ -258,10 +258,10 @@
             {
                 hwAncestor = hwAncestor.getParent();
             }
-            if (log.isLoggable(Level.FINE)) {
+            if (log.isLoggable(PlatformLogger.FINE)) {
                 if (hwAncestor == null) {
-                    log.log(Level.FINE, "Assertion (hwAncestor != null) failed, " +
-                            "couldn't find heavyweight ancestor of scroll pane child");
+                    log.fine("Assertion (hwAncestor != null) failed, " +
+                             "couldn't find heavyweight ancestor of scroll pane child");
                 }
             }
             WComponentPeer hwPeer = (WComponentPeer)hwAncestor.getPeer();
--- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	Wed Oct 07 14:15:01 2009 -0700
@@ -58,13 +58,15 @@
 import java.util.Map;
 import java.util.Properties;
 
-import java.util.logging.*;
-
+import sun.font.FontManager;
+import sun.font.FontManagerFactory;
+import sun.font.SunFontManager;
 import sun.misc.PerformanceLogger;
+import sun.util.logging.PlatformLogger;
 
 public class WToolkit extends SunToolkit implements Runnable {
 
-    private static final Logger log = Logger.getLogger("sun.awt.windows.WToolkit");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WToolkit");
 
     static GraphicsConfiguration config;
 
@@ -107,8 +109,8 @@
         initIDs();
 
         // Print out which version of Windows is running
-        if (log.isLoggable(Level.FINE)) {
-            log.log(Level.FINE, "Win version: " + getWindowsVersion());
+        if (log.isLoggable(PlatformLogger.FINE)) {
+            log.fine("Win version: " + getWindowsVersion());
         }
 
         java.security.AccessController.doPrivileged(
@@ -572,8 +574,11 @@
 
 
     public FontMetrics getFontMetrics(Font font) {
-        // REMIND: platform font flag should be removed post-merlin.
-        if (sun.font.FontManager.usePlatformFontMetrics()) {
+        // This is an unsupported hack, but left in for a customer.
+        // Do not remove.
+        FontManager fm = FontManagerFactory.getInstance();
+        if (fm instanceof SunFontManager
+            && ((SunFontManager) fm).usePlatformFontMetrics()) {
             return WFontMetrics.getFontMetrics(font);
         }
         return super.getFontMetrics(font);
@@ -824,10 +829,10 @@
         lazilyInitWProps();
         Boolean prop = (Boolean) desktopProperties.get("awt.dynamicLayoutSupported");
 
-        if (log.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, "In WTK.isDynamicLayoutSupported()" +
-                    "   nativeDynamic == " + nativeDynamic +
-                    "   wprops.dynamic == " + prop);
+        if (log.isLoggable(PlatformLogger.FINER)) {
+            log.finer("In WTK.isDynamicLayoutSupported()" +
+                      "   nativeDynamic == " + nativeDynamic +
+                      "   wprops.dynamic == " + prop);
         }
 
         if ((prop == null) || (nativeDynamic != prop.booleanValue())) {
@@ -862,8 +867,8 @@
         Map<String, Object> props = wprops.getProperties();
         for (String propName : props.keySet()) {
             Object val = props.get(propName);
-            if (log.isLoggable(Level.FINER)) {
-                log.log(Level.FINER, "changed " + propName + " to " + val);
+            if (log.isLoggable(PlatformLogger.FINER)) {
+                log.finer("changed " + propName + " to " + val);
             }
             setDesktopProperty(propName, val);
         }
--- a/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	Wed Oct 07 14:15:01 2009 -0700
@@ -35,7 +35,7 @@
 
 import java.util.*;
 import java.util.List;
-import java.util.logging.*;
+import sun.util.logging.PlatformLogger;
 
 import sun.awt.*;
 
@@ -45,8 +45,8 @@
        DisplayChangedListener
 {
 
-    private static final Logger log = Logger.getLogger("sun.awt.windows.WWindowPeer");
-    private static final Logger screenLog = Logger.getLogger("sun.awt.windows.screen.WWindowPeer");
+    private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.windows.WWindowPeer");
+    private static final PlatformLogger screenLog = PlatformLogger.getLogger("sun.awt.windows.screen.WWindowPeer");
 
     // we can't use WDialogPeer as blocker may be an instance of WPrintDialogPeer that
     // extends WWindowPeer, not WDialogPeer
@@ -440,8 +440,8 @@
 
     public void updateGC() {
         int scrn = getScreenImOn();
-        if (screenLog.isLoggable(Level.FINER)) {
-            log.log(Level.FINER, "Screen number: " + scrn);
+        if (screenLog.isLoggable(PlatformLogger.FINER)) {
+            log.finer("Screen number: " + scrn);
         }
 
         // get current GD
@@ -465,9 +465,9 @@
         // is now mostly on.
         winGraphicsConfig = (Win32GraphicsConfig)newDev
                             .getDefaultConfiguration();
-        if (screenLog.isLoggable(Level.FINE)) {
+        if (screenLog.isLoggable(PlatformLogger.FINE)) {
             if (winGraphicsConfig == null) {
-                screenLog.log(Level.FINE, "Assertion (winGraphicsConfig != null) failed");
+                screenLog.fine("Assertion (winGraphicsConfig != null) failed");
             }
         }
 
@@ -700,9 +700,8 @@
             TranslucentWindowPainter currentPainter = painter;
             if (currentPainter != null) {
                 currentPainter.updateWindow(repaint);
-            } else if (log.isLoggable(Level.FINER)) {
-                log.log(Level.FINER,
-                        "Translucent window painter is null in updateWindow");
+            } else if (log.isLoggable(PlatformLogger.FINER)) {
+                log.finer("Translucent window painter is null in updateWindow");
             }
         }
     }
@@ -736,8 +735,8 @@
         public void propertyChange(PropertyChangeEvent e) {
             boolean isDisposed = (Boolean)e.getNewValue();
             if (isDisposed != true) {
-                if (log.isLoggable(Level.FINE)) {
-                    log.log(Level.FINE, " Assertion (newValue != true) failed for AppContext.GUI_DISPOSED ");
+                if (log.isLoggable(PlatformLogger.FINE)) {
+                    log.fine(" Assertion (newValue != true) failed for AppContext.GUI_DISPOSED ");
                 }
             }
             AppContext appContext = AppContext.getAppContext();
--- a/jdk/src/windows/native/sun/font/fontpath.c	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/native/sun/font/fontpath.c	Wed Oct 07 14:15:01 2009 -0700
@@ -28,12 +28,12 @@
 
 #include <jni.h>
 #include <jni_util.h>
-#include <sun_font_FontManager.h>
+#include <sun_awt_Win32FontManager.h>
 
 #define BSIZE (max(512, MAX_PATH+1))
 
 
-JNIEXPORT jstring JNICALL Java_sun_font_FontManager_getFontPath(JNIEnv *env, jclass obj, jboolean noType1)
+JNIEXPORT jstring JNICALL Java_sun_awt_Win32FontManager_getFontPath(JNIEnv *env, jobject thiz, jboolean noType1)
 {
     char windir[BSIZE];
     char sysdir[BSIZE];
@@ -68,15 +68,6 @@
     return JNU_NewStringPlatform(env, fontpath);
 }
 
-/* This isn't used on windows, the implementation is added in case shared
- * code accidentally calls this method to prevent an UnsatisfiedLinkError
- */
-JNIEXPORT void JNICALL Java_sun_font_FontManager_setNativeFontPath
-(JNIEnv *env, jclass obj, jstring theString)
-{
-    return;
-}
-
 /* The code below is used to obtain information from the windows font APIS
  * and registry on which fonts are available and what font files hold those
  * fonts. The results are used to speed font lookup.
@@ -546,7 +537,7 @@
  * use it for lookups to reduce or avoid the need to search font files.
  */
 JNIEXPORT void JNICALL
-Java_sun_font_FontManager_populateFontFileNameMap
+Java_sun_awt_Win32FontManager_populateFontFileNameMap0
 (JNIEnv *env, jclass obj, jobject fontToFileMap,
  jobject fontToFamilyMap, jobject familyToFontListMap, jobject locale)
 {
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Wed Oct 07 14:04:20 2009 -0700
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Wed Oct 07 14:15:01 2009 -0700
@@ -25,6 +25,7 @@
 
 #include <awt.h>
 #include <sun_awt_Win32GraphicsEnvironment.h>
+#include <sun_awt_Win32FontManager.h>
 #include "awt_Canvas.h"
 #include "awt_Win32GraphicsDevice.h"
 #include "Devices.h"
@@ -173,14 +174,14 @@
 }
 
 /*
- * Class:     sun_awt_Win32GraphicsEnvironment
+ * Class:     sun_awt_Win32FontManager
  * Method:    registerFontWithPlatform
  * Signature: (Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL
-Java_sun_awt_Win32GraphicsEnvironment_registerFontWithPlatform(JNIEnv *env,
-                                                              jclass cl,
-                                                              jstring fontName)
+Java_sun_awt_Win32FontManager_registerFontWithPlatform(JNIEnv *env,
+                                                       jclass cl,
+                                                       jstring fontName)
 {
     LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
     if (file) {
@@ -191,16 +192,16 @@
 
 
 /*
- * Class:     sun_awt_Win32GraphicsEnvironment
+ * Class:     sun_awt_Win32FontManagerEnvironment
  * Method:    deRegisterFontWithPlatform
  * Signature: (Ljava/lang/String;)V
  *
  * This method intended for future use.
  */
 JNIEXPORT void JNICALL
-Java_sun_awt_Win32GraphicsEnvironment_deRegisterFontWithPlatform(JNIEnv *env,
-                                                              jclass cl,
-                                                              jstring fontName)
+Java_sun_awt_Win32FontManager_deRegisterFontWithPlatform(JNIEnv *env,
+                                                         jclass cl,
+                                                         jstring fontName)
 {
     LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
     if (file) {
@@ -223,7 +224,7 @@
 
 
 JNIEXPORT jstring JNICALL
-Java_sun_awt_Win32GraphicsEnvironment_getEUDCFontFile(JNIEnv *env, jclass cl) {
+Java_sun_awt_Win32FontManager_getEUDCFontFile(JNIEnv *env, jclass cl) {
     int    rc;
     HKEY   key;
     DWORD  type;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/font/TextLayout/TestSinhalaChar.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,70 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+/* @test @(#)TestSinhalaChar.java
+ * @summary verify lack of crash on U+0DDD.
+ * @bug 6795060
+ */
+
+import javax.swing.*;
+import javax.swing.border.LineBorder;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+
+public class TestSinhalaChar {
+    public static void main(String[] args) {
+        SwingUtilities.invokeLater(new Runnable() {
+            public void run() {
+                new TestSinhalaChar().run();
+            }
+        });
+    }
+    public static boolean AUTOMATIC_TEST=true;  // true; run test automatically, else manually at button push
+
+    private void run() {
+        JFrame frame = new JFrame("Test Character (no crash = PASS)");
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        JPanel panel = new JPanel();
+        final JLabel label = new JLabel("(empty)");
+        label.setSize(400, 100);
+        label.setBorder(new LineBorder(Color.black));
+        label.setFont(new Font("Lucida Bright", Font.PLAIN, 12));
+        if(AUTOMATIC_TEST) {  /* run the test automatically (else, manually) */
+           label.setText(Character.toString('\u0DDD'));
+        } else {
+        JButton button = new JButton("Set Char x0DDD");
+        button.addActionListener(new AbstractAction() {
+            public void actionPerformed(ActionEvent actionEvent) {
+           label.setText(Character.toString('\u0DDD'));
+            }
+        });
+        panel.add(button);
+        }
+        panel.add(label);
+
+        frame.getContentPane().add(panel);
+        frame.pack();
+        frame.setVisible(true);
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/print/PageFormat/PageFormatFromAttributes.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 4500750 6848799
+ * @summary Tests creating page format from attributes
+ * @run main PageFormatFromAttributes
+ */
+import java.awt.print.*;
+import javax.print.*;
+import javax.print.attribute.*;
+import javax.print.attribute.standard.*;
+
+public class PageFormatFromAttributes {
+
+    public static void main(String args[]) {
+        PrinterJob job = PrinterJob.getPrinterJob();
+        PrintService service = job.getPrintService();
+        if (service == null) {
+            return; // No printers
+        }
+        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
+        test(job, MediaSizeName.ISO_A4, OrientationRequested.PORTRAIT);
+        test(job, MediaSizeName.ISO_A4, OrientationRequested.LANDSCAPE);
+        test(job, MediaSizeName.ISO_A4,
+             OrientationRequested.REVERSE_LANDSCAPE);
+        test(job, MediaSizeName.ISO_A3, OrientationRequested.PORTRAIT);
+        test(job, MediaSizeName.NA_LETTER, OrientationRequested.PORTRAIT);
+        test(job, MediaSizeName.NA_LETTER, OrientationRequested.LANDSCAPE);
+        test(job, MediaSizeName.NA_LEGAL, OrientationRequested.PORTRAIT);
+    }
+
+    static void test(PrinterJob job,
+                     MediaSizeName media, OrientationRequested orient) {
+
+        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
+        aset.add(media);
+        aset.add(orient);
+
+        PrintService service = job.getPrintService();
+        if (!service.isAttributeValueSupported(media, null, aset) ||
+            !service.isAttributeValueSupported(orient, null, aset)) {
+            return; // Can't test this case.
+        }
+        PageFormat pf = job.getPageFormat(aset);
+        boolean ok = true;
+        switch (pf.getOrientation()) {
+        case PageFormat.PORTRAIT :
+            ok = orient == OrientationRequested.PORTRAIT;
+            break;
+        case PageFormat.LANDSCAPE :
+            ok = orient == OrientationRequested.LANDSCAPE;
+            break;
+        case PageFormat.REVERSE_LANDSCAPE :
+            ok = orient == OrientationRequested.REVERSE_LANDSCAPE;
+            break;
+        }
+        if (!ok) {
+            throw new RuntimeException("orientation not as specified");
+        }
+        MediaSize mediaSize = MediaSize.getMediaSizeForName(media);
+        if (mediaSize == null) {
+            throw new RuntimeException("expected a media size");
+        }
+        double units = Size2DSyntax.INCH/72.0;
+        int w = (int)(mediaSize.getX(1)/units);
+        int h = (int)(mediaSize.getY(1)/units);
+        Paper paper = pf.getPaper();
+        int pw = (int)paper.getWidth();
+        int ph = (int)paper.getHeight();
+        if (pw != w || ph != h) {
+            throw new RuntimeException("size not as specified");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/pisces/ThinLineTest.java	Wed Oct 07 14:15:01 2009 -0700
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+import java.awt.*;
+import java.awt.geom.Ellipse2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import javax.imageio.ImageIO;
+
+/**
+ * @author chrisn@google.com (Chris Nokleberg)
+ * @author yamauchi@google.com (Hiroshi Yamauchi)
+ */
+public class ThinLineTest {
+  private static final int PIXEL = 381;
+
+  public static void main(String[] args) throws Exception {
+    BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
+    Graphics2D g = image.createGraphics();
+
+    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+    g.setPaint(Color.WHITE);
+    g.fill(new Rectangle(image.getWidth(), image.getHeight()));
+
+    g.scale(0.5 / PIXEL, 0.5 / PIXEL);
+    g.setPaint(Color.BLACK);
+    g.setStroke(new BasicStroke(PIXEL));
+    g.draw(new Ellipse2D.Double(PIXEL * 50, PIXEL * 50, PIXEL * 300, PIXEL * 300));
+
+    // To visually check it
+    //ImageIO.write(image, "PNG", new File(args[0]));
+
+    boolean nonWhitePixelFound = false;
+    for (int x = 0; x < 200; ++x) {
+      if (image.getRGB(x, 100) != Color.WHITE.getRGB()) {
+        nonWhitePixelFound = true;
+        break;
+      }
+    }
+    if (!nonWhitePixelFound) {
+      throw new RuntimeException("The thin line disappeared.");
+    }
+  }
+}