From 5deb15889c34ff52f3ec49a6f525de8c80615ede Mon Sep 17 00:00:00 2001 From: Yuka Kamiya Date: Tue, 15 Dec 2009 14:50:01 +0900 Subject: [PATCH 001/109] 5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings Reviewed-by: okutsu --- .../java/text/CollationElementIterator.java | 4 +- jdk/test/java/text/Collator/Bug5047314.java | 84 +++++++++++++++++++ 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 jdk/test/java/text/Collator/Bug5047314.java diff --git a/jdk/src/share/classes/java/text/CollationElementIterator.java b/jdk/src/share/classes/java/text/CollationElementIterator.java index 53c821dd771..db0e011249c 100644 --- a/jdk/src/share/classes/java/text/CollationElementIterator.java +++ b/jdk/src/share/classes/java/text/CollationElementIterator.java @@ -232,7 +232,7 @@ public final class CollationElementIterator buffer = makeReorderedBuffer(consonant, value, buffer, true); value = buffer[0]; expIndex = 1; - } else { + } else if (consonant != NormalizerBase.DONE) { text.previous(); } } @@ -242,7 +242,7 @@ public final class CollationElementIterator buffer = makeReorderedBuffer(consonant, value, buffer, true); value = buffer[0]; expIndex = 1; - } else { + } else if (consonant != NormalizerBase.DONE) { text.previous(); } } diff --git a/jdk/test/java/text/Collator/Bug5047314.java b/jdk/test/java/text/Collator/Bug5047314.java new file mode 100644 index 00000000000..d0a4f29893a --- /dev/null +++ b/jdk/test/java/text/Collator/Bug5047314.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 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 5047314 + * @summary verify that compare() and getCollationKey() don't go into an infinite loop for unfinished Thai/Lao text. + * @run main/timeout=60 Bug5047314 + */ +import java.text.Collator; +import java.util.Locale; + +public class Bug5047314 { + + private static Collator colLao = Collator.getInstance(new Locale("lo")); + private static Collator colThai = Collator.getInstance(new Locale("th")); + + private static String[] textLao = { + "\u0ec0", "\u0ec1", "\u0ec2", "\u0ec3", "\u0ec4" + }; + private static String[] textThai = { + "\u0e40", "\u0e41", "\u0e42", "\u0e43", "\u0e44" + }; + + public static void main(String[] args) { + testLao1(); + testLao2(); + testThai1(); + testThai2(); + } + + private static void testLao1() { + System.out.print("Test(Lao 1) .... "); + for (int i = 0; i < textLao.length; i++) { + colLao.compare(textLao[i], textLao[i]); + } + System.out.println("Passed."); + } + + private static void testLao2() { + System.out.print("Test(Lao 2) .... "); + for (int i = 0; i < textLao.length; i++) { + colLao.compare(textLao[i], textLao[i]); + } + System.out.println("Passed."); + } + + private static void testThai1() { + System.out.print("Test(Thai 1) .... "); + for (int i = 0; i < textThai.length; i++) { + colThai.compare(textThai[i], textThai[i]); + } + System.out.println("Passed."); + } + + private static void testThai2() { + System.out.print("Test(Thai 2) .... "); + for (int i = 0; i < textThai.length; i++) { + colThai.getCollationKey(textThai[i]); + } + System.out.println("Passed."); + } + +} From af7c975cc67358d6808aea8fb4210a254e8b6e8a Mon Sep 17 00:00:00 2001 From: Peter Zhelezniakov Date: Mon, 21 Dec 2009 19:26:58 +0300 Subject: [PATCH 002/109] 6860433: [Nimbus] Code to set a single slider's thumb background doesn't work as specified Reviewed-by: rupashka --- .../javax/swing/plaf/nimbus/Defaults.template | 35 ++-- .../swing/plaf/nimbus/NimbusLookAndFeel.java | 8 +- .../plaf/nimbus/ColorCustomizationTest.java | 165 ++++++++++++++++++ 3 files changed, 190 insertions(+), 18 deletions(-) create mode 100644 jdk/test/javax/swing/plaf/nimbus/ColorCustomizationTest.java diff --git a/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template b/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template index caff0b212a0..10894b5f047 100644 --- a/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template +++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template @@ -90,6 +90,10 @@ final class ${LAF_NAME}Defaults { */ private Map registeredRegions = new HashMap(); + + private Map> overridesCache = + new WeakHashMap>(); + /** * Our fallback style to avoid NPEs if the proper style cannot be found in * this class. Not sure if relying on DefaultSynthStyle is the best choice. @@ -251,7 +255,11 @@ ${UI_DEFAULT_INIT} } //return the style, if found, or the default style if not found - return foundStyle == null ? defaultStyle : foundStyle.getStyle(comp); + return foundStyle == null ? defaultStyle : foundStyle.getStyle(comp, r); + } + + public void clearOverridesCache(JComponent c) { + overridesCache.remove(c); } /* @@ -457,15 +465,6 @@ ${UI_DEFAULT_INIT} * Cached shared style. */ private NimbusStyle style; - /** - * A weakly referenced hash map such that if the reference JComponent - * key is garbage collected then the entry is removed from the map. - * This cache exists so that when a JComponent has nimbus overrides - * in its client map, a unique style will be created and returned - * for that JComponent instance, always. In such a situation each - * JComponent instance must have its own instance of NimbusStyle. - */ - private WeakHashMap> overridesCache; /** * Create a new LazyStyle. @@ -513,17 +512,21 @@ ${UI_DEFAULT_INIT} * Gets the style. Creates it if necessary. * @return the style */ - SynthStyle getStyle(JComponent c) { + SynthStyle getStyle(JComponent c, Region r) { // if the component has overrides, it gets its own unique style // instead of the shared style. if (c.getClientProperty("Nimbus.Overrides") != null) { - if (overridesCache == null) - overridesCache = new WeakHashMap>(); - WeakReference ref = overridesCache.get(c); - NimbusStyle s = ref == null ? null : ref.get(); + Map map = overridesCache.get(c); + SynthStyle s = null; + if (map == null) { + map = new HashMap(); + overridesCache.put(c, map); + } else { + s = map.get(r); + } if (s == null) { s = new NimbusStyle(prefix, c); - overridesCache.put(c, new WeakReference(s)); + map.put(r, s); } return s; } diff --git a/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java b/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java index 4062678fb67..883727ae65f 100644 --- a/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java +++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java @@ -280,11 +280,15 @@ public class NimbusLookAndFeel extends SynthLookAndFeel { protected boolean shouldUpdateStyleOnEvent(PropertyChangeEvent ev) { String eName = ev.getPropertyName(); - // Always update when overrides or size variant change - if ("Nimbus.Overrides" == eName || + // These properties affect style cached inside NimbusDefaults (6860433) + if ("name" == eName || + "ancestor" == eName || + "Nimbus.Overrides" == eName || "Nimbus.Overrides.InheritDefaults" == eName || "JComponent.sizeVariant" == eName) { + JComponent c = (JComponent) ev.getSource(); + defaults.clearOverridesCache(c); return true; } diff --git a/jdk/test/javax/swing/plaf/nimbus/ColorCustomizationTest.java b/jdk/test/javax/swing/plaf/nimbus/ColorCustomizationTest.java new file mode 100644 index 00000000000..6f5a7a2bc3a --- /dev/null +++ b/jdk/test/javax/swing/plaf/nimbus/ColorCustomizationTest.java @@ -0,0 +1,165 @@ +/* + * 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 6860433 + @summary Tests variuos techniques of Nimbus color customization + @author Peter Zhelezniakov + @run main ColorCustomizationTest +*/ + +import javax.swing.JLabel; +import javax.swing.SwingUtilities; +import javax.swing.UIDefaults; +import javax.swing.UIManager; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.image.BufferedImage; +import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.nimbus.NimbusLookAndFeel; +import javax.swing.plaf.synth.Region; + +public class ColorCustomizationTest +{ + final static int WIDTH = 200; + final static int HEIGHT = 100; + + static NimbusLookAndFeel nimbus; + + final JLabel label; + final Graphics g; + + ColorCustomizationTest() { + label = new JLabel(); + label.setSize(200, 100); + + g = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB).getGraphics(); + } + + public static void main(String[] args) throws Exception { + nimbus = new NimbusLookAndFeel(); + try { + UIManager.setLookAndFeel(nimbus); + } catch (UnsupportedLookAndFeelException e) { + throw new Error("Unable to set Nimbus LAF"); + } + SwingUtilities.invokeAndWait(new Runnable() { + @Override public void run() { + new ColorCustomizationTest().test(); + } + }); + } + + void check(Color c) { + SwingUtilities.updateComponentTreeUI(label); + label.paint(g); + if (label.getBackground().getRGB() != c.getRGB()) { + System.err.println("Color mismatch!"); + System.err.println(" found: " + label.getBackground()); + System.err.println(" expected: " + c); + throw new RuntimeException("Test failed"); + } + } + + void test() { + testOverrides(); + testInheritance(); + testNames(); + testBaseColor(); + } + + void testOverrides() { + Color defaultColor = label.getBackground(); + + // override default background + UIDefaults defs = new UIDefaults(); + defs.put("Label.background", new ColorUIResource(Color.RED)); + label.putClientProperty("Nimbus.Overrides", defs); + check(Color.RED); + + // change overriding color + defs = new UIDefaults(); + defs.put("Label.background", new ColorUIResource(Color.GREEN)); + label.putClientProperty("Nimbus.Overrides", defs); + check(Color.GREEN); + + // remove override + label.putClientProperty("Nimbus.Overrides", null); + check(defaultColor); + } + + void testInheritance() { + Color defaultColor = label.getBackground(); + + // more specific setting is in global defaults + UIManager.put("Label[Enabled].background", new ColorUIResource(Color.RED)); + + // less specific one is in overrides + UIDefaults defs = new UIDefaults(); + defs.put("Label.background", new ColorUIResource(Color.GREEN)); + + // global wins + label.putClientProperty("Nimbus.Overrides", defs); + check(Color.RED); + + // now override wins + label.putClientProperty("Nimbus.Overrides.InheritDefaults", false); + check(Color.GREEN); + + // global is back + label.putClientProperty("Nimbus.Overrides.InheritDefaults", true); + check(Color.RED); + + // back to default color + UIManager.put("Label[Enabled].background", null); + label.putClientProperty("Nimbus.Overrides.InheritDefaults", false); + label.putClientProperty("Nimbus.Overrides", null); + check(defaultColor); + } + + void testNames() { + Color defaultColor = label.getBackground(); + + UIManager.put("\"BlueLabel\"[Enabled].background", + new ColorUIResource(Color.BLUE)); + UIManager.put("\"RedLabel\"[Enabled].background", + new ColorUIResource(Color.RED)); + nimbus.register(Region.LABEL, "\"BlueLabel\""); + nimbus.register(Region.LABEL, "\"RedLabel\""); + + label.setName("BlueLabel"); + check(Color.BLUE); + label.setName("RedLabel"); + check(Color.RED); + + // remove name, color goes back to default + label.setName(null); + check(defaultColor); + } + + void testBaseColor() { + UIManager.put("control", Color.GREEN); + check(Color.GREEN); + } +} From 99ec45743497f67ef7e0af6f18ea2f6491d0ea44 Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov Date: Wed, 23 Dec 2009 01:22:11 +0300 Subject: [PATCH 003/109] 6908299: Missed changes for 6664512 during the merge with 6879044 Reviewed-by: mchung, art --- jdk/src/share/classes/sun/util/logging/PlatformLogger.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jdk/src/share/classes/sun/util/logging/PlatformLogger.java b/jdk/src/share/classes/sun/util/logging/PlatformLogger.java index 6fb5050dd02..aed067c384d 100644 --- a/jdk/src/share/classes/sun/util/logging/PlatformLogger.java +++ b/jdk/src/share/classes/sun/util/logging/PlatformLogger.java @@ -535,6 +535,10 @@ public class PlatformLogger { } void doLog(int level, String msg, Object... params) { + int paramsNumber = (params != null) ? params.length : 0; + for (int i = 0; i < paramsNumber; i++) { + params[i] = String.valueOf(params[i]); + } LoggingSupport.log(javaLogger, levelObjects.get(level), msg, params); } From 79b63384b2cc2d5f58dc5d4daf9a71647f1034e1 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev Date: Tue, 22 Dec 2009 17:28:52 +0300 Subject: [PATCH 004/109] 6893325: JComboBox and dragging to an item outside the bounds of the containing JFrame is not selecting that Reviewed-by: art, dcherepanov --- jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java index 30d93365b6e..0b917c56b1f 100644 --- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java +++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java @@ -2144,9 +2144,11 @@ class XWindowPeer extends XPanelPeer implements WindowPeer, // 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.fine("Generating UngrabEvent on {0} because not inside of shell", this); - postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource())); - return; + if (xbe.get_type() == XConstants.ButtonPress) { + grabLog.fine("Generating UngrabEvent on {0} because not inside of shell", this); + postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource())); + return; + } } // First, get the toplevel XWindowPeer toplevel = target.getToplevelXWindow(); From fa9fcae42b8110ce49cc1c4cd32cbe197022e240 Mon Sep 17 00:00:00 2001 From: Alexey Utkin Date: Thu, 24 Dec 2009 17:19:09 +0300 Subject: [PATCH 005/109] 4874070: invoking DragSource's startDrag with an Image renders no image on drag Reviewed-by: art, denis, alexp --- jdk/make/sun/awt/FILES_c_windows.gmk | 2 + jdk/make/sun/awt/Makefile | 5 +- jdk/make/sun/awt/make.depend | 706 +++++++++--------- .../classes/javax/swing/TransferHandler.java | 72 +- .../sun/awt/dnd/SunDragSourceContextPeer.java | 33 +- .../sun/awt/windows/WDataTransferer.java | 33 +- .../awt/windows/WDragSourceContextPeer.java | 62 +- .../classes/sun/awt/windows/WToolkit.java | 2 + jdk/src/windows/lib/flavormap.properties | 2 + jdk/src/windows/native/sun/windows/awt.h | 120 ++- .../native/sun/windows/awt_DCHolder.cpp | 107 +++ .../windows/native/sun/windows/awt_DCHolder.h | 72 ++ .../windows/native/sun/windows/awt_DnDDS.cpp | 249 +++++- .../windows/native/sun/windows/awt_DnDDS.h | 16 +- .../windows/native/sun/windows/awt_DnDDT.cpp | 679 +++++++++++------ .../windows/native/sun/windows/awt_DnDDT.h | 14 +- .../native/sun/windows/awt_Toolkit.cpp | 20 +- .../windows/native/sun/windows/awt_Toolkit.h | 16 +- .../windows/native/sun/windows/awt_ole.cpp | 86 +++ jdk/src/windows/native/sun/windows/awt_ole.h | 194 +++++ .../DnDFileGroupDescriptor.html | 20 + .../DnDFileGroupDescriptor.java | 189 +++++ .../dnd/DnDFileGroupDescriptor/DnDTarget.java | 108 +++ .../awt/dnd/ImageDecoratedDnD/DnDSource.java | 235 ++++++ .../awt/dnd/ImageDecoratedDnD/DnDTarget.java | 113 +++ .../ImageDecoratedDnD/ImageDecoratedDnD.html | 20 + .../ImageDecoratedDnD/ImageDecoratedDnD.java | 199 +++++ .../dnd/ImageDecoratedDnD/ImageGenerator.java | 59 ++ .../awt/dnd/ImageDecoratedDnD/MyCursor.java | 86 +++ .../dnd/ImageDecoratedDnDInOut/DnDSource.java | 235 ++++++ .../dnd/ImageDecoratedDnDInOut/DnDTarget.java | 113 +++ .../ImageDecoratedDnDInOut.html | 20 + .../ImageDecoratedDnDInOut.java | 234 ++++++ .../ImageGenerator.java | 59 ++ .../dnd/ImageDecoratedDnDInOut/MyCursor.java | 86 +++ .../ImageDecoratedDnDNegative/DnDSource.java | 273 +++++++ .../ImageDecoratedDnDNegative/DnDTarget.java | 113 +++ .../ImageDecoratedDnDNegative.html | 20 + .../ImageDecoratedDnDNegative.java | 268 +++++++ .../ImageGenerator.java | 59 ++ .../ImageDecoratedDnDNegative/MyCursor.java | 86 +++ 41 files changed, 4439 insertions(+), 646 deletions(-) create mode 100644 jdk/src/windows/native/sun/windows/awt_DCHolder.cpp create mode 100644 jdk/src/windows/native/sun/windows/awt_DCHolder.h create mode 100644 jdk/src/windows/native/sun/windows/awt_ole.cpp create mode 100644 jdk/src/windows/native/sun/windows/awt_ole.h create mode 100644 jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html create mode 100644 jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.java create mode 100644 jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDTarget.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDSource.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDTarget.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageGenerator.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnD/MyCursor.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDSource.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDTarget.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageGenerator.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/MyCursor.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDSource.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDTarget.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageGenerator.java create mode 100644 jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/MyCursor.java diff --git a/jdk/make/sun/awt/FILES_c_windows.gmk b/jdk/make/sun/awt/FILES_c_windows.gmk index c9eb3482ea6..ba461a386d3 100644 --- a/jdk/make/sun/awt/FILES_c_windows.gmk +++ b/jdk/make/sun/awt/FILES_c_windows.gmk @@ -179,6 +179,8 @@ FILES_cpp = \ awt_Mlib.cpp \ awt_new.cpp \ awt_TrayIcon.cpp \ + awt_DCHolder.cpp \ + awt_ole.cpp \ ShaderList.cpp \ D3DBlitLoops.cpp \ D3DBufImgOps.cpp \ diff --git a/jdk/make/sun/awt/Makefile b/jdk/make/sun/awt/Makefile index c3c1745ff54..009bd8fa4f7 100644 --- a/jdk/make/sun/awt/Makefile +++ b/jdk/make/sun/awt/Makefile @@ -249,13 +249,14 @@ ifeq ($(PLATFORM), windows) # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS OTHER_LDLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \ imm32.lib ole32.lib uuid.lib shell32.lib \ - comdlg32.lib winmm.lib comctl32.lib delayimp.lib \ + comdlg32.lib winmm.lib comctl32.lib \ + shlwapi.lib delayimp.lib \ $(JVMLIB) \ /DELAYLOAD:user32.dll /DELAYLOAD:gdi32.dll \ /DELAYLOAD:shell32.dll /DELAYLOAD:winmm.dll \ /DELAYLOAD:winspool.drv /DELAYLOAD:imm32.dll \ /DELAYLOAD:ole32.dll /DELAYLOAD:comdlg32.dll \ - /DELAYLOAD:comctl32.dll + /DELAYLOAD:comctl32.dll /DELAYLOAD:shlwapi.dll clean:: awt.clean diff --git a/jdk/make/sun/awt/make.depend b/jdk/make/sun/awt/make.depend index 8c0fa65ef16..e6bdfc239c2 100644 --- a/jdk/make/sun/awt/make.depend +++ b/jdk/make/sun/awt/make.depend @@ -1,351 +1,355 @@ -$(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 +$(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_DCHolder.obj:: ../../../src/windows/native/sun/windows/awt_DCHolder.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_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/awt_ole.h + +$(OBJDIR)/awt_ole.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 ../../../src/windows/native/sun/windows/awt_ole.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 diff --git a/jdk/src/share/classes/javax/swing/TransferHandler.java b/jdk/src/share/classes/javax/swing/TransferHandler.java index cb1e2ccb907..5ea41ed3292 100644 --- a/jdk/src/share/classes/javax/swing/TransferHandler.java +++ b/jdk/src/share/classes/javax/swing/TransferHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * 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 @@ -627,6 +627,69 @@ public class TransferHandler implements Serializable { this(null); } + + /** + * image for the {@code startDrag} method + * + * @see java.awt.dnd.DragGestureEvent#startDrag(Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl) + */ + private Image dragImage; + + /** + * anchor offset for the {@code startDrag} method + * + * @see java.awt.dnd.DragGestureEvent#startDrag(Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl) + */ + private Point dragImageOffset; + + /** + * Sets the drag image parameter. The image has to be prepared + * for rendering by the moment of the call. The image is stored + * by reference because of some performance reasons. + * + * @param img an image to drag + */ + public void setDragImage(Image img) { + dragImage = img; + } + + /** + * Returns the drag image. If there is no image to drag, + * the returned value is {@code null}. + * + * @return the reference to the drag image + */ + public Image getDragImage() { + return dragImage; + } + + /** + * Sets an anchor offset for the image to drag. + * It can not be {@code null}. + * + * @param p a {@code Point} object that corresponds + * to coordinates of an anchor offset of the image + * relative to the upper left corner of the image + */ + public void setDragImageOffset(Point p) { + dragImageOffset = new Point(p); + } + + /** + * Returns an anchor offset for the image to drag. + * + * @return a {@code Point} object that corresponds + * to coordinates of an anchor offset of the image + * relative to the upper left corner of the image. + * The point {@code (0,0)} returns by default. + */ + public Point getDragImageOffset() { + if (dragImageOffset == null) { + return new Point(0,0); + } + return new Point(dragImageOffset); + } + /** * Causes the Swing drag support to be initiated. This is called by * the various UI implementations in the javax.swing.plaf.basic @@ -1522,7 +1585,12 @@ public class TransferHandler implements Serializable { scrolls = c.getAutoscrolls(); c.setAutoscrolls(false); try { - dge.startDrag(null, t, this); + Image im = th.getDragImage(); + if (im == null) { + dge.startDrag(null, t, this); + } else { + dge.startDrag(null, im, th.getDragImageOffset(), t, this); + } return; } catch (RuntimeException re) { c.setAutoscrolls(scrolls); diff --git a/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java b/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java index a99907b03df..d6826dfabff 100644 --- a/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java +++ b/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * 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 @@ -67,6 +67,8 @@ public abstract class SunDragSourceContextPeer implements DragSourceContextPeer private DragGestureEvent trigger; private Component component; private Cursor cursor; + private Image dragImage; + private Point dragImageOffset; private long nativeCtxt; private DragSourceContext dragSourceContext; private int sourceActions; @@ -120,6 +122,8 @@ public abstract class SunDragSourceContextPeer implements DragSourceContextPeer dragSourceContext = dsc; cursor = c; sourceActions = getDragSourceContext().getSourceActions(); + dragImage = di; + dragImageOffset = p; Transferable transferable = getDragSourceContext().getTransferable(); SortedMap formatMap = DataTransferer.getInstance().getFormatsForTransferable @@ -168,6 +172,31 @@ public abstract class SunDragSourceContextPeer implements DragSourceContextPeer return cursor; } + /** + * Returns the drag image. If there is no image to drag, + * the returned value is {@code null} + * + * @return the reference to the drag image + */ + public Image getDragImage() { + return dragImage; + } + + /** + * Returns an anchor offset for the image to drag. + * + * @return a {@code Point} object that corresponds + * to coordinates of an anchor offset of the image + * relative to the upper left corner of the image. + * The point {@code (0,0)} returns by default. + */ + public Point getDragImageOffset() { + if (dragImageOffset == null) { + return new Point(0,0); + } + return new Point(dragImageOffset); + } + /** * downcall into native code */ @@ -317,6 +346,8 @@ public abstract class SunDragSourceContextPeer implements DragSourceContextPeer startSecondaryEventLoop(); setNativeContext(0); + dragImage = null; + dragImageOffset = null; } public static void setDragDropInProgress(boolean b) diff --git a/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java b/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java index ec19fcd1b49..cb248d9bba6 100644 --- a/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java +++ b/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. + * 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 @@ -56,6 +56,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.io.File; import java.net.URL; @@ -130,6 +131,10 @@ public class WDataTransferer extends DataTransferer { public static final long CF_PNG = registerClipboardFormat("PNG"); public static final long CF_JFIF = registerClipboardFormat("JFIF"); + public static final long CF_FILEGROUPDESCRIPTORW = registerClipboardFormat("FileGroupDescriptorW"); + public static final long CF_FILEGROUPDESCRIPTORA = registerClipboardFormat("FileGroupDescriptor"); + //CF_FILECONTENTS supported as mandatory associated clipboard + private static final Long L_CF_LOCALE = (Long) predefinedClipboardNameMap.get(predefinedClipboardNames[CF_LOCALE]); @@ -203,6 +208,30 @@ public class WDataTransferer extends DataTransferer { str = new HTMLCodec(str, EHTMLReadMode.HTML_READ_SELECTION); } + if (format == CF_FILEGROUPDESCRIPTORA || format == CF_FILEGROUPDESCRIPTORW) { + if (null != str ) { + str.close(); + } + if (bytes == null || !DataFlavor.javaFileListFlavor.equals(flavor)) { + throw new IOException("data translation failed"); + } + String st = new String(bytes, 0, bytes.length, "UTF-16LE"); + String[] filenames = st.split("\0"); + if( 0 == filenames.length ){ + return null; + } + + // Convert the strings to File objects + File[] files = new File[filenames.length]; + for (int i = 0; i < filenames.length; ++i) { + files[i] = new File(filenames[i]); + //They are temp-files from memory Stream, so they have to be removed on exit + files[i].deleteOnExit(); + } + // Turn the list of Files into a List and return + return Arrays.asList(files); + } + if (format == CFSTR_INETURL && URL.class.equals(flavor.getRepresentationClass())) { @@ -233,7 +262,7 @@ public class WDataTransferer extends DataTransferer { } public boolean isFileFormat(long format) { - return format == CF_HDROP; + return format == CF_HDROP || format == CF_FILEGROUPDESCRIPTORA || format == CF_FILEGROUPDESCRIPTORW; } protected Long getFormatForNativeAsLong(String str) { diff --git a/jdk/src/windows/classes/sun/awt/windows/WDragSourceContextPeer.java b/jdk/src/windows/classes/sun/awt/windows/WDragSourceContextPeer.java index 1cb45d1aace..ed9ceee2ddf 100644 --- a/jdk/src/windows/classes/sun/awt/windows/WDragSourceContextPeer.java +++ b/jdk/src/windows/classes/sun/awt/windows/WDragSourceContextPeer.java @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -27,6 +27,10 @@ package sun.awt.windows; import java.awt.Component; import java.awt.Cursor; +import java.awt.Image; +import java.awt.Point; +import java.awt.image.BufferedImage; +import java.awt.image.DataBufferInt; import java.awt.datatransfer.Transferable; @@ -88,11 +92,56 @@ final class WDragSourceContextPeer extends SunDragSourceContextPeer { throw new InvalidDnDOperationException("failed to create native peer"); } - setNativeContext(nativeCtxtLocal); + int[] imageData = null; + Point op = null; + Image im = getDragImage(); + int imageWidth = -1; + int imageHeight = -1; + if (im != null) { + //image is ready (partial images are ok) + try{ + imageWidth = im.getWidth(null); + imageHeight = im.getHeight(null); + if (imageWidth < 0 || imageHeight < 0) { + throw new InvalidDnDOperationException("drag image is not ready"); + } + //We could get an exception from user code here. + //"im" and "dragImageOffset" are user-defined objects + op = getDragImageOffset(); //op could not be null here + BufferedImage bi = new BufferedImage( + imageWidth, + imageHeight, + BufferedImage.TYPE_INT_ARGB); + bi.getGraphics().drawImage(im, 0, 0, null); + + //we can get out-of-memory here + imageData = ((DataBufferInt)bi.getData().getDataBuffer()).getData(); + } catch (Throwable ex) { + throw new InvalidDnDOperationException("drag image creation problem: " + ex.getMessage()); + } + } + + //We shouldn't have user-level exceptions since now. + //Any exception leads to corrupted D'n'D state. + setNativeContext(nativeCtxtLocal); WDropTargetContextPeer.setCurrentJVMLocalSourceTransferable(trans); - doDragDrop(getNativeContext(), getCursor()); + if (imageData != null) { + doDragDrop( + getNativeContext(), + getCursor(), + imageData, + imageWidth, imageHeight, + op.x, op.y); + } else { + doDragDrop( + getNativeContext(), + getCursor(), + null, + -1, -1, + 0, 0); + } } /** @@ -110,7 +159,12 @@ final class WDragSourceContextPeer extends SunDragSourceContextPeer { * downcall into native code */ - native void doDragDrop(long nativeCtxt, Cursor cursor); + native void doDragDrop( + long nativeCtxt, + Cursor cursor, + int[] imageData, + int imgWidth, int imgHight, + int offsetX, int offsetY); protected native void setNativeCursor(long nativeCtxt, Cursor c, int cType); diff --git a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java index 465c8ef3ab9..b822cf654d2 100644 --- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java +++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java @@ -895,6 +895,8 @@ public class WToolkit extends SunToolkit implements Runnable { Integer.valueOf(50)); desktopProperties.put("DnD.Autoscroll.interval", Integer.valueOf(50)); + desktopProperties.put("DnD.isDragImageSupported", + Boolean.TRUE); desktopProperties.put("Shell.shellFolderManager", "sun.awt.shell.Win32ShellFolderManager2"); } diff --git a/jdk/src/windows/lib/flavormap.properties b/jdk/src/windows/lib/flavormap.properties index 0a083515448..c80f1cf90f0 100644 --- a/jdk/src/windows/lib/flavormap.properties +++ b/jdk/src/windows/lib/flavormap.properties @@ -73,3 +73,5 @@ LOCALE=application/x-java-text-encoding;class="[B" UniformResourceLocator=application/x-java-url;class=java.net.URL UniformResourceLocator=text/uri-list;eoln="\r\n";terminators=1 UniformResourceLocator=text/plain;eoln="\r\n";terminators=1 +FileGroupDescriptorW=application/x-java-file-list;class=java.util.List +FileGroupDescriptor=application/x-java-file-list;class=java.util.List diff --git a/jdk/src/windows/native/sun/windows/awt.h b/jdk/src/windows/native/sun/windows/awt.h index cd4791fd257..bc9a0cca62f 100644 --- a/jdk/src/windows/native/sun/windows/awt.h +++ b/jdk/src/windows/native/sun/windows/awt.h @@ -1,5 +1,5 @@ /* - * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-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 @@ -233,4 +233,122 @@ extern JavaVM *jvm; #define CHECK_ISNOT_TOOLKIT_THREAD() #endif + +struct EnvHolder +{ + JavaVM *m_pVM; + JNIEnv *m_env; + bool m_isOwner; + EnvHolder( + JavaVM *pVM, + LPCSTR name = "COM holder", + jint ver = JNI_VERSION_1_2) + : m_pVM(pVM), + m_env((JNIEnv *)JNU_GetEnv(pVM, ver)), + m_isOwner(false) + { + if (NULL == m_env) { + JavaVMAttachArgs attachArgs; + attachArgs.version = ver; + attachArgs.name = const_cast(name); + attachArgs.group = NULL; + jint status = m_pVM->AttachCurrentThread( + (void**)&m_env, + &attachArgs); + m_isOwner = (NULL!=m_env); + } + } + ~EnvHolder() { + if (m_isOwner) { + m_pVM->DetachCurrentThread(); + } + } + operator bool() const { return NULL!=m_env; } + bool operator !() const { return NULL==m_env; } + operator JNIEnv*() const { return m_env; } + JNIEnv* operator ->() const { return m_env; } +}; + +template +class JLocalRef { + JNIEnv* m_env; + T m_localJRef; + +public: + JLocalRef(JNIEnv* env, T localJRef = NULL) + : m_env(env), + m_localJRef(localJRef) + {} + T Detach() { + T ret = m_localJRef; + m_localJRef = NULL; + return ret; + } + void Attach(T newValue) { + if (m_localJRef) { + m_env->DeleteLocalRef((jobject)m_localJRef); + } + m_localJRef = newValue; + } + + operator T() { return m_localJRef; } + operator bool() { return NULL!=m_localJRef; } + bool operator !() { return NULL==m_localJRef; } + + ~JLocalRef() { + if (m_localJRef) { + m_env->DeleteLocalRef((jobject)m_localJRef); + } + } +}; + +typedef JLocalRef JLObject; +typedef JLocalRef JLString; +typedef JLocalRef JLClass; + +/* + * Class to encapsulate the extraction of the java string contents + * into a buffer and the cleanup of the buffer + */ + class JavaStringBuffer +{ +protected: + LPWSTR m_pStr; + jsize m_dwSize; + +public: + JavaStringBuffer(jsize cbTCharCount) { + m_dwSize = cbTCharCount; + m_pStr = (LPWSTR)safe_Malloc( (m_dwSize+1)*sizeof(WCHAR) ); + } + + JavaStringBuffer(JNIEnv *env, jstring text) { + if (NULL == text) { + m_pStr = L""; + m_dwSize = 0; + } else { + m_dwSize = env->GetStringLength(text); + m_pStr = (LPWSTR)safe_Malloc( (m_dwSize+1)*sizeof(WCHAR) ); + env->GetStringRegion(text, 0, m_dwSize, reinterpret_cast(m_pStr)); + m_pStr[m_dwSize] = 0; + } + } + + + ~JavaStringBuffer() { + free(m_pStr); + } + + void Resize(jsize cbTCharCount) { + m_dwSize = cbTCharCount; + m_pStr = (LPWSTR)safe_Realloc(m_pStr, (m_dwSize+1)*sizeof(WCHAR) ); + } + //we are in UNICODE now, so LPWSTR:=:LPTSTR + operator LPWSTR() { return m_pStr; } + operator LPARAM() { return (LPARAM)m_pStr; } + void *GetData() { return (void *)m_pStr; } + jsize GetSize() { return m_dwSize; } +}; + + #endif /* _AWT_H_ */ diff --git a/jdk/src/windows/native/sun/windows/awt_DCHolder.cpp b/jdk/src/windows/native/sun/windows/awt_DCHolder.cpp new file mode 100644 index 00000000000..47f3ba6f3e8 --- /dev/null +++ b/jdk/src/windows/native/sun/windows/awt_DCHolder.cpp @@ -0,0 +1,107 @@ +/* + * 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. 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. + */ + +#include "awt.h" +#include "awt_ole.h" +#include "awt_DCHolder.h" // main symbols + + +//////////////////////// +// struct DCHolder + +DCHolder::DCHolder() +: m_hMemoryDC(NULL), + m_iWidth(0), + m_iHeight(0), + m_bForImage(FALSE), + m_hBitmap(NULL), + m_hOldBitmap(NULL), + m_pPoints(NULL) +{} + +void DCHolder::Create( + HDC hRelDC, + int iWidth, + int iHeght, + BOOL bForImage +){ + OLE_DECL + m_iWidth = iWidth; + m_iHeight = iHeght; + m_bForImage = bForImage; + m_hMemoryDC = ::CreateCompatibleDC(hRelDC); + //NB: can not throw an error in non-safe stack!!! Just conversion and logging! + //OLE_WINERROR2HR just set OLE_HR without any throw! + if (!m_hMemoryDC) { + OLE_THROW_LASTERROR(_T("CreateCompatibleDC")) + } + m_hBitmap = m_bForImage + ? CreateJavaContextBitmap(hRelDC, m_iWidth, m_iHeight, &m_pPoints) + : ::CreateCompatibleBitmap(hRelDC, m_iWidth, m_iHeight); + if (!m_hBitmap) { + OLE_THROW_LASTERROR(_T("CreateCompatibleBitmap")) + } + m_hOldBitmap = (HBITMAP)::SelectObject(m_hMemoryDC, m_hBitmap); + if (!m_hOldBitmap) { + OLE_THROW_LASTERROR(_T("SelectBMObject")) + } +} + +DCHolder::~DCHolder(){ + if (m_hOldBitmap) { + ::SelectObject(m_hMemoryDC, m_hOldBitmap); + } + if (m_hBitmap) { + ::DeleteObject(m_hBitmap); + } + if (m_hMemoryDC) { + ::DeleteDC(m_hMemoryDC); + } +}; + + +HBITMAP DCHolder::CreateJavaContextBitmap( + HDC hdc, + int iWidth, + int iHeight, + void **ppPoints) +{ + BITMAPINFO bitmapInfo = {0}; + bitmapInfo.bmiHeader.biWidth = iWidth; + bitmapInfo.bmiHeader.biHeight = -iHeight; + bitmapInfo.bmiHeader.biPlanes = 1; + bitmapInfo.bmiHeader.biBitCount = 32; + bitmapInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + bitmapInfo.bmiHeader.biCompression = BI_RGB; + + return ::CreateDIBSection( + hdc, + (BITMAPINFO *)&bitmapInfo, + DIB_RGB_COLORS, + (void **)ppPoints, + NULL, + 0 + ); +} diff --git a/jdk/src/windows/native/sun/windows/awt_DCHolder.h b/jdk/src/windows/native/sun/windows/awt_DCHolder.h new file mode 100644 index 00000000000..1e5ec0ed660 --- /dev/null +++ b/jdk/src/windows/native/sun/windows/awt_DCHolder.h @@ -0,0 +1,72 @@ +/* + * 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. 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 _AWT_DCHolder_H +#define _AWT_DCHolder_H + +struct DCHolder +{ + HDC m_hMemoryDC; + int m_iWidth; + int m_iHeight; + BOOL m_bForImage; + HBITMAP m_hBitmap; + HBITMAP m_hOldBitmap; + void *m_pPoints; + + DCHolder(); + ~DCHolder(); + + void Create( + HDC hRelDC, + int iWidth, + int iHeght, + BOOL bForImage); + + operator HDC() + { + if (NULL == m_hOldBitmap && NULL != m_hBitmap) { + m_hOldBitmap = (HBITMAP)::SelectObject(m_hMemoryDC, m_hBitmap); + } + return m_hMemoryDC; + } + + operator HBITMAP() + { + if (NULL != m_hOldBitmap) { + m_hBitmap = (HBITMAP)::SelectObject(m_hMemoryDC, m_hOldBitmap); + m_hOldBitmap = NULL; + } + return m_hBitmap; + } + + static HBITMAP CreateJavaContextBitmap( + HDC hdc, + int iWidth, + int iHeight, + void **ppPoints); +}; + +#endif //_AWT_DCHolder_H diff --git a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp index b0438eae061..eb69e8bf681 100644 --- a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp +++ b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -23,7 +23,25 @@ * have any questions. */ -#include "awt.h" +#pragma push_macro("bad_alloc") +//"bad_alloc" would be introduced in STL as "std::zbad_alloc" and discarded by linker +//by this action we avoid the conflict with AWT implementation of "bad_alloc" +//we need inclusion for STL "new" oprators set. +#define bad_alloc zbad_alloc +#include +#pragma pop_macro("bad_alloc") +//"bad_alloc" is undefined from here + +#if defined(_DEBUG) || defined(DEBUG) + extern void * operator new(size_t size, const char * filename, int linenumber); + void * operator new(size_t size) {return operator new(size, "stl", 1);} +#endif + +#include +#include +#include +#include + #include "jlong.h" #include "awt_DataTransferer.h" #include "awt_DnDDS.h" @@ -37,8 +55,14 @@ #include "sun_awt_dnd_SunDragSourceContextPeer.h" #include "sun_awt_windows_WDragSourceContextPeer.h" -#include -#include +#include "awt_ole.h" +#include "awt_DCHolder.h" + +bool operator < (const FORMATETC &fr, const FORMATETC &fl) { + return memcmp(&fr, &fl, sizeof(FORMATETC)) < 0; +} + +typedef std::map CDataMap; #define GALLOCFLG (GMEM_DDESHARE | GMEM_MOVEABLE | GMEM_ZEROINIT) #define JAVA_BUTTON_MASK (java_awt_event_InputEvent_BUTTON1_DOWN_MASK | \ @@ -50,19 +74,155 @@ DWORD __cdecl convertActionsToDROPEFFECT(jint actions); jint __cdecl convertDROPEFFECTToActions(DWORD effects); } +class PictureDragHelper +{ +private: + static CDataMap st; + static IDragSourceHelper *pHelper; +public: + static HRESULT Create( + JNIEnv* env, + jintArray imageData, + int imageWidth, + int imageHeight, + int anchorX, + int anchorY, + IDataObject *pIDataObject) + { + if (NULL == imageData) { + return S_FALSE; + } + OLE_TRY + OLE_HRT( CoCreateInstance( + CLSID_DragDropHelper, + NULL, + CLSCTX_ALL, + IID_IDragSourceHelper, + (LPVOID*)&pHelper)) + + jintArray ia = imageData; + jsize iPointCoint = env->GetArrayLength(ia); + + DCHolder ph; + ph.Create(NULL, imageWidth, imageHeight, TRUE); + env->GetIntArrayRegion(ia, 0, iPointCoint, (jint*)ph.m_pPoints); + + SHDRAGIMAGE sdi; + sdi.sizeDragImage.cx = imageWidth; + sdi.sizeDragImage.cy = imageHeight; + sdi.ptOffset.x = anchorX; + sdi.ptOffset.y = anchorY; + sdi.crColorKey = 0xFFFFFFFF; + sdi.hbmpDragImage = ph; + + // this call assures that the bitmap will be dragged around + OLE_HR = pHelper->InitializeFromBitmap( + &sdi, + pIDataObject + ); + // in case of an error we need to destroy the image, else the helper object takes ownership + if (FAILED(OLE_HR)) { + DeleteObject(sdi.hbmpDragImage); + } + OLE_CATCH + OLE_RETURN_HR + } + + static void Destroy() + { + if (NULL!=pHelper) { + CleanFormatMap(); + pHelper->Release(); + pHelper = NULL; + } + } + + static void CleanFormatMap() + { + for (CDataMap::iterator i = st.begin(); st.end() != i; i = st.erase(i)) { + ::ReleaseStgMedium(&i->second); + } + } + static void SetData(const FORMATETC &format, const STGMEDIUM &medium) + { + CDataMap::iterator i = st.find(format); + if (st.end() != i) { + ::ReleaseStgMedium(&i->second); + i->second = medium; + } else { + st[format] = medium; + } + } + static const FORMATETC *FindFormat(const FORMATETC &format) + { + static FORMATETC fm = {0}; + CDataMap::iterator i = st.find(format); + if (st.end() != i) { + return &i->first; + } + for (i = st.begin(); st.end() != i; ++i) { + if (i->first.cfFormat==format.cfFormat) { + return &i->first; + } + } + return NULL; + } + static STGMEDIUM *FindData(const FORMATETC &format) + { + CDataMap::iterator i = st.find(format); + if (st.end() != i) { + return &i->second; + } + for (i = st.begin(); st.end() != i; ++i) { + const FORMATETC &f = i->first; + if (f.cfFormat==format.cfFormat && (f.tymed == (f.tymed & format.tymed))) { + return &i->second; + } + } + return NULL; + } +}; + + +CDataMap PictureDragHelper::st; +IDragSourceHelper *PictureDragHelper::pHelper = NULL; + +extern const CLIPFORMAT CF_PERFORMEDDROPEFFECT = ::RegisterClipboardFormat(CFSTR_PERFORMEDDROPEFFECT); +extern const CLIPFORMAT CF_FILEGROUPDESCRIPTORW = ::RegisterClipboardFormat(CFSTR_FILEDESCRIPTORW); +extern const CLIPFORMAT CF_FILEGROUPDESCRIPTORA = ::RegisterClipboardFormat(CFSTR_FILEDESCRIPTORA); +extern const CLIPFORMAT CF_FILECONTENTS = ::RegisterClipboardFormat(CFSTR_FILECONTENTS); + typedef struct { AwtDragSource* dragSource; jobject cursor; + jintArray imageData; + jint imageWidth; + jint imageHeight; + jint x; + jint y; } StartDragRec; /** * StartDrag */ -void AwtDragSource::StartDrag(AwtDragSource* self, jobject cursor) { +void AwtDragSource::StartDrag( + AwtDragSource* self, + jobject cursor, + jintArray imageData, + jint imageWidth, + jint imageHeight, + jint x, + jint y) +{ StartDragRec* sdrp = new StartDragRec; sdrp->dragSource = self; + sdrp->imageData = imageData; sdrp->cursor = cursor; + sdrp->imageWidth = imageWidth; + sdrp->imageHeight = imageHeight; + sdrp->x = x; + sdrp->y = y; AwtToolkit::GetInstance().WaitForSingleObject(self->m_mutex); @@ -82,6 +242,17 @@ void AwtDragSource::_DoDragDrop(void* param) { JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); jobject peer = env->NewLocalRef(dragSource->GetPeer()); + if (sdrp->imageData) { + PictureDragHelper::Create( + env, + sdrp->imageData, + sdrp->imageWidth, + sdrp->imageHeight, + sdrp->x, + sdrp->y, + (IDataObject*)dragSource); + env->DeleteGlobalRef(sdrp->imageData); + } dragSource->SetCursor(sdrp->cursor); env->DeleteGlobalRef(sdrp->cursor); delete sdrp; @@ -116,6 +287,7 @@ void AwtDragSource::_DoDragDrop(void* param) { DASSERT(AwtDropTarget::IsCurrentDnDDataObject(dragSource)); AwtDropTarget::SetCurrentDnDDataObject(NULL); + PictureDragHelper::Destroy(); dragSource->Release(); } @@ -268,7 +440,10 @@ void AwtDragSource::LoadCache(jlongArray formats) { idx++; // now make a copy, but with a TYMED of HGLOBAL - memcpy(m_types + idx, m_types + idx - 1, sizeof(FORMATETC)); + m_types[idx] = m_types[idx-1]; + m_types[idx].tymed = TYMED_HGLOBAL; + idx++; + break; case CF_HDROP: m_types[idx].tymed = TYMED_HGLOBAL; idx++; @@ -348,6 +523,14 @@ AwtDragSource::MatchFormatEtc(FORMATETC __RPC_FAR *pFormatEtcIn, FORMATETC *cacheEnt) { TRY; + const FORMATETC *pFormat = PictureDragHelper::FindFormat(*pFormatEtcIn); + if (NULL != pFormat) { + if (NULL != cacheEnt) { + *cacheEnt = *pFormat; + } + return S_OK; + } + if ((pFormatEtcIn->tymed & (TYMED_HGLOBAL | TYMED_ISTREAM | TYMED_ENHMF | TYMED_MFPICT)) == 0) { return DV_E_TYMED; @@ -357,8 +540,7 @@ AwtDragSource::MatchFormatEtc(FORMATETC __RPC_FAR *pFormatEtcIn, return DV_E_DVASPECT; } - FORMATETC tmp; - memcpy(&tmp, pFormatEtcIn, sizeof(FORMATETC)); + FORMATETC tmp = *pFormatEtcIn; static const DWORD supportedTymeds[] = { TYMED_ISTREAM, TYMED_HGLOBAL, TYMED_ENHMF, TYMED_MFPICT }; @@ -367,22 +549,22 @@ AwtDragSource::MatchFormatEtc(FORMATETC __RPC_FAR *pFormatEtcIn, for (int i = 0; i < nSupportedTymeds; i++) { /* * Fix for BugTraq Id 4426805. - * Match only if the tymed is supported by the requestor. + * Match only if the tymed is supported by the requester. */ if ((pFormatEtcIn->tymed & supportedTymeds[i]) == 0) { continue; } tmp.tymed = supportedTymeds[i]; - FORMATETC *cp = (FORMATETC *)bsearch((const void *)&tmp, + pFormat = (const FORMATETC *)bsearch((const void *)&tmp, (const void *)m_types, (size_t) m_ntypes, (size_t) sizeof(FORMATETC), _compar ); - if (cp != (FORMATETC *)NULL) { + if (NULL != pFormat) { if (cacheEnt != (FORMATETC *)NULL) { - memcpy(cacheEnt, cp, sizeof(FORMATETC)); + *cacheEnt = *pFormat; } return S_OK; } @@ -481,7 +663,7 @@ HRESULT __stdcall AwtDragSource::QueryContinueDrag(BOOL fEscapeKeyPressed, DWOR //CR 6480706 - MS Bug on hold HCURSOR hNeedCursor; - if( + if ( m_bRestoreNodropCustomCursor && m_cursor != NULL && (hNeedCursor = m_cursor->GetHCursor()) != ::GetCursor() ) @@ -579,6 +761,19 @@ HRESULT __stdcall AwtDragSource::GiveFeedback(DWORD dwEffect) { HRESULT __stdcall AwtDragSource::GetData(FORMATETC __RPC_FAR *pFormatEtc, STGMEDIUM __RPC_FAR *pmedium) { TRY; + STGMEDIUM *pPicMedia = PictureDragHelper::FindData(*pFormatEtc); + if (NULL != pPicMedia) { + *pmedium = *pPicMedia; + //return outside, so AddRef the instance of pstm or hGlobal! + if (pmedium->tymed == TYMED_ISTREAM) { + pmedium->pstm->AddRef(); + pmedium->pUnkForRelease = (IUnknown *)NULL; + } else if (pmedium->tymed == TYMED_HGLOBAL) { + AddRef(); + pmedium->pUnkForRelease = (IDropSource *)this; + } + return S_OK; + } HRESULT res = GetProcessId(pFormatEtc, pmedium); if (res == S_OK) { @@ -870,8 +1065,6 @@ HRESULT __stdcall AwtDragSource::GetCanonicalFormatEtc(FORMATETC __RPC_FAR *pFo */ HRESULT __stdcall AwtDragSource::SetData(FORMATETC __RPC_FAR *pFormatEtc, STGMEDIUM __RPC_FAR *pmedium, BOOL fRelease) { - static CLIPFORMAT CF_PERFORMEDDROPEFFECT = ::RegisterClipboardFormat(CFSTR_PERFORMEDDROPEFFECT); - if (pFormatEtc->cfFormat == CF_PERFORMEDDROPEFFECT && pmedium->tymed == TYMED_HGLOBAL) { m_dwPerformedDropEffect = *(DWORD*)::GlobalLock(pmedium->hGlobal); ::GlobalUnlock(pmedium->hGlobal); @@ -880,6 +1073,12 @@ HRESULT __stdcall AwtDragSource::SetData(FORMATETC __RPC_FAR *pFormatEtc, STGMED } return S_OK; } + + if (fRelease) { + //we are copying pmedium as a structure for further use, so no any release! + PictureDragHelper::SetData(*pFormatEtc, *pmedium); + return S_OK; + } return E_UNEXPECTED; } @@ -1538,12 +1737,28 @@ Java_sun_awt_windows_WDragSourceContextPeer_createDragSource( * doDragDrop */ -JNIEXPORT void JNICALL Java_sun_awt_windows_WDragSourceContextPeer_doDragDrop(JNIEnv* env, jobject self, jlong nativeCtxt, jobject cursor) { +JNIEXPORT void JNICALL Java_sun_awt_windows_WDragSourceContextPeer_doDragDrop( + JNIEnv* env, + jobject self, + jlong nativeCtxt, + jobject cursor, + jintArray imageData, + jint imageWidth, jint imageHeight, + jint x, jint y) +{ TRY; cursor = env->NewGlobalRef(cursor); + if (NULL != imageData) { + imageData = (jintArray)env->NewGlobalRef(imageData); + } - AwtDragSource::StartDrag((AwtDragSource*)nativeCtxt, cursor); + AwtDragSource::StartDrag( + (AwtDragSource*)nativeCtxt, + cursor, + imageData, + imageWidth, imageHeight, + x, y); CATCH_BAD_ALLOC; } diff --git a/jdk/src/windows/native/sun/windows/awt_DnDDS.h b/jdk/src/windows/native/sun/windows/awt_DnDDS.h index 305683a3647..0c32ae966c9 100644 --- a/jdk/src/windows/native/sun/windows/awt_DnDDS.h +++ b/jdk/src/windows/native/sun/windows/awt_DnDDS.h @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -84,7 +84,14 @@ class AwtDragSource : virtual public IDropSource, virtual public IDataObject { // AwtDragSource - static void StartDrag(AwtDragSource* self, jobject cursor); + static void StartDrag( + AwtDragSource* self, + jobject cursor, + jintArray imageData, + jint imageWidth, + jint imageHeight, + jint x, + jint y); HRESULT ChangeCursor(); void SetCursor(jobject cursor); @@ -268,4 +275,9 @@ class AwtDragSource : virtual public IDropSource, virtual public IDataObject { static jfieldID awtIEmods; }; +extern const CLIPFORMAT CF_PERFORMEDDROPEFFECT; +extern const CLIPFORMAT CF_FILEGROUPDESCRIPTORA; +extern const CLIPFORMAT CF_FILEGROUPDESCRIPTORW; +extern const CLIPFORMAT CF_FILECONTENTS; + #endif /* AWT_DND_DS_H */ diff --git a/jdk/src/windows/native/sun/windows/awt_DnDDT.cpp b/jdk/src/windows/native/sun/windows/awt_DnDDT.cpp index fce80f468b2..76c4499646b 100644 --- a/jdk/src/windows/native/sun/windows/awt_DnDDT.cpp +++ b/jdk/src/windows/native/sun/windows/awt_DnDDT.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -24,24 +24,27 @@ */ #include "awt.h" +#include +#include +#include + #include "awt_DataTransferer.h" -#include "awt_DnDDT.h" -#include "awt_DnDDS.h" #include "awt_Toolkit.h" #include "java_awt_dnd_DnDConstants.h" #include "sun_awt_windows_WDropTargetContextPeer.h" #include "awt_Container.h" +#include "alloc.h" +#include "awt_ole.h" +#include "awt_DnDDT.h" +#include "awt_DnDDS.h" -#include -#include // forwards extern "C" { -DWORD __cdecl convertActionsToDROPEFFECT(jint actions); -jint __cdecl convertDROPEFFECTToActions(DWORD effects); - -DWORD __cdecl mapModsToDROPEFFECT(DWORD, DWORD); + DWORD __cdecl convertActionsToDROPEFFECT(jint actions); + jint __cdecl convertDROPEFFECTToActions(DWORD effects); + DWORD __cdecl mapModsToDROPEFFECT(DWORD, DWORD); } // extern "C" @@ -64,6 +67,7 @@ AwtDropTarget::AwtDropTarget(JNIEnv* env, AwtComponent* component) { m_dtcp = NULL; m_cfFormats = NULL; m_mutex = ::CreateMutex(NULL, FALSE, NULL); + m_pIDropTargetHelper = NULL; } /** @@ -129,6 +133,13 @@ ULONG __stdcall AwtDropTarget::Release() { HRESULT __stdcall AwtDropTarget::DragEnter(IDataObject __RPC_FAR *pDataObj, DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect) { TRY; + if (NULL != m_pIDropTargetHelper) { + m_pIDropTargetHelper->DragEnter( + m_window, + pDataObj, + (LPPOINT)&pt, + *pdwEffect); + } AwtInterfaceLocker _lk(this); @@ -200,6 +211,12 @@ HRESULT __stdcall AwtDropTarget::DragEnter(IDataObject __RPC_FAR *pDataObj, DWOR HRESULT __stdcall AwtDropTarget::DragOver(DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect) { TRY; + if (NULL != m_pIDropTargetHelper) { + m_pIDropTargetHelper->DragOver( + (LPPOINT)&pt, + *pdwEffect + ); + } AwtInterfaceLocker _lk(this); @@ -250,6 +267,9 @@ HRESULT __stdcall AwtDropTarget::DragOver(DWORD grfKeyState, POINTL pt, DWORD __ HRESULT __stdcall AwtDropTarget::DragLeave() { TRY_NO_VERIFY; + if (NULL != m_pIDropTargetHelper) { + m_pIDropTargetHelper->DragLeave(); + } AwtInterfaceLocker _lk(this); @@ -288,7 +308,13 @@ HRESULT __stdcall AwtDropTarget::DragLeave() { HRESULT __stdcall AwtDropTarget::Drop(IDataObject __RPC_FAR *pDataObj, DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect) { TRY; - + if (NULL != m_pIDropTargetHelper) { + m_pIDropTargetHelper->Drop( + pDataObj, + (LPPOINT)&pt, + *pdwEffect + ); + } AwtInterfaceLocker _lk(this); JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); @@ -410,9 +436,22 @@ void AwtDropTarget::RegisterTarget(WORD show) { // if we are'nt yet visible, defer until the parent is! if (show) { - res = ::RegisterDragDrop(m_window, (IDropTarget*)this); + OLE_TRY + OLE_HRT(CoCreateInstance( + CLSID_DragDropHelper, + NULL, + CLSCTX_ALL, + IID_IDropTargetHelper, + (LPVOID*)&m_pIDropTargetHelper + )) + OLE_HRT(::RegisterDragDrop(m_window, (IDropTarget*)this)) + OLE_CATCH + res = OLE_HR; } else { res = ::RevokeDragDrop(m_window); + if (NULL != m_pIDropTargetHelper) { + m_pIDropTargetHelper->Release(); + } } if (res == S_OK) m_registered = show; @@ -454,303 +493,489 @@ void AwtDropTarget::_GetData(void* param) { * Returns the data object being transferred. */ -jobject AwtDropTarget::GetData(jlong fmt) { - JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); - if (env->EnsureLocalCapacity(1) < 0) { - return (jobject)NULL; - } - +HRESULT AwtDropTarget::ExtractNativeData( + jlong fmt, + LONG lIndex, + STGMEDIUM *pmedium) +{ FORMATETC format = { (unsigned short)fmt }; - STGMEDIUM stgmedium; - HRESULT hResult = E_FAIL; + HRESULT hr = E_INVALIDARG; - static const DWORD supportedTymeds[] = { TYMED_ISTREAM, TYMED_ENHMF, - TYMED_GDI, TYMED_MFPICT, - TYMED_FILE, TYMED_HGLOBAL }; - static const int nSupportedTymeds = 6; - - for (int i = 0; i < nSupportedTymeds; i++) { + static const DWORD supportedTymeds[] = { + TYMED_ISTREAM, + TYMED_ENHMF, + TYMED_GDI, + TYMED_MFPICT, + TYMED_FILE, + TYMED_HGLOBAL + }; + for (int i = 0; i < sizeof(supportedTymeds)/sizeof(supportedTymeds[0]); ++i) { // Only TYMED_HGLOBAL is supported for CF_LOCALE. if (fmt == CF_LOCALE && supportedTymeds[i] != TYMED_HGLOBAL) { continue; } format.tymed = supportedTymeds[i]; + FORMATETC *cpp = (FORMATETC *)bsearch( + (const void *)&format, + (const void *)m_formats, + (size_t)m_nformats, + (size_t)sizeof(FORMATETC), + _compar); - FORMATETC *cpp = (FORMATETC *)bsearch((const void *)&format, - (const void *)m_formats, - (size_t) m_nformats, - (size_t) sizeof(FORMATETC), - _compar - ); - - if (cpp == (FORMATETC *)NULL) { + if (NULL == cpp) { continue; } - memcpy(&format, cpp, sizeof(FORMATETC)); + format = *cpp; + format.lindex = lIndex; - hResult = m_dataObject->GetData(&format, &stgmedium); - - if (hResult == S_OK) { - break; + hr = m_dataObject->GetData(&format, pmedium); + if (SUCCEEDED(hr)) { + return hr; } } + return hr; +} - // Failed to retrieve data. - if (hResult != S_OK) { - return (jobject)NULL; +HRESULT CheckRetValue( + JNIEnv* env, + jobject ret) +{ + if (!JNU_IsNull(env, safe_ExceptionOccurred(env))) { + return E_UNEXPECTED; + } else if (JNU_IsNull(env, ret)) { + return E_INVALIDARG; } + return S_OK; +} +jobject AwtDropTarget::ConvertNativeData(JNIEnv* env, jlong fmt, STGMEDIUM *pmedium) /*throw std::bad_alloc */ +{ jobject ret = NULL; jbyteArray paletteDataLocal = NULL; - - switch (stgmedium.tymed) { + HRESULT hr = S_OK; + switch (pmedium->tymed) { case TYMED_HGLOBAL: { if (fmt == CF_LOCALE) { - LCID *lcid = (LCID *)::GlobalLock(stgmedium.hGlobal); - if (lcid == NULL) { - ::ReleaseStgMedium(&stgmedium); - return NULL; + LCID *lcid = (LCID *)::GlobalLock(pmedium->hGlobal); + if (NULL == lcid) { + hr = E_INVALIDARG; + } else { + try{ + ret = AwtDataTransferer::LCIDToTextEncoding(env, *lcid); + hr = CheckRetValue(env, ret); + } catch (std::bad_alloc&) { + hr = E_OUTOFMEMORY; + } + ::GlobalUnlock(pmedium->hGlobal); } - try { - ret = AwtDataTransferer::LCIDToTextEncoding(env, *lcid); - } catch (...) { - ::GlobalUnlock(stgmedium.hGlobal); - ::ReleaseStgMedium(&stgmedium); - throw; - } - ::GlobalUnlock(stgmedium.hGlobal); - ::ReleaseStgMedium(&stgmedium); } else { ::SetLastError(0); // clear error // Warning C4244. // Cast SIZE_T (__int64 on 64-bit/unsigned int on 32-bit) // to jsize (long). - SIZE_T globalSize = ::GlobalSize(stgmedium.hGlobal); + SIZE_T globalSize = ::GlobalSize(pmedium->hGlobal); jsize size = (globalSize <= INT_MAX) ? (jsize)globalSize : INT_MAX; if (size == 0 && ::GetLastError() != 0) { - ::SetLastError(0); // clear error - ::ReleaseStgMedium(&stgmedium); - return (jobject)NULL; // failed + hr = E_INVALIDARG; + } else { + jbyteArray bytes = env->NewByteArray(size); + if (NULL == bytes) { + hr = E_OUTOFMEMORY; + } else { + LPVOID data = ::GlobalLock(pmedium->hGlobal); + if (NULL == data) { + hr = E_INVALIDARG; + } else { + env->SetByteArrayRegion(bytes, 0, size, (jbyte *)data); + ret = bytes; + //bytes is not null here => no CheckRetValue call + ::GlobalUnlock(pmedium->hGlobal); + } + } } - - jbyteArray bytes = env->NewByteArray(size); - if (bytes == NULL) { - ::ReleaseStgMedium(&stgmedium); - throw std::bad_alloc(); - } - - LPVOID data = ::GlobalLock(stgmedium.hGlobal); - env->SetByteArrayRegion(bytes, 0, size, (jbyte *)data); - ::GlobalUnlock(stgmedium.hGlobal); - ::ReleaseStgMedium(&stgmedium); - - ret = bytes; } break; } case TYMED_FILE: { - jobject local = JNU_NewStringPlatform(env, stgmedium.lpszFileName); + jobject local = JNU_NewStringPlatform( + env, + pmedium->lpszFileName); jstring fileName = (jstring)env->NewGlobalRef(local); env->DeleteLocalRef(local); STGMEDIUM *stgm = NULL; try { + //on success stgm would be deallocated by JAVA call freeStgMedium stgm = (STGMEDIUM *)safe_Malloc(sizeof(STGMEDIUM)); + memcpy(stgm, pmedium, sizeof(STGMEDIUM)); + // Warning C4311. + // Cast pointer to jlong (__int64). + ret = call_dTCgetfs(env, fileName, (jlong)stgm); + hr = CheckRetValue(env, ret); } catch (std::bad_alloc&) { - env->DeleteGlobalRef(fileName); - ::ReleaseStgMedium(&stgmedium); - throw; + hr = E_OUTOFMEMORY; } - memcpy(stgm, &stgmedium, sizeof(STGMEDIUM)); - - // Warning C4311. - // Cast pointer to jlong (__int64). - ret = call_dTCgetfs(env, fileName, (jlong)stgm); - try { - if (JNU_IsNull(env, ret) || - !JNU_IsNull(env, safe_ExceptionOccurred(env))) { - env->DeleteGlobalRef(fileName); - free((void*)stgm); - ::ReleaseStgMedium(&stgmedium); - return (jobject)NULL; - } - } catch (std::bad_alloc&) { + if (FAILED(hr)) { + //free just on error env->DeleteGlobalRef(fileName); - free((void*)stgm); - ::ReleaseStgMedium(&stgmedium); - throw; + free(stgm); } break; } - case TYMED_ISTREAM: { - WDTCPIStreamWrapper* istream = new WDTCPIStreamWrapper(&stgmedium); - - // Warning C4311. - // Cast pointer to jlong (__int64). - ret = call_dTCgetis(env, (jlong)istream); - try { - if (JNU_IsNull(env, ret) || - !JNU_IsNull(env, safe_ExceptionOccurred(env))) { - istream->Close(); - return (jobject)NULL; - } - } catch (std::bad_alloc&) { - istream->Close(); - throw; - } - break; + WDTCPIStreamWrapper* istream = NULL; + try { + istream = new WDTCPIStreamWrapper(pmedium); + // Warning C4311. + // Cast pointer to jlong (__int64). + ret = call_dTCgetis(env, (jlong)istream); + hr = CheckRetValue(env, ret); + } catch (std::bad_alloc&) { + hr = E_OUTOFMEMORY; + } + if (FAILED(hr) && NULL!=istream) { + //free just on error + istream->Close(); + } + break; } - case TYMED_GDI: // Currently support only CF_PALETTE for TYMED_GDI. - switch (fmt) { - case CF_PALETTE: { - ret = AwtDataTransferer::GetPaletteBytes(stgmedium.hBitmap, - 0, TRUE); - break; + if (CF_PALETTE == fmt) { + ret = AwtDataTransferer::GetPaletteBytes( + pmedium->hBitmap, + 0, + TRUE); + hr = CheckRetValue(env, ret); } - } - ::ReleaseStgMedium(&stgmedium); break; case TYMED_MFPICT: case TYMED_ENHMF: { HENHMETAFILE hEnhMetaFile = NULL; - LPBYTE lpEmfBits = NULL; - - if (stgmedium.tymed == TYMED_MFPICT) { + if (pmedium->tymed == TYMED_MFPICT ) { + //let's create ENHMF from MFPICT to simplify treatment LPMETAFILEPICT lpMetaFilePict = - (LPMETAFILEPICT)::GlobalLock(stgmedium.hMetaFilePict); - UINT uSize = ::GetMetaFileBitsEx(lpMetaFilePict->hMF, 0, NULL); - DASSERT(uSize != 0); - - try { - LPBYTE lpMfBits = (LPBYTE)safe_Malloc(uSize); - VERIFY(::GetMetaFileBitsEx(lpMetaFilePict->hMF, uSize, - lpMfBits) == uSize); - hEnhMetaFile = ::SetWinMetaFileBits(uSize, - lpMfBits, - NULL, - lpMetaFilePict); - free(lpMfBits); - } catch (...) { - ::GlobalUnlock(stgmedium.hMetaFilePict); - throw; + (LPMETAFILEPICT)::GlobalLock(pmedium->hMetaFilePict); + if (NULL == lpMetaFilePict) { + hr = E_INVALIDARG; + } else { + UINT uSize = ::GetMetaFileBitsEx(lpMetaFilePict->hMF, 0, NULL); + if (0 == uSize) { + hr = E_INVALIDARG; + } else { + try{ + LPBYTE lpMfBits = (LPBYTE)safe_Malloc(uSize); + VERIFY(::GetMetaFileBitsEx( + lpMetaFilePict->hMF, + uSize, + lpMfBits) == uSize); + hEnhMetaFile = ::SetWinMetaFileBits( + uSize, + lpMfBits, + NULL, + lpMetaFilePict); + free(lpMfBits); + } catch (std::bad_alloc&) { + hr = E_OUTOFMEMORY; + } + } + ::GlobalUnlock(pmedium->hMetaFilePict); } - ::GlobalUnlock(stgmedium.hMetaFilePict); } else { - hEnhMetaFile = stgmedium.hEnhMetaFile; + hEnhMetaFile = pmedium->hEnhMetaFile; } - try { - paletteDataLocal = - AwtDataTransferer::GetPaletteBytes(hEnhMetaFile, - OBJ_ENHMETAFILE, - FALSE); + if (NULL == hEnhMetaFile) { + hr = E_INVALIDARG; + } else { + try { + paletteDataLocal = AwtDataTransferer::GetPaletteBytes( + hEnhMetaFile, + OBJ_ENHMETAFILE, + FALSE); + //paletteDataLocal can be NULL here - it is not a error! - UINT uEmfSize = ::GetEnhMetaFileBits(hEnhMetaFile, 0, NULL); - DASSERT(uEmfSize != 0); + UINT uEmfSize = ::GetEnhMetaFileBits(hEnhMetaFile, 0, NULL); + DASSERT(uEmfSize != 0); - lpEmfBits = (LPBYTE)safe_Malloc(uEmfSize); - VERIFY(::GetEnhMetaFileBits(hEnhMetaFile, uEmfSize, - lpEmfBits) == uEmfSize); + LPBYTE lpEmfBits = (LPBYTE)safe_Malloc(uEmfSize); + //no chance to throw exception before catch => no more try-blocks + //and no leaks on lpEmfBits - if (stgmedium.tymed == TYMED_MFPICT) { - ::DeleteEnhMetaFile(hEnhMetaFile); - } else { - ::ReleaseStgMedium(&stgmedium); - } - hEnhMetaFile = NULL; + VERIFY(::GetEnhMetaFileBits( + hEnhMetaFile, + uEmfSize, + lpEmfBits) == uEmfSize); - jbyteArray bytes = env->NewByteArray(uEmfSize); - if (bytes == NULL) { - throw std::bad_alloc(); - } - - env->SetByteArrayRegion(bytes, 0, uEmfSize, (jbyte*)lpEmfBits); - free(lpEmfBits); - lpEmfBits = NULL; - - ret = bytes; - } catch (...) { - if (!JNU_IsNull(env, paletteDataLocal)) { - env->DeleteLocalRef(paletteDataLocal); - paletteDataLocal = NULL; - } - if (hEnhMetaFile != NULL) { - if (stgmedium.tymed == TYMED_MFPICT) { - ::DeleteEnhMetaFile(hEnhMetaFile); + jbyteArray bytes = env->NewByteArray(uEmfSize); + if (NULL == bytes) { + hr = E_OUTOFMEMORY; } else { - ::ReleaseStgMedium(&stgmedium); + env->SetByteArrayRegion(bytes, 0, uEmfSize, (jbyte*)lpEmfBits); + ret = bytes; + //bytes is not null here => no CheckRetValue call } - hEnhMetaFile = NULL; - } - if (lpEmfBits != NULL) { free(lpEmfBits); - lpEmfBits = NULL; + } catch (std::bad_alloc&) { + hr = E_OUTOFMEMORY; + } + if (pmedium->tymed == TYMED_MFPICT) { + //because we create it manually + ::DeleteEnhMetaFile(hEnhMetaFile); } - throw; } break; } case TYMED_ISTORAGE: default: - ::ReleaseStgMedium(&stgmedium); - return (jobject)NULL; + hr = E_NOTIMPL; + break; } - if (ret == NULL) { - return (jobject)NULL; + if (FAILED(hr)) { + //clear exception garbage for hr = E_UNEXPECTED + ret = NULL; + } else { + switch (fmt) { + case CF_METAFILEPICT: + case CF_ENHMETAFILE: + // If we failed to retrieve palette entries from metafile, + // fall through and try CF_PALETTE format. + case CF_DIB: { + if (JNU_IsNull(env, paletteDataLocal)) { + jobject paletteData = GetData(CF_PALETTE); + + if (JNU_IsNull(env, paletteData)) { + paletteDataLocal = + AwtDataTransferer::GetPaletteBytes(NULL, 0, TRUE); + } else { + // GetData() returns a global ref. + // We want to deal with local ref. + paletteDataLocal = (jbyteArray)env->NewLocalRef(paletteData); + env->DeleteGlobalRef(paletteData); + } + } + DASSERT(!JNU_IsNull(env, paletteDataLocal) && + !JNU_IsNull(env, ret)); + + jobject concat = AwtDataTransferer::ConcatData(env, paletteDataLocal, ret); + env->DeleteLocalRef(ret); + ret = concat; + hr = CheckRetValue(env, ret); + break; + } + } } - switch (fmt) { - case CF_METAFILEPICT: - case CF_ENHMETAFILE: - // If we failed to retrieve palette entries from metafile, - // fall through and try CF_PALETTE format. - case CF_DIB: { - if (JNU_IsNull(env, paletteDataLocal)) { - jobject paletteData = GetData(CF_PALETTE); + if (!JNU_IsNull(env, paletteDataLocal) ) { + env->DeleteLocalRef(paletteDataLocal); + } + jobject global = NULL; + if (SUCCEEDED(hr)) { + global = env->NewGlobalRef(ret); + env->DeleteLocalRef(ret); + } else if (E_UNEXPECTED == hr) { + //internal Java non-GPF exception + env->ExceptionDescribe(); + env->ExceptionClear(); + } else if (E_OUTOFMEMORY == hr) { + throw std::bad_alloc(); + } //NULL returns for all other cases + return global; +} - if (JNU_IsNull(env, paletteData)) { - paletteDataLocal = - AwtDataTransferer::GetPaletteBytes(NULL, 0, TRUE); - } else { - // GetData() returns a global ref. - // We want to deal with local ref. - paletteDataLocal = (jbyteArray)env->NewLocalRef(paletteData); - env->DeleteGlobalRef(paletteData); +HRESULT AwtDropTarget::SaveIndexToFile(LPCTSTR pFileName, UINT lIndex) +{ + OLE_TRY + STGMEDIUM stgmedium; + OLE_HRT( ExtractNativeData(CF_FILECONTENTS, lIndex, &stgmedium) ); + OLE_NEXT_TRY + IStreamPtr spSrc; + if (TYMED_HGLOBAL == stgmedium.tymed) { + OLE_HRT( CreateStreamOnHGlobal( + stgmedium.hGlobal, + FALSE, + &spSrc + )); + } else if(TYMED_ISTREAM == stgmedium.tymed) { + spSrc = stgmedium.pstm; + } + if (NULL == spSrc) { + OLE_HRT(E_INVALIDARG); + } + IStreamPtr spDst; + OLE_HRT(SHCreateStreamOnFile( + pFileName, + STGM_WRITE | STGM_CREATE, + &spDst + )); + STATSTG si = {0}; + OLE_HRT( spSrc->Stat(&si, STATFLAG_NONAME ) ); + OLE_HRT( spSrc->CopyTo(spDst, si.cbSize, NULL, NULL) ); + OLE_CATCH + ::ReleaseStgMedium(&stgmedium); + OLE_CATCH + OLE_RETURN_HR; +} + + +HRESULT GetTempPathWithSlash(JNIEnv *env, _bstr_t &bsTempPath) /*throws _com_error*/ +{ + static _bstr_t _bsPath; + + OLE_TRY + if (0 == _bsPath.length()) { + BOOL bSafeEmergency = TRUE; + TCHAR szPath[MAX_PATH*2]; + JLClass systemCls(env, env->FindClass("java/lang/System")); + if (systemCls) { + jmethodID idGetProperty = env->GetStaticMethodID( + systemCls, + "getProperty", + "(Ljava/lang/String;)Ljava/lang/String;"); + if (0 != idGetProperty) { + static TCHAR param[] = _T("java.io.tmpdir"); + JLString tempdir(env, JNU_NewStringPlatform(env, param)); + if (tempdir) { + JLString jsTempPath(env, (jstring)env->CallStaticObjectMethod( + systemCls, + idGetProperty, + (jstring)tempdir + )); + if (jsTempPath) { + _bsPath = (LPCWSTR)JavaStringBuffer(env, jsTempPath); + OLE_HRT(SHGetFolderPath( + NULL, + CSIDL_WINDOWS, + NULL, + 0, + szPath)); + _tcscat(szPath, _T("\\")); + //Dead environment block leads to fact that windows folder becomes temporary path. + //For example while jtreg execution %TEMP%, %TMP% and etc. aren't defined. + bSafeEmergency = ( 0 == _tcsicmp(_bsPath, szPath) ); + } + } } } - DASSERT(!JNU_IsNull(env, paletteDataLocal) && - !JNU_IsNull(env, ret)); - - jobject concat = AwtDataTransferer::ConcatData(env, paletteDataLocal, ret); - - if (!JNU_IsNull(env, safe_ExceptionOccurred(env))) { - env->ExceptionDescribe(); - env->ExceptionClear(); - env->DeleteLocalRef(ret); - env->DeleteLocalRef(paletteDataLocal); - return (jobject)NULL; + if (bSafeEmergency) { + OLE_HRT(SHGetFolderPath( + NULL, + CSIDL_INTERNET_CACHE|CSIDL_FLAG_CREATE, + NULL, + 0, + szPath)); + _tcscat(szPath, _T("\\")); + _bsPath = szPath; } - - env->DeleteLocalRef(ret); - env->DeleteLocalRef(paletteDataLocal); - ret = concat; - - break; - } } + OLE_CATCH + bsTempPath = _bsPath; + OLE_RETURN_HR +} - jobject global = env->NewGlobalRef(ret); - env->DeleteLocalRef(ret); +jobject AwtDropTarget::ConvertMemoryMappedData(JNIEnv* env, jlong fmt, STGMEDIUM *pmedium) /*throw std::bad_alloc */ +{ + jobject retObj = NULL; + OLE_TRY + if (TYMED_HGLOBAL != pmedium->tymed) { + OLE_HRT(E_INVALIDARG); + } + FILEGROUPDESCRIPTORA *pfgdHead = (FILEGROUPDESCRIPTORA *)::GlobalLock(pmedium->hGlobal); + if (NULL == pfgdHead) { + OLE_HRT(E_INVALIDARG); + } + OLE_NEXT_TRY + if (0 == pfgdHead->cItems) { + OLE_HRT(E_INVALIDARG); + } + IStreamPtr spFileNames; + OLE_HRT( CreateStreamOnHGlobal( + NULL, + TRUE, + &spFileNames + )); + + _bstr_t sbTempDir; + OLE_HRT( GetTempPathWithSlash(env, sbTempDir) ); + FILEDESCRIPTORA *pfgdA = pfgdHead->fgd; + FILEDESCRIPTORW *pfgdW = (FILEDESCRIPTORW *)pfgdA; + for (UINT i = 0; i < pfgdHead->cItems; ++i) { + _bstr_t stFullName(sbTempDir); + if(CF_FILEGROUPDESCRIPTORA == fmt) { + stFullName += pfgdA->cFileName; //as CHAR + ++pfgdA; + } else { + stFullName += pfgdW->cFileName; //as WCHAR + ++pfgdW; + } + OLE_HRT(SaveIndexToFile( + stFullName, + i)); + //write to stream with zero terminator + OLE_HRT( spFileNames->Write((LPCTSTR)stFullName, (stFullName.length() + 1)*sizeof(TCHAR), NULL) ); + } + OLE_HRT( spFileNames->Write(_T(""), sizeof(TCHAR), NULL) ); + STATSTG st; + OLE_HRT( spFileNames->Stat(&st, STATFLAG_NONAME) ); + + //empty lists was forbidden: pfgdHead->cItems > 0 + jbyteArray bytes = env->NewByteArray(st.cbSize.LowPart); + if (NULL == bytes) { + OLE_HRT(E_OUTOFMEMORY); + } else { + HGLOBAL glob; + OLE_HRT(GetHGlobalFromStream(spFileNames, &glob)); + jbyte *pFileListWithDoubleZeroTerminator = (jbyte *)::GlobalLock(glob); + env->SetByteArrayRegion(bytes, 0, st.cbSize.LowPart, pFileListWithDoubleZeroTerminator); + ::GlobalUnlock(pFileListWithDoubleZeroTerminator); + retObj = bytes; + } + //std::bad_alloc could happen in JStringBuffer + //no leaks due to wrapper + OLE_CATCH_BAD_ALLOC + ::GlobalUnlock(pmedium->hGlobal); + OLE_CATCH + jobject global = NULL; + if (SUCCEEDED(OLE_HR)) { + global = env->NewGlobalRef(retObj); + env->DeleteLocalRef(retObj); + } else if (E_OUTOFMEMORY == OLE_HR) { + throw std::bad_alloc(); + } return global; } +jobject AwtDropTarget::GetData(jlong fmt) +{ + JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); + if (env->EnsureLocalCapacity(1) < 0) { + return (jobject)NULL; + } + jobject ret = NULL; + OLE_TRY + STGMEDIUM stgmedium; + OLE_HRT( ExtractNativeData(fmt, -1, &stgmedium) ); + OLE_NEXT_TRY + if (CF_FILEGROUPDESCRIPTORA == fmt || + CF_FILEGROUPDESCRIPTORW == fmt) + { + ret = ConvertMemoryMappedData(env, fmt, &stgmedium); + } else { + ret = ConvertNativeData(env, fmt, &stgmedium); + } + OLE_CATCH_BAD_ALLOC + ::ReleaseStgMedium(&stgmedium); + OLE_CATCH + if (E_OUTOFMEMORY == OLE_HR) { + throw std::bad_alloc(); + } + return ret; +} + /** * */ @@ -791,14 +1016,14 @@ void AwtDropTarget::LoadCache(IDataObject* pDataObj) { ULONG actual = 1; res = pEnumFormatEtc->Next((ULONG)1, &tmp, &actual); - - if (res == S_FALSE) break; + if (res == S_FALSE) + break; if (!(tmp.cfFormat >= 1 && tmp.ptd == NULL && - tmp.lindex == -1 && + (tmp.lindex == -1 || CF_FILECONTENTS==tmp.cfFormat) && tmp.dwAspect == DVASPECT_CONTENT && - (tmp.tymed == TYMED_HGLOBAL || + ( tmp.tymed == TYMED_HGLOBAL || tmp.tymed == TYMED_FILE || tmp.tymed == TYMED_ISTREAM || tmp.tymed == TYMED_GDI || @@ -806,7 +1031,8 @@ void AwtDropTarget::LoadCache(IDataObject* pDataObj) { tmp.tymed == TYMED_ENHMF ) // but not ISTORAGE ) - ) continue; + ) + continue; if (m_dataObject->QueryGetData(&tmp) != S_OK) continue; @@ -1005,6 +1231,7 @@ WDTCPIStreamWrapper::WDTCPIStreamWrapper(STGMEDIUM* stgmedium) { m_stgmedium = *stgmedium; m_istream = stgmedium->pstm; + m_istream->AddRef(); m_mutex = ::CreateMutex(NULL, FALSE, NULL); if (javaIOExceptionClazz == (jclass)NULL) { @@ -1024,7 +1251,7 @@ WDTCPIStreamWrapper::WDTCPIStreamWrapper(STGMEDIUM* stgmedium) { WDTCPIStreamWrapper::~WDTCPIStreamWrapper() { ::CloseHandle(m_mutex); - + m_istream->Release(); ::ReleaseStgMedium(&m_stgmedium); } diff --git a/jdk/src/windows/native/sun/windows/awt_DnDDT.h b/jdk/src/windows/native/sun/windows/awt_DnDDT.h index 1505859d52e..f1870e8308d 100644 --- a/jdk/src/windows/native/sun/windows/awt_DnDDT.h +++ b/jdk/src/windows/native/sun/windows/awt_DnDDT.h @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -27,7 +27,7 @@ #define AWT_DND_DT_H #include - +#include #include #include @@ -106,6 +106,11 @@ class AwtDropTarget : virtual public IDropTarget { virtual void UnloadCache(); + virtual HRESULT ExtractNativeData(jlong fmt, LONG lIndex, STGMEDIUM *pmedium); + virtual HRESULT SaveIndexToFile(LPCTSTR pFileName, UINT lIndex); + virtual jobject ConvertNativeData(JNIEnv* env, jlong fmt, STGMEDIUM *pmedium); + virtual jobject ConvertMemoryMappedData(JNIEnv* env, jlong fmt, STGMEDIUM *pmedium); + private: typedef struct _RegisterTargetRec { AwtDropTarget* dropTarget; @@ -152,11 +157,12 @@ class AwtDropTarget : virtual public IDropTarget { // external COM references - IDataObject __RPC_FAR *m_dataObject; + IDataObject *m_dataObject; + IDropTargetHelper *m_pIDropTargetHelper; // static members - static IDataObject __RPC_FAR *sm_pCurrentDnDDataObject; + static IDataObject *sm_pCurrentDnDDataObject; // method references diff --git a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp index 9482f358fd1..d5756e6bf2b 100644 --- a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-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 @@ -289,24 +289,6 @@ jmethodID AwtToolkit::getDefaultToolkitMID; jmethodID AwtToolkit::getFontMetricsMID; jmethodID AwtToolkit::insetsMID; -/************************************************************************ - * JavaStringBuffer method - */ - -JavaStringBuffer::JavaStringBuffer(JNIEnv *env, jstring jstr) { - if (jstr != NULL) { - int length = env->GetStringLength(jstr); - buffer = new TCHAR[length + 1]; - LPCTSTR tmp = JNU_GetStringPlatformChars(env, jstr, NULL); - _tcscpy(buffer, tmp); - JNU_ReleaseStringPlatformChars(env, jstr, tmp); - } else { - buffer = new TCHAR[1]; - buffer[0] = _T('\0'); - } -} - - /************************************************************************ * AwtToolkit methods */ diff --git a/jdk/src/windows/native/sun/windows/awt_Toolkit.h b/jdk/src/windows/native/sun/windows/awt_Toolkit.h index efaf9ff8432..066efce37d8 100644 --- a/jdk/src/windows/native/sun/windows/awt_Toolkit.h +++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.h @@ -1,5 +1,5 @@ /* - * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-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 @@ -466,20 +466,6 @@ public: void UninstallMouseLowLevelHook(); }; -/* - * Class to encapsulate the extraction of the java string contents - * into a buffer and the cleanup of the buffer - */ -class JavaStringBuffer { - public: - JavaStringBuffer(JNIEnv *env, jstring jstr); - INLINE ~JavaStringBuffer() { delete[] buffer; } - INLINE operator LPTSTR() { return buffer; } - INLINE operator LPARAM() { return (LPARAM)buffer; } /* for SendMessage */ - - private: - LPTSTR buffer; -}; /* creates an instance of T and assigns it to the argument, but only if the argument is initially NULL. Supposed to be thread-safe. diff --git a/jdk/src/windows/native/sun/windows/awt_ole.cpp b/jdk/src/windows/native/sun/windows/awt_ole.cpp new file mode 100644 index 00000000000..38ea914df99 --- /dev/null +++ b/jdk/src/windows/native/sun/windows/awt_ole.cpp @@ -0,0 +1,86 @@ +/* + * 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. 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. + */ + +#include "awt_ole.h" +#include +#include + +namespace SUN_DBG_NS{ + //WIN32 debug channel approach + //inline void DbgOut(LPCTSTR lpStr) { ::OutputDebugString(lpStr); } + + //Java debug channel approach + inline void DbgOut(LPCTSTR lpStr) { DTRACE_PRINT(_B(lpStr)); } + + LPCTSTR CreateTimeStamp(LPTSTR lpBuffer, size_t iBufferSize) + { + struct _timeb tb; + _ftime(&tb); + size_t len = _tcsftime(lpBuffer, iBufferSize, _T("%b %d %H:%M:%S"), localtime(&tb.time)); + if (len && len+4 < iBufferSize) { + if (_sntprintf(lpBuffer+len, iBufferSize-len-1, _T(".%03d"), tb.millitm) < 0) { + lpBuffer[iBufferSize-len-1] = 0; + } + } + return lpBuffer; + } + + #define DTRACE_BUF_LEN 1024 + void snvTrace(LPCTSTR lpszFormat, va_list argList) + { + TCHAR szBuffer[DTRACE_BUF_LEN]; + if (_vsntprintf( szBuffer, DTRACE_BUF_LEN, lpszFormat, argList ) < 0) { + szBuffer[DTRACE_BUF_LEN-1] = 0; + } + TCHAR szTime[32]; + CreateTimeStamp(szTime, sizeof(szTime)); + _tcscat(szTime, _T(" ")); + TCHAR szBuffer1[DTRACE_BUF_LEN]; + size_t iFormatLen = _tcslen(lpszFormat); + BOOL bErrorReport = iFormatLen>6 && _tcscmp(lpszFormat + iFormatLen - 6, _T("[%08x]"))==0; + size_t iTimeLen = _tcslen(szTime); + if (_sntprintf( + szBuffer1 + iTimeLen, + DTRACE_BUF_LEN - iTimeLen - 1, //reserver for \n + _T("P:%04d T:%04d ") TRACE_SUFFIX _T("%s%s"), + ::GetCurrentProcessId(), + ::GetCurrentThreadId(), + bErrorReport?_T("Error:"):_T(""), + szBuffer) < 0) + { + _tcscpy(szBuffer1 + DTRACE_BUF_LEN - 5, _T("...")); //reserver for \n + } + memcpy(szBuffer1, szTime, iTimeLen*sizeof(TCHAR)); + _tcscat(szBuffer1, _T("\n")); + DbgOut( szBuffer1 ); + } + void snTrace(LPCTSTR lpszFormat, ... ) + { + va_list argList; + va_start(argList, lpszFormat); + snvTrace(lpszFormat, argList); + va_end(argList); + } +}//SUN_DBG_NS namespace end diff --git a/jdk/src/windows/native/sun/windows/awt_ole.h b/jdk/src/windows/native/sun/windows/awt_ole.h new file mode 100644 index 00000000000..5d738b23038 --- /dev/null +++ b/jdk/src/windows/native/sun/windows/awt_ole.h @@ -0,0 +1,194 @@ +/* + * 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. 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 AWT_OLE_H +#define AWT_OLE_H + +#include "awt.h" +#include +#include +#include + +#ifdef _DEBUG + #define _SUN_DEBUG +#endif + + +#ifndef SUN_DBG_NS + #ifdef _LIB + #define SUN_DBG_NS SUN_dbg_lib + #else + #define SUN_DBG_NS SUN_dbg_glb + #endif //_LIB +#endif //SUN_DBG_NS + + +#ifndef TRACE_SUFFIX + #define TRACE_SUFFIX +#endif + +namespace SUN_DBG_NS{ + LPCTSTR CreateTimeStamp(LPTSTR lpBuffer, size_t iBufferSize); + inline void snTraceEmp(LPCTSTR, ...) { } + void snvTrace(LPCTSTR lpszFormat, va_list argList); + void snTrace(LPCTSTR lpszFormat, ... ); +}//SUN_DBG_NS namespace end + +#define STRACE1 SUN_DBG_NS::snTrace +#ifdef _SUN_DEBUG + #define STRACE SUN_DBG_NS::snTrace +#else + #define STRACE SUN_DBG_NS::snTraceEmp +#endif +#define STRACE0 SUN_DBG_NS::snTraceEmp + +struct CLogEntryPoint1 { + LPCTSTR m_lpTitle; + CLogEntryPoint1(LPCTSTR lpTitle):m_lpTitle(lpTitle) { STRACE(_T("{%s"), m_lpTitle); } + ~CLogEntryPoint1(){ STRACE(_T("}%s"), m_lpTitle); } +}; +struct CLogEntryPoint0 { + LPCTSTR m_lpTitle; + CLogEntryPoint0(LPCTSTR lpTitle):m_lpTitle(lpTitle) { STRACE0(_T("{%s"), m_lpTitle); } + ~CLogEntryPoint0(){ STRACE0(_T("}%s"), m_lpTitle); } +}; + +#define SEP1(msg) CLogEntryPoint1 _ep1_(msg); +#define SEP0(msg) CLogEntryPoint0 _ep0_(msg); +#ifdef _SUN_DEBUG + #define SEP(msg) CLogEntryPoint1 _ep1_(msg); +#else + #define SEP(msg) CLogEntryPoint0 _ep0_(msg); +#endif + + +#define OLE_BAD_COOKIE ((DWORD)-1) + +#define OLE_TRACENOTIMPL(msg)\ + STRACE(_T("Warning:%s"), msg);\ + return E_NOTIMPL; + +#define OLE_TRACEOK(msg)\ + STRACE0(_T("Info:%s"), msg);\ + return S_OK; + + +#define OLE_DECL\ + HRESULT _hr_ = S_OK; + +#define OLE_NEXT_TRY\ + try { + +#define OLE_TRY\ + OLE_DECL\ + try { + +#define OLE_HRT(fnc)\ + _hr_ = fnc;\ + if (FAILED(_hr_)) {\ + STRACE1(_T("Error:%08x in ") _T(#fnc), _hr_);\ + _com_raise_error(_hr_);\ + } + +#define OLE_WINERROR2HR(msg, erCode)\ + _hr_ = erCode;\ + STRACE1(_T("OSError:%d in ") msg, _hr_);\ + _hr_ = HRESULT_FROM_WIN32(_hr_); + +#define OLE_THROW_LASTERROR(msg)\ + OLE_WINERROR2HR(msg, ::GetLastError())\ + _com_raise_error(_hr_); + +#define OLE_CHECK_NOTNULL(x)\ + if (!(x)) {\ + STRACE1(_T("Null pointer:") _T(#x));\ + _com_raise_error(_hr_ = E_POINTER);\ + } + +#define OLE_CHECK_NOTNULLSP(x)\ + if (!bool(x)) {\ + STRACE1(_T("Null pointer:") _T(#x));\ + _com_raise_error(_hr_ = E_POINTER);\ + } + +#define OLE_HRW32(fnc)\ + _hr_ = fnc;\ + if (ERROR_SUCCESS != _hr_) {\ + STRACE1(_T("OSError:%d in ") _T(#fnc), _hr_);\ + _com_raise_error(_hr_ = HRESULT_FROM_WIN32(_hr_));\ + } + +#define OLE_HRW32_BOOL(fnc)\ + if (!fnc) {\ + OLE_THROW_LASTERROR(_T(#fnc))\ + } + +#define OLE_CATCH\ + } catch (_com_error &e) {\ + _hr_ = e.Error();\ + STRACE1(_T("COM Error:%08x %s"), _hr_, e.ErrorMessage());\ + } + +#define OLE_CATCH_BAD_ALLOC\ + } catch (_com_error &e) {\ + _hr_ = e.Error();\ + STRACE1(_T("COM Error:%08x %s"), _hr_, e.ErrorMessage());\ + } catch (std::bad_alloc&) {\ + _hr_ = E_OUTOFMEMORY;\ + STRACE1(_T("Error: Out of Memory"));\ + } + +#define OLE_CATCH_ALL\ + } catch (_com_error &e) {\ + _hr_ = e.Error();\ + STRACE1(_T("COM Error:%08x %s"), _hr_, e.ErrorMessage());\ + } catch(...) {\ + _hr_ = E_FAIL;\ + STRACE1(_T("Error: General Pritection Failor"));\ + } + +#define OLE_RETURN_SUCCESS return SUCCEEDED(_hr_); +#define OLE_RETURN_HR return _hr_; +#define OLE_HR _hr_ + +#define _B(x) _bstr_t(x) +#define _BT(x) (LPCTSTR)_bstr_t(x) +#define _V(x) _variant_t(x) +#define _VV(vrt) _variant_t(vrt, false) +#define _VE _variant_t() +#define _VB(b) _variant_t(bool(b)) + +struct OLEHolder +{ + OLEHolder() + : m_hr(::OleInitialize(NULL)) + {} + + ~OLEHolder(){} + operator bool() const { return S_OK==SUCCEEDED(m_hr); } + HRESULT m_hr; +}; + +#endif//AWT_OLE_H diff --git a/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html b/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html new file mode 100644 index 00000000000..4ff6adc794e --- /dev/null +++ b/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html @@ -0,0 +1,20 @@ + + + + DnDToWordpadTest + + + +

DnDFileGroupDescriptor
Bug ID: 6242241

+ +

See the dialog box (usually in upper left corner) for instructions

+ + + + diff --git a/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.java b/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.java new file mode 100644 index 00000000000..404f1f7a7f3 --- /dev/null +++ b/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.java @@ -0,0 +1,189 @@ + /* + * 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. 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. + */ + +/* + test + @bug 6242241 + @summary Tests basic DnD functionality in an applet + @author Your Name: Alexey Utkin area=dnd + @run applet/manual=yesno DnDFileGroupDescriptor.html +*/ + +import java.applet.Applet; +import java.awt.*; + +public class DnDFileGroupDescriptor extends Applet { + public void init() { + setLayout(new BorderLayout()); + + String[] instructions = { + "The applet window contains a red field.", + "1. Start MS Outlook program. Find and open ", + " the mail form with attachments.", + "2. Select attachments from the mail and drag into a red field of applet.", + " When the mouse enters the field during the drag, the application ", + " should change the cursor form to OLE-copy and field color to yellow.", + "3. Release the mouse button (drop attachments) over the field.", + "", + "File paths in temporary folder should appear.", + "", + "You should be able to repeat this operation multiple times.", + "Please, select \"Pass\" just in case of success or \"Fail\" for another." + }; + Sysout.createDialogWithInstructions( instructions ); + } + + public void start() { + Panel mainPanel; + Component dropTarget; + + mainPanel = new Panel(); + mainPanel.setLayout(new BorderLayout()); + + mainPanel.setBackground(Color.blue); + dropTarget = new DnDTarget(Color.red, Color.yellow); + + mainPanel.add(dropTarget, "Center"); + add(mainPanel); + + setSize(200,200); + } +} + +/**************************************************** + Standard Test Machinery + DO NOT modify anything below -- it's a standard + chunk of code whose purpose is to make user + interaction uniform, and thereby make it simpler + to read and understand someone else's test. + ****************************************************/ + +class Sysout + { + private static TestDialog dialog; + + public static void createDialogWithInstructions( String[] instructions ) + { + dialog = new TestDialog( new Frame(), "Instructions" ); + dialog.printInstructions( instructions ); + dialog.show(); + println( "Any messages for the tester will display here." ); + } + + public static void createDialog( ) + { + dialog = new TestDialog( new Frame(), "Instructions" ); + String[] defInstr = { "Instructions will appear here. ", "" } ; + dialog.printInstructions( defInstr ); + dialog.show(); + println( "Any messages for the tester will display here." ); + } + + + public static void printInstructions( String[] instructions ) + { + dialog.printInstructions( instructions ); + } + + + public static void println( String messageIn ) + { + dialog.displayMessage( messageIn ); + } + + }// Sysout class + +class TestDialog extends Dialog + { + + TextArea instructionsText; + TextArea messageText; + int maxStringLength = 80; + + //DO NOT call this directly, go through Sysout + public TestDialog( Frame frame, String name ) + { + super( frame, name ); + int scrollBoth = TextArea.SCROLLBARS_BOTH; + instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth ); + add( "North", instructionsText ); + + messageText = new TextArea( "", 5, maxStringLength, scrollBoth ); + add("South", messageText); + + pack(); + + show(); + }// TestDialog() + + //DO NOT call this directly, go through Sysout + public void printInstructions( String[] instructions ) + { + //Clear out any current instructions + instructionsText.setText( "" ); + + //Go down array of instruction strings + + String printStr, remainingStr; + for( int i=0; i < instructions.length; i++ ) + { + //chop up each into pieces maxSringLength long + remainingStr = instructions[ i ]; + while( remainingStr.length() > 0 ) + { + //if longer than max then chop off first max chars to print + if( remainingStr.length() >= maxStringLength ) + { + //Try to chop on a word boundary + int posOfSpace = remainingStr. + lastIndexOf( ' ', maxStringLength - 1 ); + + if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1; + + printStr = remainingStr.substring( 0, posOfSpace + 1 ); + remainingStr = remainingStr.substring( posOfSpace + 1 ); + } + //else just print + else + { + printStr = remainingStr; + remainingStr = ""; + } + + instructionsText.append( printStr + "\n" ); + + }// while + + }// for + + }//printInstructions() + + //DO NOT call this directly, go through Sysout + public void displayMessage( String messageIn ) + { + messageText.append( messageIn + "\n" ); + } + + }// TestDialog class diff --git a/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDTarget.java b/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDTarget.java new file mode 100644 index 00000000000..8d6b62ffc11 --- /dev/null +++ b/jdk/test/java/awt/dnd/DnDFileGroupDescriptor/DnDTarget.java @@ -0,0 +1,108 @@ +/* + * 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. 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. + */ + +/* +* Panel is a DropTarget +* +*/ + +import java.awt.*; +import java.awt.datatransfer.*; +import java.awt.dnd.*; +import java.io.*; + + +class DnDTarget extends Panel implements DropTargetListener { + //private int dragOperation = DnDConstants.ACTION_COPY | DnDConstants.ACTION_MOVE; + Color bgColor; + Color htColor; + + DnDTarget(Color bgColor, Color htColor) { + super(); + setLayout(new FlowLayout()); + this.bgColor = bgColor; + this.htColor = htColor; + setBackground(bgColor); + setDropTarget(new DropTarget(this, this)); + add(new Label("drop here")); + } + + boolean check(DropTargetDragEvent dtde) + { + if (dtde.getCurrentDataFlavorsAsList().contains(DataFlavor.javaFileListFlavor)) { + dtde.acceptDrag(DnDConstants.ACTION_COPY); + return true; + } + return false; + } + + public void dragEnter(DropTargetDragEvent dtde) { + if(check(dtde)){ + setBackground(htColor); + repaint(); + } + } + + public void dragOver(DropTargetDragEvent dtde) { + check(dtde); + } + + public void dropActionChanged(DropTargetDragEvent dtde) { + check(dtde); + } + + public void dragExit(DropTargetEvent e) { + setBackground(bgColor); + repaint(); + } + + public void dragScroll(DropTargetDragEvent e) { + System.out.println("[Target] dragScroll"); + } + + public void drop(DropTargetDropEvent dtde) { + System.out.println("[Target] drop"); + boolean success = false; + dtde.acceptDrop(DnDConstants.ACTION_COPY); + if( dtde.getCurrentDataFlavorsAsList().contains(DataFlavor.javaFileListFlavor) ){ + System.out.println("[Target] DROP OK!"); + try { + Transferable transfer = dtde.getTransferable(); + java.util.List fl = (java.util.List)transfer.getTransferData(DataFlavor.javaFileListFlavor); + for(File f : fl){ + add(new Button(f.getCanonicalPath())); + System.out.println("[Target] drop file:" + f.getCanonicalPath()); + } + validate(); + } catch(Exception ex) { + ex.printStackTrace(); + } + setBackground(bgColor); + repaint(); + success = true; + } + dtde.dropComplete(success); + } +} diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDSource.java b/jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDSource.java new file mode 100644 index 00000000000..4c8f392c279 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDSource.java @@ -0,0 +1,235 @@ +/* + * 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. 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. + */ + +/* +* AWT Button is a DragSource and also a transferable object +*/ + +import java.awt.*; +import java.awt.datatransfer.*; +import java.awt.dnd.*; +import java.io.*; + +class DnDSource extends Button implements Transferable, + DragGestureListener, + DragSourceListener { + private DataFlavor df; + private transient int dropAction; + private final int dragOperation = DnDConstants.ACTION_COPY | DnDConstants.ACTION_MOVE | DnDConstants.ACTION_LINK; + DragSource dragSource = new DragSource(); + + DnDSource(String label) { + super(label); + setBackground(Color.yellow); + setForeground(Color.blue); + df = new DataFlavor(DnDSource.class, "DnDSource"); + + dragSource.createDefaultDragGestureRecognizer( + this, + dragOperation, + this + ); + dragSource.addDragSourceListener(this); + } + + public void changeCursor( + DragSourceContext dsc, + int ra + ) { + java.awt.Cursor c = null; + if ((ra & DnDConstants.ACTION_LINK) == DnDConstants.ACTION_LINK) + c = DragSource.DefaultLinkDrop; + else if ((ra & DnDConstants.ACTION_MOVE) == DnDConstants.ACTION_MOVE) + c = MyCursor.MOVE;//DragSource.DefaultMoveDrop; + else if ((ra & DnDConstants.ACTION_COPY) == DnDConstants.ACTION_COPY) + c = MyCursor.COPY; + else + c = MyCursor.NO_DROP; + dsc.setCursor(c); + } + + /** + * a Drag gesture has been recognized + */ + + public void dragGestureRecognized(DragGestureEvent dge) { + System.out.println("starting Drag"); + try { + if (DragSource.isDragImageSupported()) { + System.out.println("starting Imaged Drag"); + dge.startDrag( + null, + new ImageGenerator(50, 100, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.translate(width/2, height/2); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + int R = width/4+5; + gr.setColor(new Color(0x00, 0x00, 0xff, 0x7F)); + gr.fillRect(-R, -R, 2*R, 2*R); + gr.setColor(new Color(0x00, 0x00, 0xff, 0xff)); + gr.drawRect(-R, -R, 2*R, 2*R); + + + gr.translate(10, -10); + R -= 5; + gr.setColor(Color.RED); + gr.fillOval(-R, -R, 2*R, 2*R); + gr.setColor(Color.MAGENTA); + gr.drawOval(-R, -R, 2*R, 2*R); + } + }.getImage(), + new Point(15, 40), + this, + this); + } else { + dge.startDrag( + null, + this, + this); + } + } catch (InvalidDnDOperationException e) { + e.printStackTrace(); + } + } + + /** + * as the hotspot enters a platform dependent drop site + */ + + public void dragEnter(DragSourceDragEvent dsde) { + System.out.println("[Source] dragEnter"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + } + + /** + * as the hotspot moves over a platform dependent drop site + */ + public void dragOver(DragSourceDragEvent dsde) { + System.out.println("[Source] dragOver"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + /** + * as the hotspot exits a platform dependent drop site + */ + public void dragExit(DragSourceEvent dse) { + System.out.println("[Source] dragExit"); + changeCursor( + dse.getDragSourceContext(), + DnDConstants.ACTION_NONE + ); + } + + /** + * as the operation changes + */ + public void dragGestureChanged(DragSourceDragEvent dsde) { + System.out.println("[Source] dragGestureChanged"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + + /** + * as the operation completes + */ + public void dragDropEnd(DragSourceDropEvent dsde) { + System.out.println("[Source] dragDropEnd"); + } + + public void dropActionChanged(DragSourceDragEvent dsde) { + System.out.println("[Source] dropActionChanged"); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[]{df}; + } + + public boolean isDataFlavorSupported(DataFlavor sdf) { + return df.equals(sdf); + } + + public Object getTransferData(DataFlavor tdf) throws UnsupportedFlavorException, IOException { + Object copy = null; + if( !df.equals(tdf) ){ + throw new UnsupportedFlavorException(tdf); + } + Container parent = getParent(); + switch (dropAction) { + case DnDConstants.ACTION_COPY: + try { + copy = this.clone(); + } catch (CloneNotSupportedException e) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + + oos.writeObject(this); + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bais); + try { + copy = ois.readObject(); + } catch (ClassNotFoundException cnfe) { + // do nothing + } + } + parent.add(this); + return copy; + + case DnDConstants.ACTION_MOVE: + synchronized (this) { + if (parent != null) { + parent.remove(this); + Label label = new Label("[empty]"); + label.setBackground(Color.cyan); + label.setBounds(this.getBounds()); + parent.add(label); + } + } + return this; + + case DnDConstants.ACTION_LINK: + return this; + + default: + return null; + } + + } +} + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDTarget.java b/jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDTarget.java new file mode 100644 index 00000000000..52d39c4928a --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnD/DnDTarget.java @@ -0,0 +1,113 @@ +/* + * 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. 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. + */ + +/* +* Panel is a DropTarget +* +*/ + +import java.awt.*; +import java.awt.datatransfer.*; +import java.awt.dnd.*; +import java.io.*; + + +class DnDTarget extends Panel implements DropTargetListener { + private int dragOperation = DnDConstants.ACTION_COPY | DnDConstants.ACTION_MOVE; + Color bgColor; + Color htColor; + + DnDTarget(Color bgColor, Color htColor) { + super(); + this.bgColor = bgColor; + this.htColor = htColor; + setBackground(bgColor); + setDropTarget(new DropTarget(this, this)); + } + + + public void dragEnter(DropTargetDragEvent e) { + System.out.println("[Target] dragEnter"); + setBackground(htColor); + repaint(); + } + + public void dragOver(DropTargetDragEvent e) { + System.out.println("[Target] dragOver"); + } + + public void dragExit(DropTargetEvent e) { + System.out.println("[Target] dragExit"); + setBackground(bgColor); + repaint(); + } + + public void dragScroll(DropTargetDragEvent e) { + System.out.println("[Target] dragScroll"); + } + + public void dropActionChanged(DropTargetDragEvent e) { + System.out.println("[Target] dropActionChanged"); + } + + public void drop(DropTargetDropEvent dtde) { + System.out.println("[Target] drop"); + boolean success = false; + if ((dtde.getDropAction() & dragOperation) == 0) { + dtde.rejectDrop(); + Label label = new Label("[no links here :) ]"); + label.setBackground(Color.cyan); + add(label); + } else { + dtde.acceptDrop(dragOperation); + DataFlavor[] dfs = dtde.getCurrentDataFlavors(); + if (dfs != null && dfs.length >= 1){ + Transferable transfer = dtde.getTransferable(); + try { + Button button = (Button)transfer.getTransferData(dfs[0]); + if( button != null ){ + add(button); + success = true; + } + } catch (IOException ioe) { + System.out.println(ioe.getMessage()); + return; + } catch (UnsupportedFlavorException ufe) { + System.out.println(ufe.getMessage()); + return; + } catch (Exception e) { + System.out.println(e.getMessage()); + return; + } + } + } + setBackground(bgColor); + dtde.dropComplete(success); + + invalidate(); + validate(); + repaint(); + } +} diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html b/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html new file mode 100644 index 00000000000..620eea04d9b --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html @@ -0,0 +1,20 @@ + + + + ImageDecoratedDnD + + + +

ImageDecoratedDnD
Bug ID: 4874070

+ +

See the dialog box (usually in upper left corner) for instructions

+ + + + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.java b/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.java new file mode 100644 index 00000000000..fe5e82084ff --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.java @@ -0,0 +1,199 @@ +/* + * 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. 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. + */ + +/* + test %W% %E% + @bug 4874070 + @summary Tests basic DnD functionality + @author Your Name: Alexey Utkin area=dnd + @run applet/manual=yesno ImageDecoratedDnD.html +*/ + +import java.applet.Applet; +import java.awt.*; +import java.awt.dnd.DragSource; + + + +public class ImageDecoratedDnD extends Applet { + //Declare things used in the test, like buttons and labels here + + public void init() { + //Create instructions for the user here, as well as set up + // the environment -- set the layout manager, add buttons, + // etc. + this.setLayout(new BorderLayout()); + + String[] instructions = + { + "A Frame, which contains a yellow button labeled \"Drag ME!\" and ", + "a red panel, will appear below. ", + "1. Click on the button and drag to the red panel. ", + "2. When the mouse enters the red panel during the drag, the panel ", + "should turn yellow. On the systems that supports pictured drag, ", + "the image under the drag-cursor should appear (ancor is shifted ", + "from top-left corner of the picture inside the picture to 10pt in both dimensions ). ", + "In WIN32 systems the image under cursor would be visible ONLY over ", + "the drop targets with activated extended OLE D\'n\'D support (that are ", + "the desktop and IE ).", + "3. Release the mouse button.", + "The panel should turn red again and a yellow button labeled ", + "\"Drag ME!\" should appear inside the panel. You should be able ", + "to repeat this operation multiple times." + }; + Sysout.createDialogWithInstructions(instructions); + + }//End init() + + public void start() { + Frame f = new Frame("Use keyboard for DnD change"); + Panel mainPanel; + Component dragSource, dropTarget; + + f.setBounds(0, 400, 200, 200); + f.setLayout(new BorderLayout()); + + mainPanel = new Panel(); + mainPanel.setLayout(new BorderLayout()); + + mainPanel.setBackground(Color.blue); + + dropTarget = new DnDTarget(Color.red, Color.yellow); + dragSource = new DnDSource("Drag ME! (" + (DragSource.isDragImageSupported()?"with ":"without") + " image)" ); + + mainPanel.add(dragSource, "North"); + mainPanel.add(dropTarget, "Center"); + f.add(mainPanel, BorderLayout.CENTER); + + f.setVisible(true); + }// start() +}// class DnDAcceptanceTest + + +/** + * ************************************************* + * Standard Test Machinery + * DO NOT modify anything below -- it's a standard + * chunk of code whose purpose is to make user + * interaction uniform, and thereby make it simpler + * to read and understand someone else's test. + * ************************************************** + */ +class Sysout { + private static TestDialog dialog; + + public static void createDialogWithInstructions(String[] instructions) { + dialog = new TestDialog(new Frame(), "Instructions"); + dialog.printInstructions(instructions); + dialog.show(); + println("Any messages for the tester will display here."); + } + + public static void createDialog() { + dialog = new TestDialog(new Frame(), "Instructions"); + String[] defInstr = {"Instructions will appear here. ", ""}; + dialog.printInstructions(defInstr); + dialog.show(); + println("Any messages for the tester will display here."); + } + + + public static void printInstructions(String[] instructions) { + dialog.printInstructions(instructions); + } + + + public static void println(String messageIn) { + dialog.displayMessage(messageIn); + } + +}// Sysout class + + +class TestDialog extends Dialog { + + TextArea instructionsText; + TextArea messageText; + int maxStringLength = 80; + + //DO NOT call this directly, go through Sysout + public TestDialog(Frame frame, String name) { + super(frame, name); + int scrollBoth = TextArea.SCROLLBARS_BOTH; + instructionsText = new TextArea("", 15, maxStringLength, scrollBoth); + add("North", instructionsText); + + messageText = new TextArea("", 5, maxStringLength, scrollBoth); + add("South", messageText); + + pack(); + + show(); + }// TestDialog() + + //DO NOT call this directly, go through Sysout + public void printInstructions(String[] instructions) { + //Clear out any current instructions + instructionsText.setText(""); + + //Go down array of instruction strings + + String printStr, remainingStr; + for (int i = 0; i < instructions.length; i++) { + //chop up each into pieces maxSringLength long + remainingStr = instructions[i]; + while (remainingStr.length() > 0) { + //if longer than max then chop off first max chars to print + if (remainingStr.length() >= maxStringLength) { + //Try to chop on a word boundary + int posOfSpace = remainingStr. + lastIndexOf(' ', maxStringLength - 1); + + if (posOfSpace <= 0) posOfSpace = maxStringLength - 1; + + printStr = remainingStr.substring(0, posOfSpace + 1); + remainingStr = remainingStr.substring(posOfSpace + 1); + } + //else just print + else { + printStr = remainingStr; + remainingStr = ""; + } + + instructionsText.append(printStr + "\n"); + + }// while + + }// for + + }//printInstructions() + + //DO NOT call this directly, go through Sysout + public void displayMessage(String messageIn) { + messageText.append(messageIn + "\n"); + } + +}// TestDialog class + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageGenerator.java b/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageGenerator.java new file mode 100644 index 00000000000..da6484a2d15 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnD/ImageGenerator.java @@ -0,0 +1,59 @@ +/* + * 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. 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. + */ + +/* + * Image generator for cursor and drag + */ +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.image.BufferedImage; + +public abstract class ImageGenerator +{ + public int width; + public int height; + private final BufferedImage bi; + public ImageGenerator(int _width, int _height, Color bgColor) + { + width = _width; + height = _height; + bi = new BufferedImage( + width, + height, + BufferedImage.TYPE_INT_ARGB); + Graphics gr = bi.getGraphics(); + if(null==bgColor){ + bgColor = Color.WHITE; + } + gr.setColor(bgColor); + gr.fillRect(0, 0, width, height); + paint(gr); + gr.dispose(); + } + public Image getImage() { return bi; } + + public abstract void paint(Graphics gr); +} diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnD/MyCursor.java b/jdk/test/java/awt/dnd/ImageDecoratedDnD/MyCursor.java new file mode 100644 index 00000000000..a9d2b6d5750 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnD/MyCursor.java @@ -0,0 +1,86 @@ +/* + * 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. 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. + */ + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Toolkit; +import java.awt.Point; + +/** + * An interface provides a set of custom cursors + */ + +public interface MyCursor { + public static final java.awt.Cursor NO_DROP = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + + gr.translate(width/2, height/2); + int R = width/4; + gr.drawOval(-R, -R, 2*R, 2*R); + gr.drawLine(-R, R, R, -R); + } + }.getImage(), + new Point(0, 0), + "My NoDrop Cursor" + ); + public static final java.awt.Cursor MOVE = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + + gr.drawLine(0, 0, width, height); + gr.drawLine(0, 0, width/2, 0); + gr.drawLine(0, 0, 0, height/2); + } + }.getImage(), + new Point(0, 0), + "My Move Cursor" + ); + public static final java.awt.Cursor COPY = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + //arrow + gr.drawLine(0, 0, width/2, height/2); + gr.drawLine(0, 0, width/2, 0); + gr.drawLine(0, 0, 0, height/2); + //plus + gr.drawRect(width/2 - 1, height/2 -1, width/2 - 1, height/2 - 1); + gr.drawLine(width*3/4 - 1, height/2 - 1, width*3/4 - 1, height); + gr.drawLine(width/2 - 1, height*3/4 - 1, width, height*3/4 - 1); + } + }.getImage(), + new Point(0, 0), + "My Copy Cursor" + ); +} + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDSource.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDSource.java new file mode 100644 index 00000000000..281d7030294 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDSource.java @@ -0,0 +1,235 @@ +/* + * 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. 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. + */ + +/* +* AWT Button is a DragSource and also a transferable object +*/ + +import java.awt.*; +import java.awt.datatransfer.*; +import java.awt.dnd.*; +import java.io.*; + +class DnDSource extends Button implements Transferable, + DragGestureListener, + DragSourceListener { + private DataFlavor df; + private transient int dropAction; + private final int dragOperation = DnDConstants.ACTION_COPY | DnDConstants.ACTION_MOVE | DnDConstants.ACTION_LINK; + DragSource dragSource = new DragSource(); + + DnDSource(String label) { + super(label); + setBackground(Color.yellow); + setForeground(Color.blue); + df = new DataFlavor(DnDSource.class, "DnDSource"); + + dragSource.createDefaultDragGestureRecognizer( + this, + dragOperation, + this + ); + dragSource.addDragSourceListener(this); + } + + public void changeCursor( + DragSourceContext dsc, + int ra + ) { + java.awt.Cursor c = null; + if ((ra & DnDConstants.ACTION_LINK) == DnDConstants.ACTION_LINK) + c = DragSource.DefaultLinkDrop; + else if ((ra & DnDConstants.ACTION_MOVE) == DnDConstants.ACTION_MOVE) + c = MyCursor.MOVE;//DragSource.DefaultMoveDrop; + else if ((ra & DnDConstants.ACTION_COPY) == DnDConstants.ACTION_COPY) + c = MyCursor.COPY; + else + c = MyCursor.NO_DROP; + dsc.setCursor(c); + } + + /** + * a Drag gesture has been recognized + */ + + public void dragGestureRecognized(DragGestureEvent dge) { + System.out.println("starting Drag"); + try { + if (DragSource.isDragImageSupported()) { + System.out.println("starting Imaged Drag"); + dge.startDrag( + null, + new ImageGenerator(50, 100, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.translate(width/2, height/2); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + int R = width/4+5; + gr.setColor(Color.BLUE); + gr.fillRect(-R, -R, 2*R, 2*R); + gr.setColor(Color.CYAN); + gr.drawRect(-R, -R, 2*R, 2*R); + + + gr.translate(10, 10); + R -= 5; + gr.setColor(Color.RED); + gr.fillOval(-R, -R, 2*R, 2*R); + gr.setColor(Color.MAGENTA); + gr.drawOval(-R, -R, 2*R, 2*R); + } + }.getImage(), + new Point(15, 40), + this, + this); + } else { + dge.startDrag( + null, + this, + this); + } + } catch (InvalidDnDOperationException e) { + e.printStackTrace(); + } + } + + /** + * as the hotspot enters a platform dependent drop site + */ + + public void dragEnter(DragSourceDragEvent dsde) { + System.out.println("[Source] dragEnter"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + } + + /** + * as the hotspot moves over a platform dependent drop site + */ + public void dragOver(DragSourceDragEvent dsde) { + System.out.println("[Source] dragOver"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + /** + * as the hotspot exits a platform dependent drop site + */ + public void dragExit(DragSourceEvent dse) { + System.out.println("[Source] dragExit"); + changeCursor( + dse.getDragSourceContext(), + DnDConstants.ACTION_NONE + ); + } + + /** + * as the operation changes + */ + public void dragGestureChanged(DragSourceDragEvent dsde) { + System.out.println("[Source] dragGestureChanged"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + + /** + * as the operation completes + */ + public void dragDropEnd(DragSourceDropEvent dsde) { + System.out.println("[Source] dragDropEnd"); + } + + public void dropActionChanged(DragSourceDragEvent dsde) { + System.out.println("[Source] dropActionChanged"); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[]{df}; + } + + public boolean isDataFlavorSupported(DataFlavor sdf) { + return df.equals(sdf); + } + + public Object getTransferData(DataFlavor tdf) throws UnsupportedFlavorException, IOException { + Object copy = null; + if( !df.equals(tdf) ){ + throw new UnsupportedFlavorException(tdf); + } + Container parent = getParent(); + switch (dropAction) { + case DnDConstants.ACTION_COPY: + try { + copy = this.clone(); + } catch (CloneNotSupportedException e) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + + oos.writeObject(this); + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bais); + try { + copy = ois.readObject(); + } catch (ClassNotFoundException cnfe) { + // do nothing + } + } + parent.add(this); + return copy; + + case DnDConstants.ACTION_MOVE: + synchronized (this) { + if (parent != null) { + parent.remove(this); + Label label = new Label("[empty]"); + label.setBackground(Color.cyan); + label.setBounds(this.getBounds()); + parent.add(label); + } + } + return this; + + case DnDConstants.ACTION_LINK: + return this; + + default: + return null; + } + + } +} + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDTarget.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDTarget.java new file mode 100644 index 00000000000..52d39c4928a --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/DnDTarget.java @@ -0,0 +1,113 @@ +/* + * 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. 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. + */ + +/* +* Panel is a DropTarget +* +*/ + +import java.awt.*; +import java.awt.datatransfer.*; +import java.awt.dnd.*; +import java.io.*; + + +class DnDTarget extends Panel implements DropTargetListener { + private int dragOperation = DnDConstants.ACTION_COPY | DnDConstants.ACTION_MOVE; + Color bgColor; + Color htColor; + + DnDTarget(Color bgColor, Color htColor) { + super(); + this.bgColor = bgColor; + this.htColor = htColor; + setBackground(bgColor); + setDropTarget(new DropTarget(this, this)); + } + + + public void dragEnter(DropTargetDragEvent e) { + System.out.println("[Target] dragEnter"); + setBackground(htColor); + repaint(); + } + + public void dragOver(DropTargetDragEvent e) { + System.out.println("[Target] dragOver"); + } + + public void dragExit(DropTargetEvent e) { + System.out.println("[Target] dragExit"); + setBackground(bgColor); + repaint(); + } + + public void dragScroll(DropTargetDragEvent e) { + System.out.println("[Target] dragScroll"); + } + + public void dropActionChanged(DropTargetDragEvent e) { + System.out.println("[Target] dropActionChanged"); + } + + public void drop(DropTargetDropEvent dtde) { + System.out.println("[Target] drop"); + boolean success = false; + if ((dtde.getDropAction() & dragOperation) == 0) { + dtde.rejectDrop(); + Label label = new Label("[no links here :) ]"); + label.setBackground(Color.cyan); + add(label); + } else { + dtde.acceptDrop(dragOperation); + DataFlavor[] dfs = dtde.getCurrentDataFlavors(); + if (dfs != null && dfs.length >= 1){ + Transferable transfer = dtde.getTransferable(); + try { + Button button = (Button)transfer.getTransferData(dfs[0]); + if( button != null ){ + add(button); + success = true; + } + } catch (IOException ioe) { + System.out.println(ioe.getMessage()); + return; + } catch (UnsupportedFlavorException ufe) { + System.out.println(ufe.getMessage()); + return; + } catch (Exception e) { + System.out.println(e.getMessage()); + return; + } + } + } + setBackground(bgColor); + dtde.dropComplete(success); + + invalidate(); + validate(); + repaint(); + } +} diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html new file mode 100644 index 00000000000..15ade246d0c --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html @@ -0,0 +1,20 @@ + + + + ImageDecoratedDnDInOut + + + +

ImageDecoratedDnDInOut
Bug ID: 4874070

+ +

See the dialog box (usually in upper left corner) for instructions

+ + + + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java new file mode 100644 index 00000000000..336c561b2cf --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java @@ -0,0 +1,234 @@ +/* + * 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. 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. + */ + +/* + test %W% %E% + @bug 4874070 + @summary Tests basic DnD functionality + @author Your Name: Alexey Utkin area=dnd + @run applet ImageDecoratedDnDInOut.html +*/ + +import java.applet.Applet; +import java.awt.*; +import java.awt.Robot; +import java.awt.event.InputEvent; +import java.awt.dnd.DragSource; + + +public class ImageDecoratedDnDInOut extends Applet { + //Declare things used in the test, like buttons and labels here + + public void init() { + //Create instructions for the user here, as well as set up + // the environment -- set the layout manager, add buttons, + // etc. + this.setLayout(new BorderLayout()); + + String[] instructions = + { + "Automatic test.", + "A Frame, which contains a yellow button labeled \"Drag ME!\" and ", + "a red panel, will appear below. ", + "1. The button would be clicked and dragged to the red panel. ", + "2. When the mouse enters the red panel during the drag, the panel ", + "should turn yellow. On the systems that supports pictured drag, ", + "the image under the drag-cursor should appear (ancor is shifted ", + "from top-left corner of the picture inside the picture to 10pt in both dimensions ). ", + "In WIN32 systems the image under cursor would be visible ONLY over ", + "the drop targets with activated extended OLE D\'n\'D support (that are ", + "the desktop and IE ).", + "3. The mouse would be released.", + "The panel should turn red again and a yellow button labeled ", + "\"Drag ME!\" should appear inside the panel. " + }; + Sysout.createDialogWithInstructions(instructions); + + }//End init() + + public void start() { + Frame f = new Frame("Use keyboard for DnD change"); + Panel mainPanel; + Component dragSource, dropTarget; + + f.setBounds(0, 400, 200, 200); + f.setLayout(new BorderLayout()); + + mainPanel = new Panel(); + mainPanel.setLayout(new BorderLayout()); + + mainPanel.setBackground(Color.blue); + + dropTarget = new DnDTarget(Color.red, Color.yellow); + dragSource = new DnDSource("Drag ME! (" + (DragSource.isDragImageSupported()?"with ":"without") + " image)" ); + + mainPanel.add(dragSource, "North"); + mainPanel.add(dropTarget, "Center"); + f.add(mainPanel, BorderLayout.CENTER); + + f.setVisible(true); + try { + Point sourcePoint = dragSource.getLocationOnScreen(); + Dimension d = dragSource.getSize(); + sourcePoint.translate(d.width / 2, d.height / 2); + + Robot robot = new Robot(); + robot.mouseMove(sourcePoint.x, sourcePoint.y); + robot.mousePress(InputEvent.BUTTON1_MASK); + Thread.sleep(2000); + for(int i = 0; i <100; ++i) { + robot.mouseMove( + sourcePoint.x + d.width / 2 + 10, + sourcePoint.y + d.height); + Thread.sleep(100); + + robot.mouseMove(sourcePoint.x, sourcePoint.y); + Thread.sleep(100); + + robot.mouseMove( + sourcePoint.x, + sourcePoint.y + d.height); + Thread.sleep(100); + } + sourcePoint.y += d.height; + robot.mouseMove(sourcePoint.x, sourcePoint.y); + Thread.sleep(100); + + robot.mouseRelease(InputEvent.BUTTON1_MASK); + Thread.sleep(4000); + } catch( Exception e){ + e.printStackTrace(); + throw new RuntimeException("test failed: drop was not successful with exception " + e); + } + + }// start() +}// class DnDAcceptanceTest + + +/** + * ************************************************* + * Standard Test Machinery + * DO NOT modify anything below -- it's a standard + * chunk of code whose purpose is to make user + * interaction uniform, and thereby make it simpler + * to read and understand someone else's test. + * ************************************************** + */ +class Sysout { + private static TestDialog dialog; + + public static void createDialogWithInstructions(String[] instructions) { + dialog = new TestDialog(new Frame(), "Instructions"); + dialog.printInstructions(instructions); + dialog.show(); + println("Any messages for the tester will display here."); + } + + public static void createDialog() { + dialog = new TestDialog(new Frame(), "Instructions"); + String[] defInstr = {"Instructions will appear here. ", ""}; + dialog.printInstructions(defInstr); + dialog.show(); + println("Any messages for the tester will display here."); + } + + + public static void printInstructions(String[] instructions) { + dialog.printInstructions(instructions); + } + + + public static void println(String messageIn) { + dialog.displayMessage(messageIn); + } + +}// Sysout class + + +class TestDialog extends Dialog { + + TextArea instructionsText; + TextArea messageText; + int maxStringLength = 80; + + //DO NOT call this directly, go through Sysout + public TestDialog(Frame frame, String name) { + super(frame, name); + int scrollBoth = TextArea.SCROLLBARS_BOTH; + instructionsText = new TextArea("", 15, maxStringLength, scrollBoth); + add("North", instructionsText); + + messageText = new TextArea("", 5, maxStringLength, scrollBoth); + add("South", messageText); + + pack(); + + show(); + }// TestDialog() + + //DO NOT call this directly, go through Sysout + public void printInstructions(String[] instructions) { + //Clear out any current instructions + instructionsText.setText(""); + + //Go down array of instruction strings + + String printStr, remainingStr; + for (int i = 0; i < instructions.length; i++) { + //chop up each into pieces maxSringLength long + remainingStr = instructions[i]; + while (remainingStr.length() > 0) { + //if longer than max then chop off first max chars to print + if (remainingStr.length() >= maxStringLength) { + //Try to chop on a word boundary + int posOfSpace = remainingStr. + lastIndexOf(' ', maxStringLength - 1); + + if (posOfSpace <= 0) posOfSpace = maxStringLength - 1; + + printStr = remainingStr.substring(0, posOfSpace + 1); + remainingStr = remainingStr.substring(posOfSpace + 1); + } + //else just print + else { + printStr = remainingStr; + remainingStr = ""; + } + + instructionsText.append(printStr + "\n"); + + }// while + + }// for + + }//printInstructions() + + //DO NOT call this directly, go through Sysout + public void displayMessage(String messageIn) { + messageText.append(messageIn + "\n"); + } + +}// TestDialog class + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageGenerator.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageGenerator.java new file mode 100644 index 00000000000..da6484a2d15 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/ImageGenerator.java @@ -0,0 +1,59 @@ +/* + * 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. 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. + */ + +/* + * Image generator for cursor and drag + */ +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.image.BufferedImage; + +public abstract class ImageGenerator +{ + public int width; + public int height; + private final BufferedImage bi; + public ImageGenerator(int _width, int _height, Color bgColor) + { + width = _width; + height = _height; + bi = new BufferedImage( + width, + height, + BufferedImage.TYPE_INT_ARGB); + Graphics gr = bi.getGraphics(); + if(null==bgColor){ + bgColor = Color.WHITE; + } + gr.setColor(bgColor); + gr.fillRect(0, 0, width, height); + paint(gr); + gr.dispose(); + } + public Image getImage() { return bi; } + + public abstract void paint(Graphics gr); +} diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/MyCursor.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/MyCursor.java new file mode 100644 index 00000000000..a9d2b6d5750 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDInOut/MyCursor.java @@ -0,0 +1,86 @@ +/* + * 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. 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. + */ + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Toolkit; +import java.awt.Point; + +/** + * An interface provides a set of custom cursors + */ + +public interface MyCursor { + public static final java.awt.Cursor NO_DROP = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + + gr.translate(width/2, height/2); + int R = width/4; + gr.drawOval(-R, -R, 2*R, 2*R); + gr.drawLine(-R, R, R, -R); + } + }.getImage(), + new Point(0, 0), + "My NoDrop Cursor" + ); + public static final java.awt.Cursor MOVE = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + + gr.drawLine(0, 0, width, height); + gr.drawLine(0, 0, width/2, 0); + gr.drawLine(0, 0, 0, height/2); + } + }.getImage(), + new Point(0, 0), + "My Move Cursor" + ); + public static final java.awt.Cursor COPY = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + //arrow + gr.drawLine(0, 0, width/2, height/2); + gr.drawLine(0, 0, width/2, 0); + gr.drawLine(0, 0, 0, height/2); + //plus + gr.drawRect(width/2 - 1, height/2 -1, width/2 - 1, height/2 - 1); + gr.drawLine(width*3/4 - 1, height/2 - 1, width*3/4 - 1, height); + gr.drawLine(width/2 - 1, height*3/4 - 1, width, height*3/4 - 1); + } + }.getImage(), + new Point(0, 0), + "My Copy Cursor" + ); +} + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDSource.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDSource.java new file mode 100644 index 00000000000..5ae8f08ac01 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDSource.java @@ -0,0 +1,273 @@ +/* + * 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. 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. + */ + +/* +* AWT Button is a DragSource and also a transferable object +*/ + +import java.awt.*; +import java.awt.datatransfer.*; + +import java.awt.image.ImageConsumer; +import java.awt.image.MemoryImageSource; + +import java.awt.dnd.*; +import java.io.*; + +class DnDSource extends Button implements Transferable, + DragGestureListener, + DragSourceListener { + private DataFlavor df; + private transient int dropAction; + private final int dragOperation = DnDConstants.ACTION_COPY | DnDConstants.ACTION_MOVE | DnDConstants.ACTION_LINK; + DragSource dragSource = new DragSource(); + + DnDSource(String label) { + super(label); + setBackground(Color.yellow); + setForeground(Color.blue); + df = new DataFlavor(DnDSource.class, "DnDSource"); + + dragSource.createDefaultDragGestureRecognizer( + this, + dragOperation, + this + ); + dragSource.addDragSourceListener(this); + } + + public void changeCursor( + DragSourceContext dsc, + int ra + ) { + java.awt.Cursor c = null; + if ((ra & DnDConstants.ACTION_LINK) == DnDConstants.ACTION_LINK) + c = DragSource.DefaultLinkDrop; + else if ((ra & DnDConstants.ACTION_MOVE) == DnDConstants.ACTION_MOVE) + c = MyCursor.MOVE;//DragSource.DefaultMoveDrop; + else if ((ra & DnDConstants.ACTION_COPY) == DnDConstants.ACTION_COPY) + c = MyCursor.COPY; + else + c = MyCursor.NO_DROP; + dsc.setCursor(c); + } + + /** + * a Drag gesture has been recognized + */ + int iProblem = 0; + String[] problem = {"unready", "throw exeption", "good"}; + public void dragGestureRecognized(DragGestureEvent dge) { + System.out.println("starting Drag"); + if( !DragSource.isDragImageSupported() ) { + dge.startDrag( + null, + this, + this); + } else { + setLabel("Drag ME! (with " + problem[iProblem] + " image)"); + int w = 100; + int h = 100; + int pix[] = new int[w * h]; + int index = 0; + for (int y = 0; y < h; y++) { + int red = (y * 255) / (h - 1); + for (int x = 0; x < w; x++) { + int blue = (x * 255) / (w - 1); + pix[index++] = (255 << 24) | (red << 16) | blue; + } + } + try{ + dge.startDrag( + null, + Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(w, h, pix, 0, w) + { + @Override + public void startProduction(ImageConsumer ic) + { + switch(iProblem){ + case 0: + //incomplite + break; + case 1: + //exception + throw new RuntimeException("test exception 1"); + default: + super.startProduction(ic); + break; + } + } + } + ), + new Point(15, 40) { + @Override + public double getX() { + if(2==iProblem){ + //never happen + throw new RuntimeException("test exception 2"); + } + return x; + } + @Override + public Point getLocation(){ + //never happen + throw new RuntimeException("test exception 3"); + } + }, + this, + this); + }catch(InvalidDnDOperationException e){ + if( iProblem<=2 ){ + System.err.println("good exception: " + e.getMessage() ); + } else { + System.err.println("bad exception"); + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } + } finally { + ++iProblem; + } + } + } + + /** + * as the hotspot enters a platform dependent drop site + */ + + public void dragEnter(DragSourceDragEvent dsde) { + System.out.println("[Source] dragEnter"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + } + + /** + * as the hotspot moves over a platform dependent drop site + */ + public void dragOver(DragSourceDragEvent dsde) { + System.out.println("[Source] dragOver"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + /** + * as the hotspot exits a platform dependent drop site + */ + public void dragExit(DragSourceEvent dse) { + System.out.println("[Source] dragExit"); + changeCursor( + dse.getDragSourceContext(), + DnDConstants.ACTION_NONE + ); + } + + /** + * as the operation changes + */ + public void dragGestureChanged(DragSourceDragEvent dsde) { + System.out.println("[Source] dragGestureChanged"); + changeCursor( + dsde.getDragSourceContext(), + dsde.getUserAction() & dsde.getDropAction() + ); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + + /** + * as the operation completes + */ + public void dragDropEnd(DragSourceDropEvent dsde) { + System.out.println("[Source] dragDropEnd"); + } + + public void dropActionChanged(DragSourceDragEvent dsde) { + System.out.println("[Source] dropActionChanged"); + dropAction = dsde.getUserAction() & dsde.getDropAction(); + System.out.println("dropAction = " + dropAction); + } + + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[]{df}; + } + + public boolean isDataFlavorSupported(DataFlavor sdf) { + return df.equals(sdf); + } + + public Object getTransferData(DataFlavor tdf) throws UnsupportedFlavorException, IOException { + Object copy = null; + if( !df.equals(tdf) ){ + throw new UnsupportedFlavorException(tdf); + } + Container parent = getParent(); + switch (dropAction) { + case DnDConstants.ACTION_COPY: + try { + copy = this.clone(); + } catch (CloneNotSupportedException e) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + + oos.writeObject(this); + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bais); + try { + copy = ois.readObject(); + } catch (ClassNotFoundException cnfe) { + // do nothing + } + } + parent.add(this); + return copy; + + case DnDConstants.ACTION_MOVE: + synchronized (this) { + if (parent != null) { + parent.remove(this); + Label label = new Label("[empty]"); + label.setBackground(Color.cyan); + label.setBounds(this.getBounds()); + parent.add(label); + } + } + return this; + + case DnDConstants.ACTION_LINK: + return this; + + default: + return null; + } + + } +} + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDTarget.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDTarget.java new file mode 100644 index 00000000000..52d39c4928a --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/DnDTarget.java @@ -0,0 +1,113 @@ +/* + * 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. 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. + */ + +/* +* Panel is a DropTarget +* +*/ + +import java.awt.*; +import java.awt.datatransfer.*; +import java.awt.dnd.*; +import java.io.*; + + +class DnDTarget extends Panel implements DropTargetListener { + private int dragOperation = DnDConstants.ACTION_COPY | DnDConstants.ACTION_MOVE; + Color bgColor; + Color htColor; + + DnDTarget(Color bgColor, Color htColor) { + super(); + this.bgColor = bgColor; + this.htColor = htColor; + setBackground(bgColor); + setDropTarget(new DropTarget(this, this)); + } + + + public void dragEnter(DropTargetDragEvent e) { + System.out.println("[Target] dragEnter"); + setBackground(htColor); + repaint(); + } + + public void dragOver(DropTargetDragEvent e) { + System.out.println("[Target] dragOver"); + } + + public void dragExit(DropTargetEvent e) { + System.out.println("[Target] dragExit"); + setBackground(bgColor); + repaint(); + } + + public void dragScroll(DropTargetDragEvent e) { + System.out.println("[Target] dragScroll"); + } + + public void dropActionChanged(DropTargetDragEvent e) { + System.out.println("[Target] dropActionChanged"); + } + + public void drop(DropTargetDropEvent dtde) { + System.out.println("[Target] drop"); + boolean success = false; + if ((dtde.getDropAction() & dragOperation) == 0) { + dtde.rejectDrop(); + Label label = new Label("[no links here :) ]"); + label.setBackground(Color.cyan); + add(label); + } else { + dtde.acceptDrop(dragOperation); + DataFlavor[] dfs = dtde.getCurrentDataFlavors(); + if (dfs != null && dfs.length >= 1){ + Transferable transfer = dtde.getTransferable(); + try { + Button button = (Button)transfer.getTransferData(dfs[0]); + if( button != null ){ + add(button); + success = true; + } + } catch (IOException ioe) { + System.out.println(ioe.getMessage()); + return; + } catch (UnsupportedFlavorException ufe) { + System.out.println(ufe.getMessage()); + return; + } catch (Exception e) { + System.out.println(e.getMessage()); + return; + } + } + } + setBackground(bgColor); + dtde.dropComplete(success); + + invalidate(); + validate(); + repaint(); + } +} diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html new file mode 100644 index 00000000000..e51c99aad77 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html @@ -0,0 +1,20 @@ + + + + ImageDecoratedDnDNegative + + + +

ImageDecoratedDnDInOut
Bug ID: 4874070

+ +

See the dialog box (usually in upper left corner) for the test description

+ + + + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.java new file mode 100644 index 00000000000..f542a6837fd --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.java @@ -0,0 +1,268 @@ +/* + * 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. 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. + */ + +/* + test %W% %E% + @bug 4874070 + @summary Tests basic DnD functionality + @author Your Name: Alexey Utkin area=dnd + @run applet ImageDecoratedDnDNegative.html +*/ + +import java.applet.Applet; +import java.awt.*; +import java.awt.Robot; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.awt.geom.Point2D; + + +import java.awt.dnd.DragSource; + + +public class ImageDecoratedDnDNegative extends Applet { + //Declare things used in the test, like buttons and labels here + + public void init() { + //Create instructions for the user here, as well as set up + // the environment -- set the layout manager, add buttons, + // etc. + this.setLayout(new BorderLayout()); + + String[] instructions = + { + "Automatic test.", + "A Frame, which contains a yellow button labeled \"Drag ME!\" and ", + "a red panel, will appear below. ", + "1. The button would be clicked and dragged to the red panel. ", + "2. When the mouse enters the red panel during the drag, the panel ", + "should turn yellow. On the systems that supports pictured drag, ", + "the image under the drag-cursor should appear (ancor is shifted ", + "from top-left corner of the picture inside the picture to 10pt in both dimensions ). ", + "In WIN32 systems the image under cursor would be visible ONLY over ", + "the drop targets with activated extended OLE D\'n\'D support (that are ", + "the desktop and IE ).", + "3. The mouse would be released.", + "The panel should turn red again and a yellow button labeled ", + "\"Drag ME!\" should appear inside the panel. You should be able ", + "to repeat this operation multiple times." + }; + Sysout.createDialogWithInstructions(instructions); + + }//End init() + + public void moveTo( + Robot r, + Point b, + Point e) + { + Point2D.Double ee = new Point2D.Double(e.getX(), e.getY()); + Point2D.Double bb = new Point2D.Double(b.getX(), b.getY()); + final int count = (int)(ee.distance(bb)); + Point2D.Double c = new Point2D.Double(bb.getX(), bb.getY()); + for(int i=0; i 0) { + //if longer than max then chop off first max chars to print + if (remainingStr.length() >= maxStringLength) { + //Try to chop on a word boundary + int posOfSpace = remainingStr. + lastIndexOf(' ', maxStringLength - 1); + + if (posOfSpace <= 0) posOfSpace = maxStringLength - 1; + + printStr = remainingStr.substring(0, posOfSpace + 1); + remainingStr = remainingStr.substring(posOfSpace + 1); + } + //else just print + else { + printStr = remainingStr; + remainingStr = ""; + } + + instructionsText.append(printStr + "\n"); + + }// while + + }// for + + }//printInstructions() + + //DO NOT call this directly, go through Sysout + public void displayMessage(String messageIn) { + messageText.append(messageIn + "\n"); + } + +}// TestDialog class + diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageGenerator.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageGenerator.java new file mode 100644 index 00000000000..da6484a2d15 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/ImageGenerator.java @@ -0,0 +1,59 @@ +/* + * 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. 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. + */ + +/* + * Image generator for cursor and drag + */ +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.image.BufferedImage; + +public abstract class ImageGenerator +{ + public int width; + public int height; + private final BufferedImage bi; + public ImageGenerator(int _width, int _height, Color bgColor) + { + width = _width; + height = _height; + bi = new BufferedImage( + width, + height, + BufferedImage.TYPE_INT_ARGB); + Graphics gr = bi.getGraphics(); + if(null==bgColor){ + bgColor = Color.WHITE; + } + gr.setColor(bgColor); + gr.fillRect(0, 0, width, height); + paint(gr); + gr.dispose(); + } + public Image getImage() { return bi; } + + public abstract void paint(Graphics gr); +} diff --git a/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/MyCursor.java b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/MyCursor.java new file mode 100644 index 00000000000..a9d2b6d5750 --- /dev/null +++ b/jdk/test/java/awt/dnd/ImageDecoratedDnDNegative/MyCursor.java @@ -0,0 +1,86 @@ +/* + * 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. 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. + */ + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Toolkit; +import java.awt.Point; + +/** + * An interface provides a set of custom cursors + */ + +public interface MyCursor { + public static final java.awt.Cursor NO_DROP = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + + gr.translate(width/2, height/2); + int R = width/4; + gr.drawOval(-R, -R, 2*R, 2*R); + gr.drawLine(-R, R, R, -R); + } + }.getImage(), + new Point(0, 0), + "My NoDrop Cursor" + ); + public static final java.awt.Cursor MOVE = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + + gr.drawLine(0, 0, width, height); + gr.drawLine(0, 0, width/2, 0); + gr.drawLine(0, 0, 0, height/2); + } + }.getImage(), + new Point(0, 0), + "My Move Cursor" + ); + public static final java.awt.Cursor COPY = Toolkit.getDefaultToolkit().createCustomCursor( + new ImageGenerator(32, 32, new Color(0xff, 0xff, 0xff, 0x00) ) { + @Override public void paint(Graphics gr) { + gr.setColor(Color.GREEN); + ((Graphics2D)gr).setStroke(new BasicStroke(3)); + //arrow + gr.drawLine(0, 0, width/2, height/2); + gr.drawLine(0, 0, width/2, 0); + gr.drawLine(0, 0, 0, height/2); + //plus + gr.drawRect(width/2 - 1, height/2 -1, width/2 - 1, height/2 - 1); + gr.drawLine(width*3/4 - 1, height/2 - 1, width*3/4 - 1, height); + gr.drawLine(width/2 - 1, height*3/4 - 1, width, height*3/4 - 1); + } + }.getImage(), + new Point(0, 0), + "My Copy Cursor" + ); +} + From ca167b293538b825398fd3d90f951e44c49ee5a4 Mon Sep 17 00:00:00 2001 From: Peter Zhelezniakov Date: Fri, 25 Dec 2009 17:47:08 +0300 Subject: [PATCH 006/109] 6860438: [Nimbus] Code to globally set slider's thumb background doesn't work as specified Reviewed-by: rupashka --- .../classes/javax/swing/MultiUIDefaults.java | 87 +++++++--------- .../MultiUIDefaults/4300666/bug4300666.html | 28 ++++++ .../MultiUIDefaults/4300666/bug4300666.java | 40 ++++++++ .../MultiUIDefaults/4331767/bug4331767.java | 94 ++++++++++++++++++ .../swing/MultiUIDefaults/Test6860438.java | 98 +++++++++++++++++++ 5 files changed, 293 insertions(+), 54 deletions(-) create mode 100644 jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.html create mode 100644 jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.java create mode 100644 jdk/test/javax/swing/MultiUIDefaults/4331767/bug4331767.java create mode 100644 jdk/test/javax/swing/MultiUIDefaults/Test6860438.java diff --git a/jdk/src/share/classes/javax/swing/MultiUIDefaults.java b/jdk/src/share/classes/javax/swing/MultiUIDefaults.java index 20eeeafa24a..4319ef47367 100644 --- a/jdk/src/share/classes/javax/swing/MultiUIDefaults.java +++ b/jdk/src/share/classes/javax/swing/MultiUIDefaults.java @@ -27,6 +27,7 @@ package javax.swing; import java.util.Enumeration; import java.util.HashSet; +import java.util.Iterator; import java.util.Locale; import java.util.Map.Entry; import java.util.Set; @@ -89,11 +90,7 @@ class MultiUIDefaults extends UIDefaults @Override public int size() { - int n = super.size(); - for (UIDefaults table : tables) { - n += (table != null) ? table.size() : 0; - } - return n; + return entrySet().size(); } @Override @@ -104,40 +101,26 @@ class MultiUIDefaults extends UIDefaults @Override public Enumeration keys() { - Enumeration[] enums = new Enumeration[1 + tables.length]; - enums[0] = super.keys(); - for(int i = 0; i < tables.length; i++) { - UIDefaults table = tables[i]; - if (table != null) { - enums[i + 1] = table.keys(); - } - } - return new MultiUIDefaultsEnumerator(enums); + return new MultiUIDefaultsEnumerator( + MultiUIDefaultsEnumerator.Type.KEYS, entrySet()); } @Override public Enumeration elements() { - Enumeration[] enums = new Enumeration[1 + tables.length]; - enums[0] = super.elements(); - for(int i = 0; i < tables.length; i++) { - UIDefaults table = tables[i]; - if (table != null) { - enums[i + 1] = table.elements(); - } - } - return new MultiUIDefaultsEnumerator(enums); + return new MultiUIDefaultsEnumerator( + MultiUIDefaultsEnumerator.Type.ELEMENTS, entrySet()); } @Override public Set> entrySet() { Set> set = new HashSet>(); - if (tables == null) return set; - for (UIDefaults table : tables) { - if (table != null) { - set.addAll(table.entrySet()); + for (int i = tables.length - 1; i >= 0; i--) { + if (tables[i] != null) { + set.addAll(tables[i].entrySet()); } } + set.addAll(super.entrySet()); return set; } @@ -152,50 +135,46 @@ class MultiUIDefaults extends UIDefaults private static class MultiUIDefaultsEnumerator implements Enumeration { - Enumeration[] enums; - int n = 0; + public static enum Type { KEYS, ELEMENTS }; + private Iterator> iterator; + private Type type; - MultiUIDefaultsEnumerator(Enumeration[] enums) { - this.enums = enums; + MultiUIDefaultsEnumerator(Type type, Set> entries) { + this.type = type; + this.iterator = entries.iterator(); } public boolean hasMoreElements() { - for(int i = n; i < enums.length; i++) { - Enumeration e = enums[i]; - if ((e != null) && (e.hasMoreElements())) { - return true; - } - } - return false; + return iterator.hasNext(); } public Object nextElement() { - for(; n < enums.length; n++) { - Enumeration e = enums[n]; - if ((e != null) && (e.hasMoreElements())) { - return e.nextElement(); - } + switch (type) { + case KEYS: return iterator.next().getKey(); + case ELEMENTS: return iterator.next().getValue(); + default: return null; } - return null; } } @Override public Object remove(Object key) { - Object value = super.remove(key); - if (value != null) { - return value; - } - - for (UIDefaults table : tables) { - value = (table != null) ? table.remove(key) : null; - if (value != null) { - return value; + Object value = null; + for (int i = tables.length - 1; i >= 0; i--) { + if (tables[i] != null) { + Object v = tables[i].remove(key); + if (v != null) { + value = v; + } } } + Object v = super.remove(key); + if (v != null) { + value = v; + } - return null; + return value; } @Override diff --git a/jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.html b/jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.html new file mode 100644 index 00000000000..5d958b96a09 --- /dev/null +++ b/jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.html @@ -0,0 +1,28 @@ + + + + + + + diff --git a/jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.java b/jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.java new file mode 100644 index 00000000000..b4d1abef442 --- /dev/null +++ b/jdk/test/javax/swing/MultiUIDefaults/4300666/bug4300666.java @@ -0,0 +1,40 @@ +/* + * Copyright 2007 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 4300666 + @summary Printing UIDefaults throws NoSuchElementExcept + @author Andrey Pikalev + @run applet bug4300666.html +*/ + +import javax.swing.*; + + +public class bug4300666 extends JApplet { + + public void init() { + UIDefaults d = UIManager.getDefaults(); + d.toString(); + } +} diff --git a/jdk/test/javax/swing/MultiUIDefaults/4331767/bug4331767.java b/jdk/test/javax/swing/MultiUIDefaults/4331767/bug4331767.java new file mode 100644 index 00000000000..9d673612959 --- /dev/null +++ b/jdk/test/javax/swing/MultiUIDefaults/4331767/bug4331767.java @@ -0,0 +1,94 @@ +/* + * Copyright 2007 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 4331767 + @summary Tests that custom implementation of UIDefaults.getUIError() is + called when an UI error occurs + @author Peter Zhelezniakov + @run main bug4331767 +*/ +import javax.swing.*; +import javax.swing.plaf.metal.MetalLookAndFeel; +import java.util.Locale; + +public class bug4331767 +{ + private static boolean passed = false; + + public static void main(String[] argv) { + try { + UIManager.setLookAndFeel(new BrokenLookAndFeel()); + } catch (Exception e) { + throw new Error("Failed to set BrokenLookAndFeel, cannot test", e); + } + + // This should call BrokenUIDefaults.getUIError() + new JButton(); + + if (!passed) { + throw new RuntimeException("Failed: Custom getUIError() not called"); + } + } + + static class BrokenUIDefaults extends UIDefaults { + UIDefaults defaults; + + public BrokenUIDefaults(UIDefaults def) { + defaults = def; + } + + public Object get(Object key) { + if ("ButtonUI".equals(key)) { + System.err.println("[II] Called BrokenUIDefaults.get(Object)"); + return "a nonexistent class"; + } + return defaults.get(key); + } + + public Object get(Object key, Locale l) { + if ("ButtonUI".equals(key)) { + System.err.println("[II] Called BrokenUIDefaults.get(Object, Locale)"); + return "a nonexistent class"; + } + return defaults.get(key, l); + } + + protected void getUIError(String msg) { + System.err.println("[II] BrokenUIDefaults.getUIError() called, test passes"); + passed = true; + } + } + + static class BrokenLookAndFeel extends MetalLookAndFeel { + UIDefaults defaults; + + public BrokenLookAndFeel() { + defaults = new BrokenUIDefaults(super.getDefaults()); + } + + public UIDefaults getDefaults() { + return defaults; + } + } +} diff --git a/jdk/test/javax/swing/MultiUIDefaults/Test6860438.java b/jdk/test/javax/swing/MultiUIDefaults/Test6860438.java new file mode 100644 index 00000000000..0ce0cad8b18 --- /dev/null +++ b/jdk/test/javax/swing/MultiUIDefaults/Test6860438.java @@ -0,0 +1,98 @@ +/* + * 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 6860438 + @summary Tests various MultiUIDefaults methods + @author Peter Zhelezniakov + @run main Test6860438 +*/ + +import java.util.Enumeration; +import java.util.Map.Entry; +import java.util.Set; +import javax.swing.UIManager; + +public class Test6860438 +{ + static final String KEY = "Test6860438.key"; + static final String VALUE = "Test6860438.value"; + + void check(Object key, Object value, boolean present, int size) { + check(UIManager.get(key) == value, "UIManager.get()"); + check(UIManager.getDefaults().size() == size, "MultiUIDefaults.size()"); + + checkEnumeration(UIManager.getDefaults().keys(), + key, present, "MultiUIDefaults.keys()"); + checkEnumeration(UIManager.getDefaults().elements(), + value, present, "MultiUIDefaults.elements()"); + + // check MultiUIDefaults.entrySet() + boolean found = false; + Set> entries = UIManager.getDefaults().entrySet(); + for (Entry e: entries) { + if (e.getKey() == key) { + check(e.getValue() == value, "MultiUIDefaults.entrySet()"); + found = true; + } + } + check(found == present, "MultiUIDefaults.entrySet()"); + } + + void checkEnumeration(Enumeration e, Object elem, + boolean present, String error) { + boolean found = false; + while (e.hasMoreElements()) { + if (e.nextElement() == elem) { + found = true; + } + } + check(found == present, error); + } + + void check(boolean condition, String methodName) { + if (! condition) { + throw new RuntimeException(methodName + " failed"); + } + } + + void test() { + int size = UIManager.getDefaults().size(); + + // create a new value, size increases + UIManager.getLookAndFeelDefaults().put(KEY, VALUE); + check(KEY, VALUE, true, size + 1); + + // override the value, size remains the same + UIManager.put(KEY, VALUE); + check(KEY, VALUE, true, size + 1); + + // remove the value, size decreases + UIManager.getDefaults().remove(KEY); + check(KEY, null, false, size); + } + + public static void main(String[] args) { + new Test6860438().test(); + } +} From b592c92417310d09316da0ff2f19f22185d8d401 Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov Date: Mon, 28 Dec 2009 20:35:41 +0300 Subject: [PATCH 007/109] 6857363: deadlock caused by sun.awt.X11.XTrayIconPeer$Tooltip.display Reviewed-by: ant, art --- .../classes/sun/awt/X11/InfoWindow.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java index c5deb685813..bc51b69b296 100644 --- a/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java +++ b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java @@ -189,21 +189,22 @@ public abstract class InfoWindow extends Window { * WARNING: this method is executed on Toolkit thread! */ private void display() { - String tooltipString = liveArguments.getTooltipString(); - if (tooltipString == null) { - return; - } else if (tooltipString.length() > TOOLTIP_MAX_LENGTH) { - textLabel.setText(tooltipString.substring(0, TOOLTIP_MAX_LENGTH)); - } else { - textLabel.setText(tooltipString); - } - // Execute on EDT to avoid deadlock (see 6280857). SunToolkit.executeOnEventHandlerThread(target, new Runnable() { public void run() { if (liveArguments.isDisposed()) { return; } + + String tooltipString = liveArguments.getTooltipString(); + if (tooltipString == null) { + return; + } else if (tooltipString.length() > TOOLTIP_MAX_LENGTH) { + textLabel.setText(tooltipString.substring(0, TOOLTIP_MAX_LENGTH)); + } else { + textLabel.setText(tooltipString); + } + Point pointer = (Point)AccessController.doPrivileged(new PrivilegedAction() { public Object run() { if (!isPointerOverTrayIcon(liveArguments.getBounds())) { From 74452cc01804d1a1c9b94deff91c9519abd8c138 Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 8 Jan 2010 12:51:15 +0000 Subject: [PATCH 008/109] 6584033: (tz) wrong buffer length in TimeZone_md.c Add testcase for this bug Reviewed-by: darcy, okutsu --- .../TimeZone/TimeZoneDatePermissionCheck.java | 42 ++++++++++++++ .../TimeZone/TimeZoneDatePermissionCheck.sh | 58 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java create mode 100644 jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh diff --git a/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java b/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java new file mode 100644 index 00000000000..e80becbd8ad --- /dev/null +++ b/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java @@ -0,0 +1,42 @@ +/* Testcase for PR381 Stackoverflow error with security manager, signed jars + * and -Djava.security.debug set. + * Copyright (c) 2009, Red Hat Inc. + * 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. + */ + +import java.util.Date; + +/** + * Test class. Create a test keystore and dummy cert, create a jar file to + * sign with the test class in it. Sign it run it with the security manager + * on, plus accesscontroller debugging, will go into infinite recursion + * trying to get enough permissions for printing Date of failing + * certificate, unless fix is applied. + */ +public class TimeZoneDatePermissionCheck +{ + public static void main(String[] args) + { + System.out.println(new Date()); + } +} diff --git a/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh b/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh new file mode 100644 index 00000000000..226228f1754 --- /dev/null +++ b/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh @@ -0,0 +1,58 @@ +# Testcase for PR381 Stackoverflow error with security manager, signed jars +# and -Djava.security.debug set. +# +# Copyright (c) 2009, Red Hat Inc. +# +# This code is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# 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 for more details. +# +# 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. +# +# @test +# @bug 6584033 +# @summary Stackoverflow error with security manager, signed jars and debug. +# @build TimeZoneDatePermissionCheck +# @run shell TimeZoneDatePermissionCheck.sh + +# Set default if not run under jtreg from test dir itself +if [ "${TESTCLASSES}" = "" ] ; then + TESTCLASSES="." +fi +if [ "${TESTJAVA}" = "" ] ; then + TESTJAVA=/usr +fi + +# create a test keystore and dummy cert +rm -f ${TESTCLASSES}/timezonedatetest.store +${TESTJAVA}/bin/keytool -genkeypair -alias testcert \ + -keystore ${TESTCLASSES}/timezonedatetest.store \ + -storepass testpass -validity 360 \ + -dname "cn=Mark Wildebeest, ou=FreeSoft, o=Red Hat, c=NL" \ + -keypass testpass + +# create a jar file to sign with the test class in it. +rm -f ${TESTCLASSES}/timezonedatetest.jar +${TESTJAVA}/bin/jar cf \ + ${TESTCLASSES}/timezonedatetest.jar \ + -C ${TESTCLASSES} TimeZoneDatePermissionCheck.class + +# sign it +${TESTJAVA}/bin/jarsigner \ + -keystore ${TESTCLASSES}/timezonedatetest.store \ + -storepass testpass ${TESTCLASSES}/timezonedatetest.jar testcert + +# run it with the security manager on, plus accesscontroller debugging +# will go into infinite recursion trying to get enough permissions for +# printing Date of failing certificate unless fix is applied. +${TESTJAVA}/bin/java -Djava.security.manager \ + -Djava.security.debug=access,failure,policy \ + -cp ${TESTCLASSES}/timezonedatetest.jar TimeZoneDatePermissionCheck From e2c3e248e5c5b81d3d27e6b5279e5a551d9c848e Mon Sep 17 00:00:00 2001 From: Yuka Kamiya Date: Wed, 13 Jan 2010 15:40:47 +0900 Subject: [PATCH 009/109] 6868503: RuleBasedBreakIterator is inefficient Reviewed-by: okutsu --- .../java/text/RuleBasedBreakIterator.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java b/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java index 8f0e6cb7015..4e46560d08a 100644 --- a/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java +++ b/jdk/src/share/classes/java/text/RuleBasedBreakIterator.java @@ -621,6 +621,8 @@ class RuleBasedBreakIterator extends BreakIterator { return handleNext(); } + private int cachedLastKnownBreak = BreakIterator.DONE; + /** * Advances the iterator backwards, to the last boundary preceding this one. * @return The position of the last boundary position preceding this one. @@ -638,8 +640,16 @@ class RuleBasedBreakIterator extends BreakIterator { // the current position), but not necessarily the last one before // where we started int start = current(); - getPrevious(); - int lastResult = handlePrevious(); + int lastResult = cachedLastKnownBreak; + if (lastResult >= start || lastResult <= BreakIterator.DONE) { + getPrevious(); + lastResult = handlePrevious(); + } else { + //it might be better to check if handlePrevious() give us closer + //safe value but handlePrevious() is slow too + //So, this has to be done carefully + text.setIndex(lastResult); + } int result = lastResult; // iterate forward from the known break position until we pass our @@ -653,6 +663,7 @@ class RuleBasedBreakIterator extends BreakIterator { // set the current iteration position to be the last break position // before where we started, and then return that value text.setIndex(lastResult); + cachedLastKnownBreak = lastResult; return lastResult; } @@ -757,7 +768,8 @@ class RuleBasedBreakIterator extends BreakIterator { // then we can just use next() to get our return value text.setIndex(offset); if (offset == text.getBeginIndex()) { - return handleNext(); + cachedLastKnownBreak = handleNext(); + return cachedLastKnownBreak; } // otherwise, we have to sync up first. Use handlePrevious() to back @@ -767,10 +779,19 @@ class RuleBasedBreakIterator extends BreakIterator { // position at or before our starting position. Advance forward // from here until we've passed the starting position. The position // we stop on will be the first break position after the specified one. - int result = handlePrevious(); + int result = cachedLastKnownBreak; + if (result >= offset || result <= BreakIterator.DONE) { + result = handlePrevious(); + } else { + //it might be better to check if handlePrevious() give us closer + //safe value but handlePrevious() is slow too + //So, this has to be done carefully + text.setIndex(result); + } while (result != BreakIterator.DONE && result <= offset) { result = handleNext(); } + cachedLastKnownBreak = result; return result; } @@ -865,6 +886,8 @@ class RuleBasedBreakIterator extends BreakIterator { text = new SafeCharIterator(newText); } text.first(); + + cachedLastKnownBreak = BreakIterator.DONE; } From a5e58e8d538ce1224ca0d83fcdd1c826428dcbcc Mon Sep 17 00:00:00 2001 From: Vasanth Venkatachalam Date: Wed, 13 Jan 2010 09:39:46 -0700 Subject: [PATCH 010/109] 6580131: 3/4 CompiledMethodLoad events don't produce the expected extra notifications to describe inlining Add support for additional implementation specific info to the JVM/TI CompiledMethodLoad event via the compile_info parameter. Reviewed-by: never, ohair, tbell, tdeneau --- hotspot/make/Makefile | 7 +- hotspot/make/defs.make | 3 +- hotspot/src/share/vm/code/jvmticmlr.h | 115 +++++++++++++++++++++ hotspot/src/share/vm/includeDB_core | 3 +- hotspot/src/share/vm/prims/jvmtiExport.cpp | 52 +++++++++- 5 files changed, 172 insertions(+), 8 deletions(-) create mode 100644 hotspot/src/share/vm/code/jvmticmlr.h diff --git a/hotspot/make/Makefile b/hotspot/make/Makefile index bd2744180ce..36a88cdca1e 100644 --- a/hotspot/make/Makefile +++ b/hotspot/make/Makefile @@ -1,5 +1,5 @@ # -# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2010 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 @@ -281,10 +281,13 @@ endif $(EXPORT_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar $(install-file) -# Include files (jvmti.h, jni.h, $(JDK_INCLUDE_SUBDIR)/jni_md.h, jmm.h) +# Include files (jvmti.h, jvmticmlr.h, jni.h, $(JDK_INCLUDE_SUBDIR)/jni_md.h, jmm.h) $(EXPORT_INCLUDE_DIR)/%: $(GEN_DIR)/jvmtifiles/% $(install-file) +$(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/code/% + $(install-file) + $(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/prims/% $(install-file) diff --git a/hotspot/make/defs.make b/hotspot/make/defs.make index 5e94726b3f3..8cc9c3ffaa2 100644 --- a/hotspot/make/defs.make +++ b/hotspot/make/defs.make @@ -1,5 +1,5 @@ # -# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2010 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 @@ -259,6 +259,7 @@ EXPORT_JRE_LIB_ARCH_DIR = $(EXPORT_JRE_LIB_DIR)/$(LIBARCH) # Common export list of files EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jvmti.h +EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jvmticmlr.h EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jni.h EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jmm.h diff --git a/hotspot/src/share/vm/code/jvmticmlr.h b/hotspot/src/share/vm/code/jvmticmlr.h new file mode 100644 index 00000000000..d2713954f6f --- /dev/null +++ b/hotspot/src/share/vm/code/jvmticmlr.h @@ -0,0 +1,115 @@ +/* + * Copyright 2010 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. + */ + +/* + * This header file defines the data structures sent by the VM + * through the JVMTI CompiledMethodLoad callback function via the + * "void * compile_info" parameter. The memory pointed to by the + * compile_info parameter may not be referenced after returning from + * the CompiledMethodLoad callback. These are VM implementation + * specific data structures that may evolve in future releases. A + * JVMTI agent should interpret a non-NULL compile_info as a pointer + * to a region of memory containing a list of records. In a typical + * usage scenario, a JVMTI agent would cast each record to a + * jvmtiCompiledMethodLoadRecordHeader, a struct that represents + * arbitrary information. This struct contains a kind field to indicate + * the kind of information being passed, and a pointer to the next + * record. If the kind field indicates inlining information, then the + * agent would cast the record to a jvmtiCompiledMethodLoadInlineRecord. + * This record contains an array of PCStackInfo structs, which indicate + * for every pc address what are the methods on the invocation stack. + * The "methods" and "bcis" fields in each PCStackInfo struct specify a + * 1-1 mapping between these inlined methods and their bytecode indices. + * This can be used to derive the proper source lines of the inlined + * methods. + */ + +#ifndef _JVMTI_CMLR_H_ +#define _JVMTI_CMLR_H_ + +enum { + JVMTI_CMLR_MAJOR_VERSION_1 = 0x00000001, + JVMTI_CMLR_MINOR_VERSION_0 = 0x00000000, + + JVMTI_CMLR_MAJOR_VERSION = 0x00000001, + JVMTI_CMLR_MINOR_VERSION = 0x00000000 + + /* + * This comment is for the "JDK import from HotSpot" sanity check: + * version: 1.0.0 + */ +}; + +typedef enum { + JVMTI_CMLR_DUMMY = 1, + JVMTI_CMLR_INLINE_INFO = 2 +} jvmtiCMLRKind; + +/* + * Record that represents arbitrary information passed through JVMTI + * CompiledMethodLoadEvent void pointer. + */ +typedef struct _jvmtiCompiledMethodLoadRecordHeader { + jvmtiCMLRKind kind; /* id for the kind of info passed in the record */ + jint majorinfoversion; /* major and minor info version values. Init'ed */ + jint minorinfoversion; /* to current version value in jvmtiExport.cpp. */ + + struct _jvmtiCompiledMethodLoadRecordHeader* next; +} jvmtiCompiledMethodLoadRecordHeader; + +/* + * Record that gives information about the methods on the compile-time + * stack at a specific pc address of a compiled method. Each element in + * the methods array maps to same element in the bcis array. + */ +typedef struct _PCStackInfo { + void* pc; /* the pc address for this compiled method */ + jint numstackframes; /* number of methods on the stack */ + jmethodID* methods; /* array of numstackframes method ids */ + jint* bcis; /* array of numstackframes bytecode indices */ +} PCStackInfo; + +/* + * Record that contains inlining information for each pc address of + * an nmethod. + */ +typedef struct _jvmtiCompiledMethodLoadInlineRecord { + jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */ + jint numpcs; /* number of pc descriptors in this nmethod */ + PCStackInfo* pcinfo; /* array of numpcs pc descriptors */ +} jvmtiCompiledMethodLoadInlineRecord; + +/* + * Dummy record used to test that we can pass records with different + * information through the void pointer provided that they can be cast + * to a jvmtiCompiledMethodLoadRecordHeader. + */ + +typedef struct _jvmtiCompiledMethodLoadDummyRecord { + jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */ + char message[50]; +} jvmtiCompiledMethodLoadDummyRecord; + +#endif diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core index 7ca1fcabef5..8435cf419ea 100644 --- a/hotspot/src/share/vm/includeDB_core +++ b/hotspot/src/share/vm/includeDB_core @@ -1,5 +1,5 @@ // -// Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1997-2010 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 @@ -2500,6 +2500,7 @@ jvmtiExport.hpp growableArray.hpp jvmtiExport.hpp handles.hpp jvmtiExport.hpp iterator.hpp jvmtiExport.hpp jvmti.h +jvmtiExport.hpp jvmticmlr.h jvmtiExport.hpp oop.hpp jvmtiExport.hpp oopsHierarchy.hpp diff --git a/hotspot/src/share/vm/prims/jvmtiExport.cpp b/hotspot/src/share/vm/prims/jvmtiExport.cpp index cbdd7234ab8..ed90596dfc5 100644 --- a/hotspot/src/share/vm/prims/jvmtiExport.cpp +++ b/hotspot/src/share/vm/prims/jvmtiExport.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2010 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 @@ -686,11 +686,11 @@ class JvmtiCompiledMethodLoadEventMark : public JvmtiMethodEventMark { jvmtiAddrLocationMap *_map; const void *_compile_info; public: - JvmtiCompiledMethodLoadEventMark(JavaThread *thread, nmethod *nm) + JvmtiCompiledMethodLoadEventMark(JavaThread *thread, nmethod *nm, void* compile_info_ptr = NULL) : JvmtiMethodEventMark(thread,methodHandle(thread, nm->method())) { _code_data = nm->code_begin(); _code_size = nm->code_size(); - _compile_info = NULL; /* no info for our VM. */ + _compile_info = compile_info_ptr; // Set void pointer of compiledMethodLoad Event. Default value is NULL. JvmtiCodeBlobEvents::build_jvmti_addr_location_map(nm, &_map, &_map_length); } ~JvmtiCompiledMethodLoadEventMark() { @@ -1752,6 +1752,46 @@ void JvmtiExport::post_native_method_bind(methodOop method, address* function_pt } } +// Returns a record containing inlining information for the given nmethod +jvmtiCompiledMethodLoadInlineRecord* create_inline_record(nmethod* nm) { + jint numstackframes = 0; + jvmtiCompiledMethodLoadInlineRecord* record = (jvmtiCompiledMethodLoadInlineRecord*)NEW_RESOURCE_OBJ(jvmtiCompiledMethodLoadInlineRecord); + record->header.kind = JVMTI_CMLR_INLINE_INFO; + record->header.next = NULL; + record->header.majorinfoversion = JVMTI_CMLR_MAJOR_VERSION_1; + record->header.minorinfoversion = JVMTI_CMLR_MINOR_VERSION_0; + record->numpcs = 0; + for(PcDesc* p = nm->scopes_pcs_begin(); p < nm->scopes_pcs_end(); p++) { + if(p->scope_decode_offset() == DebugInformationRecorder::serialized_null) continue; + record->numpcs++; + } + record->pcinfo = (PCStackInfo*)(NEW_RESOURCE_ARRAY(PCStackInfo, record->numpcs)); + int scope = 0; + for(PcDesc* p = nm->scopes_pcs_begin(); p < nm->scopes_pcs_end(); p++) { + if(p->scope_decode_offset() == DebugInformationRecorder::serialized_null) continue; + void* pc_address = (void*)p->real_pc(nm); + assert(pc_address != NULL, "pc_address must be non-null"); + record->pcinfo[scope].pc = pc_address; + numstackframes=0; + for(ScopeDesc* sd = nm->scope_desc_at(p->real_pc(nm));sd != NULL;sd = sd->sender()) { + numstackframes++; + } + assert(numstackframes != 0, "numstackframes must be nonzero."); + record->pcinfo[scope].methods = (jmethodID *)NEW_RESOURCE_ARRAY(jmethodID, numstackframes); + record->pcinfo[scope].bcis = (jint *)NEW_RESOURCE_ARRAY(jint, numstackframes); + record->pcinfo[scope].numstackframes = numstackframes; + int stackframe = 0; + for(ScopeDesc* sd = nm->scope_desc_at(p->real_pc(nm));sd != NULL;sd = sd->sender()) { + // sd->method() can be NULL for stubs but not for nmethods. To be completely robust, include an assert that we should never see a null sd->method() + assert(!sd->method().is_null(), "sd->method() cannot be null."); + record->pcinfo[scope].methods[stackframe] = sd->method()->jmethod_id(); + record->pcinfo[scope].bcis[stackframe] = sd->bci(); + stackframe++; + } + scope++; + } + return record; +} void JvmtiExport::post_compiled_method_load(nmethod *nm) { // If there are pending CompiledMethodUnload events then these are @@ -1780,7 +1820,11 @@ void JvmtiExport::post_compiled_method_load(nmethod *nm) { (nm->method() == NULL) ? "NULL" : nm->method()->name()->as_C_string())); ResourceMark rm(thread); - JvmtiCompiledMethodLoadEventMark jem(thread, nm); + + // Add inlining information + jvmtiCompiledMethodLoadInlineRecord* inlinerecord = create_inline_record(nm); + // Pass inlining information through the void pointer + JvmtiCompiledMethodLoadEventMark jem(thread, nm, inlinerecord); JvmtiJavaThreadEventTransition jet(thread); jvmtiEventCompiledMethodLoad callback = env->callbacks()->CompiledMethodLoad; if (callback != NULL) { From b5f77a0513acb04465d55ed59f1181cd596cc24a Mon Sep 17 00:00:00 2001 From: Alexey Utkin Date: Thu, 14 Jan 2010 17:56:49 +0300 Subject: [PATCH 011/109] 6916867: Fastdebug build failed after CR 4874070 fix putback Reviewed-by: art, dcherepanov --- jdk/src/windows/native/sun/windows/awt_DnDDS.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp index eb69e8bf681..cfd3e97a2e1 100644 --- a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp +++ b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp @@ -32,15 +32,20 @@ #pragma pop_macro("bad_alloc") //"bad_alloc" is undefined from here +//we need to include any STL container before inclusion due to +//"new" re-redefinition that is in conflict with in-place new allocator +//applied in STL. #if defined(_DEBUG) || defined(DEBUG) + //forward declaration of "new" operator from extern void * operator new(size_t size, const char * filename, int linenumber); + //"new" operator definition that is consistent with re-defined + //in "delete" operator void * operator new(size_t size) {return operator new(size, "stl", 1);} #endif +#include #include -#include #include -#include #include "jlong.h" #include "awt_DataTransferer.h" From 90bf9a073fee52350bb2ea15f31395eceb4540ff Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov Date: Wed, 20 Jan 2010 01:33:49 +0300 Subject: [PATCH 012/109] 6660258: Java application stops Windows logout/shutdown (regression in 1.5.0_14) Reviewed-by: anthony, art, uta --- jdk/src/windows/native/sun/windows/awt_Component.cpp | 4 +++- jdk/src/windows/native/sun/windows/awtmsg.h | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/jdk/src/windows/native/sun/windows/awt_Component.cpp b/jdk/src/windows/native/sun/windows/awt_Component.cpp index b2767bac72c..d98f241a145 100644 --- a/jdk/src/windows/native/sun/windows/awt_Component.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp @@ -378,7 +378,9 @@ LRESULT CALLBACK AwtComponent::WndProc(HWND hWnd, UINT message, TRY; AwtComponent * self = AwtComponent::GetComponentImpl(hWnd); - if (self == NULL || self->GetHWnd() != hWnd) { + if (self == NULL || self->GetHWnd() != hWnd || + message == WM_UNDOCUMENTED_CLIENTSHUTDOWN) // handle log-off gracefully + { return ComCtl32Util::GetInstance().DefWindowProc(NULL, hWnd, message, wParam, lParam); } else { return self->WindowProc(message, wParam, lParam); diff --git a/jdk/src/windows/native/sun/windows/awtmsg.h b/jdk/src/windows/native/sun/windows/awtmsg.h index 6eb06b01db5..6f62d75e37b 100644 --- a/jdk/src/windows/native/sun/windows/awtmsg.h +++ b/jdk/src/windows/native/sun/windows/awtmsg.h @@ -253,4 +253,8 @@ enum { #define WM_UNDOCUMENTED_CLICKMENUBAR 0x0313 #endif +#ifndef WM_UNDOCUMENTED_CLIENTSHUTDOWN +#define WM_UNDOCUMENTED_CLIENTSHUTDOWN 0x003b +#endif + #endif // AWTMSG_H From 57afe92dd1746812c74e3be4d85eb80a7447ecc4 Mon Sep 17 00:00:00 2001 From: Xue-Lei Andrew Fan Date: Wed, 20 Jan 2010 21:38:37 +0800 Subject: [PATCH 013/109] 6862064: incorrect implementation of PKIXParameters.clone() Reviewed-by: weijun, mullan --- .../java/security/cert/PKIXParameters.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/jdk/src/share/classes/java/security/cert/PKIXParameters.java b/jdk/src/share/classes/java/security/cert/PKIXParameters.java index 7608d9f7b39..f9f95ce7841 100644 --- a/jdk/src/share/classes/java/security/cert/PKIXParameters.java +++ b/jdk/src/share/classes/java/security/cert/PKIXParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * 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 @@ -663,15 +663,23 @@ public class PKIXParameters implements CertPathParameters { */ public Object clone() { try { - Object copy = super.clone(); - // Must clone these because addCertStore, et al. modify them + PKIXParameters copy = (PKIXParameters)super.clone(); + + // must clone these because addCertStore, et al. modify them if (certStores != null) { - certStores = new ArrayList(certStores); + copy.certStores = new ArrayList(certStores); } if (certPathCheckers != null) { - certPathCheckers = - new ArrayList(certPathCheckers); + copy.certPathCheckers = + new ArrayList(certPathCheckers.size()); + for (PKIXCertPathChecker checker : certPathCheckers) { + copy.certPathCheckers.add( + (PKIXCertPathChecker)checker.clone()); + } } + + // other class fields are immutable to public, don't bother + // to clone the read-only fields. return copy; } catch (CloneNotSupportedException e) { /* Cannot happen */ From 688eab115700c35d1f3fdfce55f4d586ee0fc549 Mon Sep 17 00:00:00 2001 From: Vasanth Venkatachalam Date: Wed, 20 Jan 2010 12:09:31 -0700 Subject: [PATCH 014/109] 6580131: 3/4 CompiledMethodLoad events don't produce the expected extra notifications to describe inlining Add support for additional implementation specific info to the JVM/TI CompiledMethodLoad event via the compile_info parameter. Reviewed-by: never, ohair, tbell, tdeneau --- jdk/make/common/shared/Sanity.gmk | 3 +- jdk/make/java/jvm/Makefile | 5 +- jdk/make/mkdemo/jvmti/Makefile | 7 +- jdk/make/mkdemo/jvmti/README.txt | 10 +- .../mkdemo/jvmti/compiledMethodLoad/Makefile | 41 +++ .../demo/jvmti/compiledMethodLoad/README.txt | 42 +++ .../compiledMethodLoad/compiledMethodLoad.c | 268 ++++++++++++++++++ .../compiledMethodLoad/sample.makefile.txt | 148 ++++++++++ jdk/src/share/demo/jvmti/index.html | 7 + jdk/src/share/javavm/export/jvmticmlr.h | 115 ++++++++ .../CompiledMethodLoadTest.java | 51 ++++ .../jvmti/heapTracker/HeapTrackerTest.java | 4 +- .../jvmti/hprof/CpuTimesDefineClassTest.java | 4 +- jdk/test/demo/jvmti/hprof/CpuTimesTest.java | 4 +- jdk/test/demo/jvmti/minst/MinstTest.java | 4 +- jdk/test/demo/jvmti/mtrace/TraceJFrame.java | 4 +- 16 files changed, 696 insertions(+), 21 deletions(-) create mode 100644 jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile create mode 100644 jdk/src/share/demo/jvmti/compiledMethodLoad/README.txt create mode 100644 jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c create mode 100644 jdk/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt create mode 100644 jdk/src/share/javavm/export/jvmticmlr.h create mode 100644 jdk/test/demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java diff --git a/jdk/make/common/shared/Sanity.gmk b/jdk/make/common/shared/Sanity.gmk index c19df0eb6ef..7499f6bb189 100644 --- a/jdk/make/common/shared/Sanity.gmk +++ b/jdk/make/common/shared/Sanity.gmk @@ -1,5 +1,5 @@ # -# Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2010 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 @@ -1093,6 +1093,7 @@ endif # Check for existence of misc Hotspot imported files ###################################################### HOTSPOT_INCLUDE_FILE_LIST = jvmti.h +HOTSPOT_INCLUDE_FILE_LIST += jvmticmlr.h #HOTSPOT_INCLUDE_FILE_LIST += jni.h jni_md.h #HOTSPOT_INCLUDE_FILE_LIST += jvm.h jvm_md.h #HOTSPOT_INCLUDE_FILE_LIST += jmm.h diff --git a/jdk/make/java/jvm/Makefile b/jdk/make/java/jvm/Makefile index ee992a1630b..8bc1c800e4e 100644 --- a/jdk/make/java/jvm/Makefile +++ b/jdk/make/java/jvm/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1995-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1995-2010 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 @@ -34,7 +34,8 @@ include $(BUILDDIR)/common/Defs.gmk FILES_h = $(INCLUDEDIR)/jni.h \ $(PLATFORM_INCLUDE)/jni_md.h \ - $(INCLUDEDIR)/jvmti.h \ + $(INCLUDEDIR)/jvmti.h \ + $(INCLUDEDIR)/jvmticmlr.h \ $(INCLUDEDIR)/classfile_constants.h $(INCLUDEDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h diff --git a/jdk/make/mkdemo/jvmti/Makefile b/jdk/make/mkdemo/jvmti/Makefile index 749068b909d..c966170fceb 100644 --- a/jdk/make/mkdemo/jvmti/Makefile +++ b/jdk/make/mkdemo/jvmti/Makefile @@ -1,5 +1,5 @@ # -# Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2004-2010 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 @@ -34,12 +34,13 @@ include $(BUILDDIR)/common/Defs.gmk # Can be built in any order, the JRE version of hprof and java_crw_demo are # really built in make/java. -# The hprof target here just deliveres the sources and README files. +# The hprof target here just delivers the sources and README files. # The java_crw_demo and agent_util files are copied into each demo that # uses them. SUBDIRS = \ versionCheck \ - gctest \ + compiledMethodLoad \ + gctest \ heapViewer \ heapTracker \ minst \ diff --git a/jdk/make/mkdemo/jvmti/README.txt b/jdk/make/mkdemo/jvmti/README.txt index cc02bb4c6f1..0078d534ab7 100644 --- a/jdk/make/mkdemo/jvmti/README.txt +++ b/jdk/make/mkdemo/jvmti/README.txt @@ -1,5 +1,5 @@ # -# Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2004-2010 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 @@ -27,8 +27,8 @@ Instructions on adding a jvmti demo agent. Basically you want to mimic the jvmti demo agent "mtrace". -* Create and populate a source directory at src/demo/jvmti - (Try and re-use code in agent_util area like src/demo/jvmti/mtrace) +* Create and populate a source directory at src/share/demo/jvmti + (Try and re-use code in agent_util area like src/share/demo/jvmti/mtrace) (This should include a small README.txt document on what this demo is) * Make sure the appropriate "demo" copyright notice is added to all the @@ -44,7 +44,7 @@ Basically you want to mimic the jvmti demo agent "mtrace". * Create test directory at test/demo/jvmti, create at least one test (Use test/demo/jvmti/mtrace as a template) -* Don't forget to SCCS in all the new files +* Don't forget to check in all the new files * Build and create images (cd make && gnumake && gnumake images) (Do this on Solaris, Linux, and at least one Windows platform) @@ -54,5 +54,5 @@ Basically you want to mimic the jvmti demo agent "mtrace". * Run the tests: cd test/demo/jvmti && runregress . (Do this on Solaris, Linux, and at least one Windows platform) -Contact: jk-svc-group@sun.com for more information or help. +Contact: serviceability-dev@openjdk.java.net for more information or help. diff --git a/jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile b/jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile new file mode 100644 index 00000000000..aea96e4d068 --- /dev/null +++ b/jdk/make/mkdemo/jvmti/compiledMethodLoad/Makefile @@ -0,0 +1,41 @@ +# +# Copyright 2010 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. +# + +BUILDDIR = ../../.. +PRODUCT = demo/jvmti +DEMONAME = compiledMethodLoad +include $(BUILDDIR)/common/Defs.gmk + +DEMO_ROOT = $(SHARE_SRC)/demo/jvmti/$(DEMONAME) +DEMO_TOPFILES = ./README.txt +DEMO_DESTDIR = $(DEMODIR)/jvmti/$(DEMONAME) + +DEMO_OBJECTS = agent_util.$(OBJECT_SUFFIX) + +# +# Demo jar building rules. +# +include $(BUILDDIR)/common/Demo.gmk + diff --git a/jdk/src/share/demo/jvmti/compiledMethodLoad/README.txt b/jdk/src/share/demo/jvmti/compiledMethodLoad/README.txt new file mode 100644 index 00000000000..f34fa1fc108 --- /dev/null +++ b/jdk/src/share/demo/jvmti/compiledMethodLoad/README.txt @@ -0,0 +1,42 @@ +# +# Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# - Neither the name of Sun Microsystems nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +compiledMethodLoad + +This agent library traces CompiledMethodLoad events along +with the HotSpot specific compile_info parameter. + +You can use this agent library as follows: + + java -agentlib:compiledMethodLoad ... + +See ${JAVA_HOME}/demo/jvmti/index.html for help running and building agents. + diff --git a/jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c b/jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c new file mode 100644 index 00000000000..9eec1b45e28 --- /dev/null +++ b/jdk/src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c @@ -0,0 +1,268 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Sun Microsystems nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include + +#include "jni.h" +#include "jvmti.h" +#include "jvmticmlr.h" + +#include "agent_util.h" + +/* Global static data */ +static char OUTPUT_FILE[] = "compiledMethodLoad.txt"; +static FILE *fp; +static jvmtiEnv *jvmti; +static jrawMonitorID lock; + +/* print a jvmtiCompiledMethodLoadDummyRecord */ +void +print_dummy_record(jvmtiCompiledMethodLoadDummyRecord* record, + jvmtiEnv* jvmti, FILE* fp) { + + if (record != NULL) { + fprintf(fp, "Dummy record detected containing message: %s\n", + (char *)record->message); + } +} + +/* print the specified stack frames */ +void +print_stack_frames(PCStackInfo* record, jvmtiEnv *jvmti, FILE* fp) { + if (record != NULL && record->methods != NULL) { + int i; + + for (i = 0; i < record->numstackframes; i++) { + jvmtiError err; + char* method_name = NULL; + char* class_name = NULL; + char* method_signature = NULL; + char* class_signature = NULL; + char* generic_ptr_method = NULL; + char* generic_ptr_class = NULL; + jmethodID id; + jclass declaringclassptr; + id = record->methods[i]; + + err = (*jvmti)->GetMethodDeclaringClass(jvmti, id, + &declaringclassptr); + check_jvmti_error(jvmti, err, "get method declaring class"); + + err = (*jvmti)->GetClassSignature(jvmti, declaringclassptr, + &class_signature, &generic_ptr_class); + check_jvmti_error(jvmti, err, "get class signature"); + + err = (*jvmti)->GetMethodName(jvmti, id, &method_name, + &method_signature, &generic_ptr_method); + check_jvmti_error(jvmti, err, "get method name"); + + fprintf(fp, "%s::%s %s %s @%d\n", class_signature, method_name, + method_signature, + generic_ptr_method == NULL ? "" : generic_ptr_method, + record->bcis[i]); + + if (method_name != NULL) { + err = (*jvmti)->Deallocate(jvmti, (unsigned char*)method_name); + check_jvmti_error(jvmti, err, "deallocate method_name"); + } + if (method_signature != NULL) { + err = (*jvmti)->Deallocate(jvmti, + (unsigned char*)method_signature); + check_jvmti_error(jvmti, err, "deallocate method_signature"); + } + if (generic_ptr_method != NULL) { + err = (*jvmti)->Deallocate(jvmti, + (unsigned char*)generic_ptr_method); + check_jvmti_error(jvmti, err, "deallocate generic_ptr_method"); + } + if (class_name != NULL) { + err = (*jvmti)->Deallocate(jvmti, (unsigned char*)class_name); + check_jvmti_error(jvmti, err, "deallocate class_name"); + } + if (class_signature != NULL) { + err = (*jvmti)->Deallocate(jvmti, + (unsigned char*)class_signature); + check_jvmti_error(jvmti, err, "deallocate class_signature"); + } + if (generic_ptr_class != NULL) { + err = (*jvmti)->Deallocate(jvmti, + (unsigned char*)generic_ptr_class); + check_jvmti_error(jvmti, err, "deallocate generic_ptr_class"); + } + } + } +} + +/* print a jvmtiCompiledMethodLoadInlineRecord */ +void +print_inline_info_record(jvmtiCompiledMethodLoadInlineRecord* record, + jvmtiEnv *jvmti, FILE* fp) { + + if (record != NULL && record->pcinfo != NULL) { + int numpcs = record->numpcs; + int i; + + for (i = 0; i < numpcs; i++) { + PCStackInfo pcrecord = (record->pcinfo[i]); + fprintf(fp, "PcDescriptor(pc=0x%lx):\n", (jint)(pcrecord.pc)); + print_stack_frames(&pcrecord, jvmti, fp); + } + } +} + +/* decode kind of CompiledMethodLoadRecord and print */ +void +print_records(jvmtiCompiledMethodLoadRecordHeader* list, jvmtiEnv *jvmti, + FILE* fp) +{ + jvmtiCompiledMethodLoadRecordHeader* curr = list; + fprintf(fp, "\nPrinting PC Descriptors\n\n"); + while (curr != NULL) { + switch (curr->kind) { + case JVMTI_CMLR_DUMMY: + print_dummy_record((jvmtiCompiledMethodLoadDummyRecord *)curr, + jvmti, fp); + break; + + case JVMTI_CMLR_INLINE_INFO: + print_inline_info_record( + (jvmtiCompiledMethodLoadInlineRecord *)curr, jvmti, fp); + break; + + default: + fprintf(fp, "Warning: unrecognized record: kind=%d\n", curr->kind); + break; + } + + curr = (jvmtiCompiledMethodLoadRecordHeader *)curr->next; + } +} + +/* Callback for JVMTI_EVENT_COMPILED_METHOD_LOAD */ +void JNICALL +compiled_method_load(jvmtiEnv *jvmti, jmethodID method, jint code_size, + const void* code_addr, jint map_length, const jvmtiAddrLocationMap* map, + const void* compile_info) +{ + jvmtiError err; + char* name = NULL; + char* signature = NULL; + char* generic_ptr = NULL; + jvmtiCompiledMethodLoadRecordHeader* pcs; + + err = (*jvmti)->RawMonitorEnter(jvmti, lock); + check_jvmti_error(jvmti, err, "raw monitor enter"); + + err = (*jvmti)->GetMethodName(jvmti, method, &name, &signature, + &generic_ptr); + check_jvmti_error(jvmti, err, "get method name"); + + fprintf(fp, "\nCompiled method load event\n"); + fprintf(fp, "Method name %s %s %s\n\n", name, signature, + generic_ptr == NULL ? "" : generic_ptr); + pcs = (jvmtiCompiledMethodLoadRecordHeader *)compile_info; + if (pcs != NULL) { + print_records(pcs, jvmti, fp); + } + + if (name != NULL) { + err = (*jvmti)->Deallocate(jvmti, (unsigned char*)name); + check_jvmti_error(jvmti, err, "deallocate name"); + } + if (signature != NULL) { + err = (*jvmti)->Deallocate(jvmti, (unsigned char*)signature); + check_jvmti_error(jvmti, err, "deallocate signature"); + } + if (generic_ptr != NULL) { + err = (*jvmti)->Deallocate(jvmti, (unsigned char*)generic_ptr); + check_jvmti_error(jvmti, err, "deallocate generic_ptr"); + } + + err = (*jvmti)->RawMonitorExit(jvmti, lock); + check_jvmti_error(jvmti, err, "raw monitor exit"); +} + +/* Agent_OnLoad() is called first, we prepare for a COMPILED_METHOD_LOAD + * event here. + */ +JNIEXPORT jint JNICALL +Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +{ + jint rc; + jvmtiError err; + jvmtiCapabilities capabilities; + jvmtiEventCallbacks callbacks; + + fp = fopen(OUTPUT_FILE, "w"); + if (fp == NULL) { + fatal_error("ERROR: %s: Unable to create output file\n", OUTPUT_FILE); + return -1; + } + + /* Get JVMTI environment */ + rc = (*vm)->GetEnv(vm, (void **)&jvmti, JVMTI_VERSION); + if (rc != JNI_OK) { + fatal_error( + "ERROR: Unable to create jvmtiEnv, GetEnv failed, error=%d\n", rc); + return -1; + } + + /* add JVMTI capabilities */ + memset(&capabilities,0, sizeof(capabilities)); + capabilities.can_generate_compiled_method_load_events = 1; + err = (*jvmti)->AddCapabilities(jvmti, &capabilities); + check_jvmti_error(jvmti, err, "add capabilities"); + + /* set JVMTI callbacks for events */ + memset(&callbacks, 0, sizeof(callbacks)); + callbacks.CompiledMethodLoad = &compiled_method_load; + err = (*jvmti)->SetEventCallbacks(jvmti, &callbacks, sizeof(callbacks)); + check_jvmti_error(jvmti, err, "set event callbacks"); + + /* enable JVMTI events */ + err = (*jvmti)->SetEventNotificationMode(jvmti, JVMTI_ENABLE, + JVMTI_EVENT_COMPILED_METHOD_LOAD, NULL); + check_jvmti_error(jvmti, err, "set event notify"); + + /* create coordination monitor */ + err = (*jvmti)->CreateRawMonitor(jvmti, "agent lock", &lock); + check_jvmti_error(jvmti, err, "create raw monitor"); + + return 0; +} + +/* Agent_OnUnload() is called last */ +JNIEXPORT void JNICALL +Agent_OnUnload(JavaVM *vm) +{ +} diff --git a/jdk/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt b/jdk/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt new file mode 100644 index 00000000000..a759dc71751 --- /dev/null +++ b/jdk/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt @@ -0,0 +1,148 @@ +# +# Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# - Neither the name of Sun Microsystems nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +######################################################################## +# +# Sample GNU Makefile for building JVMTI Demo compiledMethodLoad +# +# Example uses: +# gnumake JDK= OSNAME=solaris [OPT=true] [LIBARCH=sparc] +# gnumake JDK= OSNAME=solaris [OPT=true] [LIBARCH=sparcv9] +# gnumake JDK= OSNAME=linux [OPT=true] +# gnumake JDK= OSNAME=win32 [OPT=true] +# +######################################################################## + +# Source lists +LIBNAME=compiledMethodLoad +SOURCES=compiledMethodLoad.c ../agent_util/agent_util.c + +# Solaris Sun C Compiler Version 5.5 +ifeq ($(OSNAME), solaris) + # Sun Solaris Compiler options needed + COMMON_FLAGS=-mt -KPIC + # Options that help find errors + COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none + # Check LIBARCH for any special compiler options + LIBARCH=$(shell uname -p) + ifeq ($(LIBARCH), sparc) + COMMON_FLAGS+=-xarch=v8 -xregs=no%appl + endif + ifeq ($(LIBARCH), sparcv9) + COMMON_FLAGS+=-xarch=v9 -xregs=no%appl + endif + ifeq ($(OPT), true) + CFLAGS=-xO2 $(COMMON_FLAGS) + else + CFLAGS=-g $(COMMON_FLAGS) + endif + # Object files needed to create library + OBJECTS=$(SOURCES:%.c=%.o) + # Library name and options needed to build it + LIBRARY=lib$(LIBNAME).so + LDFLAGS=-z defs -ztext + # Libraries we are dependent on + LIBRARIES= -lc + # Building a shared library + LINK_SHARED=$(LINK.c) -G -o $@ +endif + +# Linux GNU C Compiler +ifeq ($(OSNAME), linux) + # GNU Compiler options needed to build it + COMMON_FLAGS=-fno-strict-aliasing -fPIC -fno-omit-frame-pointer + # Options that help find errors + COMMON_FLAGS+= -W -Wall -Wno-unused -Wno-parentheses + ifeq ($(OPT), true) + CFLAGS=-O2 $(COMMON_FLAGS) + else + CFLAGS=-g $(COMMON_FLAGS) + endif + # Object files needed to create library + OBJECTS=$(SOURCES:%.c=%.o) + # Library name and options needed to build it + LIBRARY=lib$(LIBNAME).so + LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text + # Libraries we are dependent on + LIBRARIES=-lc + # Building a shared library + LINK_SHARED=$(LINK.c) -shared -o $@ +endif + +# Windows Microsoft C/C++ Optimizing Compiler Version 12 +ifeq ($(OSNAME), win32) + CC=cl + # Compiler options needed to build it + COMMON_FLAGS=-Gy -DWIN32 + # Options that help find errors + COMMON_FLAGS+=-W0 -WX + ifeq ($(OPT), true) + CFLAGS= -Ox -Op -Zi $(COMMON_FLAGS) + else + CFLAGS= -Od -Zi $(COMMON_FLAGS) + endif + # Object files needed to create library + OBJECTS=$(SOURCES:%.c=%.obj) + # Library name and options needed to build it + LIBRARY=$(LIBNAME).dll + LDFLAGS= + # Libraries we are dependent on + LIBRARIES= + # Building a shared library + LINK_SHARED=link -dll -out:$@ +endif + +# Common -I options +CFLAGS += -I. +CFLAGS += -I../agent_util +CFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME) + +# Default rule +all: $(LIBRARY) + +# Build native library +$(LIBRARY): $(OBJECTS) + $(LINK_SHARED) $(OBJECTS) $(LIBRARIES) + +# Cleanup the built bits +clean: + rm -f $(LIBRARY) $(OBJECTS) + +# Simple tester +test: all + LD_LIBRARY_PATH=`pwd` $(JDK)/bin/java -agentlib:$(LIBNAME) -version + +# Compilation rule only needed on Windows +ifeq ($(OSNAME), win32) +%.obj: %.c + $(COMPILE.c) $< +endif + diff --git a/jdk/src/share/demo/jvmti/index.html b/jdk/src/share/demo/jvmti/index.html index 87da6cc1171..b3efe373d45 100644 --- a/jdk/src/share/demo/jvmti/index.html +++ b/jdk/src/share/demo/jvmti/index.html @@ -99,6 +99,13 @@ version string supplied in the jvmti.h file, with the version number supplied by the VM at runtime. +
  • +compiledMethodLoad +
    +This is a small agent that traces CompiledMethodLoad events along +with the HotSpot specific compile_info parameter. +
  • +
  • mtrace
    diff --git a/jdk/src/share/javavm/export/jvmticmlr.h b/jdk/src/share/javavm/export/jvmticmlr.h new file mode 100644 index 00000000000..d2713954f6f --- /dev/null +++ b/jdk/src/share/javavm/export/jvmticmlr.h @@ -0,0 +1,115 @@ +/* + * Copyright 2010 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. + */ + +/* + * This header file defines the data structures sent by the VM + * through the JVMTI CompiledMethodLoad callback function via the + * "void * compile_info" parameter. The memory pointed to by the + * compile_info parameter may not be referenced after returning from + * the CompiledMethodLoad callback. These are VM implementation + * specific data structures that may evolve in future releases. A + * JVMTI agent should interpret a non-NULL compile_info as a pointer + * to a region of memory containing a list of records. In a typical + * usage scenario, a JVMTI agent would cast each record to a + * jvmtiCompiledMethodLoadRecordHeader, a struct that represents + * arbitrary information. This struct contains a kind field to indicate + * the kind of information being passed, and a pointer to the next + * record. If the kind field indicates inlining information, then the + * agent would cast the record to a jvmtiCompiledMethodLoadInlineRecord. + * This record contains an array of PCStackInfo structs, which indicate + * for every pc address what are the methods on the invocation stack. + * The "methods" and "bcis" fields in each PCStackInfo struct specify a + * 1-1 mapping between these inlined methods and their bytecode indices. + * This can be used to derive the proper source lines of the inlined + * methods. + */ + +#ifndef _JVMTI_CMLR_H_ +#define _JVMTI_CMLR_H_ + +enum { + JVMTI_CMLR_MAJOR_VERSION_1 = 0x00000001, + JVMTI_CMLR_MINOR_VERSION_0 = 0x00000000, + + JVMTI_CMLR_MAJOR_VERSION = 0x00000001, + JVMTI_CMLR_MINOR_VERSION = 0x00000000 + + /* + * This comment is for the "JDK import from HotSpot" sanity check: + * version: 1.0.0 + */ +}; + +typedef enum { + JVMTI_CMLR_DUMMY = 1, + JVMTI_CMLR_INLINE_INFO = 2 +} jvmtiCMLRKind; + +/* + * Record that represents arbitrary information passed through JVMTI + * CompiledMethodLoadEvent void pointer. + */ +typedef struct _jvmtiCompiledMethodLoadRecordHeader { + jvmtiCMLRKind kind; /* id for the kind of info passed in the record */ + jint majorinfoversion; /* major and minor info version values. Init'ed */ + jint minorinfoversion; /* to current version value in jvmtiExport.cpp. */ + + struct _jvmtiCompiledMethodLoadRecordHeader* next; +} jvmtiCompiledMethodLoadRecordHeader; + +/* + * Record that gives information about the methods on the compile-time + * stack at a specific pc address of a compiled method. Each element in + * the methods array maps to same element in the bcis array. + */ +typedef struct _PCStackInfo { + void* pc; /* the pc address for this compiled method */ + jint numstackframes; /* number of methods on the stack */ + jmethodID* methods; /* array of numstackframes method ids */ + jint* bcis; /* array of numstackframes bytecode indices */ +} PCStackInfo; + +/* + * Record that contains inlining information for each pc address of + * an nmethod. + */ +typedef struct _jvmtiCompiledMethodLoadInlineRecord { + jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */ + jint numpcs; /* number of pc descriptors in this nmethod */ + PCStackInfo* pcinfo; /* array of numpcs pc descriptors */ +} jvmtiCompiledMethodLoadInlineRecord; + +/* + * Dummy record used to test that we can pass records with different + * information through the void pointer provided that they can be cast + * to a jvmtiCompiledMethodLoadRecordHeader. + */ + +typedef struct _jvmtiCompiledMethodLoadDummyRecord { + jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */ + char message[50]; +} jvmtiCompiledMethodLoadDummyRecord; + +#endif diff --git a/jdk/test/demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java b/jdk/test/demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java new file mode 100644 index 00000000000..de0d1b962a8 --- /dev/null +++ b/jdk/test/demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java @@ -0,0 +1,51 @@ +/* + * Copyright 2010 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 6580131 + * @summary Test jvmti demo compiledMethodLoad + * + * @compile ../DemoRun.java ../Hello.java + * @build CompiledMethodLoadTest + * @run main CompiledMethodLoadTest Hello + */ + +public class CompiledMethodLoadTest { + + public static void main(String args[]) throws Exception { + DemoRun demo; + + /* Run demo that uses JVMTI compiledMethodLoad agent (no options) */ + demo = new DemoRun("compiledMethodLoad", "" /* options to compiledMethodLoad */ ); + demo.runit(args[0]); + + /* Make sure patterns in output look ok */ + if (demo.output_contains("ERROR")) { + throw new RuntimeException("Test failed - ERROR seen in output"); + } + + /* Must be a pass. */ + System.out.println("Test passed - cleanly terminated"); + } +} diff --git a/jdk/test/demo/jvmti/heapTracker/HeapTrackerTest.java b/jdk/test/demo/jvmti/heapTracker/HeapTrackerTest.java index 20e05de4f4a..9f0b70a4ab0 100644 --- a/jdk/test/demo/jvmti/heapTracker/HeapTrackerTest.java +++ b/jdk/test/demo/jvmti/heapTracker/HeapTrackerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2010 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 @@ -43,7 +43,7 @@ public class HeapTrackerTest { /* Make sure patterns in output look ok */ if (demo.output_contains("ERROR")) { - throw new RuntimeException("Test failed - ERROR seen in oputput"); + throw new RuntimeException("Test failed - ERROR seen in output"); } /* Must be a pass. */ diff --git a/jdk/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java b/jdk/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java index 63cfcb3e5c4..922aafc19ee 100644 --- a/jdk/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java +++ b/jdk/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2010 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 @@ -44,7 +44,7 @@ public class CpuTimesDefineClassTest { /* Make sure patterns in output look ok */ if (hprof.output_contains("ERROR")) { - throw new RuntimeException("Test failed - ERROR seen in oputput"); + throw new RuntimeException("Test failed - ERROR seen in output"); } /* Must be a pass. */ diff --git a/jdk/test/demo/jvmti/hprof/CpuTimesTest.java b/jdk/test/demo/jvmti/hprof/CpuTimesTest.java index a99d384494b..3e378d414f8 100644 --- a/jdk/test/demo/jvmti/hprof/CpuTimesTest.java +++ b/jdk/test/demo/jvmti/hprof/CpuTimesTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2010 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 @@ -42,7 +42,7 @@ public class CpuTimesTest { /* Make sure patterns in output look ok */ if (hprof.output_contains("ERROR")) { - throw new RuntimeException("Test failed - ERROR seen in oputput"); + throw new RuntimeException("Test failed - ERROR seen in output"); } /* Must be a pass. */ diff --git a/jdk/test/demo/jvmti/minst/MinstTest.java b/jdk/test/demo/jvmti/minst/MinstTest.java index 70c64344a64..fbc9adfce5b 100644 --- a/jdk/test/demo/jvmti/minst/MinstTest.java +++ b/jdk/test/demo/jvmti/minst/MinstTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2010 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 @@ -43,7 +43,7 @@ public class MinstTest { /* Make sure patterns in output look ok */ if (demo.output_contains("ERROR")) { - throw new RuntimeException("Test failed - ERROR seen in oputput"); + throw new RuntimeException("Test failed - ERROR seen in output"); } /* Must be a pass. */ diff --git a/jdk/test/demo/jvmti/mtrace/TraceJFrame.java b/jdk/test/demo/jvmti/mtrace/TraceJFrame.java index 34def2770c2..d80c578c4a9 100644 --- a/jdk/test/demo/jvmti/mtrace/TraceJFrame.java +++ b/jdk/test/demo/jvmti/mtrace/TraceJFrame.java @@ -1,5 +1,5 @@ /* - * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2010 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 @@ -43,7 +43,7 @@ public class TraceJFrame { /* Make sure patterns in output look ok */ if (demo.output_contains("ERROR")) { - throw new RuntimeException("Test failed - ERROR seen in oputput"); + throw new RuntimeException("Test failed - ERROR seen in output"); } /* Must be a pass. */ From bac125984cb7528cfa6121d8055c0b6d57eaa8ad Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Wed, 20 Jan 2010 22:10:33 -0800 Subject: [PATCH 015/109] 6911204: generated adapters with large signatures can fill up the code cache Reviewed-by: kvn, jrose --- .../src/cpu/sparc/vm/sharedRuntime_sparc.cpp | 7 +- .../src/cpu/x86/vm/sharedRuntime_x86_32.cpp | 7 +- .../src/cpu/x86/vm/sharedRuntime_x86_64.cpp | 7 +- hotspot/src/share/vm/includeDB_core | 4 + hotspot/src/share/vm/oops/methodOop.cpp | 2 +- .../src/share/vm/runtime/sharedRuntime.cpp | 414 ++++++++++++++---- .../src/share/vm/runtime/sharedRuntime.hpp | 63 +-- 7 files changed, 373 insertions(+), 131 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp index 19cd413d043..79c765415f6 100644 --- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2010 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 @@ -1189,7 +1189,8 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm // VMReg max_arg, int comp_args_on_stack, // VMRegStackSlots const BasicType *sig_bt, - const VMRegPair *regs) { + const VMRegPair *regs, + AdapterFingerPrint* fingerprint) { address i2c_entry = __ pc(); AdapterGenerator agen(masm); @@ -1258,7 +1259,7 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm agen.gen_c2i_adapter(total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); __ flush(); - return new AdapterHandlerEntry(i2c_entry, c2i_entry, c2i_unverified_entry); + return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); } diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp index da845f9bd1c..886aa61214c 100644 --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2010 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 @@ -907,7 +907,8 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm int total_args_passed, int comp_args_on_stack, const BasicType *sig_bt, - const VMRegPair *regs) { + const VMRegPair *regs, + AdapterFingerPrint* fingerprint) { address i2c_entry = __ pc(); gen_i2c_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs); @@ -954,7 +955,7 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); __ flush(); - return new AdapterHandlerEntry(i2c_entry, c2i_entry, c2i_unverified_entry); + return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); } int SharedRuntime::c_calling_convention(const BasicType *sig_bt, diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp index 269f71d989f..e09b91d387d 100644 --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2010 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 @@ -778,7 +778,8 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm int total_args_passed, int comp_args_on_stack, const BasicType *sig_bt, - const VMRegPair *regs) { + const VMRegPair *regs, + AdapterFingerPrint* fingerprint) { address i2c_entry = __ pc(); gen_i2c_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs); @@ -824,7 +825,7 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); __ flush(); - return new AdapterHandlerEntry(i2c_entry, c2i_entry, c2i_unverified_entry); + return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); } int SharedRuntime::c_calling_convention(const BasicType *sig_bt, diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core index ec068b6aeeb..8a11070d25f 100644 --- a/hotspot/src/share/vm/includeDB_core +++ b/hotspot/src/share/vm/includeDB_core @@ -921,6 +921,7 @@ classFileStream.hpp top.hpp classLoader.cpp allocation.inline.hpp classLoader.cpp arguments.hpp +classLoader.cpp bytecodeStream.hpp classLoader.cpp classFileParser.hpp classLoader.cpp classFileStream.hpp classLoader.cpp classLoader.hpp @@ -948,6 +949,7 @@ classLoader.cpp jvm_misc.hpp classLoader.cpp management.hpp classLoader.cpp oop.inline.hpp classLoader.cpp oopFactory.hpp +classLoader.cpp oopMapCache.hpp classLoader.cpp os_.inline.hpp classLoader.cpp symbolOop.hpp classLoader.cpp systemDictionary.hpp @@ -3724,6 +3726,7 @@ sharedRuntime.cpp events.hpp sharedRuntime.cpp forte.hpp sharedRuntime.cpp gcLocker.inline.hpp sharedRuntime.cpp handles.inline.hpp +sharedRuntime.cpp hashtable.inline.hpp sharedRuntime.cpp init.hpp sharedRuntime.cpp interfaceSupport.hpp sharedRuntime.cpp interpreterRuntime.hpp @@ -3751,6 +3754,7 @@ sharedRuntime.cpp xmlstream.hpp sharedRuntime.hpp allocation.hpp sharedRuntime.hpp bytecodeHistogram.hpp sharedRuntime.hpp bytecodeTracer.hpp +sharedRuntime.hpp hashtable.hpp sharedRuntime.hpp linkResolver.hpp sharedRuntime.hpp resourceArea.hpp sharedRuntime.hpp threadLocalStorage.hpp diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp index e6f361ad7a1..12e998287e0 100644 --- a/hotspot/src/share/vm/oops/methodOop.cpp +++ b/hotspot/src/share/vm/oops/methodOop.cpp @@ -688,7 +688,7 @@ address methodOopDesc::make_adapters(methodHandle mh, TRAPS) { // so making them eagerly shouldn't be too expensive. AdapterHandlerEntry* adapter = AdapterHandlerLibrary::get_adapter(mh); if (adapter == NULL ) { - THROW_0(vmSymbols::java_lang_OutOfMemoryError()); + THROW_MSG_NULL(vmSymbols::java_lang_VirtualMachineError(), "out of space in CodeCache for adapters"); } mh->set_adapter_entry(adapter); diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index eaafdb7edce..bf100e71407 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -1680,6 +1680,8 @@ void SharedRuntime::print_statistics() { if( _find_handler_ctr ) tty->print_cr("%5d find exception handler", _find_handler_ctr ); if( _rethrow_ctr ) tty->print_cr("%5d rethrow handler", _rethrow_ctr ); + AdapterHandlerLibrary::print_statistics(); + if (xtty != NULL) xtty->tail("statistics"); } @@ -1780,11 +1782,258 @@ void SharedRuntime::print_call_statistics(int comp_total) { #endif +// A simple wrapper class around the calling convention information +// that allows sharing of adapters for the same calling convention. +class AdapterFingerPrint : public CHeapObj { + private: + union { + signed char _compact[12]; + int _compact_int[3]; + intptr_t* _fingerprint; + } _value; + int _length; // A negative length indicates that _value._fingerprint is the array. + // Otherwise it's in the compact form. + + public: + AdapterFingerPrint(int total_args_passed, VMRegPair* regs) { + assert(sizeof(_value._compact) == sizeof(_value._compact_int), "must match"); + _length = total_args_passed * 2; + if (_length < (int)sizeof(_value._compact)) { + _value._compact_int[0] = _value._compact_int[1] = _value._compact_int[2] = 0; + // Storing the signature encoded as signed chars hits about 98% + // of the time. + signed char* ptr = _value._compact; + int o = 0; + for (int i = 0; i < total_args_passed; i++) { + VMRegPair pair = regs[i]; + intptr_t v1 = pair.first()->value(); + intptr_t v2 = pair.second()->value(); + if (v1 == (signed char) v1 && + v2 == (signed char) v2) { + _value._compact[o++] = v1; + _value._compact[o++] = v2; + } else { + goto big; + } + } + _length = -_length; + return; + } + big: + _value._fingerprint = NEW_C_HEAP_ARRAY(intptr_t, _length); + int o = 0; + for (int i = 0; i < total_args_passed; i++) { + VMRegPair pair = regs[i]; + intptr_t v1 = pair.first()->value(); + intptr_t v2 = pair.second()->value(); + _value._fingerprint[o++] = v1; + _value._fingerprint[o++] = v2; + } + } + + AdapterFingerPrint(AdapterFingerPrint* orig) { + _length = orig->_length; + _value = orig->_value; + // take ownership of any storage by destroying the length + orig->_length = 0; + } + + ~AdapterFingerPrint() { + if (_length > 0) { + FREE_C_HEAP_ARRAY(int, _value._fingerprint); + } + } + + AdapterFingerPrint* allocate() { + return new AdapterFingerPrint(this); + } + + intptr_t value(int index) { + if (_length < 0) { + return _value._compact[index]; + } + return _value._fingerprint[index]; + } + int length() { + if (_length < 0) return -_length; + return _length; + } + + bool is_compact() { + return _length <= 0; + } + + unsigned int compute_hash() { + intptr_t hash = 0; + for (int i = 0; i < length(); i++) { + intptr_t v = value(i); + hash = (hash << 8) ^ v ^ (hash >> 5); + } + return (unsigned int)hash; + } + + const char* as_string() { + stringStream st; + for (int i = 0; i < length(); i++) { + st.print(PTR_FORMAT, value(i)); + } + return st.as_string(); + } + + bool equals(AdapterFingerPrint* other) { + if (other->_length != _length) { + return false; + } + if (_length < 0) { + return _value._compact_int[0] == other->_value._compact_int[0] && + _value._compact_int[1] == other->_value._compact_int[1] && + _value._compact_int[2] == other->_value._compact_int[2]; + } else { + for (int i = 0; i < _length; i++) { + if (_value._fingerprint[i] != other->_value._fingerprint[i]) { + return false; + } + } + } + return true; + } +}; + + +// A hashtable mapping from AdapterFingerPrints to AdapterHandlerEntries +class AdapterHandlerTable : public BasicHashtable { + friend class AdapterHandlerTableIterator; + + private: + +#ifdef ASSERT + static int _lookups; // number of calls to lookup + static int _buckets; // number of buckets checked + static int _equals; // number of buckets checked with matching hash + static int _hits; // number of successful lookups + static int _compact; // number of equals calls with compact signature +#endif + + AdapterHandlerEntry* bucket(int i) { + return (AdapterHandlerEntry*)BasicHashtable::bucket(i); + } + + public: + AdapterHandlerTable() + : BasicHashtable(293, sizeof(AdapterHandlerEntry)) { } + + // Create a new entry suitable for insertion in the table + AdapterHandlerEntry* new_entry(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) { + AdapterHandlerEntry* entry = (AdapterHandlerEntry*)BasicHashtable::new_entry(fingerprint->compute_hash()); + entry->init(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); + return entry; + } + + // Insert an entry into the table + void add(AdapterHandlerEntry* entry) { + int index = hash_to_index(entry->hash()); + add_entry(index, entry); + } + + // Find a entry with the same fingerprint if it exists + AdapterHandlerEntry* lookup(int total_args_passed, VMRegPair* regs) { + debug_only(_lookups++); + AdapterFingerPrint fp(total_args_passed, regs); + unsigned int hash = fp.compute_hash(); + int index = hash_to_index(hash); + for (AdapterHandlerEntry* e = bucket(index); e != NULL; e = e->next()) { + debug_only(_buckets++); + if (e->hash() == hash) { + debug_only(_equals++); + if (fp.equals(e->fingerprint())) { +#ifdef ASSERT + if (fp.is_compact()) _compact++; + _hits++; +#endif + return e; + } + } + } + return NULL; + } + + void print_statistics() { + ResourceMark rm; + int longest = 0; + int empty = 0; + int total = 0; + int nonempty = 0; + for (int index = 0; index < table_size(); index++) { + int count = 0; + for (AdapterHandlerEntry* e = bucket(index); e != NULL; e = e->next()) { + count++; + } + if (count != 0) nonempty++; + if (count == 0) empty++; + if (count > longest) longest = count; + total += count; + } + tty->print_cr("AdapterHandlerTable: empty %d longest %d total %d average %f", + empty, longest, total, total / (double)nonempty); +#ifdef ASSERT + tty->print_cr("AdapterHandlerTable: lookups %d buckets %d equals %d hits %d compact %d", + _lookups, _buckets, _equals, _hits, _compact); +#endif + } +}; + + +#ifdef ASSERT + +int AdapterHandlerTable::_lookups; +int AdapterHandlerTable::_buckets; +int AdapterHandlerTable::_equals; +int AdapterHandlerTable::_hits; +int AdapterHandlerTable::_compact; + +class AdapterHandlerTableIterator : public StackObj { + private: + AdapterHandlerTable* _table; + int _index; + AdapterHandlerEntry* _current; + + void scan() { + while (_index < _table->table_size()) { + AdapterHandlerEntry* a = _table->bucket(_index); + if (a != NULL) { + _current = a; + return; + } + _index++; + } + } + + public: + AdapterHandlerTableIterator(AdapterHandlerTable* table): _table(table), _index(0), _current(NULL) { + scan(); + } + bool has_next() { + return _current != NULL; + } + AdapterHandlerEntry* next() { + if (_current != NULL) { + AdapterHandlerEntry* result = _current; + _current = _current->next(); + if (_current == NULL) scan(); + return result; + } else { + return NULL; + } + } +}; +#endif + + // --------------------------------------------------------------------------- // Implementation of AdapterHandlerLibrary const char* AdapterHandlerEntry::name = "I2C/C2I adapters"; -GrowableArray* AdapterHandlerLibrary::_fingerprints = NULL; -GrowableArray* AdapterHandlerLibrary::_handlers = NULL; +AdapterHandlerTable* AdapterHandlerLibrary::_adapters = NULL; +AdapterHandlerEntry* AdapterHandlerLibrary::_abstract_method_handler = NULL; const int AdapterHandlerLibrary_size = 16*K; BufferBlob* AdapterHandlerLibrary::_buffer = NULL; @@ -1796,28 +2045,31 @@ BufferBlob* AdapterHandlerLibrary::buffer_blob() { } void AdapterHandlerLibrary::initialize() { - if (_fingerprints != NULL) return; - _fingerprints = new(ResourceObj::C_HEAP)GrowableArray(32, true); - _handlers = new(ResourceObj::C_HEAP)GrowableArray(32, true); - // Index 0 reserved for the slow path handler - _fingerprints->append(0/*the never-allowed 0 fingerprint*/); - _handlers->append(NULL); + if (_adapters != NULL) return; + _adapters = new AdapterHandlerTable(); // Create a special handler for abstract methods. Abstract methods // are never compiled so an i2c entry is somewhat meaningless, but // fill it in with something appropriate just in case. Pass handle // wrong method for the c2i transitions. address wrong_method = SharedRuntime::get_handle_wrong_method_stub(); - _fingerprints->append(0/*the never-allowed 0 fingerprint*/); - assert(_handlers->length() == AbstractMethodHandler, "in wrong slot"); - _handlers->append(new AdapterHandlerEntry(StubRoutines::throw_AbstractMethodError_entry(), - wrong_method, wrong_method)); + _abstract_method_handler = AdapterHandlerLibrary::new_entry(new AdapterFingerPrint(0, NULL), + StubRoutines::throw_AbstractMethodError_entry(), + wrong_method, wrong_method); } -int AdapterHandlerLibrary::get_create_adapter_index(methodHandle method) { - // Use customized signature handler. Need to lock around updates to the - // _fingerprints array (it is not safe for concurrent readers and a single - // writer: this can be fixed if it becomes a problem). +AdapterHandlerEntry* AdapterHandlerLibrary::new_entry(AdapterFingerPrint* fingerprint, + address i2c_entry, + address c2i_entry, + address c2i_unverified_entry) { + return _adapters->new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry); +} + +AdapterHandlerEntry* AdapterHandlerLibrary::get_adapter(methodHandle method) { + // Use customized signature handler. Need to lock around updates to + // the AdapterHandlerTable (it is not safe for concurrent readers + // and a single writer: this could be fixed if it becomes a + // problem). // Get the address of the ic_miss handlers before we grab the // AdapterHandlerLibrary_lock. This fixes bug 6236259 which @@ -1828,47 +2080,49 @@ int AdapterHandlerLibrary::get_create_adapter_index(methodHandle method) { address ic_miss = SharedRuntime::get_ic_miss_stub(); assert(ic_miss != NULL, "must have handler"); - int result; + ResourceMark rm; + NOT_PRODUCT(int code_size); BufferBlob *B = NULL; AdapterHandlerEntry* entry = NULL; - uint64_t fingerprint; + AdapterFingerPrint* fingerprint = NULL; { MutexLocker mu(AdapterHandlerLibrary_lock); // make sure data structure is initialized initialize(); if (method->is_abstract()) { - return AbstractMethodHandler; + return _abstract_method_handler; } + // Fill in the signature array, for the calling-convention call. + int total_args_passed = method->size_of_parameters(); // All args on stack + + BasicType* sig_bt = NEW_RESOURCE_ARRAY(BasicType, total_args_passed); + VMRegPair* regs = NEW_RESOURCE_ARRAY(VMRegPair, total_args_passed); + int i = 0; + if (!method->is_static()) // Pass in receiver first + sig_bt[i++] = T_OBJECT; + for (SignatureStream ss(method->signature()); !ss.at_return_type(); ss.next()) { + sig_bt[i++] = ss.type(); // Collect remaining bits of signature + if (ss.type() == T_LONG || ss.type() == T_DOUBLE) + sig_bt[i++] = T_VOID; // Longs & doubles take 2 Java slots + } + assert(i == total_args_passed, ""); + + // Get a description of the compiled java calling convention and the largest used (VMReg) stack slot usage + int comp_args_on_stack = SharedRuntime::java_calling_convention(sig_bt, regs, total_args_passed, false); + // Lookup method signature's fingerprint - fingerprint = Fingerprinter(method).fingerprint(); - assert( fingerprint != CONST64( 0), "no zero fingerprints allowed" ); - // Fingerprints are small fixed-size condensed representations of - // signatures. If the signature is too large, it won't fit in a - // fingerprint. Signatures which cannot support a fingerprint get a new i2c - // adapter gen'd each time, instead of searching the cache for one. This -1 - // game can be avoided if I compared signatures instead of using - // fingerprints. However, -1 fingerprints are very rare. - if( fingerprint != UCONST64(-1) ) { // If this is a cache-able fingerprint - // Turns out i2c adapters do not care what the return value is. Mask it - // out so signatures that only differ in return type will share the same - // adapter. - fingerprint &= ~(SignatureIterator::result_feature_mask << SignatureIterator::static_feature_size); - // Search for a prior existing i2c/c2i adapter - int index = _fingerprints->find(fingerprint); - if( index >= 0 ) return index; // Found existing handlers? - } else { - // Annoyingly, I end up adding -1 fingerprints to the array of handlers, - // because I need a unique handler index. It cannot be scanned for - // because all -1's look alike. Instead, the matching index is passed out - // and immediately used to collect the 2 return values (the c2i and i2c - // adapters). + entry = _adapters->lookup(total_args_passed, regs); + if (entry != NULL) { + return entry; } + // Make a C heap allocated version of the fingerprint to store in the adapter + fingerprint = new AdapterFingerPrint(total_args_passed, regs); + // Create I2C & C2I handlers - ResourceMark rm; BufferBlob* buf = buffer_blob(); // the temporary code buffer in CodeCache if (buf != NULL) { @@ -1878,32 +2132,12 @@ int AdapterHandlerLibrary::get_create_adapter_index(methodHandle method) { sizeof(buffer_locs)/sizeof(relocInfo)); MacroAssembler _masm(&buffer); - // Fill in the signature array, for the calling-convention call. - int total_args_passed = method->size_of_parameters(); // All args on stack - - BasicType* sig_bt = NEW_RESOURCE_ARRAY(BasicType,total_args_passed); - VMRegPair * regs = NEW_RESOURCE_ARRAY(VMRegPair ,total_args_passed); - int i=0; - if( !method->is_static() ) // Pass in receiver first - sig_bt[i++] = T_OBJECT; - for( SignatureStream ss(method->signature()); !ss.at_return_type(); ss.next()) { - sig_bt[i++] = ss.type(); // Collect remaining bits of signature - if( ss.type() == T_LONG || ss.type() == T_DOUBLE ) - sig_bt[i++] = T_VOID; // Longs & doubles take 2 Java slots - } - assert( i==total_args_passed, "" ); - - // Now get the re-packed compiled-Java layout. - int comp_args_on_stack; - - // Get a description of the compiled java calling convention and the largest used (VMReg) stack slot usage - comp_args_on_stack = SharedRuntime::java_calling_convention(sig_bt, regs, total_args_passed, false); - entry = SharedRuntime::generate_i2c2i_adapters(&_masm, total_args_passed, comp_args_on_stack, sig_bt, - regs); + regs, + fingerprint); B = BufferBlob::create(AdapterHandlerEntry::name, &buffer); NOT_PRODUCT(code_size = buffer.code_size()); @@ -1925,36 +2159,31 @@ int AdapterHandlerLibrary::get_create_adapter_index(methodHandle method) { UseCompiler = false; AlwaysCompileLoopMethods = false; } - return 0; // Out of CodeCache space (_handlers[0] == NULL) + return NULL; // Out of CodeCache space } entry->relocate(B->instructions_begin()); #ifndef PRODUCT // debugging suppport if (PrintAdapterHandlers) { tty->cr(); - tty->print_cr("i2c argument handler #%d for: %s %s (fingerprint = 0x%llx, %d bytes generated)", - _handlers->length(), (method->is_static() ? "static" : "receiver"), - method->signature()->as_C_string(), fingerprint, code_size ); + tty->print_cr("i2c argument handler #%d for: %s %s (fingerprint = %s, %d bytes generated)", + _adapters->number_of_entries(), (method->is_static() ? "static" : "receiver"), + method->signature()->as_C_string(), fingerprint->as_string(), code_size ); tty->print_cr("c2i argument handler starts at %p",entry->get_c2i_entry()); Disassembler::decode(entry->get_i2c_entry(), entry->get_i2c_entry() + code_size); } #endif - // add handlers to library - _fingerprints->append(fingerprint); - _handlers->append(entry); - // set handler index - assert(_fingerprints->length() == _handlers->length(), "sanity check"); - result = _fingerprints->length() - 1; + _adapters->add(entry); } // Outside of the lock if (B != NULL) { char blob_id[256]; jio_snprintf(blob_id, sizeof(blob_id), - "%s(" PTR64_FORMAT ")@" PTR_FORMAT, + "%s(%s)@" PTR_FORMAT, AdapterHandlerEntry::name, - fingerprint, + fingerprint->as_string(), B->instructions_begin()); VTune::register_stub(blob_id, B->instructions_begin(), B->instructions_end()); Forte::register_stub(blob_id, B->instructions_begin(), B->instructions_end()); @@ -1965,7 +2194,7 @@ int AdapterHandlerLibrary::get_create_adapter_index(methodHandle method) { B->instructions_end()); } } - return result; + return entry; } void AdapterHandlerEntry::relocate(address new_base) { @@ -2308,30 +2537,31 @@ JRT_END #ifndef PRODUCT bool AdapterHandlerLibrary::contains(CodeBlob* b) { - - if (_handlers == NULL) return false; - - for (int i = 0 ; i < _handlers->length() ; i++) { - AdapterHandlerEntry* a = get_entry(i); - if ( a != NULL && b == CodeCache::find_blob(a->get_i2c_entry()) ) return true; + AdapterHandlerTableIterator iter(_adapters); + while (iter.has_next()) { + AdapterHandlerEntry* a = iter.next(); + if ( b == CodeCache::find_blob(a->get_i2c_entry()) ) return true; } return false; } void AdapterHandlerLibrary::print_handler(CodeBlob* b) { - - for (int i = 0 ; i < _handlers->length() ; i++) { - AdapterHandlerEntry* a = get_entry(i); - if ( a != NULL && b == CodeCache::find_blob(a->get_i2c_entry()) ) { + AdapterHandlerTableIterator iter(_adapters); + while (iter.has_next()) { + AdapterHandlerEntry* a = iter.next(); + if ( b == CodeCache::find_blob(a->get_i2c_entry()) ) { tty->print("Adapter for signature: "); - // Fingerprinter::print(_fingerprints->at(i)); - tty->print("0x%" FORMAT64_MODIFIER "x", _fingerprints->at(i)); - tty->print_cr(" i2c: " INTPTR_FORMAT " c2i: " INTPTR_FORMAT " c2iUV: " INTPTR_FORMAT, + tty->print_cr("%s i2c: " INTPTR_FORMAT " c2i: " INTPTR_FORMAT " c2iUV: " INTPTR_FORMAT, + a->fingerprint()->as_string(), a->get_i2c_entry(), a->get_c2i_entry(), a->get_c2i_unverified_entry()); - return; } } assert(false, "Should have found handler"); } + +void AdapterHandlerLibrary::print_statistics() { + _adapters->print_statistics(); +} + #endif /* PRODUCT */ diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.hpp b/hotspot/src/share/vm/runtime/sharedRuntime.hpp index 1a41996e707..b1de935222f 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.hpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -23,6 +23,8 @@ */ class AdapterHandlerEntry; +class AdapterHandlerTable; +class AdapterFingerPrint; class vframeStream; // Runtime is the base class for various runtime interfaces @@ -337,7 +339,8 @@ class SharedRuntime: AllStatic { int total_args_passed, int max_arg, const BasicType *sig_bt, - const VMRegPair *regs); + const VMRegPair *regs, + AdapterFingerPrint* fingerprint); // OSR support @@ -528,28 +531,41 @@ class SharedRuntime: AllStatic { // used by the adapters. The code generation happens here because it's very // similar to what the adapters have to do. -class AdapterHandlerEntry : public CHeapObj { +class AdapterHandlerEntry : public BasicHashtableEntry { + friend class AdapterHandlerTable; + private: + AdapterFingerPrint* _fingerprint; address _i2c_entry; address _c2i_entry; address _c2i_unverified_entry; - public: + void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) { + _fingerprint = fingerprint; + _i2c_entry = i2c_entry; + _c2i_entry = c2i_entry; + _c2i_unverified_entry = c2i_unverified_entry; + } + // should never be used + AdapterHandlerEntry(); + + public: // The name we give all buffer blobs static const char* name; - AdapterHandlerEntry(address i2c_entry, address c2i_entry, address c2i_unverified_entry): - _i2c_entry(i2c_entry), - _c2i_entry(c2i_entry), - _c2i_unverified_entry(c2i_unverified_entry) { - } - address get_i2c_entry() { return _i2c_entry; } address get_c2i_entry() { return _c2i_entry; } address get_c2i_unverified_entry() { return _c2i_unverified_entry; } void relocate(address new_base); + + AdapterFingerPrint* fingerprint() { return _fingerprint; } + + AdapterHandlerEntry* next() { + return (AdapterHandlerEntry*)BasicHashtableEntry::next(); + } + #ifndef PRODUCT void print(); #endif /* PRODUCT */ @@ -558,30 +574,18 @@ class AdapterHandlerEntry : public CHeapObj { class AdapterHandlerLibrary: public AllStatic { private: static BufferBlob* _buffer; // the temporary code buffer in CodeCache - static GrowableArray* _fingerprints; // the fingerprint collection - static GrowableArray * _handlers; // the corresponding handlers - enum { - AbstractMethodHandler = 1 // special handler for abstract methods - }; + static AdapterHandlerTable* _adapters; + static AdapterHandlerEntry* _abstract_method_handler; static BufferBlob* buffer_blob(); static void initialize(); - static int get_create_adapter_index(methodHandle method); - static address get_i2c_entry( int index ) { - return get_entry(index)->get_i2c_entry(); - } - static address get_c2i_entry( int index ) { - return get_entry(index)->get_c2i_entry(); - } - static address get_c2i_unverified_entry( int index ) { - return get_entry(index)->get_c2i_unverified_entry(); - } public: - static AdapterHandlerEntry* get_entry( int index ) { return _handlers->at(index); } + + static AdapterHandlerEntry* new_entry(AdapterFingerPrint* fingerprint, + address i2c_entry, address c2i_entry, address c2i_unverified_entry); static nmethod* create_native_wrapper(methodHandle method); - static AdapterHandlerEntry* get_adapter(methodHandle method) { - return get_entry(get_create_adapter_index(method)); - } + static AdapterHandlerEntry* get_adapter(methodHandle method); + #ifdef HAVE_DTRACE_H static nmethod* create_dtrace_nmethod (methodHandle method); #endif // HAVE_DTRACE_H @@ -589,6 +593,7 @@ class AdapterHandlerLibrary: public AllStatic { #ifndef PRODUCT static void print_handler(CodeBlob* b); static bool contains(CodeBlob* b); + static void print_statistics(); #endif /* PRODUCT */ }; From 559ad6f8f8758c8815293d69e4a82747f2f6715e Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Thu, 21 Jan 2010 21:45:00 +0300 Subject: [PATCH 016/109] 4922835: DOC: Statement javadoc should indicate that target and methodName cannot be null Reviewed-by: peterz --- .../share/classes/java/beans/Expression.java | 44 +++++++++++------ .../share/classes/java/beans/Statement.java | 48 +++++++++++++------ 2 files changed, 63 insertions(+), 29 deletions(-) diff --git a/jdk/src/share/classes/java/beans/Expression.java b/jdk/src/share/classes/java/beans/Expression.java index 1eee7e1cb95..35761cae63b 100644 --- a/jdk/src/share/classes/java/beans/Expression.java +++ b/jdk/src/share/classes/java/beans/Expression.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -51,12 +51,19 @@ public class Expression extends Statement { private Object value = unbound; /** - * Creates a new Statement object with a target, - * methodName and arguments as per the parameters. + * Creates a new {@link Expression} object + * for the specified target object to invoke the method + * specified by the name and by the array of arguments. + *

    + * The {@code target} and the {@code methodName} values should not be {@code null}. + * Otherwise an attempt to execute this {@code Expression} + * will result in a {@code NullPointerException}. + * If the {@code arguments} value is {@code null}, + * an empty array is used as the value of the {@code arguments} property. * - * @param target The target of this expression. - * @param methodName The methodName of this expression. - * @param arguments The arguments of this expression. If null then an empty array will be used. + * @param target the target object of this expression + * @param methodName the name of the method to invoke on the specified target + * @param arguments the array of arguments to invoke the specified method * * @see #getValue */ @@ -66,16 +73,23 @@ public class Expression extends Statement { } /** - * Creates a new Expression object for a method - * that returns a result. The result will never be calculated - * however, since this constructor uses the value - * parameter to set the value property by calling the - * setValue method. + * Creates a new {@link Expression} object with the specified value + * for the specified target object to invoke the method + * specified by the name and by the array of arguments. + * The {@code value} value is used as the value of the {@code value} property, + * so the {@link #getValue} method will return it + * without executing this {@code Expression}. + *

    + * The {@code target} and the {@code methodName} values should not be {@code null}. + * Otherwise an attempt to execute this {@code Expression} + * will result in a {@code NullPointerException}. + * If the {@code arguments} value is {@code null}, + * an empty array is used as the value of the {@code arguments} property. * - * @param value The value of this expression. - * @param target The target of this expression. - * @param methodName The methodName of this expression. - * @param arguments The arguments of this expression. If null then an empty array will be used. + * @param value the value of this expression + * @param target the target object of this expression + * @param methodName the name of the method to invoke on the specified target + * @param arguments the array of arguments to invoke the specified method * * @see #setValue */ diff --git a/jdk/src/share/classes/java/beans/Statement.java b/jdk/src/share/classes/java/beans/Statement.java index 6169f92742f..f498f0b2fb4 100644 --- a/jdk/src/share/classes/java/beans/Statement.java +++ b/jdk/src/share/classes/java/beans/Statement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -69,13 +69,19 @@ public class Statement { ClassLoader loader; /** - * Creates a new Statement object with a target, - * methodName and arguments as per the parameters. - * - * @param target The target of this statement. - * @param methodName The methodName of this statement. - * @param arguments The arguments of this statement. If null then an empty array will be used. + * Creates a new {@link Statement} object + * for the specified target object to invoke the method + * specified by the name and by the array of arguments. + *

    + * The {@code target} and the {@code methodName} values should not be {@code null}. + * Otherwise an attempt to execute this {@code Expression} + * will result in a {@code NullPointerException}. + * If the {@code arguments} value is {@code null}, + * an empty array is used as the value of the {@code arguments} property. * + * @param target the target object of this statement + * @param methodName the name of the method to invoke on the specified target + * @param arguments the array of arguments to invoke the specified method */ @ConstructorProperties({"target", "methodName", "arguments"}) public Statement(Object target, String methodName, Object[] arguments) { @@ -85,27 +91,36 @@ public class Statement { } /** - * Returns the target of this statement. + * Returns the target object of this statement. + * If this method returns {@code null}, + * the {@link #execute} method + * throws a {@code NullPointerException}. * - * @return The target of this statement. + * @return the target object of this statement */ public Object getTarget() { return target; } /** - * Returns the name of the method. + * Returns the name of the method to invoke. + * If this method returns {@code null}, + * the {@link #execute} method + * throws a {@code NullPointerException}. * - * @return The name of the method. + * @return the name of the method */ public String getMethodName() { return methodName; } /** - * Returns the arguments of this statement. + * Returns the arguments for the method to invoke. + * The number of arguments and their types + * must match the method being called. + * {@code null} can be used as a synonym of an empty array. * - * @return the arguments of this statement. + * @return the array of arguments */ public Object[] getArguments() { return arguments; @@ -154,6 +169,9 @@ public class Statement { } Object[] arguments = getArguments(); + if (arguments == null) { + arguments = emptyArray; + } // Class.forName() won't load classes outside // of core from a class inside core. Special // case this method. @@ -285,7 +303,9 @@ public class Statement { Object target = getTarget(); String methodName = getMethodName(); Object[] arguments = getArguments(); - + if (arguments == null) { + arguments = emptyArray; + } StringBuffer result = new StringBuffer(instanceName(target) + "." + methodName + "("); int n = arguments.length; for(int i = 0; i < n; i++) { From d28858928b3770c24f9417faae09b8b72971d476 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Thu, 21 Jan 2010 21:53:15 +0300 Subject: [PATCH 017/109] 4968536: DOC: Javadoc for java.beans.Encoder.getPersistenceDelegate is incomplete Reviewed-by: peterz --- jdk/src/share/classes/java/beans/Encoder.java | 109 +++++++++++------- 1 file changed, 67 insertions(+), 42 deletions(-) diff --git a/jdk/src/share/classes/java/beans/Encoder.java b/jdk/src/share/classes/java/beans/Encoder.java index e7f63397340..1bde88e655e 100644 --- a/jdk/src/share/classes/java/beans/Encoder.java +++ b/jdk/src/share/classes/java/beans/Encoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -112,54 +112,82 @@ public class Encoder { /** * Returns the persistence delegate for the given type. - * The persistence delegate is calculated - * by applying the following of rules in order: - *

      + * The persistence delegate is calculated by applying + * the following rules in order: + *
        *
      1. - * If the type is an array, an internal persistence - * delegate is returned which will instantiate an - * array of the appropriate type and length, initializing - * each of its elements as if they are properties. + * If a persistence delegate is associated with the given type + * by using the {@link #setPersistenceDelegate} method + * it is returned. *
      2. - * If the type is a proxy, an internal persistence - * delegate is returned which will instantiate a - * new proxy instance using the static - * "newProxyInstance" method defined in the - * Proxy class. + * A persistence delegate is then looked up by the name + * composed of the the fully qualified name of the given type + * and the "PersistenceDelegate" postfix. + * For example, a persistence delegate for the {@code Bean} class + * should be named {@code BeanPersistenceDelegate} + * and located in the same package. + *
        +     * public class Bean { ... }
        +     * public class BeanPersistenceDelegate { ... }
        + * The instance of the {@code BeanPersistenceDelegate} class + * is returned for the {@code Bean} class. *
      3. - * If the BeanInfo for this type has a BeanDescriptor - * which defined a "persistenceDelegate" property, this - * value is returned. + * If the type is {@code null}, + * a shared internal persistence delegate is returned + * that encodes {@code null} value. *
      4. - * In all other cases the default persistence delegate - * is returned. The default persistence delegate assumes - * the type is a JavaBean, implying that it has a default constructor - * and that its state may be characterized by the matching pairs - * of "setter" and "getter" methods returned by the Introspector. + * If the type is a {@code enum} declaration, + * a shared internal persistence delegate is returned + * that encodes constants of this enumeration + * by their names. + *
      5. + * If the type is a primitive type or the corresponding wrapper, + * a shared internal persistence delegate is returned + * that encodes values of the given type. + *
      6. + * If the type is an array, + * a shared internal persistence delegate is returned + * that encodes an array of the appropriate type and length, + * and each of its elements as if they are properties. + *
      7. + * If the type is a proxy, + * a shared internal persistence delegate is returned + * that encodes a proxy instance by using + * the {@link java.lang.reflect.Proxy#newProxyInstance} method. + *
      8. + * If the {@link BeanInfo} for this type has a {@link BeanDescriptor} + * which defined a "persistenceDelegate" attribute, + * the value of this named attribute is returned. + *
      9. + * In all other cases the default persistence delegate is returned. + * The default persistence delegate assumes the type is a JavaBean, + * implying that it has a default constructor and that its state + * may be characterized by the matching pairs of "setter" and "getter" + * methods returned by the {@link Introspector} class. * The default constructor is the constructor with the greatest number * of parameters that has the {@link ConstructorProperties} annotation. - * If none of the constructors have the {@code ConstructorProperties} annotation, + * If none of the constructors has the {@code ConstructorProperties} annotation, * then the nullary constructor (constructor with no parameters) will be used. - * For example, in the following the nullary constructor - * for {@code Foo} will be used, while the two parameter constructor - * for {@code Bar} will be used. - * - * public class Foo { + * For example, in the following code fragment, the nullary constructor + * for the {@code Foo} class will be used, + * while the two-parameter constructor + * for the {@code Bar} class will be used. + *
        +     * public class Foo {
              *     public Foo() { ... }
              *     public Foo(int x) { ... }
        -     *   }
        -     *   public class Bar {
        +     * }
        +     * public class Bar {
              *     public Bar() { ... }
              *     @ConstructorProperties({"x"})
              *     public Bar(int x) { ... }
              *     @ConstructorProperties({"x", "y"})
              *     public Bar(int x, int y) { ... }
        -     *   }
        -     * 
        -     * 
    + * } + * * - * @param type The type of the object. - * @return The persistence delegate for this type of object. + * @param type the class of the objects + * @return the persistence delegate for the given type * * @see #setPersistenceDelegate * @see java.beans.Introspector#getBeanInfo @@ -176,21 +204,18 @@ public class Encoder { } /** - * Sets the persistence delegate associated with this type to - * persistenceDelegate. + * Associates the specified persistence delegate with the given type. * - * @param type The class of objects that persistenceDelegate applies to. - * @param persistenceDelegate The persistence delegate for instances of type. + * @param type the class of objects that the specified persistence delegate applies to + * @param delegate the persistence delegate for instances of the given type * * @see #getPersistenceDelegate * @see java.beans.Introspector#getBeanInfo * @see java.beans.BeanInfo#getBeanDescriptor */ - public void setPersistenceDelegate(Class type, - PersistenceDelegate persistenceDelegate) - { + public void setPersistenceDelegate(Class type, PersistenceDelegate delegate) { synchronized (this.finder) { - this.finder.register(type, persistenceDelegate); + this.finder.register(type, delegate); } } From b2ed547ec091ea1773fda0c522e9222d8bc02051 Mon Sep 17 00:00:00 2001 From: Jon Masamitsu Date: Thu, 21 Jan 2010 11:33:32 -0800 Subject: [PATCH 018/109] 6895236: CMS: cmsOopClosures.inline.hpp:43 assert(..., "Should remember klasses in this context") Adjust assertion checking for ExplicitGCInvokesConcurrentAndUnloadsClasses as a reason for class unloading Reviewed-by: ysr --- .../concurrentMarkSweepGeneration.cpp | 19 ++++------- hotspot/src/share/vm/memory/iterator.hpp | 33 ++++++++++++------- .../share/vm/memory/referenceProcessor.cpp | 7 ++-- .../share/vm/memory/referenceProcessor.hpp | 6 ++-- 4 files changed, 37 insertions(+), 28 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index 1ec7696bdf7..7cc33d105a4 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -3655,9 +3655,7 @@ bool CMSCollector::markFromRootsWork(bool asynch) { verify_work_stacks_empty(); verify_overflow_empty(); assert(_revisitStack.isEmpty(), "tabula rasa"); - - DEBUG_ONLY(RememberKlassesChecker cmx(CMSClassUnloadingEnabled);) - + DEBUG_ONLY(RememberKlassesChecker cmx(should_unload_classes());) bool result = false; if (CMSConcurrentMTEnabled && ParallelCMSThreads > 0) { result = do_marking_mt(asynch); @@ -4124,7 +4122,6 @@ void CMSConcMarkingTask::do_work_steal(int i) { void CMSConcMarkingTask::coordinator_yield() { assert(ConcurrentMarkSweepThread::cms_thread_has_cms_token(), "CMS thread should hold CMS token"); - DEBUG_ONLY(RememberKlassesChecker mux(false);) // First give up the locks, then yield, then re-lock // We should probably use a constructor/destructor idiom to @@ -4201,9 +4198,7 @@ bool CMSCollector::do_marking_mt(bool asynch) { // Mutate the Refs discovery so it is MT during the // multi-threaded marking phase. ReferenceProcessorMTMutator mt(ref_processor(), num_workers > 1); - - DEBUG_ONLY(RememberKlassesChecker cmx(CMSClassUnloadingEnabled);) - + DEBUG_ONLY(RememberKlassesChecker cmx(should_unload_classes());) conc_workers()->start_task(&tsk); while (tsk.yielded()) { tsk.coordinator_yield(); @@ -4472,7 +4467,7 @@ size_t CMSCollector::preclean_work(bool clean_refs, bool clean_survivor) { // for cleaner interfaces. rp->preclean_discovered_references( rp->is_alive_non_header(), &keep_alive, &complete_trace, - &yield_cl); + &yield_cl, should_unload_classes()); } if (clean_survivor) { // preclean the active survivor space(s) @@ -4494,7 +4489,7 @@ size_t CMSCollector::preclean_work(bool clean_refs, bool clean_survivor) { SurvivorSpacePrecleanClosure sss_cl(this, _span, &_markBitMap, &_markStack, &pam_cl, before_count, CMSYield); - DEBUG_ONLY(RememberKlassesChecker mx(CMSClassUnloadingEnabled);) + DEBUG_ONLY(RememberKlassesChecker mx(should_unload_classes());) dng->from()->object_iterate_careful(&sss_cl); dng->to()->object_iterate_careful(&sss_cl); } @@ -4665,7 +4660,7 @@ size_t CMSCollector::preclean_mod_union_table( verify_work_stacks_empty(); verify_overflow_empty(); sample_eden(); - DEBUG_ONLY(RememberKlassesChecker mx(CMSClassUnloadingEnabled);) + DEBUG_ONLY(RememberKlassesChecker mx(should_unload_classes());) stop_point = gen->cmsSpace()->object_iterate_careful_m(dirtyRegion, cl); } @@ -4753,7 +4748,7 @@ size_t CMSCollector::preclean_card_table(ConcurrentMarkSweepGeneration* gen, sample_eden(); verify_work_stacks_empty(); verify_overflow_empty(); - DEBUG_ONLY(RememberKlassesChecker mx(CMSClassUnloadingEnabled);) + DEBUG_ONLY(RememberKlassesChecker mx(should_unload_classes());) HeapWord* stop_point = gen->cmsSpace()->object_iterate_careful_m(dirtyRegion, cl); if (stop_point != NULL) { @@ -4853,7 +4848,7 @@ void CMSCollector::checkpointRootsFinalWork(bool asynch, assert(haveFreelistLocks(), "must have free list locks"); assert_lock_strong(bitMapLock()); - DEBUG_ONLY(RememberKlassesChecker fmx(CMSClassUnloadingEnabled);) + DEBUG_ONLY(RememberKlassesChecker fmx(should_unload_classes());) if (!init_mark_was_synchronous) { // We might assume that we need not fill TLAB's when // CMSScavengeBeforeRemark is set, because we may have just done diff --git a/hotspot/src/share/vm/memory/iterator.hpp b/hotspot/src/share/vm/memory/iterator.hpp index 4d073a2e48d..ab4416e2227 100644 --- a/hotspot/src/share/vm/memory/iterator.hpp +++ b/hotspot/src/share/vm/memory/iterator.hpp @@ -296,23 +296,32 @@ public: // RememberKlassesChecker can be passed "false" to turn off checking. // It is used by CMS when CMS yields to a different collector. class RememberKlassesChecker: StackObj { - bool _state; - bool _skip; + bool _saved_state; + bool _do_check; public: - RememberKlassesChecker(bool checking_on) : _state(false), _skip(false) { - _skip = !(ClassUnloading && !UseConcMarkSweepGC || - CMSClassUnloadingEnabled && UseConcMarkSweepGC); - if (_skip) { - return; + RememberKlassesChecker(bool checking_on) : _saved_state(false), + _do_check(true) { + // The ClassUnloading unloading flag affects the collectors except + // for CMS. + // CMS unloads classes if CMSClassUnloadingEnabled is true or + // if ExplicitGCInvokesConcurrentAndUnloadsClasses is true and + // the current collection is an explicit collection. Turning + // on the checking in general for + // ExplicitGCInvokesConcurrentAndUnloadsClasses and + // UseConcMarkSweepGC should not lead to false positives. + _do_check = + ClassUnloading && !UseConcMarkSweepGC || + CMSClassUnloadingEnabled && UseConcMarkSweepGC || + ExplicitGCInvokesConcurrentAndUnloadsClasses && UseConcMarkSweepGC; + if (_do_check) { + _saved_state = OopClosure::must_remember_klasses(); + OopClosure::set_must_remember_klasses(checking_on); } - _state = OopClosure::must_remember_klasses(); - OopClosure::set_must_remember_klasses(checking_on); } ~RememberKlassesChecker() { - if (_skip) { - return; + if (_do_check) { + OopClosure::set_must_remember_klasses(_saved_state); } - OopClosure::set_must_remember_klasses(_state); } }; #endif // ASSERT diff --git a/hotspot/src/share/vm/memory/referenceProcessor.cpp b/hotspot/src/share/vm/memory/referenceProcessor.cpp index ac1b53c30b6..dc9668b500e 100644 --- a/hotspot/src/share/vm/memory/referenceProcessor.cpp +++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp @@ -1227,13 +1227,16 @@ void ReferenceProcessor::preclean_discovered_references( BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, - YieldClosure* yield) { + YieldClosure* yield, + bool should_unload_classes) { NOT_PRODUCT(verify_ok_to_handle_reflists()); #ifdef ASSERT bool must_remember_klasses = ClassUnloading && !UseConcMarkSweepGC || - CMSClassUnloadingEnabled && UseConcMarkSweepGC; + CMSClassUnloadingEnabled && UseConcMarkSweepGC || + ExplicitGCInvokesConcurrentAndUnloadsClasses && + UseConcMarkSweepGC && should_unload_classes; RememberKlassesChecker mx(must_remember_klasses); #endif // Soft references diff --git a/hotspot/src/share/vm/memory/referenceProcessor.hpp b/hotspot/src/share/vm/memory/referenceProcessor.hpp index 6d82e524d8a..6642d9d0d43 100644 --- a/hotspot/src/share/vm/memory/referenceProcessor.hpp +++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp @@ -170,11 +170,13 @@ class ReferenceProcessor : public CHeapObj { // The caller is responsible for taking care of potential // interference with concurrent operations on these lists // (or predicates involved) by other threads. Currently - // only used by the CMS collector. + // only used by the CMS collector. should_unload_classes is + // used to aid assertion checking when classes are collected. void preclean_discovered_references(BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, - YieldClosure* yield); + YieldClosure* yield, + bool should_unload_classes); // Delete entries in the discovered lists that have // either a null referent or are not active. Such From 50b83fe62fe9d5188a0195ee9aef295e9319073a Mon Sep 17 00:00:00 2001 From: Vinnie Ryan Date: Thu, 21 Jan 2010 23:59:41 +0000 Subject: [PATCH 019/109] 6763530: Cannot decode PublicKey (Proider SunPKCS11, curve prime256v1) Reviewed-by: andrew --- .../sun/security/pkcs11/P11ECKeyFactory.java | 13 ++++++++++++- .../share/classes/sun/security/pkcs11/P11Key.java | 12 +++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java b/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java index 82da96674e7..a582e47a924 100644 --- a/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java +++ b/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java @@ -40,6 +40,8 @@ import static sun.security.pkcs11.TemplateManager.*; import sun.security.pkcs11.wrapper.*; import static sun.security.pkcs11.wrapper.PKCS11Constants.*; +import sun.security.util.DerValue; + /** * EC KeyFactory implemenation. * @@ -201,7 +203,16 @@ final class P11ECKeyFactory extends P11KeyFactory { private PublicKey generatePublic(ECPoint point, ECParameterSpec params) throws PKCS11Exception { byte[] encodedParams = ECParameters.encodeParameters(params); - byte[] encodedPoint = ECParameters.encodePoint(point, params.getCurve()); + byte[] encodedPoint = null; + DerValue pkECPoint = new DerValue(DerValue.tag_OctetString, + ECParameters.encodePoint(point, params.getCurve())); + + try { + encodedPoint = pkECPoint.toByteArray(); + } catch (IOException e) { + throw new IllegalArgumentException("Could not DER encode point", e); + } + CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { new CK_ATTRIBUTE(CKA_CLASS, CKO_PUBLIC_KEY), new CK_ATTRIBUTE(CKA_KEY_TYPE, CKK_EC), diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11Key.java b/jdk/src/share/classes/sun/security/pkcs11/P11Key.java index c70642d3531..b3704299713 100644 --- a/jdk/src/share/classes/sun/security/pkcs11/P11Key.java +++ b/jdk/src/share/classes/sun/security/pkcs11/P11Key.java @@ -45,6 +45,8 @@ import sun.security.internal.interfaces.TlsMasterSecret; import sun.security.pkcs11.wrapper.*; import static sun.security.pkcs11.wrapper.PKCS11Constants.*; +import sun.security.util.DerValue; + /** * Key implementation classes. * @@ -998,10 +1000,18 @@ abstract class P11Key implements Key { }; fetchAttributes(attributes); try { + params = P11ECKeyFactory.decodeParameters + (attributes[1].getByteArray()); + DerValue wECPoint = new DerValue(attributes[0].getByteArray()); + if (wECPoint.getTag() != DerValue.tag_OctetString) + throw new IOException("Unexpected tag: " + + wECPoint.getTag()); params = P11ECKeyFactory.decodeParameters (attributes[1].getByteArray()); w = P11ECKeyFactory.decodePoint - (attributes[0].getByteArray(), params.getCurve()); + (wECPoint.getDataBytes(), params.getCurve()); + + } catch (Exception e) { throw new RuntimeException("Could not parse key values", e); } From 35324b7e7da049534766464e5e1b7766dbb16bd0 Mon Sep 17 00:00:00 2001 From: Andrey Petrusenko Date: Thu, 21 Jan 2010 18:51:10 -0800 Subject: [PATCH 020/109] 6918006: G1: spill space must be reserved on the stack for barrier calls on Windows x64 Stub code generated to call G1 barriers does not allocate spill space on the stack as required by Windows x64 ABI. The fix is to use more ABI-friendly call_VM_leaf(). Reviewed-by: iveresov, never, kvn --- hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp | 12 ++++-------- hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp | 4 ++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp index ad4b745ab42..18f2fb7bcc7 100644 --- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp @@ -718,10 +718,8 @@ class StubGenerator: public StubCodeGenerator { case BarrierSet::G1SATBCTLogging: { __ pusha(); // push registers - __ push(count); - __ push(start); - __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_pre))); - __ addptr(rsp, 2*wordSize); + __ call_VM_leaf(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_pre), + start, count); __ popa(); } break; @@ -752,10 +750,8 @@ class StubGenerator: public StubCodeGenerator { case BarrierSet::G1SATBCTLogging: { __ pusha(); // push registers - __ push(count); - __ push(start); - __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_post))); - __ addptr(rsp, 2*wordSize); + __ call_VM_leaf(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_post), + start, count); __ popa(); } break; diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp index 70620836653..9415241f11d 100644 --- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp @@ -1172,7 +1172,7 @@ class StubGenerator: public StubCodeGenerator { __ movptr(c_rarg0, addr); __ movptr(c_rarg1, count); } - __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_pre))); + __ call_VM_leaf(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_pre), 2); __ popa(); } break; @@ -1212,7 +1212,7 @@ class StubGenerator: public StubCodeGenerator { __ shrptr(scratch, LogBytesPerHeapOop); // convert to element count __ mov(c_rarg0, start); __ mov(c_rarg1, scratch); - __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_post))); + __ call_VM_leaf(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_post), 2); __ popa(); } break; From 27a0a30da8f14a25885788294798fbae72677cc5 Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov Date: Fri, 22 Jan 2010 19:47:18 +0300 Subject: [PATCH 021/109] 6756774: fstdebug jvm fails with assertion (result != deleted_handle(),"Used a deleted global handle.") Reviewed-by: art, anthony --- jdk/src/windows/native/sun/windows/awt_MenuItem.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp b/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp index 51fc47718cb..33abb66330e 100644 --- a/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp +++ b/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp @@ -114,6 +114,7 @@ void AwtMenuItem::Dispose() if (m_peerObject != NULL) { JNI_SET_PDATA(m_peerObject, NULL); env->DeleteGlobalRef(m_peerObject); + m_peerObject = NULL; } AwtObject::Dispose(); From 1891bb8f68b3a3cf4a05285dce2acd39cd49b5bb Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Mon, 25 Jan 2010 15:41:37 +0000 Subject: [PATCH 022/109] 6707289: InterfaceAddress.getNetworkPrefixLength() does not conform to Javadoc Reviewed-by: michaelm --- .../native/java/net/NetworkInterface_winXP.c | 30 +++++-- .../InterfaceAddress/NetworkPrefixLength.java | 84 +++++++++++++++++++ 2 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 jdk/test/java/net/InterfaceAddress/NetworkPrefixLength.java diff --git a/jdk/src/windows/native/java/net/NetworkInterface_winXP.c b/jdk/src/windows/native/java/net/NetworkInterface_winXP.c index 0fcfa9fddef..e8402f6b6b0 100644 --- a/jdk/src/windows/native/java/net/NetworkInterface_winXP.c +++ b/jdk/src/windows/native/java/net/NetworkInterface_winXP.c @@ -172,7 +172,7 @@ int getAllInterfacesAndAddresses (JNIEnv *env, netif **netifPP) DWORD ret; IP_ADAPTER_ADDRESSES *ptr, *adapters=0; ULONG len=ipinflen, count=0; - netif *nif=0, *dup_nif, *last=0, *loopif=0; + netif *nif=0, *dup_nif, *last=0, *loopif=0, *curr; int tun=0, net=0; *netifPP = 0; @@ -197,6 +197,20 @@ int getAllInterfacesAndAddresses (JNIEnv *env, netif **netifPP) last = nif; } + // Retrieve IPv4 addresses with the IP Helper API + curr = *netifPP; + while (curr != NULL) { + netaddr *netaddrP; + ret = enumAddresses_win(env, curr, &netaddrP); + if ((*env)->ExceptionOccurred(env)) { + free_netaddr(netaddrP); + return -1; + } + curr->addrs = netaddrP; + curr->naddrs += ret; + curr = curr->next; + } + ret = getAdapters (env, &adapters); if (ret != ERROR_SUCCESS) { goto err; @@ -350,6 +364,14 @@ static int getAddrsFromAdapter(IP_ADAPTER_ADDRESSES *ptr, netaddr **netaddrPP) { /* address is only usable if dad state is preferred or deprecated */ if (uni_addr->DadState == IpDadStateDeprecated || uni_addr->DadState == IpDadStatePreferred) { + sock = uni_addr->Address.lpSockaddr; + + // IPv4 addresses already retrieved with enumAddresses_win + if (sock->sa_family == AF_INET) { + uni_addr = uni_addr->Next; + continue; + } + curr = (netaddr *)calloc (1, sizeof (netaddr)); if (curr == 0) { return -1; @@ -361,15 +383,9 @@ static int getAddrsFromAdapter(IP_ADAPTER_ADDRESSES *ptr, netaddr **netaddrPP) { prev->next = curr; } prev = curr; - sock = uni_addr->Address.lpSockaddr; SOCKETADDRESS_COPY (&curr->addr, sock); if (prefix != NULL) { curr->mask = (short)prefix->PrefixLength; - if (sock->sa_family == AF_INET) { - sock = prefix->Address.lpSockaddr; - SOCKETADDRESS_COPY(&curr->brdcast, sock); - curr->brdcast.him4.sin_addr.s_addr |= htonl((0xffffffff >> curr->mask)); - } prefix = prefix->Next; } count ++; diff --git a/jdk/test/java/net/InterfaceAddress/NetworkPrefixLength.java b/jdk/test/java/net/InterfaceAddress/NetworkPrefixLength.java new file mode 100644 index 00000000000..7b7f95852b8 --- /dev/null +++ b/jdk/test/java/net/InterfaceAddress/NetworkPrefixLength.java @@ -0,0 +1,84 @@ +/* + * Copyright 2010 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 6707289 + * @summary InterfaceAddress.getNetworkPrefixLength() does not conform to Javadoc + */ + +import java.net.InetAddress; +import java.net.Inet4Address; +import java.net.InterfaceAddress; +import java.net.NetworkInterface; +import java.util.Enumeration; +import static java.lang.System.out; + +public class NetworkPrefixLength { + static boolean passed = true; + + public static void main(String[] args) throws Exception { + Enumeration nics = NetworkInterface.getNetworkInterfaces(); + + while (nics.hasMoreElements()) { + NetworkInterface nic = nics.nextElement(); + for (InterfaceAddress iaddr : nic.getInterfaceAddresses()) { + boolean valid = checkPrefix(iaddr); + if (!valid) { + passed = false; + debug(nic.getName(), iaddr); + } + } + } + + if (!passed) + throw new RuntimeException("Failed: some interfaces have invalid prefix lengths"); + } + + static boolean checkPrefix(InterfaceAddress iaddr) { + InetAddress addr = iaddr.getAddress(); + + if (addr instanceof Inet4Address) + return checkIPv4PrefixLength(iaddr.getNetworkPrefixLength()); + else + return checkIPv6PrefixLength(iaddr.getNetworkPrefixLength()); + } + + static boolean checkIPv4PrefixLength(int prefix) { + if (prefix >=0 && prefix <= 32) + return true; + + return false; + } + + static boolean checkIPv6PrefixLength(int prefix) { + if (prefix >=0 && prefix <= 128) + return true; + + return false; + } + + static void debug(String nicName, InterfaceAddress iaddr) { + out.println("NIC " + nicName + " has an address with an invalid prefix length:\n" + iaddr); + } +} + From e19600ac5d879071cde32862542bc461f331fd97 Mon Sep 17 00:00:00 2001 From: Antonios Printezis Date: Mon, 25 Jan 2010 18:03:29 -0500 Subject: [PATCH 023/109] 6919980: G1: remove +UseG1GC from under experimental options (second attempt) Trying this again, as the original change was lost. Reviewed-by: ysr, jmasa --- hotspot/src/share/vm/runtime/globals.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 6eac915cf91..e34f877a872 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -1201,7 +1201,7 @@ class CommandLineFlags { product(bool, UseSerialGC, false, \ "Use the serial garbage collector") \ \ - experimental(bool, UseG1GC, false, \ + product(bool, UseG1GC, false, \ "Use the Garbage-First garbage collector") \ \ product(bool, UseParallelGC, false, \ From 63df4ddb3e90186d65ebcdf294938d9c16eadde6 Mon Sep 17 00:00:00 2001 From: Masayoshi Okutsu Date: Tue, 26 Jan 2010 15:42:06 +0900 Subject: [PATCH 024/109] 6912866: (date) java.util.Date.before / after may be expensive Reviewed-by: peytoia --- jdk/src/share/classes/java/util/Date.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/java/util/Date.java b/jdk/src/share/classes/java/util/Date.java index ffeb2e185df..36e3ac71166 100644 --- a/jdk/src/share/classes/java/util/Date.java +++ b/jdk/src/share/classes/java/util/Date.java @@ -953,7 +953,7 @@ public class Date * without affecting its internal state. */ static final long getMillisOf(Date date) { - if (date.cdate == null) { + if (date.cdate == null || date.cdate.isNormalized()) { return date.fastTime; } BaseCalendar.Date d = (BaseCalendar.Date) date.cdate.clone(); From 4641ee098b1b0acd10159878382cebb4fd4e84ba Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Tue, 26 Jan 2010 17:03:48 +0800 Subject: [PATCH 025/109] 6919610: KeyTabInputStream uses static field for per-instance value Reviewed-by: mullan --- .../krb5/internal/ktab/KeyTabInputStream.java | 4 +- .../sun/security/krb5/ktab/KeyTabIndex.java | 52 +++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 jdk/test/sun/security/krb5/ktab/KeyTabIndex.java diff --git a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java index 900c3cc52d8..c347c848f95 100644 --- a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java +++ b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java @@ -1,5 +1,5 @@ /* - * Portions Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 2000-2010 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 @@ -49,7 +49,7 @@ import java.io.InputStream; public class KeyTabInputStream extends KrbDataInputStream implements KeyTabConstants { boolean DEBUG = Krb5.DEBUG; - static int index; + int index; public KeyTabInputStream(InputStream is) { super(is); diff --git a/jdk/test/sun/security/krb5/ktab/KeyTabIndex.java b/jdk/test/sun/security/krb5/ktab/KeyTabIndex.java new file mode 100644 index 00000000000..b349f7c1334 --- /dev/null +++ b/jdk/test/sun/security/krb5/ktab/KeyTabIndex.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 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 6919610 + * @summary KeyTabInputStream uses static field for per-instance value + */ +import sun.security.krb5.PrincipalName; +import sun.security.krb5.internal.ktab.KeyTab; + +public class KeyTabIndex { + public static void main(String[] args) throws Exception { + KeyTab kt = KeyTab.create("ktab"); + // Two entries with very different length, so that it's easy to + // observice the abnormal change of "index" field. + kt.addEntry(new PrincipalName( + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@A"), + "x".toCharArray(), 1); + kt.addEntry(new PrincipalName("a@A"), "x".toCharArray(), 1); + kt.save(); + Runnable t = new Runnable() { + @Override + public void run() { + KeyTab.getInstance("ktab").getClass(); + } + }; + KeyTab.refresh(); + for (int i=0; i<10; i++) { + new Thread(t).start(); + } + } +} From 32443b7f2e97aaa6e128f45fe80b89c86d9e564b Mon Sep 17 00:00:00 2001 From: Jean-Christophe Collet Date: Tue, 26 Jan 2010 11:39:29 +0100 Subject: [PATCH 026/109] 6919185: test/closed/sun/net/ftp/FtpTests fails to compile Fixed a couple of regressions in FtpClient and updated the test. Reviewed-by: chegar --- .../share/classes/sun/net/ftp/impl/FtpClient.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java b/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java index 31fe2ba61a4..bc4e48819f6 100644 --- a/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java +++ b/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java @@ -671,6 +671,10 @@ public class FtpClient extends sun.net.ftp.FtpClient { } if (!issueCommand(cmd)) { s.close(); + if (getLastReplyCode() == FtpReplyCode.FILE_UNAVAILABLE) { + // Ensure backward compatibility + throw new FileNotFoundException(cmd); + } throw new sun.net.ftp.FtpProtocolException(cmd + ":" + getResponseString(), getLastReplyCode()); } return s; @@ -688,7 +692,16 @@ public class FtpClient extends sun.net.ftp.FtpClient { Socket clientSocket; if (passiveMode) { - return openPassiveDataConnection(cmd); + try { + return openPassiveDataConnection(cmd); + } catch (sun.net.ftp.FtpProtocolException e) { + // If Passive mode failed, fall back on PORT + // Otherwise throw exception + String errmsg = e.getMessage(); + if (!errmsg.startsWith("PASV") && !errmsg.startsWith("EPSV")) { + throw e; + } + } } ServerSocket portSocket; InetAddress myAddress; From f557cc8bd025fc6d05ee6725381e9da5e1c31d40 Mon Sep 17 00:00:00 2001 From: Eric Caspole Date: Tue, 26 Jan 2010 08:53:24 -0800 Subject: [PATCH 027/109] 6919886: Sweep CodeCache more aggressively to reduce its usage for CompileTheWorld Add safepoint after CompileTheWorldSafepointInterval (100) compilations and do full sweep of CodeCache each time. Reviewed-by: never --- hotspot/src/share/vm/classfile/classLoader.cpp | 8 ++++++++ hotspot/src/share/vm/runtime/arguments.cpp | 9 +++++++++ hotspot/src/share/vm/runtime/globals.hpp | 3 +++ 3 files changed, 20 insertions(+) diff --git a/hotspot/src/share/vm/classfile/classLoader.cpp b/hotspot/src/share/vm/classfile/classLoader.cpp index 2fb9de039bc..824ba88aeb1 100644 --- a/hotspot/src/share/vm/classfile/classLoader.cpp +++ b/hotspot/src/share/vm/classfile/classLoader.cpp @@ -1249,6 +1249,7 @@ void ClassLoader::compile_the_world() { } int ClassLoader::_compile_the_world_counter = 0; +static int _codecache_sweep_counter = 0; void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) { int len = (int)strlen(name); @@ -1293,6 +1294,13 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) { for (int n = 0; n < k->methods()->length(); n++) { methodHandle m (THREAD, methodOop(k->methods()->obj_at(n))); if (CompilationPolicy::canBeCompiled(m)) { + + if (++_codecache_sweep_counter == CompileTheWorldSafepointInterval) { + // Give sweeper a chance to keep up with CTW + VM_ForceSafepoint op; + VMThread::execute(&op); + _codecache_sweep_counter = 0; + } // Force compilation CompileBroker::compile_method(m, InvocationEntryBci, methodHandle(), 0, "CTW", THREAD); diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index e86b46a693d..499fba2f1be 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -2815,6 +2815,15 @@ jint Arguments::parse(const JavaVMInitArgs* args) { DebugNonSafepoints = true; } +#ifndef PRODUCT + if (CompileTheWorld) { + // Force NmethodSweeper to sweep whole CodeCache each time. + if (FLAG_IS_DEFAULT(NmethodSweepFraction)) { + NmethodSweepFraction = 1; + } + } +#endif + if (PrintCommandLineFlags) { CommandLineFlags::printSetFlags(); } diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 6eac915cf91..01ebb49f935 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -2447,6 +2447,9 @@ class CommandLineFlags { notproduct(bool, CompileTheWorldIgnoreInitErrors, false, \ "Compile all methods although class initializer failed") \ \ + notproduct(intx, CompileTheWorldSafepointInterval, 100, \ + "Force a safepoint every n compiles so sweeper can keep up") \ + \ develop(bool, TraceIterativeGVN, false, \ "Print progress during Iterative Global Value Numbering") \ \ From 342a620a7fcb8e35ea0d0f2bd2adfd943567dfe7 Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Tue, 26 Jan 2010 16:52:29 -0800 Subject: [PATCH 028/109] 6920090: G1: Disable ReduceInitialCardMarks at least until 6920109 is fixed G1 now answers "no" to the query can_elide_initializing_store_barrier() in the product build. A debug flag allows alternate behaviour in debug builds. Reviewed-by: iveresov, tonyp --- .../share/vm/gc_implementation/g1/g1CollectedHeap.hpp | 9 ++++++++- hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp | 6 +++++- hotspot/src/share/vm/gc_interface/collectedHeap.cpp | 3 ++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp index bb73eb28881..51325935385 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @@ -1004,7 +1004,12 @@ public: // storage in the heap comes from a young region or not. // See ReduceInitialCardMarks. virtual bool can_elide_tlab_store_barriers() const { - return true; + // 6920090: Temporarily disabled, because of lingering + // instabilities related to RICM with G1. In the + // interim, the option ReduceInitialCardMarksForG1 + // below is left solely as a debugging device at least + // until 6920109 fixes the instabilities. + return ReduceInitialCardMarksForG1; } virtual bool card_mark_must_follow_store() const { @@ -1026,6 +1031,8 @@ public: // However, non-generational G1 (-XX:-G1Gen) appears to have // bit-rotted so was not tested below. virtual bool can_elide_initializing_store_barrier(oop new_obj) { + // Re 6920090, 6920109 above. + assert(ReduceInitialCardMarksForG1, "Else cannot be here"); assert(G1Gen || !is_in_young(new_obj), "Non-generational G1 should never return true below"); return is_in_young(new_obj); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp index 85f3841c128..4e6ce1361bd 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp @@ -291,6 +291,10 @@ "a particular entry exceeds this value.") \ \ develop(bool, G1VerifyCTCleanup, false, \ - "Verify card table cleanup.") + "Verify card table cleanup.") \ + \ + develop(bool, ReduceInitialCardMarksForG1, false, \ + "When ReduceInitialCardMarks is true, this flag setting " \ + " controls whether G1 allows the RICM optimization") G1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG) diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp index 031afd57572..c5bf893c9e4 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp @@ -66,7 +66,8 @@ void CollectedHeap::pre_initialize() { // Used for ReduceInitialCardMarks (when COMPILER2 is used); // otherwise remains unused. #ifdef COMPLER2 - _defer_initial_card_mark = ReduceInitialCardMarks && (DeferInitialCardMark || card_mark_must_follow_store()); + _defer_initial_card_mark = ReduceInitialCardMarks && can_elide_tlab_store_barriers() + && (DeferInitialCardMark || card_mark_must_follow_store()); #else assert(_defer_initial_card_mark == false, "Who would set it?"); #endif From ea8cd92324041846706278b3beeaef732444914b Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Wed, 27 Jan 2010 16:11:53 +0000 Subject: [PATCH 029/109] 6905552: libnet/nio portability issues Reviewed-by: alanb --- jdk/src/share/native/java/net/net_util.c | 5 ++- .../native/java/net/Inet4AddressImpl.c | 5 --- .../native/java/net/Inet6AddressImpl.c | 7 ---- .../native/java/net/NetworkInterface.c | 11 ++++++ .../native/java/net/PlainDatagramSocketImpl.c | 38 ++++++++++++++++--- jdk/src/solaris/native/java/net/net_util_md.c | 3 +- jdk/src/solaris/native/java/net/net_util_md.h | 2 +- .../solaris/native/sun/net/spi/SdpProvider.c | 4 ++ jdk/src/solaris/native/sun/nio/ch/Net.c | 19 +++++++++- jdk/src/solaris/native/sun/nio/ch/SctpNet.c | 8 +++- 10 files changed, 76 insertions(+), 26 deletions(-) diff --git a/jdk/src/share/native/java/net/net_util.c b/jdk/src/share/native/java/net/net_util.c index 5634e736a34..c2464b24119 100644 --- a/jdk/src/share/native/java/net/net_util.c +++ b/jdk/src/share/native/java/net/net_util.c @@ -162,10 +162,11 @@ NET_SockaddrToInetAddress(JNIEnv *env, struct sockaddr *him, int *port) { JNIEXPORT jint JNICALL NET_SockaddrEqualsInetAddress(JNIEnv *env, struct sockaddr *him, jobject iaObj) { - jint family = (*env)->GetIntField(env, iaObj, ia_familyID) == IPv4? - AF_INET : AF_INET6; + jint family = AF_INET; #ifdef AF_INET6 + family = (*env)->GetIntField(env, iaObj, ia_familyID) == IPv4? + AF_INET : AF_INET6; if (him->sa_family == AF_INET6) { #ifdef WIN32 struct SOCKADDR_IN6 *him6 = (struct SOCKADDR_IN6 *)him; diff --git a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c index 5621961f376..ab6c7ae2d30 100644 --- a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c +++ b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c @@ -46,11 +46,6 @@ #define HENT_BUF_SIZE 1024 #define BIG_HENT_BUF_SIZE 10240 /* a jumbo-sized one */ -#ifndef __GLIBC__ -/* gethostname() is in libc.so but I can't find a header file for it */ -extern int gethostname(char *buf, int buf_len); -#endif - /************************************************************************ * Inet4AddressImpl */ diff --git a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c index f9dcfef4fbe..2d5fff2918d 100644 --- a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c +++ b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c @@ -49,10 +49,6 @@ #define NI_MAXHOST 1025 #endif -#ifndef __GLIBC__ -/* gethostname() is in libc.so but I can't find a header file for it */ -extern int gethostname(char *buf, int buf_len); -#endif /************************************************************************ * Inet6AddressImpl @@ -360,8 +356,6 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, } } -#endif /* AF_INET6 */ - cleanupAndReturn: { struct addrinfo *iterator, *tmp; @@ -374,7 +368,6 @@ cleanupAndReturn: JNU_ReleaseStringPlatformChars(env, host, hostname); } -#ifdef AF_INET6 if (NET_addrtransAvailable()) (*freeaddrinfo_ptr)(res); #endif /* AF_INET6 */ diff --git a/jdk/src/solaris/native/java/net/NetworkInterface.c b/jdk/src/solaris/native/java/net/NetworkInterface.c index 9580c816455..dc2bccc7fdf 100644 --- a/jdk/src/solaris/native/java/net/NetworkInterface.c +++ b/jdk/src/solaris/native/java/net/NetworkInterface.c @@ -253,8 +253,12 @@ JNIEXPORT jobject JNICALL Java_java_net_NetworkInterface_getByInetAddress0 (JNIEnv *env, jclass cls, jobject iaObj) { netif *ifs, *curr; +#ifdef AF_INET6 int family = (*env)->GetIntField(env, iaObj, ni_iafamilyID) == IPv4? AF_INET : AF_INET6; +#else + int family = AF_INET; +#endif jobject obj = NULL; jboolean match = JNI_FALSE; @@ -1528,6 +1532,7 @@ JNIEXPORT jint JNICALL Java_java_net_NetworkInterface_getMTU0(JNIEnv *env, jclas strcpy((caddr_t)&(lifr.lifr_name), name_utf); if (ioctl(sock, SIOCGLIFMTU, (caddr_t)&lifr) >= 0) { ret = lifr.lifr_mtu; +#ifdef AF_INET6 } else { /* Try wIth an IPv6 socket in case the interface has only IPv6 addresses assigned to it */ close(sock); @@ -1547,6 +1552,12 @@ JNIEXPORT jint JNICALL Java_java_net_NetworkInterface_getMTU0(JNIEnv *env, jclas "IOCTL failed"); } } +#else + } else { + NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", + "IOCTL failed"); + } +#endif #endif close(sock); } diff --git a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c index dc804be4575..0fb06a9f78b 100644 --- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c +++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c @@ -605,8 +605,12 @@ Java_java_net_PlainDatagramSocketImpl_peek(JNIEnv *env, jobject this, } iaObj = NET_SockaddrToInetAddress(env, (struct sockaddr *)&remote_addr, &port); +#ifdef AF_INET6 family = (*env)->GetIntField(env, iaObj, ia_familyID) == IPv4? AF_INET : AF_INET6; +#else + family = AF_INET; +#endif if (family == AF_INET) { /* this api can't handle IPV6 addresses */ int address = (*env)->GetIntField(env, iaObj, ia_addressID); (*env)->SetIntField(env, addressObj, ia_addressID, address); @@ -812,9 +816,9 @@ Java_java_net_PlainDatagramSocketImpl_receive0(JNIEnv *env, jobject this, jboolean retry; #ifdef __linux__ jboolean connected = JNI_FALSE; - jobject connectedAddress; - jint connectedPort; - jlong prevTime; + jobject connectedAddress = NULL; + jint connectedPort = 0; + jlong prevTime = 0; #endif if (IS_NULL(fdObj)) { @@ -1186,6 +1190,7 @@ static void mcast_set_if_by_if_v4(JNIEnv *env, jobject this, int fd, jobject val * Set outgoing multicast interface designated by a NetworkInterface. * Throw exception if failed. */ +#ifdef AF_INET6 static void mcast_set_if_by_if_v6(JNIEnv *env, jobject this, int fd, jobject value) { static jfieldID ni_indexID; int index; @@ -1222,6 +1227,7 @@ static void mcast_set_if_by_if_v6(JNIEnv *env, jobject this, int fd, jobject val } #endif } +#endif /* AF_INET6 */ /* * Set outgoing multicast interface designated by an InetAddress. @@ -1251,6 +1257,7 @@ static void mcast_set_if_by_addr_v4(JNIEnv *env, jobject this, int fd, jobject v * Set outgoing multicast interface designated by an InetAddress. * Throw exception if failed. */ +#ifdef AF_INET6 static void mcast_set_if_by_addr_v6(JNIEnv *env, jobject this, int fd, jobject value) { static jclass ni_class; if (ni_class == NULL) { @@ -1272,6 +1279,7 @@ static void mcast_set_if_by_addr_v6(JNIEnv *env, jobject this, int fd, jobject v mcast_set_if_by_if_v6(env, this, fd, value); } +#endif /* * Sets the multicast interface. @@ -1307,6 +1315,7 @@ static void setMulticastInterface(JNIEnv *env, jobject this, int fd, /* * value is an InetAddress. */ +#ifdef AF_INET6 #ifdef __solaris__ if (ipv6_available()) { mcast_set_if_by_addr_v6(env, this, fd, value); @@ -1320,12 +1329,16 @@ static void setMulticastInterface(JNIEnv *env, jobject this, int fd, mcast_set_if_by_addr_v6(env, this, fd, value); } #endif +#else + mcast_set_if_by_addr_v4(env, this, fd, value); +#endif /* AF_INET6 */ } if (opt == java_net_SocketOptions_IP_MULTICAST_IF2) { /* * value is a NetworkInterface. */ +#ifdef AF_INET6 #ifdef __solaris__ if (ipv6_available()) { mcast_set_if_by_if_v6(env, this, fd, value); @@ -1339,6 +1352,9 @@ static void setMulticastInterface(JNIEnv *env, jobject this, int fd, mcast_set_if_by_if_v6(env, this, fd, value); } #endif +#else + mcast_set_if_by_if_v4(env, this, fd, value); +#endif /* AF_INET6 */ } } @@ -1368,6 +1384,7 @@ static void mcast_set_loop_v4(JNIEnv *env, jobject this, int fd, jobject value) /* * Enable/disable local loopback of multicast datagrams. */ +#ifdef AF_INET6 static void mcast_set_loop_v6(JNIEnv *env, jobject this, int fd, jobject value) { jclass cls; jfieldID fid; @@ -1397,12 +1414,14 @@ static void mcast_set_loop_v6(JNIEnv *env, jobject this, int fd, jobject value) } #endif } +#endif /* AF_INET6 */ /* * Sets the multicast loopback mode. */ static void setMulticastLoopbackMode(JNIEnv *env, jobject this, int fd, jint opt, jobject value) { +#ifdef AF_INET6 #ifdef __solaris__ if (ipv6_available()) { mcast_set_loop_v6(env, this, fd, value); @@ -1416,6 +1435,9 @@ static void setMulticastLoopbackMode(JNIEnv *env, jobject this, int fd, mcast_set_loop_v6(env, this, fd, value); } #endif +#else + mcast_set_loop_v4(env, this, fd, value); +#endif /* AF_INET6 */ } /* @@ -1838,7 +1860,7 @@ Java_java_net_PlainDatagramSocketImpl_socketGetOption(JNIEnv *env, jobject this, if (opt == java_net_SocketOptions_SO_BINDADDR) { /* find out local IP address */ SOCKADDR him; - int len = 0; + socklen_t len = 0; int port; jobject iaObj; @@ -1941,6 +1963,7 @@ static void setTTL(JNIEnv *env, int fd, jint ttl) { /* * Set hops limit for a socket. Throw exception if failed. */ +#ifdef AF_INET6 static void setHopLimit(JNIEnv *env, int fd, jint ttl) { int ittl = (int)ttl; if (JVM_SetSockOpt(fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, @@ -1949,6 +1972,7 @@ static void setHopLimit(JNIEnv *env, int fd, jint ttl) { "Error setting socket option"); } } +#endif /* * Class: java_net_PlainDatagramSocketImpl @@ -1971,6 +1995,7 @@ Java_java_net_PlainDatagramSocketImpl_setTimeToLive(JNIEnv *env, jobject this, fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID); } /* setsockopt to be correct ttl */ +#ifdef AF_INET6 #ifdef __solaris__ if (ipv6_available()) { setHopLimit(env, fd, ttl); @@ -1986,7 +2011,10 @@ Java_java_net_PlainDatagramSocketImpl_setTimeToLive(JNIEnv *env, jobject this, (*env)->SetIntField(env, this, pdsi_ttlID, ttl); } } -#endif +#endif // __linux__ +#else + setTTL(env, fd, ttl); +#endif /* AF_INET6 */ } /* diff --git a/jdk/src/solaris/native/java/net/net_util_md.c b/jdk/src/solaris/native/java/net/net_util_md.c index cfc86a8842f..620a70d6393 100644 --- a/jdk/src/solaris/native/java/net/net_util_md.c +++ b/jdk/src/solaris/native/java/net/net_util_md.c @@ -319,8 +319,6 @@ jint IPv6_supported() #endif /* __solaris */ -#endif /* AF_INET6 */ - /* * OK we may have the stack available in the kernel, * we should also check if the APIs are available. @@ -354,6 +352,7 @@ jint IPv6_supported() close(fd); return JNI_TRUE; +#endif /* AF_INET6 */ } void diff --git a/jdk/src/solaris/native/java/net/net_util_md.h b/jdk/src/solaris/native/java/net/net_util_md.h index 3e581781a5b..1614c7ae30d 100644 --- a/jdk/src/solaris/native/java/net/net_util_md.h +++ b/jdk/src/solaris/native/java/net/net_util_md.h @@ -133,7 +133,7 @@ extern jint NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout); #else -#define SOCKADDR union { struct sockaddr_in him4 } +#define SOCKADDR union { struct sockaddr_in him4; } #define SOCKADDR_LEN sizeof(SOCKADDR) #endif diff --git a/jdk/src/solaris/native/sun/net/spi/SdpProvider.c b/jdk/src/solaris/native/sun/net/spi/SdpProvider.c index 00d7f4ba6dc..26b5f16f2de 100644 --- a/jdk/src/solaris/native/sun/net/spi/SdpProvider.c +++ b/jdk/src/solaris/native/sun/net/spi/SdpProvider.c @@ -44,7 +44,11 @@ JNIEXPORT void JNICALL Java_sun_net_spi_SdpProvider_convert(JNIEnv *env, jclass cls, jint fd) { #ifdef PROTO_SDP +#ifdef AF_INET6 int domain = ipv6_available() ? AF_INET6 : AF_INET; +#else + int domain = AF_INET; +#endif int s = socket(domain, SOCK_STREAM, PROTO_SDP); if (s < 0) { JNU_ThrowIOExceptionWithLastError(env, "socket"); diff --git a/jdk/src/solaris/native/sun/nio/ch/Net.c b/jdk/src/solaris/native/sun/nio/ch/Net.c index 79031de6b59..a386c1024e0 100644 --- a/jdk/src/solaris/native/sun/nio/ch/Net.c +++ b/jdk/src/solaris/native/sun/nio/ch/Net.c @@ -124,6 +124,7 @@ struct my_group_source_req { * Copy IPv6 group, interface index, and IPv6 source address * into group_source_req structure. */ +#ifdef AF_INET6 static void initGroupSourceReq(JNIEnv* env, jbyteArray group, jint index, jbyteArray source, struct my_group_source_req* req) { @@ -139,7 +140,7 @@ static void initGroupSourceReq(JNIEnv* env, jbyteArray group, jint index, sin6->sin6_family = AF_INET6; COPY_INET6_ADDRESS(env, source, (jbyte*)&(sin6->sin6_addr)); } - +#endif JNIEXPORT void JNICALL Java_sun_nio_ch_Net_initIDs(JNIEnv *env, jclass clazz) @@ -159,7 +160,11 @@ Java_sun_nio_ch_Net_socket0(JNIEnv *env, jclass cl, jboolean preferIPv6, { int fd; int type = (stream ? SOCK_STREAM : SOCK_DGRAM); +#ifdef AF_INET6 int domain = (ipv6_available() && preferIPv6) ? AF_INET6 : AF_INET; +#else + int domain = AF_INET; +#endif fd = socket(domain, type, 0); if (fd < 0) { @@ -176,7 +181,7 @@ Java_sun_nio_ch_Net_socket0(JNIEnv *env, jclass cl, jboolean preferIPv6, return -1; } } -#ifdef __linux__ +#if defined(__linux__) && defined(AF_INET6) /* By default, Linux uses the route default */ if (domain == AF_INET6 && type == SOCK_DGRAM) { int arg = 1; @@ -424,6 +429,7 @@ JNIEXPORT jint JNICALL Java_sun_nio_ch_Net_joinOrDrop6(JNIEnv *env, jobject this, jboolean join, jobject fdo, jbyteArray group, jint index, jbyteArray source) { +#ifdef AF_INET6 struct ipv6_mreq mreq6; struct my_group_source_req req; int opt, n, optlen; @@ -454,12 +460,17 @@ Java_sun_nio_ch_Net_joinOrDrop6(JNIEnv *env, jobject this, jboolean join, jobjec handleSocketError(env, errno); } return 0; +#else + JNU_ThrowInternalError(env, "Should not get here"); + return IOS_THROWN; +#endif /* AF_INET6 */ } JNIEXPORT jint JNICALL Java_sun_nio_ch_Net_blockOrUnblock6(JNIEnv *env, jobject this, jboolean block, jobject fdo, jbyteArray group, jint index, jbyteArray source) { +#ifdef AF_INET6 struct my_group_source_req req; int n; int opt = (block) ? MCAST_BLOCK_SOURCE : MCAST_UNBLOCK_SOURCE; @@ -474,6 +485,10 @@ Java_sun_nio_ch_Net_blockOrUnblock6(JNIEnv *env, jobject this, jboolean block, j handleSocketError(env, errno); } return 0; +#else + JNU_ThrowInternalError(env, "Should not get here"); + return IOS_THROWN; +#endif } JNIEXPORT void JNICALL diff --git a/jdk/src/solaris/native/sun/nio/ch/SctpNet.c b/jdk/src/solaris/native/sun/nio/ch/SctpNet.c index 61d7764d23e..3f61c56e3eb 100644 --- a/jdk/src/solaris/native/sun/nio/ch/SctpNet.c +++ b/jdk/src/solaris/native/sun/nio/ch/SctpNet.c @@ -168,14 +168,18 @@ JNIEXPORT jint JNICALL Java_sun_nio_ch_SctpNet_socket0 (JNIEnv *env, jclass klass, jboolean oneToOne) { int fd; struct sctp_event_subscribe event; +#ifdef AF_INET6 + int domain = ipv6_available() ? AF_INET6 : AF_INET; +#else + int domain = AF_INET; +#endif /* Try to load the socket API extension functions */ if (!funcsLoaded && !loadSocketExtensionFuncs(env)) { return 0; } - fd = socket(ipv6_available() ? AF_INET6 : AF_INET, - (oneToOne ? SOCK_STREAM : SOCK_SEQPACKET), IPPROTO_SCTP); + fd = socket(domain, (oneToOne ? SOCK_STREAM : SOCK_SEQPACKET), IPPROTO_SCTP); if (fd < 0) { return handleSocketError(env, errno); From 0c8c19d62996cab6223d18485cc77fbba9752f92 Mon Sep 17 00:00:00 2001 From: Pavel Tisnovsky Date: Wed, 27 Jan 2010 17:47:53 +0100 Subject: [PATCH 030/109] 6920143: test/java/awt/TestArea/UsingWithMouse.java needs realSync() Added small delay to make sure that TextArea animation have finished Reviewed-by: anthony --- .../UsingWithMouse/SelectionAutoscrollTest.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/jdk/test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java b/jdk/test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java index 08ad5d1211f..5c7a70a03a5 100644 --- a/jdk/test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java +++ b/jdk/test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java @@ -56,6 +56,7 @@ public class SelectionAutoscrollTest extends Applet { TextArea textArea; Robot robot; final int desiredSelectionEnd = ('z'-'a'+1)*2; // 52 + final static int SCROLL_DELAY = 10; // ms public void start () { createObjects(); @@ -126,6 +127,8 @@ public class SelectionAutoscrollTest extends Applet { moveMouseBelowTextArea( tremble%2!=0 ); Util.waitForIdle( robot ); + // it is needed to add some small delay on Gnome + waitUntilScrollIsPerformed(robot); } robot.mouseRelease( MouseEvent.BUTTON1_MASK ); @@ -141,9 +144,19 @@ public class SelectionAutoscrollTest extends Applet { void moveMouseBelowTextArea( boolean shift ) { Dimension d = textArea.getSize(); Point l = textArea.getLocationOnScreen(); + int x = (int)(l.x+d.width*.5); int y = (int)(l.y+d.height*1.5); if( shift ) y+=15; - robot.mouseMove( (int)(l.x+d.width*.5), y ); + robot.mouseMove( x, y ); + } + + void waitUntilScrollIsPerformed(Robot robot) { + try { + Thread.sleep( SCROLL_DELAY ); + } + catch( Exception e ) { + throw new RuntimeException( e ); + } } void checkResults() { From b09ac3b7e88a812378128c91b0ab373759233232 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Wed, 27 Jan 2010 19:39:55 -0800 Subject: [PATCH 031/109] 6920732: opensource test/java/nio/charset Move the test cases to openjdk Reviewed-by: martin --- .../Charset/AvailableCharsetNames.java | 51 + .../Charset/CharsetContainmentTest.java | 115 + .../java/nio/charset/Charset/Contains.java | 166 + .../java/nio/charset/Charset/Default.java | 36 + .../nio/charset/Charset/EmptyCharsetName.java | 102 + jdk/test/java/nio/charset/Charset/EncDec.java | 45 + .../charset/Charset/IllegalCharsetName.java | 63 + .../Charset/NIOCharsetAvailabilityTest.java | 229 + .../nio/charset/Charset/NullCharsetName.java | 52 + .../charset/Charset/RegisteredCharsets.java | 1270 +++ jdk/test/java/nio/charset/Charset/default.sh | 97 + .../charset/CharsetDecoder/AverageMax.java | 96 + .../charset/CharsetDecoder/EmptyInput.java | 48 + .../nio/charset/CharsetEncoder/CanEncode.java | 95 + .../nio/charset/CharsetEncoder/Flush.java | 113 + .../nio/charset/RemovingSunIO/SunioAlias.java | 823 ++ .../nio/charset/RemovingSunIO/TestCOMP.java | 76 + .../TestUnmappableForLength.java | 59 + .../java/nio/charset/coders/BashCache.java | 89 + .../java/nio/charset/coders/BashStreams.java | 391 + jdk/test/java/nio/charset/coders/Check.java | 152 + .../charset/coders/CheckSJISMappingProp.sh | 76 + jdk/test/java/nio/charset/coders/Errors.java | 220 + .../java/nio/charset/coders/FullRead.java | 63 + .../java/nio/charset/coders/IOCoders.java | 103 + .../charset/coders/IsLegalReplacement.java | 93 + .../nio/charset/coders/ResetISO2022JP.java | 63 + .../java/nio/charset/coders/SJISPropTest.java | 59 + .../nio/charset/coders/StreamTimeout.java | 137 + .../java/nio/charset/coders/Surrogate.java | 66 + .../java/nio/charset/coders/Surrogates.java | 90 + jdk/test/java/nio/charset/coders/Util.java | 114 + .../java/nio/charset/coders/ref.shift_jis | 7072 +++++++++++++ .../java/nio/charset/coders/ref.windows-31j | 9409 +++++++++++++++++ jdk/test/java/nio/charset/spi/FooCharset.java | 45 + .../java/nio/charset/spi/FooProvider.java | 45 + jdk/test/java/nio/charset/spi/Test.java | 92 + jdk/test/java/nio/charset/spi/basic.sh | 127 + .../java/nio/charset/spi/charsetProvider.sp | 5 + jdk/test/java/nio/charset/spi/default-pol | 48 + 40 files changed, 22095 insertions(+) create mode 100644 jdk/test/java/nio/charset/Charset/AvailableCharsetNames.java create mode 100644 jdk/test/java/nio/charset/Charset/CharsetContainmentTest.java create mode 100644 jdk/test/java/nio/charset/Charset/Contains.java create mode 100644 jdk/test/java/nio/charset/Charset/Default.java create mode 100644 jdk/test/java/nio/charset/Charset/EmptyCharsetName.java create mode 100644 jdk/test/java/nio/charset/Charset/EncDec.java create mode 100644 jdk/test/java/nio/charset/Charset/IllegalCharsetName.java create mode 100644 jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java create mode 100644 jdk/test/java/nio/charset/Charset/NullCharsetName.java create mode 100644 jdk/test/java/nio/charset/Charset/RegisteredCharsets.java create mode 100644 jdk/test/java/nio/charset/Charset/default.sh create mode 100644 jdk/test/java/nio/charset/CharsetDecoder/AverageMax.java create mode 100644 jdk/test/java/nio/charset/CharsetDecoder/EmptyInput.java create mode 100644 jdk/test/java/nio/charset/CharsetEncoder/CanEncode.java create mode 100644 jdk/test/java/nio/charset/CharsetEncoder/Flush.java create mode 100644 jdk/test/java/nio/charset/RemovingSunIO/SunioAlias.java create mode 100644 jdk/test/java/nio/charset/RemovingSunIO/TestCOMP.java create mode 100644 jdk/test/java/nio/charset/RemovingSunIO/TestUnmappableForLength.java create mode 100644 jdk/test/java/nio/charset/coders/BashCache.java create mode 100644 jdk/test/java/nio/charset/coders/BashStreams.java create mode 100644 jdk/test/java/nio/charset/coders/Check.java create mode 100644 jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh create mode 100644 jdk/test/java/nio/charset/coders/Errors.java create mode 100644 jdk/test/java/nio/charset/coders/FullRead.java create mode 100644 jdk/test/java/nio/charset/coders/IOCoders.java create mode 100644 jdk/test/java/nio/charset/coders/IsLegalReplacement.java create mode 100644 jdk/test/java/nio/charset/coders/ResetISO2022JP.java create mode 100644 jdk/test/java/nio/charset/coders/SJISPropTest.java create mode 100644 jdk/test/java/nio/charset/coders/StreamTimeout.java create mode 100644 jdk/test/java/nio/charset/coders/Surrogate.java create mode 100644 jdk/test/java/nio/charset/coders/Surrogates.java create mode 100644 jdk/test/java/nio/charset/coders/Util.java create mode 100644 jdk/test/java/nio/charset/coders/ref.shift_jis create mode 100644 jdk/test/java/nio/charset/coders/ref.windows-31j create mode 100644 jdk/test/java/nio/charset/spi/FooCharset.java create mode 100644 jdk/test/java/nio/charset/spi/FooProvider.java create mode 100644 jdk/test/java/nio/charset/spi/Test.java create mode 100644 jdk/test/java/nio/charset/spi/basic.sh create mode 100644 jdk/test/java/nio/charset/spi/charsetProvider.sp create mode 100644 jdk/test/java/nio/charset/spi/default-pol diff --git a/jdk/test/java/nio/charset/Charset/AvailableCharsetNames.java b/jdk/test/java/nio/charset/Charset/AvailableCharsetNames.java new file mode 100644 index 00000000000..fb04b0e013d --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/AvailableCharsetNames.java @@ -0,0 +1,51 @@ +/* + * Copyright 2010 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 4422044 + * @summary Ensure that keys in available-charset map + * are identical to canonical names + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; +import java.util.*; + + +public class AvailableCharsetNames { + + public static void main(String[] args) throws Exception { + Iterator charsetIterator = Charset.availableCharsets().keySet().iterator(); + while (charsetIterator.hasNext()) { + String charsetName = (String) charsetIterator.next(); + Charset charset = Charset.forName(charsetName); + if (!charset.name().equals(charsetName)) { + throw new Exception("Error: Charset name mismatch - expected " + + charsetName + ", got " + charset.name()); + } + } + + } + +} diff --git a/jdk/test/java/nio/charset/Charset/CharsetContainmentTest.java b/jdk/test/java/nio/charset/Charset/CharsetContainmentTest.java new file mode 100644 index 00000000000..03dfbfcc146 --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/CharsetContainmentTest.java @@ -0,0 +1,115 @@ +/* + * Copyright 2010 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 4626545 4696726 + @summary Checks the inter containment relationships between NIO charsets + */ + +import java.nio.charset.*; + +public class CharsetContainmentTest { + static String[] encodings = + { "US-ASCII", "UTF-16", "UTF-16BE", "UTF-16LE", "UTF-8", + "windows-1252", "ISO-8859-1", "ISO-8859-15", "ISO-8859-2", + "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", + "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", + "ISO-2022-JP", "ISO-2022-KR", + + // Temporarily remove ISO-2022-CN-* charsets until full encoder/decoder + // support is added (4673614) + // "x-ISO-2022-CN-CNS", "x-ISO-2022-CN-GB", + + "x-ISCII91", "GBK", "GB18030", "Big5", + "x-EUC-TW", "GB2312", "EUC-KR", "x-Johab", "Big5-HKSCS", + "x-MS950-HKSCS", "windows-1251", "windows-1253", "windows-1254", + "windows-1255", "windows-1256", "windows-1257", "windows-1258", + "x-mswin-936", "x-windows-949", "x-windows-950", "windows-31j", + "Shift_JIS", "EUC-JP", "KOI8-R", "TIS-620" + }; + + static String[][] contains = { + { "US-ASCII"}, + encodings, + encodings, + encodings, + encodings, + {"US-ASCII", "windows-1252"}, + {"US-ASCII", "ISO-8859-1"}, + {"US-ASCII", "ISO-8859-15"}, + {"US-ASCII", "ISO-8859-2"}, + {"US-ASCII", "ISO-8859-3"}, + {"US-ASCII", "ISO-8859-4"}, + {"US-ASCII", "ISO-8859-5"}, + {"US-ASCII", "ISO-8859-6"}, + {"US-ASCII", "ISO-8859-7"}, + {"US-ASCII", "ISO-8859-8"}, + {"US-ASCII", "ISO-8859-9"}, + {"US-ASCII", "ISO-8859-13"}, + {"ISO-2022-JP"}, + {"ISO-2022-KR"}, + // Temporarily remove ISO-2022-CN-* charsets until full encoder/decoder + // support is added (4673614) + //{"x-ISO-2022-CN-CNS"}, + //{"x-ISO-2022-CN-GB"}, + {"US-ASCII", "x-ISCII91"}, + {"US-ASCII", "GBK"}, + encodings, + {"US-ASCII", "Big5"}, + {"US-ASCII", "x-EUC-TW"}, + {"US-ASCII", "GB2312"}, + {"US-ASCII", "EUC-KR"}, + {"US-ASCII", "x-Johab"}, + {"US-ASCII", "Big5-HKSCS", "Big5"}, + {"US-ASCII", "x-MS950-HKSCS", "x-windows-950"}, + {"US-ASCII", "windows-1251"}, + {"US-ASCII", "windows-1253"}, + {"US-ASCII", "windows-1254"}, + {"US-ASCII", "windows-1255"}, + {"US-ASCII", "windows-1256"}, + {"US-ASCII", "windows-1257"}, + {"US-ASCII", "windows-1258"}, + {"US-ASCII", "x-mswin-936"}, + {"US-ASCII", "x-windows-949"}, + {"US-ASCII", "x-windows-950"}, + {"US-ASCII", "windows-31j" }, + {"US-ASCII", "Shift_JIS"}, + {"US-ASCII", "EUC-JP"}, + {"US-ASCII", "KOI8-R"}, + {"US-ASCII", "TIS-620"}}; + + + public static void main(String[] args) throws Exception { + for (int i = 0; i < encodings.length; i++) { + Charset c = Charset.forName(encodings[i]); + for (int j = 0 ; j < contains[i].length; j++) { + if (c.contains(Charset.forName(contains[i][j]))) + continue; + else { + throw new Exception ("Error: charset " + encodings[i] + + "doesn't contain " + contains[i][j]); + } + } + } + } +} diff --git a/jdk/test/java/nio/charset/Charset/Contains.java b/jdk/test/java/nio/charset/Charset/Contains.java new file mode 100644 index 00000000000..277446cbe66 --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/Contains.java @@ -0,0 +1,166 @@ +/* + * Copyright 2010 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 + * @summary Unit test for charset containment + * @bug 6798572 + */ + +import java.nio.charset.*; + + +public class Contains { + + static void ck(Charset cs1, Charset cs2, boolean cont) throws Exception { + if ((cs1.contains(cs2)) != cont) + throw new Exception("Wrong answer: " + + cs1.name() + " contains " + cs2.name()); + System.err.println(cs1.name() + + (cont ? " contains " : " does not contain ") + + cs2.name()); + } + + public static void main(String[] args) throws Exception { + + Charset us_ascii = Charset.forName("US-ASCII"); + Charset iso_8859_1 = Charset.forName("ISO-8859-1"); + Charset iso_8859_15 = Charset.forName("ISO-8859-15"); + Charset utf_8 = Charset.forName("UTF-8"); + Charset utf_16be = Charset.forName("UTF-16BE"); + Charset cp1252 = Charset.forName("CP1252"); + + ck(us_ascii, us_ascii, true); + ck(us_ascii, iso_8859_1, false); + ck(us_ascii, iso_8859_15, false); + ck(us_ascii, utf_8, false); + ck(us_ascii, utf_16be, false); + ck(us_ascii, cp1252, false); + + ck(iso_8859_1, us_ascii, true); + ck(iso_8859_1, iso_8859_1, true); + ck(iso_8859_1, iso_8859_15, false); + ck(iso_8859_1, utf_8, false); + ck(iso_8859_1, utf_16be, false); + ck(iso_8859_1, cp1252, false); + + ck(iso_8859_15, us_ascii, true); + ck(iso_8859_15, iso_8859_1, false); + ck(iso_8859_15, iso_8859_15, true); + ck(iso_8859_15, utf_8, false); + ck(iso_8859_15, utf_16be, false); + ck(iso_8859_15, cp1252, false); + + ck(utf_8, us_ascii, true); + ck(utf_8, iso_8859_1, true); + ck(utf_8, iso_8859_15, true); + ck(utf_8, utf_8, true); + ck(utf_8, utf_16be, true); + ck(utf_8, cp1252, true); + + ck(utf_16be, us_ascii, true); + ck(utf_16be, iso_8859_1, true); + ck(utf_16be, iso_8859_15, true); + ck(utf_16be, utf_8, true); + ck(utf_16be, utf_16be, true); + ck(utf_16be, cp1252, true); + + ck(cp1252, us_ascii, true); + ck(cp1252, iso_8859_1, false); + ck(cp1252, iso_8859_15, false); + ck(cp1252, utf_8, false); + ck(cp1252, utf_16be, false); + ck(cp1252, cp1252, true); + + checkUTF(); + } + + static void checkUTF() throws Exception { + for (String utfName : utfNames) + for (String csName : charsetNames) + ck(Charset.forName(utfName), + Charset.forName(csName), + true); + } + + static String[] utfNames = {"utf-16", + "utf-8", + "utf-16le", + "utf-16be", + "x-utf-16le-bom"}; + + static String[] charsetNames = { + "US-ASCII", + "UTF-8", + "UTF-16", + "UTF-16BE", + "UTF-16LE", + "x-UTF-16LE-BOM", + "GBK", + "GB18030", + "ISO-8859-1", + "ISO-8859-15", + "ISO-8859-2", + "ISO-8859-3", + "ISO-8859-4", + "ISO-8859-5", + "ISO-8859-6", + "ISO-8859-7", + "ISO-8859-8", + "ISO-8859-9", + "ISO-8859-13", + "JIS_X0201", + "x-JIS0208", + "JIS_X0212-1990", + "GB2312", + "EUC-KR", + "x-EUC-TW", + "EUC-JP", + "x-euc-jp-linux", + "KOI8-R", + "TIS-620", + "x-ISCII91", + "windows-1251", + "windows-1252", + "windows-1253", + "windows-1254", + "windows-1255", + "windows-1256", + "windows-1257", + "windows-1258", + "windows-932", + "x-mswin-936", + "x-windows-949", + "x-windows-950", + "windows-31j", + "Big5", + "Big5-HKSCS", + "x-MS950-HKSCS", + "ISO-2022-JP", + "ISO-2022-KR", + "x-ISO-2022-CN-CNS", + "x-ISO-2022-CN-GB", + "Big5-HKSCS", + "x-Johab", + "Shift_JIS" + }; +} diff --git a/jdk/test/java/nio/charset/Charset/Default.java b/jdk/test/java/nio/charset/Charset/Default.java new file mode 100644 index 00000000000..60069003b9c --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/Default.java @@ -0,0 +1,36 @@ +/* + * Copyright 2010 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.nio.charset.*; + + +public class Default { + + public static void main(String[] args) { + System.out.println(Charset.defaultCharset()); + } + +} diff --git a/jdk/test/java/nio/charset/Charset/EmptyCharsetName.java b/jdk/test/java/nio/charset/Charset/EmptyCharsetName.java new file mode 100644 index 00000000000..0160277a2da --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/EmptyCharsetName.java @@ -0,0 +1,102 @@ +/* + * Copyright 2010 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 4786884 + * @summary Ensure that passing the empty string to Charset methods and + * constructors causes an IllegalArgumentException to be thrown + * + * @build EmptyCharsetName + * @run main EmptyCharsetName + * @run main/othervm -Dsun.nio.cs.bugLevel=1.4 EmptyCharsetName + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; + + +public class EmptyCharsetName { + + static boolean compat; + + static abstract class Test { + + public abstract void go() throws Exception; + + Test() throws Exception { + try { + go(); + } catch (Exception x) { + if (compat) { + if (x instanceof UnsupportedCharsetException) { + System.err.println("Thrown as expected: " + x); + return; + } + throw new Exception("Exception thrown", x); + } + if (x instanceof IllegalCharsetNameException) { + System.err.println("Thrown as expected: " + x); + return; + } + throw new Exception("Incorrect exception: " + + x.getClass().getName(), + x); + } + if (!compat) + throw new Exception("No exception thrown"); + } + + } + + public static void main(String[] args) throws Exception { + + // If sun.nio.cs.bugLevel == 1.4 then we want the 1.4 behavior + String bl = System.getProperty("sun.nio.cs.bugLevel"); + compat = (bl != null && bl.equals("1.4")); + + new Test() { + public void go() throws Exception { + Charset.forName(""); + }}; + new Test() { + public void go() throws Exception { + Charset.isSupported(""); + }}; + new Test() { + public void go() throws Exception { + new Charset("", new String[] { }) { + public CharsetDecoder newDecoder() { + return null; + } + public CharsetEncoder newEncoder() { + return null; + } + public boolean contains(Charset cs) { + return false; + } + }; + }}; + } + +} diff --git a/jdk/test/java/nio/charset/Charset/EncDec.java b/jdk/test/java/nio/charset/Charset/EncDec.java new file mode 100644 index 00000000000..63ace001710 --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/EncDec.java @@ -0,0 +1,45 @@ +/* + * Copyright 2010 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 + * @summary Unit test for encode/decode convenience methods + */ + + +import java.nio.*; +import java.nio.charset.*; + + +public class EncDec { + + public static void main(String[] args) throws Exception { + String s = "Hello, world!"; + ByteBuffer bb = ByteBuffer.allocate(100); + bb.put(Charset.forName("ISO-8859-15").encode(s)).flip(); + String t = Charset.forName("UTF-8").decode(bb).toString(); + System.err.println(t); + if (!t.equals(s)) + throw new Exception("Mismatch: " + s + " != " + t); + } + +} diff --git a/jdk/test/java/nio/charset/Charset/IllegalCharsetName.java b/jdk/test/java/nio/charset/Charset/IllegalCharsetName.java new file mode 100644 index 00000000000..bb8d4270405 --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/IllegalCharsetName.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 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 6330020 + * @summary Ensure Charset.forName/isSupport throws the correct exception + * if the charset names passed in are illegal. + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; +import java.util.*; + +public class IllegalCharsetName { + public static void main(String[] args) throws Exception { + String[] illegalNames = { + ".", + "_", + ":", + "-", + ".name", + "_name", + ":name", + "-name", + "name*name", + "name?name" + }; + for (int i = 0; i < illegalNames.length; i++) { + try { + Charset.forName(illegalNames[i]); + throw new Exception("Charset.forName(): No exception thrown"); + } catch (IllegalCharsetNameException x) { //expected + } + + try { + Charset.isSupported(illegalNames[i]); + throw new Exception("Charset.isSupported(): No exception thrown"); + } catch (IllegalCharsetNameException x) { //expected + } + } + } +} diff --git a/jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java b/jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java new file mode 100644 index 00000000000..4b5d576423c --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java @@ -0,0 +1,229 @@ +/* + * Copyright 2010 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 4777124 6920545 + * @summary Verify that all Charset subclasses are available through the API + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLClassLoader; +import java.nio.charset.Charset; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.Vector; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; +import sun.misc.Launcher; + + +public class NIOCharsetAvailabilityTest { + + public static void main(String[] args) throws Exception { + // build the set of all Charset subclasses in the + // two known charset implementation packages + Set charsets = new HashSet(); + addCharsets(charsets, "sun.nio.cs"); + addCharsets(charsets, "sun.nio.cs.ext"); + + // remove the charsets that the API says are available + Collection availableCharsets = Charset.availableCharsets().values(); + Iterator iter = availableCharsets.iterator(); + while (iter.hasNext()) { + charsets.remove(((Charset) iter.next()).getClass()); + } + + // remove the known pseudo-charsets that serve only to implement + // other charsets, but shouldn't be known to the public + charsets.remove(Class.forName("sun.nio.cs.Unicode")); + charsets.remove(Class.forName("sun.nio.cs.ext.HKSCS")); + charsets.remove(Class.forName("sun.nio.cs.ext.HKSCS_2001")); + charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022")); + charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022_CN_GB")); + charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022_CN_CNS")); + + // report the charsets that are implemented but not available + iter = charsets.iterator(); + while (iter.hasNext()) { + System.out.println("Unused Charset subclass: " + ((Class) iter.next()).getName()); + } + if (charsets.size() > 0) { + throw new RuntimeException(); + } + } + + private static Vector classPathSegments = new Vector(); + + private static void addCharsets(Set charsets, final String packageName) + throws Exception { + + String classPath = + (String) java.security.AccessController.doPrivileged( + new sun.security.action.GetPropertyAction("sun.boot.class.path")); + String s = + (String) java.security.AccessController.doPrivileged( + new sun.security.action.GetPropertyAction("java.class.path")); + + // Search combined system and application class path + if (s != null && s.length() != 0) { + classPath += File.pathSeparator + s; + } + while (classPath != null && classPath.length() != 0) { + int i = classPath.lastIndexOf(java.io.File.pathSeparatorChar); + String dir = classPath.substring(i + 1); + if (i == -1) { + classPath = null; + } else { + classPath = classPath.substring(0, i); + } + classPathSegments.insertElementAt(dir, 0); + } + + // add extensions from the extension class loader + ClassLoader appLoader = Launcher.getLauncher().getClassLoader(); + URLClassLoader extLoader = (URLClassLoader) appLoader.getParent(); + URL[] urls = extLoader.getURLs(); + for (int i = 0; i < urls.length; i++) { + try { + URI uri = new URI(urls[i].toString()); + classPathSegments.insertElementAt(uri.getPath(), 0); + } catch (URISyntaxException e) { + } + } + + String[] classList = (String[]) + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Object run() { + return getClassList(packageName, ""); + } + }); + + for (int i = 0; i < classList.length; i++) { + try { + Class clazz = Class.forName(packageName + "." + classList[i]); + Class superclazz = clazz.getSuperclass(); + while (superclazz != null && !superclazz.equals(Object.class)) { + if (superclazz.equals(Charset.class)) { + charsets.add(clazz); + break; + } else { + superclazz = superclazz.getSuperclass(); + } + } + } catch (ClassNotFoundException e) { + } + } + } + + private static final char ZIPSEPARATOR = '/'; + + /** + * Walk through CLASSPATH and find class list from a package. + * The class names start with prefix string + * @param package name, class name prefix + * @return class list in an array of String + */ + private static String[] getClassList(String pkgName, String prefix) { + Vector listBuffer = new Vector(); + String packagePath = pkgName.replace('.', File.separatorChar) + + File.separatorChar; + String zipPackagePath = pkgName.replace('.', ZIPSEPARATOR) + + ZIPSEPARATOR; + for (int i = 0; i < classPathSegments.size(); i++){ + String onePath = (String) classPathSegments.elementAt(i); + File f = new File(onePath); + if (!f.exists()) + continue; + if (f.isFile()) + scanFile(f, zipPackagePath, listBuffer, prefix); + else if (f.isDirectory()) { + String fullPath; + if (onePath.endsWith(File.separator)) + fullPath = onePath + packagePath; + else + fullPath = onePath + File.separatorChar + packagePath; + File dir = new File(fullPath); + if (dir.exists() && dir.isDirectory()) + scanDir(dir, listBuffer, prefix); + } + } + String[] classNames = new String[listBuffer.size()]; + listBuffer.copyInto(classNames); + return classNames; + } + + private static void addClass (String className, Vector listBuffer, String prefix) { + if (className != null && className.startsWith(prefix) + && !listBuffer.contains(className)) + listBuffer.addElement(className); + } + + private static String midString(String str, String pre, String suf) { + String midStr; + if (str.startsWith(pre) && str.endsWith(suf)) + midStr = str.substring(pre.length(), str.length() - suf.length()); + else + midStr = null; + return midStr; + } + + private static void scanDir(File dir, Vector listBuffer, String prefix) { + String[] fileList = dir.list(); + for (int i = 0; i < fileList.length; i++) { + addClass(midString(fileList[i], "", ".class"), listBuffer, prefix); + } + } + + private static void scanFile(File f, String packagePath, Vector listBuffer, + String prefix) { + try { + ZipInputStream zipFile = new ZipInputStream(new FileInputStream(f)); + ZipEntry entry; + while ((entry = zipFile.getNextEntry()) != null) { + String eName = entry.getName(); + if (eName.startsWith(packagePath)) { + if (eName.endsWith(".class")) { + addClass(midString(eName, packagePath, ".class"), + listBuffer, prefix); + } + } + } + } catch (FileNotFoundException e) { + System.out.println("file not found:" + e); + } catch (IOException e) { + System.out.println("file IO Exception:" + e); + } catch (Exception e) { + System.out.println("Exception:" + e); + } + } +} diff --git a/jdk/test/java/nio/charset/Charset/NullCharsetName.java b/jdk/test/java/nio/charset/Charset/NullCharsetName.java new file mode 100644 index 00000000000..e21cf92b162 --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/NullCharsetName.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 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 4448594 + * @summary Ensure passing null to Charset.forName throws the correct exception + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; +import java.util.*; + + +public class NullCharsetName { + + public static void main(String[] args) throws Exception { + try { + Charset.forName(null); + } catch (Exception x) { + if (x instanceof IllegalArgumentException) { + System.err.println("Thrown as expected: " + x); + return; + } + throw new Exception("Incorrect exception: " + + x.getClass().getName(), + x); + } + throw new Exception("No exception thrown"); + } + +} diff --git a/jdk/test/java/nio/charset/Charset/RegisteredCharsets.java b/jdk/test/java/nio/charset/Charset/RegisteredCharsets.java new file mode 100644 index 00000000000..39cbc390dad --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/RegisteredCharsets.java @@ -0,0 +1,1270 @@ +/* + * Copyright 2010 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 4473201 4696726 4652234 4482298 4784385 4966197 4267354 5015668 + * @summary Check that registered charsets are actually registered + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; +import java.util.*; + +public class RegisteredCharsets { + + static String [] ianaRegistered = { + "US-ASCII", "UTF8", "Big5", "EUC-JP", + "GBK", "GB18030", "ISO-2022-KR", "ISO-2022-JP", + "GB2312", // IANA preferred name for "EUC-CN" + "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", + "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", + "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", + "ISO-8859-13", "ISO-8859-15", "windows-1251", + "windows-1252", "windows-1253", "windows-1254", + "windows-1255", "windows-1256", "windows-31j", + "Shift_JIS", "JIS_X0201", "JIS_X0212-1990", + "TIS-620", "Big5-HKSCS", + "ISO-2022-CN", + "IBM850", + "IBM852", + "IBM855", + "IBM857", + "IBM860", + "IBM861", + "IBM862", + "IBM863", + "IBM864", + "IBM865", + "IBM866", + "IBM868", + "IBM869", + "IBM437", + "IBM775", + "IBM037", + "IBM1026", + "IBM273", + "IBM277", + "IBM278", + "IBM280", + "IBM284", + "IBM285", + "IBM297", + "IBM420", + "IBM424", + "IBM500", + "IBM-Thai", + "IBM870", + "IBM871", + "IBM918", + "IBM1047", + "IBM01140", + "IBM01141", + "IBM01142", + "IBM01143", + "IBM01144", + "IBM01145", + "IBM01146", + "IBM01147", + "IBM01148", + "IBM01149", + "IBM00858" }; + + static String [] ianaUnRegistered = { + "x-EUC-TW", "x-ISCII91", + "x-windows-949", "x-windows-950", + "x-mswin-936", "x-JIS0208", + "x-ISO-8859-11", + "x-windows-874", + "x-PCK", "x-JISAutoDetect", "x-Johab", + "x-MS950-HKSCS", + "x-Big5-Solaris", + "x-ISO-2022-CN-CNS", + "x-ISO-2022-CN-GB", + "x-MacArabic", + "x-MacCentralEurope", + "x-MacCroatian", + "x-MacCyrillic", + "x-MacDingbat", + "x-MacGreek", + "x-MacHebrew", + "x-MacIceland", + "x-MacRoman", + "x-MacRomania", + "x-MacSymbol", + "x-MacThai", + "x-MacTurkish", + "x-MacUkraine", + "x-IBM942", + "x-IBM942C", + "x-IBM943", + "x-IBM943C", + "x-IBM948", + "x-IBM950", + "x-IBM930", + "x-IBM935", + "x-IBM937", + "x-IBM856", + "x-IBM874", + "x-IBM737", + "x-IBM1006", + "x-IBM1046", + "x-IBM1098", + "x-IBM1025", + "x-IBM1112", + "x-IBM1122", + "x-IBM1123", + "x-IBM1124", + "x-IBM875", + "x-IBM921", + "x-IBM922", + "x-IBM1097", + "x-IBM949", + "x-IBM949C", + "x-IBM939", + "x-IBM933", + "x-IBM1381", + "x-IBM1383", + "x-IBM970", + "x-IBM964", + "x-IBM33722", + "x-IBM1006", + "x-IBM1046", + "x-IBM1097", + "x-IBM1098", + "x-IBM1112", + "x-IBM1122", + "x-IBM1123", + "x-IBM1124", + "x-IBM33722", + "x-IBM737", + "x-IBM856", + "x-IBM874", + "x-IBM875", + "x-IBM922", + "x-IBM933", + "x-IBM964" }; + + static void check(String csn, boolean testRegistered) throws Exception { + if (!Charset.forName(csn).isRegistered() && testRegistered) + throw new Exception("Not registered: " + csn); + else if (Charset.forName(csn).isRegistered() && !testRegistered) + throw new Exception("Registered: " + csn + "should be unregistered"); + } + + static void aliasCheck(String canonicalName, String[] aliasNames) throws Exception + { + for (int k = 0; k < aliasNames.length; k++ ) { + Charset cs = Charset.forName(aliasNames[k]); + if (!cs.name().equals(canonicalName)) { + throw new Exception("Unexpected Canonical name " + canonicalName); + } + } + } + + public static void main(String[] args) throws Exception { + + for (int i = 0; i < ianaRegistered.length ; i++) + check(ianaRegistered[i], true); + + for (int i = 0; i < ianaUnRegistered.length ; i++) + check(ianaUnRegistered[i], false); + + // Check aliases registered with IANA for all NIO supported + // Charset implementations. + // + // The aliases below are in sync with the IANA registered charset + // document at: http://www.iana.org/assignments/character-sets + // Last updated 7/25/2002 + + aliasCheck("US-ASCII", + new String[] {"ascii","ANSI_X3.4-1968", + "iso-ir-6","ANSI_X3.4-1986", "ISO_646.irv:1991", + "ASCII", "ISO646-US","us","IBM367","cp367", + "csASCII", "default"}); + + aliasCheck("UTF-8", + new String[] { + "UTF8", + "unicode-1-1-utf-8" + }); + + aliasCheck("UTF-16", + new String[] { + "UTF_16", + "utf16" + }); + + aliasCheck("UTF-16BE", + new String[] { + "UTF_16BE", + "ISO-10646-UCS-2", + "X-UTF-16BE", + "UnicodeBigUnmarked" + }); + + aliasCheck("UTF-16LE", + new String[] { + "UTF_16LE", + "X-UTF-16LE", + "UnicodeLittleUnmarked" + }); + + aliasCheck("Big5", + new String[] { + "csBig5" + }); + + aliasCheck("Big5-HKSCS", + new String[] { + "Big5_HKSCS", + "big5hk", + "big5-hkscs", + "big5-hkscs:unicode3.0", + "big5hkscs" + }); + + aliasCheck("x-MS950-HKSCS", + new String[] { + "MS950_HKSCS" + }); + + aliasCheck("GB18030", + new String[] { + "gb18030-2000" + }); + + aliasCheck("ISO-2022-KR", new String[] {"csISO2022KR"}); + aliasCheck("ISO-2022-JP", new String[] {"csISO2022JP"}); + aliasCheck("EUC-KR", new String[] { "csEUCKR"}); + aliasCheck("ISO-8859-1", + new String[] { + + // IANA aliases + "iso-ir-100", + "ISO_8859-1", + "latin1", + "l1", + "IBM819", + "cp819", + "csISOLatin1", + + // JDK historical aliases + "819", + "IBM-819", + "ISO8859_1", + "ISO_8859-1:1987", + "ISO_8859_1", + "8859_1", + "ISO8859-1", + + }); + + aliasCheck("ISO-8859-2", + new String[] { + "ISO_8859-2", + "ISO_8859-2:1987", + "iso-ir-101", + "latin2", + "l2", + "8859_2", + "iso_8859-2:1987", + "iso8859-2", + "ibm912", + "ibm-912", + "cp912", + "912", + "csISOLatin2"}); + + aliasCheck("ISO-8859-3", + new String[] {"latin3", + "ISO_8859-3:1988", + "iso-ir-109", + "l3", + "8859_3", + "iso_8859-3:1988", + "iso8859-3", + "ibm913", + "ibm-913", + "cp913", + "913", + "csISOLatin3"}); + + aliasCheck("ISO-8859-4", + new String[] {"csISOLatin4", + "ISO_8859-4:1988", + "iso-ir-110", + "latin4", + "8859_4", + "iso_8859-4:1988", + "iso8859-4", + "ibm914", + "ibm-914", + "cp914", + "914", + "l4"}); + + aliasCheck("ISO-8859-5", + new String[] { + "iso8859_5", // JDK historical + "8859_5", + "iso-ir-144", + "ISO_8859-5", + "ISO_8859-5:1988", + "ISO8859-5", + "cyrillic", + "ibm915", + "ibm-915", + "915", + "cp915", + "csISOLatinCyrillic" + }); + + aliasCheck("ISO-8859-6", + new String[] {"ISO_8859-6:1987", + "iso-ir-127", + "ISO_8859-6", + "ECMA-114", + "ASMO-708", + "arabic", + "8859_6", + "iso_8859-6:1987", + "iso8859-6", + "ibm1089", + "ibm-1089", + "cp1089", + "1089", + "csISOLatinArabic"}); + + aliasCheck("ISO-8859-7", + new String[] {"ISO_8859-7:1987", + "iso-ir-126", + "ISO_8859-7", + "ELOT_928", + "ECMA-118", + "greek", + "greek8", + "8859_7", + "iso_8859-7:1987", + "iso8859-7", + "ibm813", + "ibm-813", + "cp813", + "813", + "csISOLatinGreek"}); + + aliasCheck("ISO-8859-8", + new String[] { + "ISO_8859-8:1988", + "iso-ir-138", + "ISO_8859-8", + "hebrew", + "8859_8", + "iso_8859-8:1988", + "iso8859-8", + "ibm916", + "ibm-916", + "cp916", + "916", + "csISOLatinHebrew"}); + + aliasCheck("ISO-8859-9", + new String[] {"ISO_8859-9:1989", + "iso-ir-148", + "ISO_8859-9", + "latin5", + "l5", + "8859_9", + "iso8859-9", + "ibm920", + "ibm-920", + "cp920", + "920", + "csISOLatin5"}); + + aliasCheck("ISO-8859-13", + new String[] { + "iso8859_13", // JDK historical + "iso_8859-13", + "8859_13", + "ISO8859-13" + }); + + aliasCheck("ISO-8859-15", + new String[] { + // IANA alias + "ISO_8859-15", + // JDK historical aliases + "8859_15", + "ISO-8859-15", + "ISO_8859-15", + "ISO8859-15", + "ISO8859_15", + "IBM923", + "IBM-923", + "cp923", + "923", + "LATIN0", + "LATIN9", + "L9", + "csISOlatin0", + "csISOlatin9", + "ISO8859_15_FDIS" + + }); + + aliasCheck("JIS_X0212-1990", + new String[] { + "iso-ir-159", + "csISO159JISX02121990"}); + + aliasCheck("JIS_X0201", + new String[]{ + "X0201", + "csHalfWidthKatakana"}); + + aliasCheck("KOI8-R", + new String[] { + "KOI8_R", + "csKOI8R"}); + + aliasCheck("GBK", + new String[] { + "windows-936"}); + + aliasCheck("Shift_JIS", + new String[] { + "MS_Kanji", + "csShiftJIS"}); + + aliasCheck("EUC-JP", + new String[] { + "Extended_UNIX_Code_Packed_Format_for_Japanese", + "csEUCPkdFmtJapanese"}); + + aliasCheck("Big5", new String[] {"csBig5"}); + + aliasCheck("windows-31j", new String[] {"csWindows31J"}); + + aliasCheck("x-iso-8859-11", + new String[] { "iso-8859-11", "iso8859_11" }); + + aliasCheck("windows-1250", + new String[] { + "cp1250", + "cp5346" + }); + + aliasCheck("windows-1251", + new String[] { + "cp1251", + "cp5347", + "ansi-1251" + }); + + aliasCheck("windows-1252", + new String[] { + "cp1252", + "cp5348" + }); + + aliasCheck("windows-1253", + new String[] { + "cp1253", + "cp5349" + }); + + aliasCheck("windows-1254", + new String[] { + "cp1254", + "cp5350" + }); + + aliasCheck("windows-1255", + new String[] { + "cp1255" + }); + + aliasCheck("windows-1256", + new String[] { + "cp1256" + }); + + aliasCheck("windows-1257", + new String[] { + "cp1257", + "cp5353" + }); + + aliasCheck("windows-1258", + new String[] { + "cp1258" + }); + + aliasCheck("x-windows-874", + new String[] { + "ms874", "ms-874", "windows-874" }); + + aliasCheck("GB2312", + new String[] { + "x-EUC-CN", + "gb2312-80", + "gb2312-1980", + "euc-cn", + "euccn" }); + + aliasCheck("x-IBM942" , + new String[] { + "cp942", // JDK historical + "ibm942", + "ibm-942", + "942" + }); + + aliasCheck("x-IBM942C" , + new String[] { + "cp942C", // JDK historical + "ibm942C", + "ibm-942C", + "942C" + } ); + + aliasCheck("x-IBM943" , + new String[] { + "cp943", // JDK historical + "ibm943", + "ibm-943", + "943" + } ); + + aliasCheck("x-IBM943C" , + new String[] { + "cp943c", // JDK historical + "ibm943C", + "ibm-943C", + "943C" + } ); + + aliasCheck("x-IBM948" , + new String[] { + "cp948", // JDK historical + "ibm948", + "ibm-948", + "948" + } ); + + aliasCheck("x-IBM950" , + new String[] { + "cp950", // JDK historical + "ibm950", + "ibm-950", + "950" + } ); + + aliasCheck("x-IBM930" , + new String[] { + "cp930", // JDK historical + "ibm930", + "ibm-930", + "930" + } ); + + aliasCheck("x-IBM935" , + new String[] { + "cp935", // JDK historical + "ibm935", + "ibm-935", + "935" + } ); + + aliasCheck("x-IBM937" , + new String[] { + "cp937", // JDK historical + "ibm937", + "ibm-937", + "937" + } ); + + aliasCheck("IBM850" , + new String[] { + "cp850", // JDK historical + "ibm-850", + "ibm850", + "850", + "cspc850multilingual" + } ); + + aliasCheck("IBM852" , + new String[] { + "cp852", // JDK historical + "ibm852", + "ibm-852", + "852", + "csPCp852" + } ); + + aliasCheck("IBM855" , + new String[] { + "cp855", // JDK historical + "ibm-855", + "ibm855", + "855", + "cspcp855" + } ); + + aliasCheck("x-IBM856" , + new String[] { + "cp856", // JDK historical + "ibm-856", + "ibm856", + "856" + } ); + + aliasCheck("IBM857" , + new String[] { + "cp857", // JDK historical + "ibm857", + "ibm-857", + "857", + "csIBM857" + } ); + + aliasCheck("IBM860" , + new String[] { + "cp860", // JDK historical + "ibm860", + "ibm-860", + "860", + "csIBM860" + } ); + aliasCheck("IBM861" , + new String[] { + "cp861", // JDK historical + "ibm861", + "ibm-861", + "861", + "csIBM861" + } ); + + aliasCheck("IBM862" , + new String[] { + "cp862", // JDK historical + "ibm862", + "ibm-862", + "862", + "csIBM862" + } ); + + aliasCheck("IBM863" , + new String[] { + "cp863", // JDK historical + "ibm863", + "ibm-863", + "863", + "csIBM863" + } ); + + aliasCheck("IBM864" , + new String[] { + "cp864", // JDK historical + "ibm864", + "ibm-864", + "864", + "csIBM864" + } ); + + aliasCheck("IBM865" , + new String[] { + "cp865", // JDK historical + "ibm865", + "ibm-865", + "865", + "csIBM865" + } ); + + aliasCheck("IBM866" , new String[] { + "cp866", // JDK historical + "ibm866", + "ibm-866", + "866", + "csIBM866" + } ); + aliasCheck("IBM868" , + new String[] { + "cp868", // JDK historical + "ibm868", + "ibm-868", + "868", + "cp-ar", + "csIBM868" + } ); + + aliasCheck("IBM869" , + new String[] { + "cp869", // JDK historical + "ibm869", + "ibm-869", + "869", + "cp-gr", + "csIBM869" + } ); + + aliasCheck("IBM437" , + new String[] { + "cp437", // JDK historical + "ibm437", + "ibm-437", + "437", + "cspc8codepage437", + "windows-437" + } ); + + aliasCheck("x-IBM874" , + new String[] { + "cp874", // JDK historical + "ibm874", + "ibm-874", + "874" + } ); + aliasCheck("x-IBM737" , + new String[] { + "cp737", // JDK historical + "ibm737", + "ibm-737", + "737" + } ); + + aliasCheck("IBM775" , + new String[] { + "cp775", // JDK historical + "ibm775", + "ibm-775", + "775" + } ); + + aliasCheck("x-IBM921" , + new String[] { + "cp921", // JDK historical + "ibm921", + "ibm-921", + "921" + } ); + + aliasCheck("x-IBM1006" , + new String[] { + "cp1006", // JDK historical + "ibm1006", + "ibm-1006", + "1006" + } ); + + aliasCheck("x-IBM1046" , + new String[] { + "cp1046", // JDK historical + "ibm1046", + "ibm-1046", + "1046" + } ); + + aliasCheck("IBM1047" , + new String[] { + "cp1047", // JDK historical + "ibm-1047", + "1047" + } ); + + aliasCheck("x-IBM1098" , + new String[] { + "cp1098", // JDK historical + "ibm1098", + "ibm-1098", + "1098", + } ); + + aliasCheck("IBM037" , + new String[] { + "cp037", // JDK historical + "ibm037", + "csIBM037", + "cs-ebcdic-cp-us", + "cs-ebcdic-cp-ca", + "cs-ebcdic-cp-wt", + "cs-ebcdic-cp-nl", + "ibm-037", + "ibm-37", + "cpibm37", + "037" + } ); + + aliasCheck("x-IBM1025" , + new String[] { + "cp1025", // JDK historical + "ibm1025", + "ibm-1025", + "1025" + } ); + + aliasCheck("IBM1026" , + new String[] { + "cp1026", // JDK historical + "ibm1026", + "ibm-1026", + "1026" + } ); + + aliasCheck("x-IBM1112" , + new String[] { + "cp1112", // JDK historical + "ibm1112", + "ibm-1112", + "1112" + } ); + + aliasCheck("x-IBM1122" , + new String[] { + "cp1122", // JDK historical + "ibm1122", + "ibm-1122", + "1122" + } ); + + aliasCheck("x-IBM1123" , + new String[] { + "cp1123", // JDK historical + "ibm1123", + "ibm-1123", + "1123" + } ); + + aliasCheck("x-IBM1124" , + new String[] { + "cp1124", // JDK historical + "ibm1124", + "ibm-1124", + "1124" + } ); + + aliasCheck("IBM273" , + new String[] { + "cp273", // JDK historical + "ibm273", + "ibm-273", + "273" + } ); + + aliasCheck("IBM277" , + new String[] { + "cp277", // JDK historical + "ibm277", + "ibm-277", + "277" + } ); + + aliasCheck("IBM278" , + new String[] { + "cp278", // JDK historical + "ibm278", + "ibm-278", + "278", + "ebcdic-sv", + "ebcdic-cp-se", + "csIBM278" + } ); + + aliasCheck("IBM280" , + new String[] { + "cp280", // JDK historical + "ibm280", + "ibm-280", + "280" + } ); + + aliasCheck("IBM284" , + new String[] { + "cp284", // JDK historical + "ibm284", + "ibm-284", + "284", + "csIBM284", + "cpibm284" + } ); + + aliasCheck("IBM285" , + new String[] { + "cp285", // JDK historical + "ibm285", + "ibm-285", + "285", + "ebcdic-cp-gb", + "ebcdic-gb", + "csIBM285", + "cpibm285" + } ); + + aliasCheck("IBM297" , + new String[] { + "cp297", // JDK historical + "ibm297", + "ibm-297", + "297", + "ebcdic-cp-fr", + "cpibm297", + "csIBM297", + } ); + + aliasCheck("IBM420" , + new String[] { + "cp420", // JDK historical + "ibm420", + "ibm-420", + "ebcdic-cp-ar1", + "420", + "csIBM420" + } ); + + aliasCheck("IBM424" , + new String[] { + "cp424", // JDK historical + "ibm424", + "ibm-424", + "424", + "ebcdic-cp-he", + "csIBM424" + } ); + + aliasCheck("IBM500" , + new String[] { + "cp500", // JDK historical + "ibm500", + "ibm-500", + "500", + "ebcdic-cp-ch", + "ebcdic-cp-bh", + "csIBM500" + } ); + + aliasCheck("IBM-Thai" , + new String[] { + "cp838", // JDK historical + "ibm838", + "ibm-838", + "ibm838", + "838" + } ); + + aliasCheck("IBM870" , + new String[] { + "cp870", // JDK historical + "ibm870", + "ibm-870", + "870", + "ebcdic-cp-roece", + "ebcdic-cp-yu", + "csIBM870" + } ); + + aliasCheck("IBM871" , + new String[] { + "cp871", // JDK historical + "ibm871", + "ibm-871", + "871", + "ebcdic-cp-is", + "csIBM871" + } ); + + aliasCheck("x-IBM875" , + new String[] { + "cp875", // JDK historical + "ibm875", + "ibm-875", + "875" + } ); + + aliasCheck("IBM918" , + new String[] { + "cp918", // JDK historical + "ibm-918", + "918", + "ebcdic-cp-ar2" + } ); + + aliasCheck("x-IBM922" , + new String[] { + "cp922", // JDK historical + "ibm922", + "ibm-922", + "922" + } ); + + aliasCheck("x-IBM1097" , + new String[] { + "cp1097", // JDK historical + "ibm1097", + "ibm-1097", + "1097" + } ); + + aliasCheck("x-IBM949" , + new String[] { + "cp949", // JDK historical + "ibm949", + "ibm-949", + "949" + } ); + + aliasCheck("x-IBM949C" , + new String[] { + "cp949C", // JDK historical + "ibm949C", + "ibm-949C", + "949C" + } ); + + aliasCheck("x-IBM939" , + new String[] { + "cp939", // JDK historical + "ibm939", + "ibm-939", + "939" + } ); + + aliasCheck("x-IBM933" , + new String[] { + "cp933", // JDK historical + "ibm933", + "ibm-933", + "933" + } ); + + aliasCheck("x-IBM1381" , + new String[] { + "cp1381", // JDK historical + "ibm1381", + "ibm-1381", + "1381" + } ); + + aliasCheck("x-IBM1383" , + new String[] { + "cp1383", // JDK historical + "ibm1383", + "ibm-1383", + "1383" + } ); + + aliasCheck("x-IBM970" , + new String[] { + "cp970", // JDK historical + "ibm970", + "ibm-970", + "ibm-eucKR", + "970" + } ); + + aliasCheck("x-IBM964" , + new String[] { + "cp964", // JDK historical + "ibm964", + "ibm-964", + "964" + } ); + + aliasCheck("x-IBM33722" , + new String[] { + "cp33722", // JDK historical + "ibm33722", + "ibm-33722", + "ibm-5050", // from IBM alias list + "ibm-33722_vascii_vpua", // from IBM alias list + "33722" + } ); + + aliasCheck("IBM01140" , + new String[] { + "cp1140", // JDK historical + "ccsid01140", + "cp01140", + // "ebcdic-us-037+euro" + } ); + + aliasCheck("IBM01141" , + new String[] { + "cp1141", // JDK historical + "ccsid01141", + "cp01141", + // "ebcdic-de-273+euro" + } ); + + aliasCheck("IBM01142" , + new String[] { + "cp1142", // JDK historical + "ccsid01142", + "cp01142", + // "ebcdic-no-277+euro", + // "ebcdic-dk-277+euro" + } ); + + aliasCheck("IBM01143" , + new String[] { + "cp1143", // JDK historical + "ccsid01143", + "cp01143", + // "ebcdic-fi-278+euro", + // "ebcdic-se-278+euro" + } ); + + aliasCheck("IBM01144" , + new String[] { + "cp1144", // JDK historical + "ccsid01144", + "cp01144", + // "ebcdic-it-280+euro" + } ); + + aliasCheck("IBM01145" , + new String[] { + "cp1145", // JDK historical + "ccsid01145", + "cp01145", + // "ebcdic-es-284+euro" + } ); + + aliasCheck("IBM01146" , + new String[] { + "cp1146", // JDK historical + "ccsid01146", + "cp01146", + // "ebcdic-gb-285+euro" + } ); + + aliasCheck("IBM01147" , + new String[] { + "cp1147", // JDK historical + "ccsid01147", + "cp01147", + // "ebcdic-fr-277+euro" + } ); + + aliasCheck("IBM01148" , + new String[] { + "cp1148", // JDK historical + "ccsid01148", + "cp01148", + // "ebcdic-international-500+euro" + } ); + + aliasCheck("IBM01149" , + new String[] { + "cp1149", // JDK historical + "ccsid01149", + "cp01149", + // "ebcdic-s-871+euro" + } ); + + aliasCheck("IBM00858" , + new String[] { + "cp858", // JDK historical + "ccsid00858", + "cp00858", + // "PC-Multilingual-850+euro" + } ); + + aliasCheck("x-MacRoman", + new String[] { + "MacRoman" // JDK historical + }); + + aliasCheck("x-MacCentralEurope", + new String[] { + "MacCentralEurope" // JDK historical + }); + + aliasCheck("x-MacCroatian", + new String[] { + "MacCroatian" // JDK historical + }); + + + aliasCheck("x-MacCroatian", + new String[] { + "MacCroatian" // JDK historical + }); + + + aliasCheck("x-MacGreek", + new String[] { + "MacGreek" // JDK historical + }); + + aliasCheck("x-MacCyrillic", + new String[] { + "MacCyrillic" // JDK historical + }); + + aliasCheck("x-MacUkraine", + new String[] { + "MacUkraine" // JDK historical + }); + + aliasCheck("x-MacTurkish", + new String[] { + "MacTurkish" // JDK historical + }); + + aliasCheck("x-MacArabic", + new String[] { + "MacArabic" // JDK historical + }); + + aliasCheck("x-MacHebrew", + new String[] { + "MacHebrew" // JDK historical + }); + + aliasCheck("x-MacIceland", + new String[] { + "MacIceland" // JDK historical + }); + + aliasCheck("x-MacRomania", + new String[] { + "MacRomania" // JDK historical + }); + + aliasCheck("x-MacThai", + new String[] { + "MacThai" // JDK historical + }); + + aliasCheck("x-MacSymbol", + new String[] { + "MacSymbol" // JDK historical + }); + + aliasCheck("x-MacDingbat", + new String[] { + "MacDingbat" // JDK historical + }); + } +} diff --git a/jdk/test/java/nio/charset/Charset/default.sh b/jdk/test/java/nio/charset/Charset/default.sh new file mode 100644 index 00000000000..bf51d2ee5a5 --- /dev/null +++ b/jdk/test/java/nio/charset/Charset/default.sh @@ -0,0 +1,97 @@ +#!/bin/sh + +# +# Copyright 2010 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 4772857 +# @summary Unit test for Charset.defaultCharset +# +# @build Default +# @run shell default.sh +# + +# Command-line usage: sh default.sh [/path/to/build] + +if [ -z "$TESTJAVA" ]; then + if [ $# -lt 1 ]; then exit 1; fi + TESTJAVA=$1; shift + TESTSRC=`pwd` + TESTCLASSES=`pwd` +fi + +s="`uname -s`" +if [ "$s" != Linux -a "$s" != SunOS ]; then + echo "$s: locale command not supported on this system, skipping..." + exit 0 +fi + +JAVA=$TESTJAVA/bin/java + +tolower() { + echo "$1" | tr '[A-Z]' '[a-z]' +} + +go() { + + L="$1" + shift + if [ "x`locale -a | grep \^$L\$`" != "x$L" ]; then + echo "$L: Locale not supported, skipping..." + return + fi + + ecs="$1"; shift + + echo -n "$L: " + cs="`LC_ALL=$L $JAVA -cp $TESTCLASSES Default`" + if [ $? != 0 ]; then + exit 1 + elif [ "`tolower $cs`" != "`tolower $ecs`" ]; then + echo "$cs, expected $ecs -- ERROR" + exit 1 + else + echo "$cs, as expected" + fi + +} + +go en_US iso-8859-1 +go ja_JP.utf8 utf-8 +go tr_TR iso-8859-9 +go C us-ascii + +if [ "$s" = Linux ]; then + go ja_JP x-euc-jp-linux + go ja_JP.eucjp x-euc-jp-linux + go ja_JP.ujis x-euc-jp-linux + go ja_JP.utf8 utf-8 +fi + +# Solaris +if [ "$s" = SunOS ]; then + go ja x-eucjp-open + go ja_JP.eucJP x-eucjp-open + go ja_JP.PCK x-PCK + go ja_JP.UTF-8 utf-8 +fi diff --git a/jdk/test/java/nio/charset/CharsetDecoder/AverageMax.java b/jdk/test/java/nio/charset/CharsetDecoder/AverageMax.java new file mode 100644 index 00000000000..78ed606469a --- /dev/null +++ b/jdk/test/java/nio/charset/CharsetDecoder/AverageMax.java @@ -0,0 +1,96 @@ +/* + * Copyright 2010 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 4853350 + * @summary Ensure that averages do not exceed maxima + * + * @build AverageMax + * @run main AverageMax + * @run main/othervm -Dsun.nio.cs.bugLevel=1.4 AverageMax + */ + +import java.nio.*; +import java.nio.charset.*; + + +public class AverageMax { + + static boolean compat; + + static abstract class Test { + + public abstract void go() throws Exception; + + Test() throws Exception { + try { + go(); + } catch (Exception x) { + if (compat) { + throw new Exception("Exception thrown", x); + } + if (x instanceof IllegalArgumentException) { + System.err.println("Thrown as expected: " + x); + return; + } + throw new Exception("Incorrect exception: " + + x.getClass().getName(), + x); + } + if (!compat) + throw new Exception("No exception thrown"); + } + + } + + public static void main(String[] args) throws Exception { + + // If sun.nio.cs.bugLevel == 1.4 then we want the 1.4 behavior + String bl = System.getProperty("sun.nio.cs.bugLevel"); + compat = (bl != null && bl.equals("1.4")); + final Charset ascii = Charset.forName("US-ASCII"); + + new Test() { + public void go() throws Exception { + new CharsetDecoder(ascii, 3.9f, 1.2f) { + protected CoderResult decodeLoop(ByteBuffer in, + CharBuffer out) + { + return null; + } + }; + }}; + + new Test() { + public void go() throws Exception { + new CharsetEncoder(ascii, 3.9f, 1.2f) { + protected CoderResult encodeLoop(CharBuffer in, + ByteBuffer out) + { + return null; + } + }; + }}; + } + +} diff --git a/jdk/test/java/nio/charset/CharsetDecoder/EmptyInput.java b/jdk/test/java/nio/charset/CharsetDecoder/EmptyInput.java new file mode 100644 index 00000000000..dcf694756a7 --- /dev/null +++ b/jdk/test/java/nio/charset/CharsetDecoder/EmptyInput.java @@ -0,0 +1,48 @@ +/* + * Copyright 2010 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 4400697 + * @summary Ensure that CharsetDecoder.decode throws BUE on empty input + */ + +import java.nio.*; +import java.nio.charset.*; + + +public class EmptyInput { + + public static void main(String[] args) throws Exception { + ByteBuffer bb = ByteBuffer.allocate(10); + bb.flip(); + CharsetDecoder cd = Charset.forName("US-ASCII").newDecoder(); + try { + cd.decode(bb, CharBuffer.allocate(10), true).throwException(); + } catch (BufferUnderflowException x) { + System.err.println("BufferUnderflowException thrown as expected"); + return; + } + throw new Exception("BufferUnderflowException not thrown"); + } + +} diff --git a/jdk/test/java/nio/charset/CharsetEncoder/CanEncode.java b/jdk/test/java/nio/charset/CharsetEncoder/CanEncode.java new file mode 100644 index 00000000000..fc8ad14f9f7 --- /dev/null +++ b/jdk/test/java/nio/charset/CharsetEncoder/CanEncode.java @@ -0,0 +1,95 @@ +/* + * Copyright 2010 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 4821213 + * @summary Unit test for CharsetEncoder.canEncode methods + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; + + +public class CanEncode { + + private static int errors = 0; + private static PrintStream out = System.err; + + private static void wrong(CharsetEncoder ce, boolean can, String what) { + out.println(ce.charset().name() + + ": Wrong answer for " + what + + ": " + !can); + errors++; + } + + private static void ck(CharsetEncoder ce, char c, boolean can) + throws Exception + { + if (ce.canEncode(c) != can) + wrong(ce, can, + ("'" + c + "' (0x" + + Integer.toHexString(c & 0xffff) + ")")); + } + + private static void ck(CharsetEncoder ce, String s, boolean can) + throws Exception + { + if (ce.canEncode(CharBuffer.wrap(s.toCharArray())) != can) + wrong(ce, can, "array \"" + s + "\""); + if (ce.canEncode(CharBuffer.wrap(s)) != can) + wrong(ce, can, "buffer \"" + s + "\""); + } + + private static void test(String csn) throws Exception { + + Charset cs = Charset.forName(csn); + CharsetEncoder ce = cs.newEncoder(); + + if (cs.name().equals("US-ASCII")) { + ck(ce, 'x', true); + ck(ce, '\u00B6', false); + ck(ce, "x", true); + ck(ce, "\u00B6", false); + ck(ce, "xyzzy", true); + ck(ce, "xy\u00B6", false); + } + + // Unpaired surrogates should never be encodable + ck(ce, '\ud800', false); + ck(ce, '\ud801', false); + ck(ce, '\udffe', false); + ck(ce, '\udfff', false); + ck(ce, "\ud800", false); + ck(ce, "\ud801", false); + ck(ce, "\udffe", false); + ck(ce, "\udfff", false); + + } + + public static void main(String[] args) throws Exception { + test("US-ASCII"); + test("UTF-8"); + } + +} diff --git a/jdk/test/java/nio/charset/CharsetEncoder/Flush.java b/jdk/test/java/nio/charset/CharsetEncoder/Flush.java new file mode 100644 index 00000000000..4f510553274 --- /dev/null +++ b/jdk/test/java/nio/charset/CharsetEncoder/Flush.java @@ -0,0 +1,113 @@ +/* + * Copyright 2010 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 6227608 + * @summary Test proper handling of flush() + * @author Martin Buchholz + */ + +import java.util.*; +import java.io.*; +import java.nio.*; +import java.nio.charset.*; + +public class Flush { + private static byte[] contents(ByteBuffer bb) { + byte[] contents = new byte[bb.position()]; + ((ByteBuffer)(bb.duplicate().flip())).get(contents); + return contents; + } + + private static ByteBuffer extend(ByteBuffer bb) { + ByteBuffer x = ByteBuffer.allocate(2*bb.capacity()+10); + bb.flip(); + x.put(bb); + return x; + } + + private static void realMain(String[] args) throws Throwable { + // A japanese character should decode as a 3-byte + // switch-to-japanese escape sequence, followed by a 2-byte + // encoding of the char itself, followed by a 3-byte return to + // ASCII escape sequence. + char[] jis0208 = {'\u3001'}; + CharBuffer cb = CharBuffer.wrap(jis0208); + ByteBuffer bb = ByteBuffer.allocate(6); + CharsetEncoder enc = Charset.forName("ISO-2022-JP").newEncoder(); + + check(enc.encode(cb, bb, true).isUnderflow()); + + System.out.println(Arrays.toString(contents(bb))); + check(! cb.hasRemaining()); + equal(contents(bb).length, 3 + 2); + equal(bb.get(0), (byte)0x1b); + + //---------------------------------------------------------------- + // We must be able to recover if flush() returns OVERFLOW + //---------------------------------------------------------------- + check(enc.flush(bb).isOverflow()); + check(enc.flush(bb).isOverflow()); + equal(contents(bb).length, 3 + 2); + + bb = extend(bb); + + check(enc.flush(bb).isUnderflow()); + equal(bb.get(3 + 2), (byte)0x1b); + System.out.println(Arrays.toString(contents(bb))); + equal(contents(bb).length, 3 + 2 + 3); + + //---------------------------------------------------------------- + // A final redundant flush() is a no-op + //---------------------------------------------------------------- + check(enc.flush(bb).isUnderflow()); + check(enc.flush(bb).isUnderflow()); + equal(contents(bb).length, 3 + 2 + 3); + + //---------------------------------------------------------------- + // CharsetEncoder.encode(ByteBuffer) must call flush(ByteBuffer) + //---------------------------------------------------------------- + bb = enc.encode(CharBuffer.wrap(jis0208)); + byte[] expected = "\u001b$B!\"\u001b(B".getBytes("ASCII"); + byte[] contents = new byte[bb.limit()]; bb.get(contents); + check(Arrays.equals(contents, expected)); + } + + //--------------------- Infrastructure --------------------------- + static volatile int passed = 0, failed = 0; + static void pass() { passed++; } + static void fail() { failed++; Thread.dumpStack(); } + static void fail(String msg) { System.out.println(msg); fail(); } + static void unexpected(Throwable t) { failed++; t.printStackTrace(); } + static void check(boolean cond) { if (cond) pass(); else fail(); } + static void equal(Object x, Object y) { + if (x == null ? y == null : x.equals(y)) pass(); + else {System.out.println(x + " not equal to " + y); fail(); }} + + public static void main(String[] args) throws Throwable { + try { realMain(args); } catch (Throwable t) { unexpected(t); } + + System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); + if (failed > 0) throw new Exception("Some tests failed"); + } +} diff --git a/jdk/test/java/nio/charset/RemovingSunIO/SunioAlias.java b/jdk/test/java/nio/charset/RemovingSunIO/SunioAlias.java new file mode 100644 index 00000000000..08838d1dc22 --- /dev/null +++ b/jdk/test/java/nio/charset/RemovingSunIO/SunioAlias.java @@ -0,0 +1,823 @@ +/* + * Copyright 2010 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 4454622 + @summary Check if all supported sun.io encoding names are supported in nio.charset + */ + +import java.util.HashMap; +import java.util.Set; +import java.io.UnsupportedEncodingException; +import java.nio.charset.*; + +public class SunioAlias { + public static void main(String argv[]) throws UnsupportedEncodingException { + Set keys = aliasTable.keySet(); + String s = "testing string"; + boolean failed = false; + for (String alias : keys) { + /* See if StringCoding works correctly without sun.io package */ + try { + byte[] bs= s.getBytes(alias); + new String(bs, alias); + + Charset csAlias = Charset.forName(alias); + Charset csName = Charset.forName(aliasTable.get(alias)); + if (csName != csAlias) { + System.out.printf("Alias %s and %s is NOT the same charset in nio\n", + alias, aliasTable.get(alias)); + } + } catch (UnsupportedEncodingException e) { + System.out.printf("Alias %s is UnsupportedEncoding\n", alias); + failed = true; + } catch (IllegalCharsetNameException e) { + System.out.printf("Alias %s is IllegalCharsetName\n", alias); + failed = true; + } + } + if (failed) + throw new UnsupportedEncodingException ("sun.io encoding names are not supported in nio.charset!"); + } + //aliasTable is copy/pasted from sun.io.CharacterEncoding.java + + private static HashMap aliasTable; + static { + aliasTable = new HashMap(460, 1.0f); + + /* known failed names... TBD + // JIS-defined Shift JIS + aliasTable.put("\u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe", + "SJIS"); + // Specialized auto-detection for Japanese charsets + aliasTable.put("jis auto detect", "JISAutoDetect"); + // MIBenum: 1010 + aliasTable.put("unicode-1-1", "UnicodeBigUnmarked"); + */ + aliasTable.put("unicode", "UTF-16"); + aliasTable.put("cspc862latinhebrew", "Cp862"); + aliasTable.put("cp-is", "Cp861"); + /* + // X11 Compound Text + aliasTable.put("x-compound-text", "COMPOUND_TEXT"); + aliasTable.put("x11-compound_text", "COMPOUND_TEXT"); + */ + aliasTable.put("us-ascii", "ASCII"); + aliasTable.put("ascii", "ASCII"); + aliasTable.put("646", "ASCII"); // Solaris POSIX locale + aliasTable.put("iso_646.irv:1983", "ASCII"); // Linux POSIX locale + aliasTable.put("ansi_x3.4-1968", "ASCII"); // Caldera linux + aliasTable.put("iso646-us", "ASCII"); + aliasTable.put("default", "ASCII"); // compatibility with obsolete "Default" converters + aliasTable.put("ascii7", "ASCII"); // compatibility with obsolete "Default" converters + + // Core encodings + aliasTable.put("8859_1", "ISO8859_1"); + aliasTable.put("iso8859_1", "ISO8859_1"); + aliasTable.put("utf-8", "UTF8"); + aliasTable.put("utf8", "UTF8"); + aliasTable.put("utf-16le", "UnicodeLittleUnmarked"); + + // Standard encodings used on Solaris and Linux + aliasTable.put("iso8859-1", "ISO8859_1"); + aliasTable.put("iso8859-2", "ISO8859_2"); + aliasTable.put("iso8859-4", "ISO8859_4"); + aliasTable.put("iso8859-5", "ISO8859_5"); + aliasTable.put("iso8859-6", "ISO8859_6"); + aliasTable.put("iso8859-8", "ISO8859_8"); + aliasTable.put("iso8859-9", "ISO8859_9"); + aliasTable.put("iso8859-13", "ISO8859_13"); + aliasTable.put("iso8859-15", "ISO8859_15"); + aliasTable.put("5601", "EUC_KR"); + aliasTable.put("ansi-1251", "Cp1251"); + aliasTable.put("big5", "Big5"); + aliasTable.put("big5hk", "Big5_HKSCS"); + aliasTable.put("eucjp", "EUC_JP"); + aliasTable.put("cns11643", "EUC_TW"); + aliasTable.put("gb2312", "EUC_CN"); + aliasTable.put("gb18030", "GB18030"); + aliasTable.put("gbk", "GBK"); + aliasTable.put("koi8-r", "KOI8_R"); + aliasTable.put("tis620.2533", "TIS620"); + + // Windows encodings + aliasTable.put("cp1250", "Cp1250"); + aliasTable.put("cp1251", "Cp1251"); + aliasTable.put("cp1252", "Cp1252"); + aliasTable.put("cp1253", "Cp1253"); + aliasTable.put("cp1254", "Cp1254"); + aliasTable.put("cp1255", "Cp1255"); + aliasTable.put("cp1256", "Cp1256"); + aliasTable.put("cp1257", "Cp1257"); + aliasTable.put("cp1258", "Cp1258"); + aliasTable.put("ms874", "MS874"); + aliasTable.put("ms932", "MS932"); + aliasTable.put("ms949", "MS949"); + aliasTable.put("ms950", "MS950"); + aliasTable.put("ms1361", "MS1361"); + + // MIBenum: 4 + aliasTable.put("8859_1", "ISO8859_1"); + aliasTable.put("iso_8859-1:1987", "ISO8859_1"); + aliasTable.put("iso-ir-100", "ISO8859_1"); + aliasTable.put("iso_8859-1", "ISO8859_1"); + aliasTable.put("iso-8859-1", "ISO8859_1"); + aliasTable.put("iso8859-1", "ISO8859_1"); + aliasTable.put("latin1", "ISO8859_1"); + aliasTable.put("l1", "ISO8859_1"); + aliasTable.put("ibm819", "ISO8859_1"); + aliasTable.put("ibm-819", "ISO8859_1"); + aliasTable.put("cp819", "ISO8859_1"); + aliasTable.put("819", "ISO8859_1"); + aliasTable.put("csisolatin1", "ISO8859_1"); + + // MIBenum: 5 + aliasTable.put("8859_2", "ISO8859_2"); + aliasTable.put("iso_8859-2:1987", "ISO8859_2"); + aliasTable.put("iso-ir-101", "ISO8859_2"); + aliasTable.put("iso_8859-2", "ISO8859_2"); + aliasTable.put("iso-8859-2", "ISO8859_2"); + aliasTable.put("iso8859-2", "ISO8859_2"); + aliasTable.put("latin2", "ISO8859_2"); + aliasTable.put("l2", "ISO8859_2"); + aliasTable.put("ibm912", "ISO8859_2"); + aliasTable.put("ibm-912", "ISO8859_2"); + aliasTable.put("cp912", "ISO8859_2"); + aliasTable.put("912", "ISO8859_2"); + aliasTable.put("csisolatin2", "ISO8859_2"); + + // MIBenum: 6 + aliasTable.put("8859_3", "ISO8859_3"); + aliasTable.put("iso_8859-3:1988", "ISO8859_3"); + aliasTable.put("iso-ir-109", "ISO8859_3"); + aliasTable.put("iso_8859-3", "ISO8859_3"); + aliasTable.put("iso-8859-3", "ISO8859_3"); + aliasTable.put("iso8859-3", "ISO8859_3"); + aliasTable.put("latin3", "ISO8859_3"); + aliasTable.put("l3", "ISO8859_3"); + aliasTable.put("ibm913", "ISO8859_3"); + aliasTable.put("ibm-913", "ISO8859_3"); + aliasTable.put("cp913", "ISO8859_3"); + aliasTable.put("913", "ISO8859_3"); + aliasTable.put("csisolatin3", "ISO8859_3"); + + // MIBenum: 7 + aliasTable.put("8859_4", "ISO8859_4"); + aliasTable.put("iso_8859-4:1988", "ISO8859_4"); + aliasTable.put("iso-ir-110", "ISO8859_4"); + aliasTable.put("iso_8859-4", "ISO8859_4"); + aliasTable.put("iso-8859-4", "ISO8859_4"); + aliasTable.put("iso8859-4", "ISO8859_4"); + aliasTable.put("latin4", "ISO8859_4"); + aliasTable.put("l4", "ISO8859_4"); + aliasTable.put("ibm914", "ISO8859_4"); + aliasTable.put("ibm-914", "ISO8859_4"); + aliasTable.put("cp914", "ISO8859_4"); + aliasTable.put("914", "ISO8859_4"); + aliasTable.put("csisolatin4", "ISO8859_4"); + + // MIBenum: 8 + aliasTable.put("8859_5", "ISO8859_5"); + aliasTable.put("iso_8859-5:1988", "ISO8859_5"); + aliasTable.put("iso-ir-144", "ISO8859_5"); + aliasTable.put("iso_8859-5", "ISO8859_5"); + aliasTable.put("iso-8859-5", "ISO8859_5"); + aliasTable.put("iso8859-5", "ISO8859_5"); + aliasTable.put("cyrillic", "ISO8859_5"); + aliasTable.put("csisolatincyrillic", "ISO8859_5"); + aliasTable.put("ibm915", "ISO8859_5"); + aliasTable.put("ibm-915", "ISO8859_5"); + aliasTable.put("cp915", "ISO8859_5"); + aliasTable.put("915", "ISO8859_5"); + + // MIBenum: 9 + aliasTable.put("8859_6", "ISO8859_6"); + aliasTable.put("iso_8859-6:1987", "ISO8859_6"); + aliasTable.put("iso-ir-127", "ISO8859_6"); + aliasTable.put("iso_8859-6", "ISO8859_6"); + aliasTable.put("iso-8859-6", "ISO8859_6"); + aliasTable.put("iso8859-6", "ISO8859_6"); + aliasTable.put("ecma-114", "ISO8859_6"); + aliasTable.put("asmo-708", "ISO8859_6"); + aliasTable.put("arabic", "ISO8859_6"); + aliasTable.put("csisolatinarabic", "ISO8859_6"); + aliasTable.put("ibm1089", "ISO8859_6"); + aliasTable.put("ibm-1089", "ISO8859_6"); + aliasTable.put("cp1089", "ISO8859_6"); + aliasTable.put("1089", "ISO8859_6"); + + // MIBenum: 10 + aliasTable.put("8859_7", "ISO8859_7"); + aliasTable.put("iso_8859-7:1987", "ISO8859_7"); + aliasTable.put("iso-ir-126", "ISO8859_7"); + aliasTable.put("iso_8859-7", "ISO8859_7"); + aliasTable.put("iso-8859-7", "ISO8859_7"); + aliasTable.put("iso8859-7", "ISO8859_7"); + aliasTable.put("elot_928", "ISO8859_7"); + aliasTable.put("ecma-118", "ISO8859_7"); + aliasTable.put("greek", "ISO8859_7"); + aliasTable.put("greek8", "ISO8859_7"); + aliasTable.put("csisolatingreek", "ISO8859_7"); + aliasTable.put("ibm813", "ISO8859_7"); + aliasTable.put("ibm-813", "ISO8859_7"); + aliasTable.put("cp813", "ISO8859_7"); + aliasTable.put("813", "ISO8859_7"); + aliasTable.put("sun_eu_greek", "ISO8859_7"); + + // MIBenum: 11 + aliasTable.put("8859_8", "ISO8859_8"); + aliasTable.put("iso_8859-8:1988", "ISO8859_8"); + aliasTable.put("iso-ir-138", "ISO8859_8"); + aliasTable.put("iso_8859-8", "ISO8859_8"); + aliasTable.put("iso-8859-8", "ISO8859_8"); + aliasTable.put("iso8859-8", "ISO8859_8"); + aliasTable.put("hebrew", "ISO8859_8"); + aliasTable.put("csisolatinhebrew", "ISO8859_8"); + aliasTable.put("ibm916", "ISO8859_8"); + aliasTable.put("ibm-916", "ISO8859_8"); + aliasTable.put("cp916", "ISO8859_8"); + aliasTable.put("916", "ISO8859_8"); + + // MIBenum: 12 + aliasTable.put("8859_9", "ISO8859_9"); + aliasTable.put("iso-ir-148", "ISO8859_9"); + aliasTable.put("iso_8859-9", "ISO8859_9"); + aliasTable.put("iso-8859-9", "ISO8859_9"); + aliasTable.put("iso8859-9", "ISO8859_9"); + aliasTable.put("latin5", "ISO8859_9"); + aliasTable.put("l5", "ISO8859_9"); + aliasTable.put("ibm920", "ISO8859_9"); + aliasTable.put("ibm-920", "ISO8859_9"); + aliasTable.put("cp920", "ISO8859_9"); + aliasTable.put("920", "ISO8859_9"); + aliasTable.put("csisolatin5", "ISO8859_9"); + + // MIBenum: ??? + aliasTable.put("8859_13", "ISO8859_13"); + aliasTable.put("iso_8859-13", "ISO8859_13"); + aliasTable.put("iso-8859-13", "ISO8859_13"); + aliasTable.put("iso8859-13", "ISO8859_13"); + + + // MIBenum: ???? + aliasTable.put("8859_15", "ISO8859_15"); + aliasTable.put("iso-8859-15", "ISO8859_15"); + aliasTable.put("iso_8859-15", "ISO8859_15"); + aliasTable.put("iso8859-15", "ISO8859_15"); + aliasTable.put("ibm923", "ISO8859_15"); + aliasTable.put("ibm-923", "ISO8859_15"); + aliasTable.put("cp923", "ISO8859_15"); + aliasTable.put("923", "ISO8859_15"); + aliasTable.put("latin0", "ISO8859_15"); + aliasTable.put("latin9", "ISO8859_15"); + aliasTable.put("csisolatin0", "ISO8859_15"); + aliasTable.put("csisolatin9", "ISO8859_15"); + + //For compatibility purpose + aliasTable.put("iso8859_15_fdis", "ISO8859_15"); + + // MIBenum: 106 + aliasTable.put("utf-8", "UTF8"); + + // Alias recommended in RFC 1641 + aliasTable.put("unicode-1-1-utf-8", "UTF8"); + + // MIBenum: 1000 + aliasTable.put("iso-10646-ucs-2", "UnicodeBigUnmarked"); + + // Per Unicode standard + aliasTable.put("utf-16be", "UnicodeBigUnmarked"); + aliasTable.put("utf-16le", "UnicodeLittleUnmarked"); + aliasTable.put("utf-16", "UTF16"); + + // Used by drag-and-drop subsystem + aliasTable.put("x-utf-16be", "UnicodeBigUnmarked"); + aliasTable.put("x-utf-16le", "UnicodeLittleUnmarked"); + + // MIBenum: ???? + aliasTable.put("ibm037", "Cp037"); + aliasTable.put("ibm-037", "Cp037"); + aliasTable.put("cp037", "Cp037"); + aliasTable.put("037", "Cp037"); + + // MIBenum: ???? + aliasTable.put("ibm273", "Cp273"); + aliasTable.put("ibm-273", "Cp273"); + aliasTable.put("cp273", "Cp273"); + aliasTable.put("273", "Cp273"); + + // MIBenum: ???? + aliasTable.put("ibm277", "Cp277"); + aliasTable.put("ibm-277", "Cp277"); + aliasTable.put("cp277", "Cp277"); + aliasTable.put("277", "Cp277"); + + // MIBenum: ???? + aliasTable.put("ibm278", "Cp278"); + aliasTable.put("ibm-278", "Cp278"); + aliasTable.put("cp278", "Cp278"); + aliasTable.put("278", "Cp278"); + + // MIBenum: ???? + aliasTable.put("ibm280", "Cp280"); + aliasTable.put("ibm-280", "Cp280"); + aliasTable.put("cp280", "Cp280"); + aliasTable.put("280", "Cp280"); + + // MIBenum: ???? + aliasTable.put("ibm284", "Cp284"); + aliasTable.put("ibm-284", "Cp284"); + aliasTable.put("cp284", "Cp284"); + aliasTable.put("284", "Cp284"); + + // MIBenum: ???? + aliasTable.put("ibm285", "Cp285"); + aliasTable.put("ibm-285", "Cp285"); + aliasTable.put("cp285", "Cp285"); + aliasTable.put("285", "Cp285"); + + // MIBenum: ???? + aliasTable.put("ibm297", "Cp297"); + aliasTable.put("ibm-297", "Cp297"); + aliasTable.put("cp297", "Cp297"); + aliasTable.put("297", "Cp297"); + + // MIBenum: ???? + aliasTable.put("ibm420", "Cp420"); + aliasTable.put("ibm-420", "Cp420"); + aliasTable.put("cp420", "Cp420"); + aliasTable.put("420", "Cp420"); + + // MIBenum: ???? + aliasTable.put("ibm424", "Cp424"); + aliasTable.put("ibm-424", "Cp424"); + aliasTable.put("cp424", "Cp424"); + aliasTable.put("424", "Cp424"); + + // MIBenum: 2011 + aliasTable.put("ibm437", "Cp437"); + aliasTable.put("ibm-437", "Cp437"); + aliasTable.put("cp437", "Cp437"); + aliasTable.put("437", "Cp437"); + aliasTable.put("cspc8codepage437", "Cp437"); + + // MIBenum: ???? + aliasTable.put("ibm500", "Cp500"); + aliasTable.put("ibm-500", "Cp500"); + aliasTable.put("cp500", "Cp500"); + aliasTable.put("500", "Cp500"); + + // MIBenum: ???? + aliasTable.put("ibm737", "Cp737"); + aliasTable.put("ibm-737", "Cp737"); + aliasTable.put("cp737", "Cp737"); + aliasTable.put("737", "Cp737"); + + // MIBenum: ???? + aliasTable.put("ibm775", "Cp775"); + aliasTable.put("ibm-775", "Cp775"); + aliasTable.put("cp775", "Cp775"); + aliasTable.put("775", "Cp775"); + + // MIBenum: ???? + aliasTable.put("ibm838", "Cp838"); /* MDA */ + aliasTable.put("ibm-838", "Cp838"); /* MDA */ + aliasTable.put("cp838", "Cp838"); /* MDA */ + aliasTable.put("838", "Cp838"); /* MDA */ + + // "Cp850" + // MIBenum: 2009 + aliasTable.put("ibm850", "Cp850"); + aliasTable.put("ibm-850", "Cp850"); + aliasTable.put("cp850", "Cp850"); + aliasTable.put("850", "Cp850"); + aliasTable.put("cspc850multilingual", "Cp850"); + + // "Cp852" + // MIBenum: 2010 + aliasTable.put("ibm852", "Cp852"); + aliasTable.put("ibm-852", "Cp852"); + aliasTable.put("cp852", "Cp852"); + aliasTable.put("852", "Cp852"); + aliasTable.put("cspcp852", "Cp852"); + + // "Cp855" + // MIBenum: 2046 + aliasTable.put("ibm855", "Cp855"); + aliasTable.put("ibm-855", "Cp855"); + aliasTable.put("cp855", "Cp855"); + aliasTable.put("855", "Cp855"); + aliasTable.put("cspcp855", "Cp855"); + + // "Cp855" + // MIBenum: ??? + aliasTable.put("ibm856", "Cp856"); + aliasTable.put("ibm-856", "Cp856"); + aliasTable.put("cp856", "Cp856"); + aliasTable.put("856", "Cp856"); + + // "Cp857" + // MIBenum: 2047 + aliasTable.put("ibm857", "Cp857"); + aliasTable.put("ibm-857", "Cp857"); + aliasTable.put("cp857", "Cp857"); + aliasTable.put("857", "Cp857"); + aliasTable.put("csibm857", "Cp857"); + + // "Cp860" + // MIBenum: 2048 + aliasTable.put("ibm860", "Cp860"); + aliasTable.put("ibm-860", "Cp860"); + aliasTable.put("cp860", "Cp860"); + aliasTable.put("860", "Cp860"); + aliasTable.put("csibm860", "Cp860"); + + // MIBenum: 2049 + aliasTable.put("ibm861", "Cp861"); + aliasTable.put("ibm-861", "Cp861"); + aliasTable.put("cp861", "Cp861"); + aliasTable.put("861", "Cp861"); + aliasTable.put("csibm861", "Cp861"); + + // MIBenum: 2013 + aliasTable.put("ibm862", "Cp862"); + aliasTable.put("ibm-862", "Cp862"); + aliasTable.put("cp862", "Cp862"); + aliasTable.put("862", "Cp862"); + + // MIBenum: 2050 + aliasTable.put("ibm863", "Cp863"); + aliasTable.put("ibm-863", "Cp863"); + aliasTable.put("cp863", "Cp863"); + aliasTable.put("863", "Cp863"); + aliasTable.put("csibm863", "Cp863"); + + // MIBenum: 2051 + aliasTable.put("ibm864", "Cp864"); + aliasTable.put("ibm-864", "Cp864"); + aliasTable.put("cp864", "Cp864"); + aliasTable.put("csibm864", "Cp864"); + + // MIBenum: 2052 + aliasTable.put("ibm865", "Cp865"); + aliasTable.put("ibm-865", "Cp865"); + aliasTable.put("cp865", "Cp865"); + aliasTable.put("865", "Cp865"); + aliasTable.put("csibm865", "Cp865"); + + // MIBenum: ???? + aliasTable.put("ibm866", "Cp866"); + aliasTable.put("ibm-866", "Cp866"); + aliasTable.put("cp866", "Cp866"); + aliasTable.put("866", "Cp866"); + aliasTable.put("csibm866", "Cp866"); + + // MIBenum: ???? + aliasTable.put("ibm868", "Cp868"); + aliasTable.put("ibm-868", "Cp868"); + aliasTable.put("cp868", "Cp868"); + aliasTable.put("868", "Cp868"); + + // MIBenum: 2054 + aliasTable.put("ibm869", "Cp869"); + aliasTable.put("ibm-869", "Cp869"); + aliasTable.put("cp869", "Cp869"); + aliasTable.put("869", "Cp869"); + aliasTable.put("cp-gr", "Cp869"); + aliasTable.put("csibm869", "Cp869"); + + // MIBenum: ???? + aliasTable.put("ibm870", "Cp870"); + aliasTable.put("ibm-870", "Cp870"); + aliasTable.put("cp870", "Cp870"); + aliasTable.put("870", "Cp870"); + + // MIBenum: ???? + aliasTable.put("ibm871", "Cp871"); + aliasTable.put("ibm-871", "Cp871"); + aliasTable.put("cp871", "Cp871"); + aliasTable.put("871", "Cp871"); + + // MIBenum: ???? + aliasTable.put("ibm874", "Cp874"); + aliasTable.put("ibm-874", "Cp874"); + aliasTable.put("cp874", "Cp874"); + aliasTable.put("874", "Cp874"); + + // MIBenum: ???? + aliasTable.put("ibm875", "Cp875"); + aliasTable.put("ibm-875", "Cp875"); + aliasTable.put("cp875", "Cp875"); + aliasTable.put("875", "Cp875"); + + // MIBenum: ???? + aliasTable.put("ibm918", "Cp918"); + aliasTable.put("ibm-918", "Cp918"); + aliasTable.put("cp918", "Cp918"); + aliasTable.put("918", "Cp918"); + + // MIBenum: ???? + aliasTable.put("ibm921", "Cp921"); + aliasTable.put("ibm-921", "Cp921"); + aliasTable.put("cp921", "Cp921"); + aliasTable.put("921", "Cp921"); + + // MIBenum: ???? + aliasTable.put("ibm922", "Cp922"); + aliasTable.put("ibm-922", "Cp922"); + aliasTable.put("cp922", "Cp922"); + aliasTable.put("922", "Cp922"); + + // MIBenum: ???? + aliasTable.put("ibm930", "Cp930"); /* MDA */ + aliasTable.put("ibm-930", "Cp930"); /* MDA */ + aliasTable.put("cp930", "Cp930"); /* MDA */ + aliasTable.put("930", "Cp930"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm933", "Cp933"); /* MDA */ + aliasTable.put("ibm-933", "Cp933"); /* MDA */ + aliasTable.put("cp933", "Cp933"); /* MDA */ + aliasTable.put("933", "Cp933"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm935", "Cp935"); /* MDA */ + aliasTable.put("ibm-935", "Cp935"); /* MDA */ + aliasTable.put("cp935", "Cp935"); /* MDA */ + aliasTable.put("935", "Cp935"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm937", "Cp937"); /* MDA */ + aliasTable.put("ibm-937", "Cp937"); /* MDA */ + aliasTable.put("cp937", "Cp937"); /* MDA */ + aliasTable.put("937", "Cp937"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm939", "Cp939"); /* MDA */ + aliasTable.put("ibm-939", "Cp939"); /* MDA */ + aliasTable.put("cp939", "Cp939"); /* MDA */ + aliasTable.put("939", "Cp939"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm942", "Cp942"); /* MDA */ + aliasTable.put("ibm-942", "Cp942"); /* MDA */ + aliasTable.put("cp942", "Cp942"); /* MDA */ + aliasTable.put("942", "Cp942"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm943", "Cp943"); /* ibm.3158 */ + aliasTable.put("ibm-943", "Cp943"); /* ibm.3158 */ + aliasTable.put("cp943", "Cp943"); /* ibm.3158 */ + aliasTable.put("943", "Cp943"); /* ibm.3158 */ + + // MIBenum: ???? + aliasTable.put("ibm948", "Cp948"); /* MDA */ + aliasTable.put("ibm-948", "Cp948"); /* MDA */ + aliasTable.put("cp948", "Cp948"); /* MDA */ + aliasTable.put("948", "Cp948"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm949", "Cp949"); /* MDA */ + aliasTable.put("ibm-949", "Cp949"); /* MDA */ + aliasTable.put("cp949", "Cp949"); /* MDA */ + aliasTable.put("949", "Cp949"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm950", "Cp950"); /* MDA */ + aliasTable.put("ibm-950", "Cp950"); /* MDA */ + aliasTable.put("cp950", "Cp950"); /* MDA */ + aliasTable.put("950", "Cp950"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm964", "Cp964"); /* MDA */ + aliasTable.put("ibm-964", "Cp964"); /* MDA */ + aliasTable.put("cp964", "Cp964"); /* MDA */ + aliasTable.put("964", "Cp964"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm970", "Cp970"); /* MDA */ + aliasTable.put("ibm-970", "Cp970"); /* MDA */ + aliasTable.put("cp970", "Cp970"); /* MDA */ + aliasTable.put("970", "Cp970"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm1006", "Cp1006"); + aliasTable.put("ibm-1006", "Cp1006"); + aliasTable.put("cp1006", "Cp1006"); + aliasTable.put("1006", "Cp1006"); + + // MIBenum: ???? + aliasTable.put("ibm1025", "Cp1025"); + aliasTable.put("ibm-1025", "Cp1025"); + aliasTable.put("cp1025", "Cp1025"); + aliasTable.put("1025", "Cp1025"); + + // MIBenum: ???? + aliasTable.put("ibm1026", "Cp1026"); + aliasTable.put("ibm-1026", "Cp1026"); + aliasTable.put("cp1026", "Cp1026"); + aliasTable.put("1026", "Cp1026"); + + // MIBenum: ???? + aliasTable.put("ibm1097", "Cp1097"); + aliasTable.put("ibm-1097", "Cp1097"); + aliasTable.put("cp1097", "Cp1097"); + aliasTable.put("1097", "Cp1097"); + + // MIBenum: ???? + aliasTable.put("ibm1098", "Cp1098"); + aliasTable.put("ibm-1098", "Cp1098"); + aliasTable.put("cp1098", "Cp1098"); + aliasTable.put("1098", "Cp1098"); + + // MIBenum: ???? + aliasTable.put("ibm1112", "Cp1112"); + aliasTable.put("ibm-1112", "Cp1112"); + aliasTable.put("cp1112", "Cp1112"); + aliasTable.put("1112", "Cp1112"); + + // MIBenum: ???? + aliasTable.put("ibm1122", "Cp1122"); + aliasTable.put("ibm-1122", "Cp1122"); + aliasTable.put("cp1122", "Cp1122"); + aliasTable.put("1122", "Cp1122"); + + // MIBenum: ???? + aliasTable.put("ibm1123", "Cp1123"); + aliasTable.put("ibm-1123", "Cp1123"); + aliasTable.put("cp1123", "Cp1123"); + aliasTable.put("1123", "Cp1123"); + + // MIBenum: ???? + aliasTable.put("ibm1124", "Cp1124"); + aliasTable.put("ibm-1124", "Cp1124"); + aliasTable.put("cp1124", "Cp1124"); + aliasTable.put("1124", "Cp1124"); + + // MIBenum: ???? + aliasTable.put("ibm1381", "Cp1381"); /* MDA */ + aliasTable.put("ibm-1381", "Cp1381"); /* MDA */ + aliasTable.put("cp1381", "Cp1381"); /* MDA */ + aliasTable.put("1381", "Cp1381"); /* MDA */ + + // MIBenum: ???? + aliasTable.put("ibm1383", "Cp1383"); /* MDA */ + aliasTable.put("ibm-1383", "Cp1383"); /* MDA */ + aliasTable.put("cp1383", "Cp1383"); /* MDA */ + aliasTable.put("1383", "Cp1383"); /* MDA */ + + // MIBenum: 16/39 + aliasTable.put("jis", "ISO2022JP"); + aliasTable.put("iso-2022-jp", "ISO2022JP"); + aliasTable.put("csiso2022jp", "ISO2022JP"); + aliasTable.put("jis_encoding", "ISO2022JP"); + aliasTable.put("csjisencoding", "ISO2022JP"); + + // MIBenum: 17/2024 + aliasTable.put("windows-31j", "MS932"); + aliasTable.put("cswindows31j", "MS932"); + + + aliasTable.put("pck", "PCK"); // Case independent PCK alias + + /*if (sjisIsMS932) { + aliasTable.put("shift_jis", "MS932"); // IANA shift jis aliases + aliasTable.put("csshiftjis", "MS932"); // updated per 4556882 + aliasTable.put("x-sjis", "MS932"); + aliasTable.put("ms_kanji", "MS932"); + } else { + */ + aliasTable.put("shift_jis", "SJIS"); // IANA shift jis aliases + aliasTable.put("csshiftjis", "SJIS"); + aliasTable.put("x-sjis", "SJIS"); + aliasTable.put("ms_kanji", "SJIS"); + /* + } + */ + // MIBenum: 18 + // Japanese EUC + aliasTable.put("eucjis", "EUC_JP"); + aliasTable.put("euc-jp", "EUC_JP"); + aliasTable.put("eucjp", "EUC_JP"); + aliasTable.put("extended_unix_code_packed_format_for_japanese", + "EUC_JP"); + aliasTable.put("cseucpkdfmtjapanese", "EUC_JP"); + aliasTable.put("x-euc-jp", "EUC_JP"); + aliasTable.put("x-eucjp", "EUC_JP"); + aliasTable.put("eucjp-open", "EUC_JP_Solaris"); // 1.3.1_x compatibility + + // For handing only JIS0202 and JIS0208 in linux + aliasTable.put("euc-jp-linux", "EUC_JP_LINUX"); + + // MIBenum: 874 + aliasTable.put("windows-874", "MS874"); + + // MIBenum: 2250 + aliasTable.put("windows-1250", "Cp1250"); + + // MIBenum: 2251 + aliasTable.put("windows-1251", "Cp1251"); + aliasTable.put("ansi-1251", "Cp1251"); // Solaris ru_RU.ANSI1251 locale + + // MIBenum: 2252 + aliasTable.put("windows-1252", "Cp1252"); + + // MIBenum: 2253 + aliasTable.put("windows-1253", "Cp1253"); + + // MIBenum: 2254 + aliasTable.put("windows-1254", "Cp1254"); + + // MIBenum: 2255 + aliasTable.put("windows-1255", "Cp1255"); + + // MIBenum: 2256 + aliasTable.put("windows-1256", "Cp1256"); + + // MIBenum: 2257 + aliasTable.put("windows-1257", "Cp1257"); + + // MIBenum: 2258 + aliasTable.put("windows-1258", "Cp1258"); + + // MIBenum: ???? + aliasTable.put("ibm33722", "Cp33722"); /* MDA */ + aliasTable.put("ibm-33722", "Cp33722"); /* MDA */ + aliasTable.put("cp33722", "Cp33722"); /* MDA */ + aliasTable.put("33722", "Cp33722"); /* MDA */ + + // Russian KOI8-R + aliasTable.put("koi8-r", "KOI8_R"); + aliasTable.put("koi8", "KOI8_R"); + aliasTable.put("cskoi8r", "KOI8_R"); + + // Simplified Chinese + aliasTable.put("gb2312", "EUC_CN"); + aliasTable.put("gb2312-80", "EUC_CN"); + aliasTable.put("gb2312-1980", "EUC_CN"); + aliasTable.put("euc-cn", "EUC_CN"); + aliasTable.put("euccn", "EUC_CN"); + + aliasTable.put("big5", "Big5"); + aliasTable.put("big5hk", "Big5_HKSCS"); + aliasTable.put("big5-hkscs", "Big5_HKSCS"); + // Added for future compatibility, explicit mapping to Unicode 3.0 + aliasTable.put("big5-hkscs:unicode3.0", "Big5_HKSCS"); + aliasTable.put("big5_solaris", "Big5_Solaris"); + + // Traditional Chinese + aliasTable.put("cns11643", "EUC_TW"); + aliasTable.put("euc-tw", "EUC_TW"); + aliasTable.put("euctw", "EUC_TW"); + + // Korean + aliasTable.put("ksc5601", "EUC_KR"); + aliasTable.put("euc-kr", "EUC_KR"); + aliasTable.put("euckr", "EUC_KR"); + aliasTable.put("ks_c_5601-1987", "EUC_KR"); + aliasTable.put("ksc5601-1987", "EUC_KR"); + aliasTable.put("ksc5601_1987", "EUC_KR"); + aliasTable.put("ksc_5601", "EUC_KR"); + aliasTable.put("5601", "EUC_KR"); + + aliasTable.put("ksc5601-1992", "Johab"); + aliasTable.put("ksc5601_1992", "Johab"); + aliasTable.put("ms1361", "Johab"); + + aliasTable.put("windows-949", "MS949"); + + //MIBenum: 37 + aliasTable.put("iso-2022-kr", "ISO2022KR"); + aliasTable.put("csiso2022kr", "ISO2022KR"); + + // Thai + aliasTable.put("tis620.2533", "TIS620"); + aliasTable.put("tis-620", "TIS620"); // Linux name + + // Variants + aliasTable.put("cp942c", "Cp942C"); + aliasTable.put("cp943c", "Cp943C"); + aliasTable.put("cp949c", "Cp949C"); + aliasTable.put("iscii", "ISCII91"); + } +} diff --git a/jdk/test/java/nio/charset/RemovingSunIO/TestCOMP.java b/jdk/test/java/nio/charset/RemovingSunIO/TestCOMP.java new file mode 100644 index 00000000000..c3cbf8f279c --- /dev/null +++ b/jdk/test/java/nio/charset/RemovingSunIO/TestCOMP.java @@ -0,0 +1,76 @@ +/* + * Copyright 2010 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 6176819 + @summary Check if COMPUND_TEXT charset works as expected + @run main/timeout=1200 TestCOMP + */ + +import java.util.HashMap; +import java.util.Set; +import java.io.UnsupportedEncodingException; +import java.nio.charset.*; +import java.nio.*; + +public class TestCOMP { + public static void main(String[] argv) throws CharacterCodingException { + String osName = System.getProperty("os.name"); + if (osName.startsWith("Windows")) + return; + try { + String src = + "JIS0208\u4eb0" + + "ASCII" + + "JIS0212\u4e74\u4e79" + + "GB2312\u7279\u5b9a" + + "JIS0201\uff67\uff68" + + "Johab\uac00\uac01"; + + byte[] ba = src.getBytes("COMPOUND_TEXT"); + /* + System.out.print("ba="); + for (int i = 0; i < ba.length; i++) { + System.out.printf("<%x> ", ba[i] & 0xff); + } + System.out.println(); + */ + String dst = new String(ba, "COMPOUND_TEXT"); + char[] ca = dst.toCharArray(); + /* + System.out.print("ca="); + for (int i = 0; i < ca.length; i++) { + System.out.printf("<%x> ", ca[i] & 0xffff); + } + System.out.println(); + */ + if (!src.equals(dst)) { + System.out.printf("src=<%s>\n", src); + System.out.printf("dst=<%s>\n", dst); + throw new CharacterCodingException(); + } + } catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/jdk/test/java/nio/charset/RemovingSunIO/TestUnmappableForLength.java b/jdk/test/java/nio/charset/RemovingSunIO/TestUnmappableForLength.java new file mode 100644 index 00000000000..f07984fa77d --- /dev/null +++ b/jdk/test/java/nio/charset/RemovingSunIO/TestUnmappableForLength.java @@ -0,0 +1,59 @@ +/* + * Copyright 2010 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 6227339 + @summary Check if returned CoderResult.unmappableForLength has correct + length value. + */ + +import java.nio.charset.*; +import java.nio.*; + +public class TestUnmappableForLength { + public static void main(String[] argv) throws CharacterCodingException { + byte[] ba = {(byte)0xa2, (byte)0xff}; + //EUC_TW has its own decodeArrayLoop() + testDecode("EUC_TW", ba, 2); + + //EUC_CN uses DoubleByteDecoder's decodeArrayLoop() + testDecode("EUC_CN", ba, 2); + } + + static void testDecode(String csName, byte[] ba, int expected) + throws CharacterCodingException + { + try { + CoderResult cr = Charset + .forName(csName) + .newDecoder() + .decode(ByteBuffer.wrap(ba), CharBuffer.allocate(4), true); + if (cr.isUnmappable() && cr.length() != expected) { + throw new CharacterCodingException(); + } + } catch (IllegalArgumentException x){ + x.printStackTrace(); + } + } + +} diff --git a/jdk/test/java/nio/charset/coders/BashCache.java b/jdk/test/java/nio/charset/coders/BashCache.java new file mode 100644 index 00000000000..04988b62524 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/BashCache.java @@ -0,0 +1,89 @@ +/* + * Copyright 2010 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 4517279 + * @summary Stochastic test of thread-local coder caches + */ + +import java.nio.*; +import java.nio.charset.*; +import java.util.*; + + +public class BashCache { + + private static final int THREADS = 10; + private static final int TRIALS = 1000; + + private static final Charset[] charsets + = new Charset[] { + Charset.forName("US-ASCII"), + Charset.forName("UTF-8"), + Charset.forName("CP1252"), + Charset.forName("UTF-16BE") }; + + private static volatile boolean failed = false; + + private static class Basher extends Thread { + + Random rnd = new Random(System.identityHashCode(this)); + + public void run() { + for (int i = 0; i < TRIALS; i++) { + Charset cs = charsets[rnd.nextInt(4)]; + try { + if (rnd.nextBoolean()) { + cs.encode("hi mom"); + } else { + cs.decode(ByteBuffer.wrap(new byte[] { + (byte)'x', (byte)'y', + (byte)'z', (byte)'z', + (byte)'y' })); + } + } catch (Exception x) { + x.printStackTrace(); + failed = true; + return; + } + if (rnd.nextBoolean()) + Thread.yield(); + } + } + + } + + public static void main(String[] args) throws Exception { + Charset cs = Charset.forName("us-ascii"); + Basher[] bashers = new Basher[THREADS]; + for (int i = 0; i < THREADS; i++) { + bashers[i] = new Basher(); + bashers[i].start(); + } + for (int i = 0; i < THREADS; i++) + bashers[i].join(); + if (failed) + throw new Exception("Test failed"); + } + +} diff --git a/jdk/test/java/nio/charset/coders/BashStreams.java b/jdk/test/java/nio/charset/coders/BashStreams.java new file mode 100644 index 00000000000..555c3398929 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/BashStreams.java @@ -0,0 +1,391 @@ +/* + * Copyright 2010 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 + * @summary Stochastic test of charset-based streams + */ + +import java.io.*; +import java.util.*; +import java.nio.*; +import java.nio.channels.*; +import java.nio.charset.*; + + +public class BashStreams { + + static final PrintStream log = System.err; + + + static class CharacterGenerator { + + private final Random rand; + private final int max; + private final int limit; + private int count = 0; + + CharacterGenerator(long seed, String csn, int limit) { + rand = new Random(seed); + this.max = Surrogate.UCS4_MAX + 1; + this.limit = limit; + } + + private char[] saved = new char[10]; + private int savedCount = 0; + + void push(char c) { + saved[savedCount++] = c; + count--; + } + + int count() { + return count; + } + + boolean hasNext() { + return count < limit; + } + + char next() { + if (count >= limit) + throw new RuntimeException("EOF"); + if (savedCount > 0) { + savedCount--; + count++; + return saved[savedCount]; + } + int c; + for (;;) { + c = rand.nextInt(max); + if (Surrogate.is(c) || (c == 0xfffe) || (c == 0xffff)) + continue; + if (Surrogate.neededFor(c) && (count == limit - 1)) + continue; + break; + } + count++; + if (Surrogate.neededFor(c)) { + count++; + push(Surrogate.low(c)); + return Surrogate.high(c); + } + return (char)c; + } + + } + + + static void mismatch(String csn, int count, char c, char d) { + throw new RuntimeException(csn + ": Mismatch at count " + + count + + ": " + Integer.toHexString(c) + + " != " + + Integer.toHexString(d)); + } + + static void mismatchedEOF(String csn, int count, int cgCount) { + throw new RuntimeException(csn + ": Mismatched EOFs: " + + count + + " != " + + cgCount); + } + + + static class Sink // One abomination... + extends OutputStream + implements WritableByteChannel + { + + private final String csn; + private final CharacterGenerator cg; + private int count = 0; + + Sink(String csn, long seed) { + this.csn = csn; + this.cg = new CharacterGenerator(seed, csn, Integer.MAX_VALUE); + } + + public void write(int b) throws IOException { + write (new byte[] { (byte)b }, 0, 1); + } + + private int check(byte[] ba, int off, int len) throws IOException { + String s = new String(ba, off, len, csn); + int n = s.length(); + for (int i = 0; i < n; i++) { + char c = s.charAt(i); + char d = cg.next(); + if (c != d) { + if (c == '?') { + if (Surrogate.isHigh(d)) + cg.next(); + continue; + } + mismatch(csn, count + i, c, d); + } + } + count += n; + return len; + } + + public void write(byte[] ba, int off, int len) throws IOException { + check(ba, off, len); + } + + public int write(ByteBuffer bb) throws IOException { + int n = check(bb.array(), + bb.arrayOffset() + bb.position(), + bb.remaining()); + bb.position(bb.position() + n); + return n; + } + + public void close() { + count = -1; + } + + public boolean isOpen() { + return count >= 0; + } + + } + + static void testWrite(String csn, int limit, long seed, Writer w) + throws IOException + { + Random rand = new Random(seed); + CharacterGenerator cg = new CharacterGenerator(seed, csn, + Integer.MAX_VALUE); + int count = 0; + char[] ca = new char[16384]; + + int n = 0; + while (count < limit) { + n = rand.nextInt(ca.length); + for (int i = 0; i < n; i++) + ca[i] = cg.next(); + w.write(ca, 0, n); + count += n; + } + if (Surrogate.isHigh(ca[n - 1])) + w.write(cg.next()); + w.close(); + } + + static void testStreamWrite(String csn, int limit, long seed) + throws IOException + { + log.println(" write stream"); + testWrite(csn, limit, seed, + new OutputStreamWriter(new Sink(csn, seed), csn)); + } + + static void testChannelWrite(String csn, int limit, long seed) + throws IOException + { + log.println(" write channel"); + testWrite(csn, limit, seed, + Channels.newWriter(new Sink(csn, seed), + Charset.forName(csn) + .newEncoder() + .onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE), + 8192)); + } + + + static class Source // ... and another + extends InputStream + implements ReadableByteChannel + { + + private final String csn; + private final CharsetEncoder enc; + private final CharacterGenerator cg; + private int count = 0; + + Source(String csn, long seed, int limit) { + this.csn = csn.startsWith("\1") ? csn.substring(1) : csn; + this.enc = Charset.forName(this.csn).newEncoder() + .onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE); + this.cg = new CharacterGenerator(seed, csn, limit); + } + + public int read() throws IOException { + byte[] b = new byte[1]; + read(b); + return b[0]; + } + + private CharBuffer cb = CharBuffer.allocate(8192); + private ByteBuffer bb = null; + + public int read(byte[] ba, int off, int len) throws IOException { + if (!cg.hasNext()) + return -1; + int end = off + len; + int i = off; + while (i < end) { + if ((bb == null) || !bb.hasRemaining()) { + cb.clear(); + while (cb.hasRemaining()) { + if (!cg.hasNext()) + break; + char c = cg.next(); + if (Surrogate.isHigh(c) && (cb.remaining() == 1)) { + cg.push(c); + break; + } + cb.put(c); + } + cb.flip(); + if (!cb.hasRemaining()) + break; + bb = enc.encode(cb); + } + int d = Math.min(bb.remaining(), end - i); + bb.get(ba, i, d); + i += d; + } + return i - off; + } + + public int read(ByteBuffer bb) throws IOException { + int n = read(bb.array(), + bb.arrayOffset() + bb.position(), + bb.remaining()); + if (n >= 0) + bb.position(bb.position() + n); + return n; + } + + public void close() { + count = -1; + } + + public boolean isOpen() { + return count != -1; + } + + } + + static void testRead(String csn, int limit, long seed, int max, + Reader rd) + throws IOException + { + Random rand = new Random(seed); + CharacterGenerator cg = new CharacterGenerator(seed, csn, limit); + int count = 0; + char[] ca = new char[16384]; + + int n = 0; + while (count < limit) { + int rn = rand.nextInt(ca.length); + n = rd.read(ca, 0, rn); + if (n < 0) + break; + for (int i = 0; i < n; i++) { + char c = ca[i]; + if (!cg.hasNext()) + mismatchedEOF(csn, count + i, cg.count()); + char d = cg.next(); + if (c == '?') { + if (Surrogate.isHigh(d)) { + cg.next(); + continue; + } + if (d > max) + continue; + } + if (c != d) + mismatch(csn, count + i, c, d); + } + count += n; + } + if (cg.hasNext()) + mismatchedEOF(csn, count, cg.count()); + rd.close(); + } + + static void testStreamRead(String csn, int limit, long seed, int max) + throws IOException + { + log.println(" read stream"); + testRead(csn, limit, seed, max, + new InputStreamReader(new Source(csn, seed, limit), csn)); + } + + static void testChannelRead(String csn, int limit, long seed, int max) + throws IOException + { + log.println(" read channel"); + testRead(csn, limit, seed, max, + Channels.newReader(new Source(csn, seed, limit), csn)); + } + + + static final int LIMIT = 1 << 21; + + static void test(String csn, int limit, long seed, int max) + throws Exception + { + log.println(); + log.println(csn); + + testStreamWrite(csn, limit, seed); + testChannelWrite(csn, limit, seed); + testStreamRead(csn, limit, seed, max); + testChannelRead(csn, limit, seed, max); + } + + public static void main(String[] args) throws Exception { + + if (System.getProperty("os.arch").equals("ia64")) { + // This test requires 54 minutes on an Itanium-1 processor + return; + } + + int ai = 0, an = args.length; + + int limit; + if (ai < an) + limit = 1 << Integer.parseInt(args[ai++]); + else + limit = LIMIT; + log.println("limit = " + limit); + + long seed; + if (ai < an) + seed = Long.parseLong(args[ai++]); + else + seed = System.currentTimeMillis(); + log.println("seed = " + seed); + + test("UTF-8", limit, seed, Integer.MAX_VALUE); + test("US-ASCII", limit, seed, 0x7f); + test("ISO-8859-1", limit, seed, 0xff); + + } + +} diff --git a/jdk/test/java/nio/charset/coders/Check.java b/jdk/test/java/nio/charset/coders/Check.java new file mode 100644 index 00000000000..bb01387747d --- /dev/null +++ b/jdk/test/java/nio/charset/coders/Check.java @@ -0,0 +1,152 @@ +/* + * Copyright 2010 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 4712786 + * @summary Check charsets against reference files + * + * @build Util + * @run main Check shift_jis ref.shift_jis + * @run main/othervm -Dsun.nio.cs.map=Windows-31J/Shift_JIS Check shift_jis ref.windows-31j + */ + +import java.io.*; +import java.nio.*; +import java.nio.channels.*; +import java.nio.charset.*; +import java.util.*; +import java.util.regex.*; + + +public class Check { + + private static PrintStream log = System.err; + + private static final int UNICODE_SIZE = (1 << 16); + + private final String csName; + private final String refName; + private byte[][] bytes = new byte[UNICODE_SIZE][]; // Indexed by char + + private int errors = 0; + + private Check(String csn, String refn) { + csName = csn; + refName = refn; + } + + private Check load() + throws IOException + { + File fn = new File(System.getProperty("test.src", "."), refName); + FileChannel fc = new FileInputStream(fn).getChannel(); + ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); + CharBuffer cb = Charset.forName("US-ASCII").decode(bb); + Pattern p = Pattern.compile("^(\\p{XDigit}+) +(\\p{XDigit}+)$", + Pattern.MULTILINE); + Matcher m = p.matcher(cb); + while (m.find()) { + char c = (char)Integer.parseInt(m.group(1), 16); + String v = m.group(2); + int nb = v.length() >> 1; + byte[] ba = new byte[nb]; + for (int i = 0; i < nb; i++) { + ba[i] = (byte)Integer.parseInt(v.substring(i << 1, (i << 1) + 2), + 16); + } + bytes[c] = ba; + } + return this; + } + + private void error() { + if (++errors >= 100) + throw new RuntimeException("100 errors occurred (there might be more)"); + } + + private void mismatch(String s, byte[] expected, byte[] got) { + log.println("Encoding mismatch on \"" + + Util.toString(s) + + "\": Expected {" + + Util.toString(expected) + + "}, got {" + + Util.toString(got) + + "}"); + error(); + } + + private void mismatch(int i, byte[] ba, String expected, String got) { + log.println("Decoding mismatch on \"" + + Util.toString((char)i) + + "\", input {" + + Util.toString(ba) + + "}: Expected \"" + + Util.toString(expected) + + "\", got \"" + + Util.toString(got) + + "\""); + error(); + } + + private void check() + throws IOException + { + + // String.getBytes(String csn) + for (int i = 0; i < UNICODE_SIZE; i++) { + if (bytes[i] == null) + continue; + String s = new String(new char[]{ (char)i }); + byte[] ba = s.getBytes(csName); + if (Util.cmp(ba, bytes[i]) >= 0) + mismatch(s, bytes[i], ba); + } + log.println("String.getBytes(\"" + csName + "\") okay"); + + // String(byte[] ba, String csn) + for (int i = 0; i < UNICODE_SIZE; i++) { + if (bytes[i] == null) + continue; + String r = new String(new char[]{ (char)i }); + String s = new String(bytes[i], csName); + if (!r.equals(s)) + mismatch(i, bytes[i], r, s); + } + log.println("String(byte[] ba, \"" + csName + "\") okay"); + + // To be really thorough we should test OutputStreamWriter, + // InputStreamReader, and Charset{De,En}Coder here also, + // but the above will do for now. + + if (errors > 0) { + throw new RuntimeException(errors + " error(s) occurred"); + } + + } + + // Usage: Check charsetName referenceFileName + public static void main(String[] args) throws Exception { + new Check(args[0], args[1]).load().check(); + } + +} diff --git a/jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh b/jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh new file mode 100644 index 00000000000..11a9af46b73 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh @@ -0,0 +1,76 @@ +#!/bin/sh + +# +# Copyright 2003 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 +# @summary Verify that sun.nio.cs.map property interpreted in ja multibyte locales +# @bug 4879123 +# @build SJISPropTest +# +# @run shell/timeout=300 CheckSJISMappingProp.sh + +# set platform-dependent variables + +OS=`uname -s` +case "$OS" in + SunOS | Linux ) ;; + # Skip locale test for Windows + Windows* ) + echo "Passed"; exit 0 ;; + * ) echo "Unrecognized system!" ; exit 1 ;; +esac + +expectPass() { + if [ $1 -eq 0 ] + then echo "--- passed as expected" + else + echo "--- failed" + exit $1 + fi +} + + +JAVA="${TESTJAVA}/bin/java -cp ${TESTCLASSES}" +runTest() { + echo "Testing:" ${1} + LC_ALL="$1" ; export LC_ALL + locale + # Firstly, test with property set + # (shift_jis should map to windows-31J charset) + ${JAVA} -Dsun.nio.cs.map="Windows-31J/Shift_JIS" SJISPropTest MS932 + expectPass $? + + # Next, test without property set - "shift_jis" follows IANA conventions + # and should map to the sun.nio.cs.ext.Shift_JIS charset + ${JAVA} SJISPropTest Shift_JIS + expectPass $? +} + +# Run the test in the common Solaris/Linux locales +# Tests will simply run in current locale if locale isn't supported +# on the test machine/platform + +for i in "ja" "ja_JP.PCK" "ja_JP.eucJP" ; do + runTest ${i} +done diff --git a/jdk/test/java/nio/charset/coders/Errors.java b/jdk/test/java/nio/charset/coders/Errors.java new file mode 100644 index 00000000000..55aaea13305 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/Errors.java @@ -0,0 +1,220 @@ +/* + * Copyright 2010 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 + * @summary Check that error cases are replaced correctly in String/ISR/OSW + * @bug 4457851 + * + * @build Errors Util + * @run main Errors + */ + +import java.io.*; +import java.nio.*; + + +public class Errors { + + static PrintStream log = System.err; + static int failures = 0; + + static final byte Q = (byte)'?'; + static final byte X = (byte)'x'; + static final byte Y = (byte)'y'; + static final byte Z = (byte)'z'; + + static abstract class Test { + + protected final String csn; + protected final String what; + + Test(String csn, String what) { + this.csn = csn; + this.what = what; + } + + abstract byte[] enc(String s) throws IOException; + + Test test(String s, byte[] ref) { + log.print(" " + Util.toString(s.toCharArray())); + byte[] ba = null; + try { + ba = enc(s); + } catch (IOException x) { + log.println(" -e-> ERROR: " + x.getClass().getName()); + failures++; + return this; + } + log.println(" -e-> " + Util.toString(ba)); + int i = Util.cmp(ba, ref); + if (i >= 0) { + log.println(" ERROR: Mismatch at index " + i + + ", expected: " + Util.toString(ref)); + failures++; + } + return this; + } + + abstract String dec(byte[] ba) throws IOException; + + Test test(byte[] ba, String ref) { + log.print(" " + Util.toString(ba)); + String s = null; + try { + s = dec(ba); + } catch (IOException x) { + log.println(" -d-> ERROR: " + x.getClass().getName()); + failures++; + return this; + } + log.println(" -d-> " + Util.toString(s.toCharArray())); + char[] ca = s.toCharArray(); + char[] refa = ref.toCharArray(); + int i = Util.cmp(ca, refa); + if (i >= 0) { + log.println(" ERROR: Mismatch at index " + i + + ", expected: " + Util.toString(refa)); + failures++; + } + return this; + } + + Test run() { + log.println(csn + ", " + what); + + test("xyzzy", new byte[] { X, Y, Z, Z, Y }); + + // Malformed surrogates + test("\uD800x", new byte[] { Q, X }); + test("\uDC00x", new byte[] { Q, X }); + test("\uD800\uDB00x", new byte[] { Q, Q, X }); + + return this; + } + + } + + static class TestStream extends Test { + + TestStream(String csn) { + super(csn, "I/O streams"); + } + + byte[] enc(String s) throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + Writer wr = new OutputStreamWriter(bos, csn); + wr.write(s); + wr.close(); + return bos.toByteArray(); + } + + String dec(byte[] ba) throws IOException { + ByteArrayInputStream bis = new ByteArrayInputStream(ba); + Reader rd = new InputStreamReader(bis, csn); + char[] ca = new char[1024]; + int n = rd.read(ca); + String s = new String(ca, 0, n); + rd.close(); + return s; + } + + } + + static class TestString extends Test { + + TestString(String csn) { + super(csn, "strings"); + } + + byte[] enc(String s) throws IOException { + return s.getBytes(csn); + } + + String dec(byte[] ba) throws IOException { + return new String(ba, 0, ba.length, csn); + } + + } + + static void test_US_ASCII(Test t) { + t.run(); + t.test("\u0080", new byte[] { Q }); + t.test("\u0100", new byte[] { Q }); + t.test("\uD800\uDC00", new byte[] { Q }); + t.test("\uF000", new byte[] { Q }); + t.test("\uFFFE", new byte[] { Q }); + t.test("\uFFFF", new byte[] { Q }); + t.test(new byte[] { X, (byte)0x7f, Y }, "x\u007Fy"); + t.test(new byte[] { X, (byte)0x80, Y }, "x\uFFFDy"); + t.test(new byte[] { (byte)0xf0, (byte)0xf0 }, "\uFFFD\uFFFD"); + } + + static void test_ISO_8859_1(Test t) { + t.run(); + t.test("\u0080", new byte[] { (byte)0x80 }); + t.test("\u0100", new byte[] { Q }); + t.test("\uD800\uDC00x", new byte[] { Q, X }); + t.test("\uF000", new byte[] { Q }); + t.test("\uFFFE", new byte[] { Q }); + t.test("\uFFFF", new byte[] { Q }); + t.test(new byte[] { X, (byte)0x7f, Y }, "x\u007Fy"); + t.test(new byte[] { X, (byte)0x80, Y }, "x\u0080y"); + t.test(new byte[] { (byte)0xf0, (byte)0xf0 }, "\u00F0\u00F0"); + } + + static void test_UTF_8(Test t) { + t.run(); + t.test("\u0080", new byte[] { (byte)0xC2, (byte)0x80 }); + t.test("\u0100", new byte[] { (byte)0xC4, (byte)0x80 }); + t.test("\uD800\uDC00", + new byte[] { (byte)0xF0, (byte)0x90, (byte)0x80, (byte)0x80 }); + t.test("\uF000", new byte[] { (byte)0xEF, (byte)0x80, (byte)0x80 }); + t.test("\uFFFE", new byte[] { (byte)0xEF, (byte)0xBF, (byte)0xBE }); + t.test("\uFFFF", new byte[] { (byte)0xEF, (byte)0xBF, (byte)0xBF }); + t.test(new byte[] { X, (byte)0x7f, Y }, "x\u007Fy"); + t.test(new byte[] { X, (byte)0x80, Y }, "x\uFFFDy"); + t.test(new byte[] { (byte)0xf0, (byte)0xf0 }, "\uFFFD"); + } + + public static void main(String[] args) throws Exception { + + test_US_ASCII(new TestString("US-ASCII")); + test_US_ASCII(new TestStream("US-ASCII")); + + test_ISO_8859_1(new TestString("ISO-8859-1")); + test_ISO_8859_1(new TestStream("ISO-8859-1")); + + test_ISO_8859_1(new TestString("ISO-8859-15")); + test_ISO_8859_1(new TestStream("ISO-8859-15")); + + test_UTF_8(new TestString("UTF-8")); + test_UTF_8(new TestStream("UTF-8")); + + if (failures > 0) { + log.println(); + throw new Exception("Tests failed: " + failures); + } + + } + +} diff --git a/jdk/test/java/nio/charset/coders/FullRead.java b/jdk/test/java/nio/charset/coders/FullRead.java new file mode 100644 index 00000000000..13f876f84f9 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/FullRead.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 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 + * @summary Ensure that InputStreamReader reads as many characters as possible + */ + +// InputStreamReader is not required by its spec to read as many characters as +// possible upon each invocation of read(char[], int, int), but many programs +// (e.g., javac) depend upon this behavior. + +import java.io.*; + + +public class FullRead { + + static int MAX_LEN = 1 << 16; + + static void test(File f, int len) throws Exception { + FileOutputStream fo = new FileOutputStream(f); + for (int i = 0; i < len; i++) + fo.write('x'); + fo.close(); + + FileInputStream fi = new FileInputStream(f); + Reader rd = new InputStreamReader(fi, "US-ASCII"); + char[] cb = new char[MAX_LEN + 100]; + int n = rd.read(cb, 0, cb.length); + System.out.println(len + " : " + n); + if (len != n) + throw new Exception("Expected " + len + ", read " + n); + } + + public static void main(String[] args) throws Exception { + File f = File.createTempFile("foo", "bar"); + f.deleteOnExit(); + System.out.println(f); + + for (int i = 4; i <= MAX_LEN; i <<= 1) + test(f, i); + } + +} diff --git a/jdk/test/java/nio/charset/coders/IOCoders.java b/jdk/test/java/nio/charset/coders/IOCoders.java new file mode 100644 index 00000000000..f55eef1ff36 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/IOCoders.java @@ -0,0 +1,103 @@ +/* + * Copyright 2010 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 + * @summary Unit test for ISR/OSW constructors that take coders + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; + + +public class IOCoders { + + static Charset ascii = Charset.forName("US-ASCII"); + + static void isrPositive() throws Exception { + ByteArrayInputStream bis + = new ByteArrayInputStream(new byte[] { (byte)'h', (byte)'i' }); + InputStreamReader isr + = new InputStreamReader(bis, + ascii.newDecoder() + .onMalformedInput(CodingErrorAction.REPORT) + .onUnmappableCharacter(CodingErrorAction.REPORT)); + BufferedReader br = new BufferedReader(isr); + if (!br.readLine().equals("hi")) + throw new Exception(); + } + + static void isrNegative() throws Exception { + ByteArrayInputStream bis + = new ByteArrayInputStream(new byte[] { (byte)0xff, (byte)0xff }); + InputStreamReader isr + = new InputStreamReader(bis, + ascii.newDecoder() + .onMalformedInput(CodingErrorAction.REPORT) + .onUnmappableCharacter(CodingErrorAction.REPORT)); + BufferedReader br = new BufferedReader(isr); + try { + br.readLine(); + } catch (MalformedInputException x) { + return; + } + throw new Exception(); + } + + static void oswPositive() throws Exception { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + OutputStreamWriter osw + = new OutputStreamWriter(bos, + ascii.newEncoder() + .onMalformedInput(CodingErrorAction.REPORT) + .onUnmappableCharacter(CodingErrorAction.REPORT)); + osw.write("hi"); + osw.close(); + if (!ascii.decode(ByteBuffer.wrap(bos.toByteArray())) + .toString().equals("hi")) + throw new Exception(); + } + + static void oswNegative() throws Exception { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + OutputStreamWriter osw + = new OutputStreamWriter(bos, + ascii.newEncoder() + .onMalformedInput(CodingErrorAction.REPORT) + .onUnmappableCharacter(CodingErrorAction.REPORT)); + try { + osw.write("\u00A0\u00A1"); + } catch (UnmappableCharacterException x) { + return; + } + throw new Exception(); + } + + public static void main(String[] args) throws Exception { + isrPositive(); + isrNegative(); + oswPositive(); + oswNegative(); + } + +} diff --git a/jdk/test/java/nio/charset/coders/IsLegalReplacement.java b/jdk/test/java/nio/charset/coders/IsLegalReplacement.java new file mode 100644 index 00000000000..430d0fa6d70 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/IsLegalReplacement.java @@ -0,0 +1,93 @@ +/* + * Copyright 2010 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 4821286 + * @summary Check correctness of CharsetEncoder.isLegalReplacement(byte[]) + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; +import java.util.*; + + +public class IsLegalReplacement { + + static PrintStream out = System.err; + static int errors = 0; + + static String toString(byte[] ba) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < ba.length; i++) { + byte b = ba[i]; + if (i > 0) + sb.append(' '); + sb.append(Integer.toHexString((b >> 4) & 0xf)); + sb.append(Integer.toHexString((b >> 0) & 0xf)); + } + return sb.toString(); + } + + static CoderResult ilr(String csn, byte[] repl) { + CharsetDecoder dec = Charset.forName(csn).newDecoder(); + dec.onMalformedInput(CodingErrorAction.REPORT); + dec.onUnmappableCharacter(CodingErrorAction.REPORT); + ByteBuffer bb = ByteBuffer.wrap(repl); + CharBuffer cb = CharBuffer.allocate((int)(bb.remaining() + * dec.maxCharsPerByte())); + return dec.decode(bb, cb, true); + } + + static void test(String csn, byte[] repl, boolean expected) + throws Exception + { + CharsetEncoder enc = Charset.forName(csn).newEncoder(); + out.print(csn + ": " + toString(repl) + ": "); + if (enc.isLegalReplacement(repl) == expected) { + out.print("Okay"); + } else { + out.print("Wrong: Expected " + expected); + errors++; + } + out.println(" (" + ilr(csn, repl) + ")"); + } + + public static void main(String[] args) throws Exception { + + test("UTF-16", new byte [] { (byte)0xd8, 0, (byte)0xdc, 0 }, true); + test("UTF-16", new byte [] { (byte)0xdc, 0, (byte)0xd8, 0 }, false); + test("UTF-16", new byte [] { (byte)0xd8, 0 }, false); + test("UTF-16BE", new byte [] { (byte)0xd8, 0, (byte)0xdc, 0 }, true); + test("UTF-16BE", new byte [] { (byte)0xdc, 0, (byte)0xd8, 0 }, false); + test("UTF-16BE", new byte [] { (byte)0xd8, 0 }, false); + test("UTF-16LE", new byte [] { 0, (byte)0xd8, 0, (byte)0xdc }, true); + test("UTF-16LE", new byte [] { 0, (byte)0xdc, 0, (byte)0xd8 }, false); + test("UTF-16LE", new byte [] { 0, (byte)0xd8 }, false); + + if (errors > 0) + throw new Exception(errors + " error(s) occurred"); + + } + +} diff --git a/jdk/test/java/nio/charset/coders/ResetISO2022JP.java b/jdk/test/java/nio/charset/coders/ResetISO2022JP.java new file mode 100644 index 00000000000..8bafad526cd --- /dev/null +++ b/jdk/test/java/nio/charset/coders/ResetISO2022JP.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 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 6226510 + @summary Check that ISO-2022-JP's encoder correctly resets to ASCII mode + @author Martin Buchholz + */ + +import java.nio.*; +import java.nio.charset.*; + +public class ResetISO2022JP { + + public static void main(String[] args) throws Exception { + if (! (encode(true).equals(encode(false)))) + throw new Exception("Mismatch!"); + } + + static String encode(boolean reuseEncoder) { + String s = "\u3042\u3043\u3044"; + + CharsetEncoder e = Charset.forName("ISO-2022-JP").newEncoder(); + + if (reuseEncoder) { + // I'm turning japanese. Yes I'm turning japanese. Yes I think so! + e.encode(CharBuffer.wrap(s), ByteBuffer.allocate(64), true); + + // Should put encoder back into ASCII mode + e.reset(); + } + + ByteBuffer bb = ByteBuffer.allocate(64); + e.encode(CharBuffer.wrap(s), bb, true); + e.flush(bb); + bb.flip(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < bb.limit(); i++) + sb.append(String.format("%02x ", bb.get(i))); + System.out.println(sb); + return sb.toString(); + } +} diff --git a/jdk/test/java/nio/charset/coders/SJISPropTest.java b/jdk/test/java/nio/charset/coders/SJISPropTest.java new file mode 100644 index 00000000000..4d09c53561c --- /dev/null +++ b/jdk/test/java/nio/charset/coders/SJISPropTest.java @@ -0,0 +1,59 @@ +/* + * Copyright 2010 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. + */ + +/* + * + * + * Regression test class run by CheckSJISMappingProp.sh to verify + * that sun.nio.cs.map property is correctly interpreted in + * multibyte Japanese locales + * + */ + +public class SJISPropTest { + public static void main(String[] args) throws Exception { + boolean sjisIsMS932 = false; + + if (args[0].equals("MS932")) + sjisIsMS932 = true; + byte[] testBytes = { (byte)0x81, (byte)0x60 }; + + // JIS X based Shift_JIS and Windows-31J differ + // in a number of mappings including this one. + + String expectedMS932 = new String("\uFF5E"); + String expectedSJIS = new String("\u301C"); + + // Alias "shift_jis" will map to Windows-31J + // if the sun.nio.cs.map system property is defined as + // "Windows-31J/Shift_JIS". This should work in all + // multibyte (especially Japanese) locales. + + String s = new String(testBytes, "shift_jis"); + + if (sjisIsMS932 && !s.equals(expectedMS932)) + throw new Exception("not MS932"); + else if (!sjisIsMS932 && !s.equals(expectedSJIS)) + throw new Exception("not SJIS"); + } +} diff --git a/jdk/test/java/nio/charset/coders/StreamTimeout.java b/jdk/test/java/nio/charset/coders/StreamTimeout.java new file mode 100644 index 00000000000..a0ccfaced2f --- /dev/null +++ b/jdk/test/java/nio/charset/coders/StreamTimeout.java @@ -0,0 +1,137 @@ +/* + * Copyright 2010 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 4521942 + * @summary Ensure that InputStreamReaders work properly + * when the underlying byte stream times out + */ + +import java.net.*; +import java.io.*; + + +public class StreamTimeout { + + private static PrintStream log = System.err; + + private static String charset = "US-ASCII"; + + private static Object lock = new Object(); + private static synchronized void waitABit(int millisec) { + synchronized(lock) { + try { + lock.wait(millisec); + } catch (InterruptedException e) { + //ignore + } + } + } + + private static class Client extends Thread { + public void run() { + try { + Socket so = new Socket("127.0.0.1", 22222); + Writer wr = new OutputStreamWriter(so.getOutputStream(), + charset); + wr.write("ab"); + wr.flush(); + } catch (IOException x) { + log.print("Unexpected exception in writer: "); + x.printStackTrace(); + System.exit(1); + } + } + } + + private static void gobble(InputStream is, Reader rd, + int ec, boolean force) + throws Exception + { + int a = is.available(); + boolean r = rd.ready(); + log.print("" + a + " bytes available, " + + "reader " + (r ? "" : "not ") + "ready"); + if (!r && !force) { + log.println(); + return; + } + int c; + try { + c = rd.read(); + } catch (InterruptedIOException x) { + log.println(); + throw x; + } + log.println(", read() ==> " + + (c >= 0 ? ("'" + (char)c + "'" ): "EOF")); + if (c != ec) + throw new Exception("Incorrect value read: Expected " + + ec + ", read " + (char)c); + } + + public static void main(String[] args) throws Exception { + + if (args.length > 0) + charset = args[0]; + + ServerSocket ss = new ServerSocket(22222); + Thread cl = new Client(); + cl.start(); + Socket s = ss.accept(); + s.setSoTimeout(150); + InputStream is = s.getInputStream(); + Reader rd = new InputStreamReader(is, charset); + + while (is.available() <= 0) + Thread.yield(); + + gobble(is, rd, 'a', false); + gobble(is, rd, 'b', false); + gobble(is, rd, -1, false); + + boolean caught = false; + try { + gobble(is, rd, -1, true); + } catch (InterruptedIOException e) { + log.println("Read timed out, as expected"); + caught = true; + } + if (!caught) { + log.println("Read did not time out, test inapplicable"); + return; + } + + caught = false; + try { + gobble(is, rd, -1, true); + } catch (InterruptedIOException x) { + log.println("Second read timed out, as expected"); + caught = true; + } + if (!caught) + throw new Exception("Second read completed"); + + } + +} diff --git a/jdk/test/java/nio/charset/coders/Surrogate.java b/jdk/test/java/nio/charset/coders/Surrogate.java new file mode 100644 index 00000000000..a99828d1d0f --- /dev/null +++ b/jdk/test/java/nio/charset/coders/Surrogate.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 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. + */ + +public class Surrogate { + + public static final int UCS4_SURROGATE_MIN = 0x10000; + public static final int UCS4_MAX = (1 << 20) + UCS4_SURROGATE_MIN - 1; + + // UTF-16 surrogate-character ranges + // + public static final char MIN_HIGH = '\uD800'; + public static final char MAX_HIGH = '\uDBFF'; + public static final char MIN_LOW = '\uDC00'; + public static final char MAX_LOW = '\uDFFF'; + public static final char MIN = MIN_HIGH; + public static final char MAX = MAX_LOW; + + public static boolean neededFor(int uc) { + return (uc >= UCS4_SURROGATE_MIN) && (uc <= UCS4_MAX); + } + + public static boolean isHigh(int c) { + return (MIN_HIGH <= c) && (c <= MAX_HIGH); + } + + static char high(int uc) { + return (char)(0xd800 | (((uc - UCS4_SURROGATE_MIN) >> 10) & 0x3ff)); + } + + public static boolean isLow(int c) { + return (MIN_LOW <= c) && (c <= MAX_LOW); + } + + static char low(int uc) { + return (char)(0xdc00 | ((uc - UCS4_SURROGATE_MIN) & 0x3ff)); + } + + public static boolean is(int c) { + return (MIN <= c) && (c <= MAX); + } + + static int toUCS4(char c, char d) { + return (((c & 0x3ff) << 10) | (d & 0x3ff)) + 0x10000; + } + +} diff --git a/jdk/test/java/nio/charset/coders/Surrogates.java b/jdk/test/java/nio/charset/coders/Surrogates.java new file mode 100644 index 00000000000..ce776fbbabc --- /dev/null +++ b/jdk/test/java/nio/charset/coders/Surrogates.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010 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 + * @summary Check that array-crossing surrogate pairs are handled properly + */ + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; + + +public class Surrogates { + + static PrintStream log = System.err; + + static char[] input; + static byte[] output; + + static final int LEN = 128; + + static void initData() throws IOException { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < LEN; i++) { + int c = Surrogate.UCS4_SURROGATE_MIN + 1; + sb.append(Surrogate.high(c)); + sb.append(Surrogate.low(c)); + } + input = sb.toString().toCharArray(); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + OutputStreamWriter osw + = new OutputStreamWriter(bos, Charset.forName("UTF-8")); + osw.write(input); + osw.close(); + output = bos.toByteArray(); + } + + static void testLeftovers(boolean doMalformed) + throws Exception + { + log.print("Leftover surrogates, doMalformed = " + doMalformed); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + OutputStreamWriter osw + = new OutputStreamWriter(bos, Charset.forName("UTF-8")); + for (int i = 0; i < input.length; i += 7) + osw.write(input, i, Math.min(input.length - i, 7)); + if (doMalformed) + osw.write(input, 0, 1); + osw.close(); + byte[] result = bos.toByteArray(); + + // Ignore a trailing '?' if we wrote a malformed final surrogate + int rl = result.length + (doMalformed ? -1 : 0); + + if (rl != output.length) + throw new Exception("Incorrect result length " + + rl + ", expected " + output.length); + for (int i = 0; i < output.length; i++) + if (result[i] != output[i]) + throw new Exception("Unexpected result value at index " + i); + log.println(": Passed"); + } + + public static void main(String[] args) throws Exception { + initData(); + testLeftovers(false); + testLeftovers(true); + } + +} diff --git a/jdk/test/java/nio/charset/coders/Util.java b/jdk/test/java/nio/charset/coders/Util.java new file mode 100644 index 00000000000..7e2128ff55f --- /dev/null +++ b/jdk/test/java/nio/charset/coders/Util.java @@ -0,0 +1,114 @@ +/* + * Copyright 2010 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. + */ + + +public class Util { + + private Util() { } + + // Returns -1 if equal, o.w. returns index of first difference + // + public static int cmp(byte[] ba, byte[] bb) { + int n = Math.min(ba.length, bb.length); + for (int i = 0; i < n; i++) { + if ((i >= ba.length) || (i >= bb.length)) + return i; + if (ba[i] != bb[i]) + return i; + } + if (ba.length != bb.length) + return 0; + return -1; + } + + // Returns -1 if equal, o.w. returns index of first difference + // + public static int cmp(char[] ca, char[] cb) { + int n = Math.min(ca.length, cb.length); + for (int i = 0; i < n; i++) { + if ((i >= ca.length) || (i >= cb.length)) + return i; + if (ca[i] != cb[i]) + return i; + } + if (ca.length != cb.length) + return 0; + return -1; + } + + public static String toString(byte[] ba, int off, int len) { + StringBuffer sb = new StringBuffer(); + for (int i = off; i < off + len; i++) { + int c = ba[i]; + if (c == '\\') { + sb.append("\\\\"); + continue; + } + if ((c >= ' ') && (c < 0x7f)) { + sb.append((char)c); + continue; + } + sb.append("\\x"); + sb.append(Integer.toHexString(c & 0xff)); + } + return sb.toString(); + } + + public static String toString(byte[] ba) { + return toString(ba, 0, ba.length); + } + + public static String toString(char[] ca, int off, int len) { + StringBuffer sb = new StringBuffer(); + for (int i = off; i < off + len; i++) { + char c = ca[i]; + if (c == '\\') { + sb.append("\\\\"); + continue; + } + if ((c >= ' ') && (c < 0x7f)) { + sb.append(c); + continue; + } + sb.append("\\u"); + String s = Integer.toHexString(c); + while (s.length() < 4) + s = "0" + s; + sb.append(s); + } + return sb.toString(); + } + + public static String toString(char[] ca) { + return toString(ca, 0, ca.length); + } + + public static String toString(String s) { + return toString(s.toCharArray()); + } + + public static String toString(char c) { + return toString(new char[]{ c }); + } + +} diff --git a/jdk/test/java/nio/charset/coders/ref.shift_jis b/jdk/test/java/nio/charset/coders/ref.shift_jis new file mode 100644 index 00000000000..0bca6c5a9f5 --- /dev/null +++ b/jdk/test/java/nio/charset/coders/ref.shift_jis @@ -0,0 +1,7072 @@ +0 00 +1 01 +2 02 +3 03 +4 04 +5 05 +6 06 +7 07 +8 08 +9 09 +a 0a +b 0b +c 0c +d 0d +e 0e +f 0f +10 10 +11 11 +12 12 +13 13 +14 14 +15 15 +16 16 +17 17 +18 18 +19 19 +1a 1a +1b 1b +1c 1c +1d 1d +1e 1e +1f 1f +20 20 +21 21 +22 22 +23 23 +24 24 +25 25 +26 26 +27 27 +28 28 +29 29 +2a 2a +2b 2b +2c 2c +2d 2d +2e 2e +2f 2f +30 30 +31 31 +32 32 +33 33 +34 34 +35 35 +36 36 +37 37 +38 38 +39 39 +3a 3a +3b 3b +3c 3c +3d 3d +3e 3e +3f 3f +40 40 +41 41 +42 42 +43 43 +44 44 +45 45 +46 46 +47 47 +48 48 +49 49 +4a 4a +4b 4b +4c 4c +4d 4d +4e 4e +4f 4f +50 50 +51 51 +52 52 +53 53 +54 54 +55 55 +56 56 +57 57 +58 58 +59 59 +5a 5a +5b 5b +5c 5c +5d 5d +5e 5e +5f 5f +60 60 +61 61 +62 62 +63 63 +64 64 +65 65 +66 66 +67 67 +68 68 +69 69 +6a 6a +6b 6b +6c 6c +6d 6d +6e 6e +6f 6f +70 70 +71 71 +72 72 +73 73 +74 74 +75 75 +76 76 +77 77 +78 78 +79 79 +7a 7a +7b 7b +7c 7c +7d 7d +7e 7e +7f 7f +a2 8191 +a3 8192 +#a5 5c +a7 8198 +a8 814e +ac 81ca +b0 818b +b1 817d +b4 814c +b6 81f7 +d7 817e +f7 8180 +391 839f +392 83a0 +393 83a1 +394 83a2 +395 83a3 +396 83a4 +397 83a5 +398 83a6 +399 83a7 +39a 83a8 +39b 83a9 +39c 83aa +39d 83ab +39e 83ac +39f 83ad +3a0 83ae +3a1 83af +3a3 83b0 +3a4 83b1 +3a5 83b2 +3a6 83b3 +3a7 83b4 +3a8 83b5 +3a9 83b6 +3b1 83bf +3b2 83c0 +3b3 83c1 +3b4 83c2 +3b5 83c3 +3b6 83c4 +3b7 83c5 +3b8 83c6 +3b9 83c7 +3ba 83c8 +3bb 83c9 +3bc 83ca +3bd 83cb +3be 83cc +3bf 83cd +3c0 83ce +3c1 83cf +3c3 83d0 +3c4 83d1 +3c5 83d2 +3c6 83d3 +3c7 83d4 +3c8 83d5 +3c9 83d6 +401 8446 +410 8440 +411 8441 +412 8442 +413 8443 +414 8444 +415 8445 +416 8447 +417 8448 +418 8449 +419 844a +41a 844b +41b 844c +41c 844d +41d 844e +41e 844f +41f 8450 +420 8451 +421 8452 +422 8453 +423 8454 +424 8455 +425 8456 +426 8457 +427 8458 +428 8459 +429 845a +42a 845b +42b 845c +42c 845d +42d 845e +42e 845f +42f 8460 +430 8470 +431 8471 +432 8472 +433 8473 +434 8474 +435 8475 +436 8477 +437 8478 +438 8479 +439 847a +43a 847b +43b 847c +43c 847d +43d 847e +43e 8480 +43f 8481 +440 8482 +441 8483 +442 8484 +443 8485 +444 8486 +445 8487 +446 8488 +447 8489 +448 848a +449 848b +44a 848c +44b 848d +44c 848e +44d 848f +44e 8490 +44f 8491 +451 8476 +2010 815d +2014 815c +2016 8161 +2018 8165 +2019 8166 +201c 8167 +201d 8168 +2020 81f5 +2021 81f6 +2025 8164 +2026 8163 +2030 81f1 +2032 818c +2033 818d +203b 81a6 +#203e 7e +2103 818e +212b 81f0 +2190 81a9 +2191 81aa +2192 81a8 +2193 81ab +21d2 81cb +21d4 81cc +2200 81cd +2202 81dd +2203 81ce +2207 81de +2208 81b8 +220b 81b9 +2212 817c +221a 81e3 +221d 81e5 +221e 8187 +2220 81da +2227 81c8 +2228 81c9 +2229 81bf +222a 81be +222b 81e7 +222c 81e8 +2234 8188 +2235 81e6 +223d 81e4 +2252 81e0 +2260 8182 +2261 81df +2266 8185 +2267 8186 +226a 81e1 +226b 81e2 +2282 81bc +2283 81bd +2286 81ba +2287 81bb +22a5 81db +2312 81dc +2500 849f +2501 84aa +2502 84a0 +2503 84ab +250c 84a1 +250f 84ac +2510 84a2 +2513 84ad +2514 84a4 +2517 84af +2518 84a3 +251b 84ae +251c 84a5 +251d 84ba +2520 84b5 +2523 84b0 +2524 84a7 +2525 84bc +2528 84b7 +252b 84b2 +252c 84a6 +252f 84b6 +2530 84bb +2533 84b1 +2534 84a8 +2537 84b8 +2538 84bd +253b 84b3 +253c 84a9 +253f 84b9 +2542 84be +254b 84b4 +25a0 81a1 +25a1 81a0 +25b2 81a3 +25b3 81a2 +25bc 81a5 +25bd 81a4 +25c6 819f +25c7 819e +25cb 819b +25ce 819d +25cf 819c +25ef 81fc +2605 819a +2606 8199 +2640 818a +2642 8189 +266a 81f4 +266d 81f3 +266f 81f2 +3000 8140 +3001 8141 +3002 8142 +3003 8156 +3005 8158 +3006 8159 +3007 815a +3008 8171 +3009 8172 +300a 8173 +300b 8174 +300c 8175 +300d 8176 +300e 8177 +300f 8178 +3010 8179 +3011 817a +3012 81a7 +3013 81ac +3014 816b +3015 816c +301c 8160 +3041 829f +3042 82a0 +3043 82a1 +3044 82a2 +3045 82a3 +3046 82a4 +3047 82a5 +3048 82a6 +3049 82a7 +304a 82a8 +304b 82a9 +304c 82aa +304d 82ab +304e 82ac +304f 82ad +3050 82ae +3051 82af +3052 82b0 +3053 82b1 +3054 82b2 +3055 82b3 +3056 82b4 +3057 82b5 +3058 82b6 +3059 82b7 +305a 82b8 +305b 82b9 +305c 82ba +305d 82bb +305e 82bc +305f 82bd +3060 82be +3061 82bf +3062 82c0 +3063 82c1 +3064 82c2 +3065 82c3 +3066 82c4 +3067 82c5 +3068 82c6 +3069 82c7 +306a 82c8 +306b 82c9 +306c 82ca +306d 82cb +306e 82cc +306f 82cd +3070 82ce +3071 82cf +3072 82d0 +3073 82d1 +3074 82d2 +3075 82d3 +3076 82d4 +3077 82d5 +3078 82d6 +3079 82d7 +307a 82d8 +307b 82d9 +307c 82da +307d 82db +307e 82dc +307f 82dd +3080 82de +3081 82df +3082 82e0 +3083 82e1 +3084 82e2 +3085 82e3 +3086 82e4 +3087 82e5 +3088 82e6 +3089 82e7 +308a 82e8 +308b 82e9 +308c 82ea +308d 82eb +308e 82ec +308f 82ed +3090 82ee +3091 82ef +3092 82f0 +3093 82f1 +309b 814a +309c 814b +309d 8154 +309e 8155 +30a1 8340 +30a2 8341 +30a3 8342 +30a4 8343 +30a5 8344 +30a6 8345 +30a7 8346 +30a8 8347 +30a9 8348 +30aa 8349 +30ab 834a +30ac 834b +30ad 834c +30ae 834d +30af 834e +30b0 834f +30b1 8350 +30b2 8351 +30b3 8352 +30b4 8353 +30b5 8354 +30b6 8355 +30b7 8356 +30b8 8357 +30b9 8358 +30ba 8359 +30bb 835a +30bc 835b +30bd 835c +30be 835d +30bf 835e +30c0 835f +30c1 8360 +30c2 8361 +30c3 8362 +30c4 8363 +30c5 8364 +30c6 8365 +30c7 8366 +30c8 8367 +30c9 8368 +30ca 8369 +30cb 836a +30cc 836b +30cd 836c +30ce 836d +30cf 836e +30d0 836f +30d1 8370 +30d2 8371 +30d3 8372 +30d4 8373 +30d5 8374 +30d6 8375 +30d7 8376 +30d8 8377 +30d9 8378 +30da 8379 +30db 837a +30dc 837b +30dd 837c +30de 837d +30df 837e +30e0 8380 +30e1 8381 +30e2 8382 +30e3 8383 +30e4 8384 +30e5 8385 +30e6 8386 +30e7 8387 +30e8 8388 +30e9 8389 +30ea 838a +30eb 838b +30ec 838c +30ed 838d +30ee 838e +30ef 838f +30f0 8390 +30f1 8391 +30f2 8392 +30f3 8393 +30f4 8394 +30f5 8395 +30f6 8396 +30fb 8145 +30fc 815b +30fd 8152 +30fe 8153 +4e00 88ea +4e01 929a +4e03 8eb5 +4e07 969c +4e08 8fe4 +4e09 8e4f +4e0a 8fe3 +4e0b 89ba +4e0d 9573 +4e0e 975e +4e10 98a0 +4e11 894e +4e14 8a8e +4e15 98a1 +4e16 90a2 +4e17 99c0 +4e18 8b75 +4e19 95b8 +4e1e 8fe5 +4e21 97bc +4e26 95c0 +4e2a 98a2 +4e2d 9286 +4e31 98a3 +4e32 8bf8 +4e36 98a4 +4e38 8adb +4e39 924f +4e3b 8ee5 +4e3c 98a5 +4e3f 98a6 +4e42 98a7 +4e43 9454 +4e45 8b76 +4e4b 9456 +4e4d 93e1 +4e4e 8cc1 +4e4f 9652 +4e55 e568 +4e56 98a8 +4e57 8fe6 +4e58 98a9 +4e59 89b3 +4e5d 8be3 +4e5e 8cee +4e5f 96e7 +4e62 9ba4 +4e71 9790 +4e73 93fb +4e7e 8aa3 +4e80 8b54 +4e82 98aa +4e85 98ab +4e86 97b9 +4e88 975c +4e89 9188 +4e8a 98ad +4e8b 8e96 +4e8c 93f1 +4e8e 98b0 +4e91 895d +4e92 8cdd +4e94 8cdc +4e95 88e4 +4e98 986a +4e99 9869 +4e9b 8db1 +4e9c 889f +4e9e 98b1 +4e9f 98b2 +4ea0 98b3 +4ea1 9653 +4ea2 98b4 +4ea4 8cf0 +4ea5 88e5 +4ea6 9692 +4ea8 8b9c +4eab 8b9d +4eac 8b9e +4ead 92e0 +4eae 97ba +4eb0 98b5 +4eb3 98b6 +4eb6 98b7 +4eba 906c +4ec0 8f59 +4ec1 906d +4ec2 98bc +4ec4 98ba +4ec6 98bb +4ec7 8b77 +4eca 8da1 +4ecb 89ee +4ecd 98b9 +4ece 98b8 +4ecf 95a7 +4ed4 8e65 +4ed5 8e64 +4ed6 91bc +4ed7 98bd +4ed8 9574 +4ed9 90e5 +4edd 8157 +4ede 98be +4edf 98c0 +4ee3 91e3 +4ee4 97df +4ee5 88c8 +4eed 98bf +4eee 89bc +4ef0 8bc2 +4ef2 9287 +4ef6 8c8f +4ef7 98c1 +4efb 9443 +4f01 8ae9 +4f09 98c2 +4f0a 88c9 +4f0d 8cde +4f0e 8aea +4f0f 959a +4f10 94b0 +4f11 8b78 +4f1a 89ef +4f1c 98e5 +4f1d 9360 +4f2f 948c +4f30 98c4 +4f34 94ba +4f36 97e0 +4f38 904c +4f3a 8e66 +4f3c 8e97 +4f3d 89be +4f43 92cf +4f46 9241 +4f47 98c8 +4f4d 88ca +4f4e 92e1 +4f4f 8f5a +4f50 8db2 +4f51 9743 +4f53 91cc +4f55 89bd +4f57 98c7 +4f59 975d +4f5a 98c3 +4f5b 98c5 +4f5c 8dec +4f5d 98c6 +4f5e 9b43 +4f69 98ce +4f6f 98d1 +4f70 98cf +4f73 89c0 +4f75 95b9 +4f76 98c9 +4f7b 98cd +4f7c 8cf1 +4f7f 8e67 +4f83 8aa4 +4f86 98d2 +4f88 98ca +4f8b 97e1 +4f8d 8e98 +4f8f 98cb +4f91 98d0 +4f96 98d3 +4f98 98cc +4f9b 8b9f +4f9d 88cb +4fa0 8ba0 +4fa1 89bf +4fab 9b44 +4fad 9699 +4fae 958e +4faf 8cf2 +4fb5 904e +4fb6 97b5 +4fbf 95d6 +4fc2 8c57 +4fc3 91a3 +4fc4 89e2 +4fca 8f72 +4fce 98d7 +4fd0 98dc +4fd1 98da +4fd4 98d5 +4fd7 91ad +4fd8 98d8 +4fda 98db +4fdb 98d9 +4fdd 95db +4fdf 98d6 +4fe1 904d +4fe3 9693 +4fe4 98dd +4fe5 98de +4fee 8f43 +4fef 98eb +4ff3 946f +4ff5 9555 +4ff6 98e6 +4ff8 95ee +4ffa 89b4 +4ffe 98ea +5005 98e4 +5006 98ed +5009 9171 +500b 8cc2 +500d 947b +500f e0c5 +5011 98ec +5012 937c +5014 98e1 +5016 8cf4 +5019 8cf3 +501a 98df +501f 8ed8 +5021 98e7 +5023 95ed +5024 926c +5025 98e3 +5026 8c91 +5028 98e0 +5029 98e8 +502a 98e2 +502b 97cf +502c 98e9 +502d 9860 +5036 8be4 +5039 8c90 +5043 98ee +5047 98ef +5048 98f3 +5049 88cc +504f 95ce +5050 98f2 +5055 98f1 +5056 98f5 +505a 98f4 +505c 92e2 +5065 8c92 +506c 98f6 +5072 8ec3 +5074 91a4 +5075 92e3 +5076 8bf4 +5078 98f7 +507d 8b55 +5080 98f8 +5085 98fa +508d 9654 +5091 8c86 +5098 8e50 +5099 94f5 +509a 98f9 +50ac 8dc3 +50ad 9762 +50b2 98fc +50b3 9942 +50b4 98fb +50b5 8dc2 +50b7 8f9d +50be 8c58 +50c2 9943 +50c5 8bcd +50c9 9940 +50ca 9941 +50cd 93ad +50cf 919c +50d1 8ba1 +50d5 966c +50d6 9944 +50da 97bb +50de 9945 +50e3 9948 +50e5 9946 +50e7 916d +50ed 9947 +50ee 9949 +50f5 994b +50f9 994a +50fb 95c6 +5100 8b56 +5101 994d +5102 994e +5104 89ad +5109 994c +5112 8ef2 +5114 9951 +5115 9950 +5116 994f +5118 98d4 +511a 9952 +511f 8f9e +5121 9953 +512a 9744 +5132 96d7 +5137 9955 +513a 9954 +513b 9957 +513c 9956 +513f 9958 +5140 9959 +5141 88f2 +5143 8cb3 +5144 8c5a +5145 8f5b +5146 929b +5147 8ba2 +5148 90e6 +5149 8cf5 +514b 8d8e +514c 995b +514d 96c6 +514e 9365 +5150 8e99 +5152 995a +5154 995c +515a 937d +515c 8a95 +5162 995d +5165 93fc +5168 9153 +5169 995f +516a 9960 +516b 94aa +516c 8cf6 +516d 985a +516e 9961 +5171 8ba4 +5175 95ba +5176 91b4 +5177 8bef +5178 9354 +517c 8c93 +5180 9962 +5182 9963 +5185 93e0 +5186 897e +5189 9966 +518a 8dfb +518c 9965 +518d 8dc4 +518f 9967 +5190 e3ec +5191 9968 +5192 9660 +5193 9969 +5195 996a +5196 996b +5197 8fe7 +5199 8eca +51a0 8aa5 +51a2 996e +51a4 996c +51a5 96bb +51a6 996d +51a8 9579 +51a9 996f +51aa 9970 +51ab 9971 +51ac 937e +51b0 9975 +51b1 9973 +51b2 9974 +51b3 9972 +51b4 8de1 +51b5 9976 +51b6 96e8 +51b7 97e2 +51bd 9977 +51c4 90a6 +51c5 9978 +51c6 8f79 +51c9 9979 +51cb 929c +51cc 97bd +51cd 9380 +51d6 99c3 +51db 997a +51dc eaa3 +51dd 8bc3 +51e0 997b +51e1 967d +51e6 8f88 +51e7 91fa +51e9 997d +51ea 93e2 +51ed 997e +51f0 9980 +51f1 8a4d +51f5 9981 +51f6 8ba5 +51f8 93ca +51f9 899a +51fa 8f6f +51fd 949f +51fe 9982 +5200 9381 +5203 906e +5204 9983 +5206 95aa +5207 90d8 +5208 8aa0 +520a 8aa7 +520b 9984 +520e 9986 +5211 8c59 +5214 9985 +5217 97f1 +521d 8f89 +5224 94bb +5225 95ca +5227 9987 +5229 9798 +522a 9988 +522e 9989 +5230 939e +5233 998a +5236 90a7 +5237 8dfc +5238 8c94 +5239 998b +523a 8e68 +523b 8d8f +5243 92e4 +5244 998d +5247 91a5 +524a 8ded +524b 998e +524c 998f +524d 914f +524f 998c +5254 9991 +5256 9655 +525b 8d84 +525e 9990 +5263 8c95 +5264 8ddc +5265 948d +5269 9994 +526a 9992 +526f 959b +5270 8fe8 +5271 999b +5272 8a84 +5273 9995 +5274 9993 +5275 916e +527d 9997 +527f 9996 +5283 8a63 +5287 8c80 +5288 999c +5289 97ab +528d 9998 +5291 999d +5292 999a +5294 9999 +529b 97cd +529f 8cf7 +52a0 89c1 +52a3 97f2 +52a9 8f95 +52aa 9377 +52ab 8d85 +52ac 99a0 +52ad 99a1 +52b1 97e3 +52b4 984a +52b5 99a3 +52b9 8cf8 +52bc 99a2 +52be 8a4e +52c1 99a4 +52c3 9675 +52c5 92ba +52c7 9745 +52c9 95d7 +52cd 99a5 +52d2 e8d3 +52d5 93ae +52d7 99a6 +52d8 8aa8 +52d9 96b1 +52dd 8f9f +52de 99a7 +52df 95e5 +52e0 99ab +52e2 90a8 +52e3 99a8 +52e4 8bce +52e6 99a9 +52e7 8aa9 +52f2 8c4d +52f3 99ac +52f5 99ad +52f8 99ae +52f9 99af +52fa 8ed9 +52fe 8cf9 +52ff 96dc +5301 96e6 +5302 93f5 +5305 95ef +5306 99b0 +5308 99b1 +530d 99b3 +530f 99b5 +5310 99b4 +5315 99b6 +5316 89bb +5317 966b +5319 8dfa +531a 99b7 +531d 9178 +5320 8fa0 +5321 8ba7 +5323 99b8 +532a 94d9 +532f 99b9 +5331 99ba +5333 99bb +5338 99bc +5339 9543 +533a 8be6 +533b 88e3 +533f 93bd +5340 99bd +5341 8f5c +5343 90e7 +5345 99bf +5346 99be +5347 8fa1 +5348 8cdf +5349 99c1 +534a 94bc +534d 99c2 +5351 94da +5352 91b2 +5353 91ec +5354 8ba6 +5357 93ec +5358 9250 +535a 948e +535c 966d +535e 99c4 +5360 90e8 +5366 8c54 +5369 99c5 +536e 99c6 +536f 894b +5370 88f3 +5371 8aeb +5373 91a6 +5374 8b70 +5375 9791 +5377 99c9 +5378 89b5 +537b 99c8 +537f 8ba8 +5382 99ca +5384 96ef +5396 99cb +5398 97d0 +539a 8cfa +539f 8cb4 +53a0 99cc +53a5 99ce +53a6 99cd +53a8 907e +53a9 8958 +53ad 897d +53ae 99cf +53b0 99d0 +53b3 8cb5 +53b6 99d1 +53bb 8b8e +53c2 8e51 +53c3 99d2 +53c8 9694 +53c9 8db3 +53ca 8b79 +53cb 9746 +53cc 916f +53cd 94bd +53ce 8efb +53d4 8f66 +53d6 8ee6 +53d7 8ef3 +53d9 8f96 +53db 94be +53df 99d5 +53e1 8962 +53e2 9170 +53e3 8cfb +53e4 8cc3 +53e5 8be5 +53e8 99d9 +53e9 9240 +53ea 91fc +53eb 8ba9 +53ec 8fa2 +53ed 99da +53ee 99d8 +53ef 89c2 +53f0 91e4 +53f1 8eb6 +53f2 8e6a +53f3 8945 +53f6 8a90 +53f7 8d86 +53f8 8e69 +53fa 99db +5401 99dc +5403 8b68 +5404 8a65 +5408 8d87 +5409 8b67 +540a 92dd +540b 8944 +540c 93af +540d 96bc +540e 8d40 +540f 9799 +5410 9366 +5411 8cfc +541b 8c4e +541d 99e5 +541f 8be1 +5420 9669 +5426 94db +5429 99e4 +542b 8adc +542c 99df +542d 99e0 +542e 99e2 +5436 99e3 +5438 8b7a +5439 9081 +543b 95ab +543c 99e1 +543d 99dd +543e 8ce1 +5440 99de +5442 9843 +5446 95f0 +5448 92e6 +5449 8ce0 +544a 8d90 +544e 99e6 +5451 93db +545f 99ea +5468 8efc +546a 8ef4 +5470 99ed +5471 99eb +5473 96a1 +5475 99e8 +5476 99f1 +5477 99ec +547b 99ef +547c 8cc4 +547d 96bd +5480 99f0 +5484 99f2 +5486 99f4 +548b 8dee +548c 9861 +548e 99e9 +548f 99e7 +5490 99f3 +5492 99ee +54a2 99f6 +54a4 9a42 +54a5 99f8 +54a8 99fc +54ab 9a40 +54ac 99f9 +54af 9a5d +54b2 8de7 +54b3 8a50 +54b8 99f7 +54bc 9a44 +54bd 88f4 +54be 9a43 +54c0 88a3 +54c1 9569 +54c2 9a41 +54c4 99fa +54c7 99f5 +54c8 99fb +54c9 8dc6 +54d8 9a45 +54e1 88f5 +54e2 9a4e +54e5 9a46 +54e6 9a47 +54e8 8fa3 +54e9 9689 +54ed 9a4c +54ee 9a4b +54f2 934e +54fa 9a4d +54fd 9a4a +5504 8953 +5506 8db4 +5507 904f +550f 9a48 +5510 9382 +5514 9a49 +5516 88a0 +552e 9a53 +552f 9742 +5531 8fa5 +5533 9a59 +5538 9a58 +5539 9a4f +553e 91c1 +5540 9a50 +5544 91ed +5545 9a55 +5546 8fa4 +554c 9a52 +554f 96e2 +5553 8c5b +5556 9a56 +5557 9a57 +555c 9a54 +555d 9a5a +5563 9a51 +557b 9a60 +557c 9a65 +557e 9a61 +5580 9a5c +5583 9a66 +5584 9150 +5587 9a68 +5589 8d41 +558a 9a5e +558b 929d +5598 9a62 +5599 9a5b +559a 8aab +559c 8aec +559d 8a85 +559e 9a63 +559f 9a5f +55a7 8c96 +55a8 9a69 +55a9 9a67 +55aa 9172 +55ab 8b69 +55ac 8baa +55ae 9a64 +55b0 8bf2 +55b6 8963 +55c4 9a6d +55c5 9a6b +55c7 9aa5 +55d4 9a70 +55da 9a6a +55dc 9a6e +55df 9a6c +55e3 8e6b +55e4 9a6f +55f7 9a72 +55f9 9a77 +55fd 9a75 +55fe 9a74 +5606 9251 +5609 89c3 +5614 9a71 +5616 9a73 +5617 8fa6 +5618 8952 +561b 9a76 +5629 89dc +562f 9a82 +5631 8ffa +5632 9a7d +5634 9a7b +5636 9a7c +5638 9a7e +5642 895c +564c 9158 +564e 9a78 +5650 9a79 +565b 8a9a +5664 9a81 +5668 8aed +566a 9a84 +566b 9a80 +566c 9a83 +5674 95ac +5678 93d3 +567a 94b6 +5680 9a86 +5686 9a85 +5687 8a64 +568a 9a87 +568f 9a8a +5694 9a89 +56a0 9a88 +56a2 9458 +56a5 9a8b +56ae 9a8c +56b4 9a8e +56b6 9a8d +56bc 9a90 +56c0 9a93 +56c1 9a91 +56c2 9a8f +56c3 9a92 +56c8 9a94 +56ce 9a95 +56d1 9a96 +56d3 9a97 +56d7 9a98 +56d8 9964 +56da 8efa +56db 8e6c +56de 89f1 +56e0 88f6 +56e3 9263 +56ee 9a99 +56f0 8da2 +56f2 88cd +56f3 907d +56f9 9a9a +56fa 8cc5 +56fd 8d91 +56ff 9a9c +5700 9a9b +5703 95de +5704 9a9d +5708 9a9f +5709 9a9e +570b 9aa0 +570d 9aa1 +570f 8c97 +5712 8980 +5713 9aa2 +5716 9aa4 +5718 9aa3 +571c 9aa6 +571f 9379 +5726 9aa7 +5727 88b3 +5728 8ddd +572d 8c5c +5730 926e +5737 9aa8 +5738 9aa9 +573b 9aab +5740 9aac +5742 8de2 +5747 8bcf +574a 9656 +574e 9aaa +574f 9aad +5750 8dbf +5751 8d42 +5761 9ab1 +5764 8da3 +5766 9252 +5769 9aae +576a 92d8 +577f 9ab2 +5782 9082 +5788 9ab0 +5789 9ab3 +578b 8c5e +5793 9ab4 +57a0 9ab5 +57a2 8d43 +57a3 8a5f +57a4 9ab7 +57aa 9ab8 +57b0 9ab9 +57b3 9ab6 +57c0 9aaf +57c3 9aba +57c6 9abb +57cb 9684 +57ce 8fe9 +57d2 9abd +57d3 9abe +57d4 9abc +57d6 9ac0 +57dc 9457 +57df 88e6 +57e0 9575 +57e3 9ac1 +57f4 8ffb +57f7 8eb7 +57f9 947c +57fa 8aee +57fc 8de9 +5800 9678 +5802 93b0 +5805 8c98 +5806 91cd +580a 9abf +580b 9ac2 +5815 91c2 +5819 9ac3 +581d 9ac4 +5821 9ac6 +5824 92e7 +582a 8aac +582f ea9f +5830 8981 +5831 95f1 +5834 8fea +5835 9367 +583a 8de4 +583d 9acc +5840 95bb +5841 97db +584a 89f2 +584b 9ac8 +5851 9159 +5852 9acb +5854 9383 +5857 9368 +5858 9384 +5859 94b7 +585a 92cb +585e 8dc7 +5862 9ac7 +5869 8996 +586b 9355 +5870 9ac9 +5872 9ac5 +5875 906f +5879 9acd +587e 8f6d +5883 8bab +5885 9ace +5893 95e6 +5897 919d +589c 92c4 +589f 9ad0 +58a8 966e +58ab 9ad1 +58ae 9ad6 +58b3 95ad +58b8 9ad5 +58b9 9acf +58ba 9ad2 +58bb 9ad4 +58be 8da4 +58c1 95c7 +58c5 9ad7 +58c7 9264 +58ca 89f3 +58cc 8feb +58d1 9ad9 +58d3 9ad8 +58d5 8d88 +58d7 9ada +58d8 9adc +58d9 9adb +58dc 9ade +58de 9ad3 +58df 9ae0 +58e4 9adf +58e5 9add +58eb 8e6d +58ec 9070 +58ee 9173 +58ef 9ae1 +58f0 90ba +58f1 88eb +58f2 9484 +58f7 92d9 +58f9 9ae3 +58fa 9ae2 +58fb 9ae4 +58fc 9ae5 +58fd 9ae6 +5902 9ae7 +5909 95cf +590a 9ae8 +590f 89c4 +5910 9ae9 +5915 975b +5916 8a4f +5918 99c7 +5919 8f67 +591a 91bd +591b 9aea +591c 96e9 +5922 96b2 +5925 9aec +5927 91e5 +5929 9356 +592a 91be +592b 9576 +592c 9aed +592d 9aee +592e 899b +5931 8eb8 +5932 9aef +5937 88ce +5938 9af0 +593e 9af1 +5944 8982 +5947 8aef +5948 93de +5949 95f2 +594e 9af5 +594f 9174 +5950 9af4 +5951 8c5f +5954 967a +5955 9af3 +5957 9385 +5958 9af7 +595a 9af6 +5960 9af9 +5962 9af8 +5965 899c +5967 9afa +5968 8fa7 +5969 9afc +596a 9244 +596c 9afb +596e 95b1 +5973 8f97 +5974 937a +5978 9b40 +597d 8d44 +5981 9b41 +5982 9440 +5983 94dc +5984 96cf +598a 9444 +598d 9b4a +5993 8b57 +5996 9764 +5999 96ad +599b 9baa +599d 9b42 +59a3 9b45 +59a5 91c3 +59a8 9657 +59ac 9369 +59b2 9b46 +59b9 9685 +59bb 8dc8 +59be 8fa8 +59c6 9b47 +59c9 8e6f +59cb 8e6e +59d0 88b7 +59d1 8cc6 +59d3 90a9 +59d4 88cf +59d9 9b4b +59da 9b4c +59dc 9b49 +59e5 8957 +59e6 8aad +59e8 9b48 +59ea 96c3 +59eb 9550 +59f6 88a6 +59fb 88f7 +59ff 8e70 +5a01 88d0 +5a03 88a1 +5a09 9b51 +5a11 9b4f +5a18 96ba +5a1a 9b52 +5a1c 9b50 +5a1f 9b4e +5a20 9050 +5a25 9b4d +5a29 95d8 +5a2f 8ce2 +5a35 9b56 +5a36 9b57 +5a3c 8fa9 +5a40 9b53 +5a41 984b +5a46 946b +5a49 9b55 +5a5a 8da5 +5a62 9b58 +5a66 9577 +5a6a 9b59 +5a6c 9b54 +5a7f 96b9 +5a92 947d +5a9a 9b5a +5a9b 9551 +5abc 9b5b +5abd 9b5f +5abe 9b5c +5ac1 89c5 +5ac2 9b5e +5ac9 8eb9 +5acb 9b5d +5acc 8c99 +5ad0 9b6b +5ad6 9b64 +5ad7 9b61 +5ae1 9284 +5ae3 9b60 +5ae6 9b62 +5ae9 9b63 +5afa 9b65 +5afb 9b66 +5b09 8af0 +5b0b 9b68 +5b0c 9b67 +5b16 9b69 +5b22 8fec +5b2a 9b6c +5b2c 92da +5b30 8964 +5b32 9b6a +5b36 9b6d +5b3e 9b6e +5b40 9b71 +5b43 9b6f +5b45 9b70 +5b50 8e71 +5b51 9b72 +5b54 8d45 +5b55 9b73 +5b57 8e9a +5b58 91b6 +5b5a 9b74 +5b5b 9b75 +5b5c 8e79 +5b5d 8d46 +5b5f 96d0 +5b63 8b47 +5b64 8cc7 +5b65 9b76 +5b66 8a77 +5b69 9b77 +5b6b 91b7 +5b70 9b78 +5b71 9ba1 +5b73 9b79 +5b75 9b7a +5b78 9b7b +5b7a 9b7d +5b80 9b7e +5b83 9b80 +5b85 91ee +5b87 8946 +5b88 8ee7 +5b89 88c0 +5b8b 9176 +5b8c 8aae +5b8d 8eb3 +5b8f 8d47 +5b95 9386 +5b97 8f40 +5b98 8aaf +5b99 9288 +5b9a 92e8 +5b9b 88b6 +5b9c 8b58 +5b9d 95f3 +5b9f 8ec0 +5ba2 8b71 +5ba3 90e9 +5ba4 8eba +5ba5 9747 +5ba6 9b81 +5bae 8b7b +5bb0 8dc9 +5bb3 8a51 +5bb4 8983 +5bb5 8faa +5bb6 89c6 +5bb8 9b82 +5bb9 9765 +5bbf 8f68 +5bc2 8ee2 +5bc3 9b83 +5bc4 8af1 +5bc5 93d0 +5bc6 96a7 +5bc7 9b84 +5bc9 9b85 +5bcc 9578 +5bd0 9b87 +5bd2 8aa6 +5bd3 8bf5 +5bd4 9b86 +5bdb 8ab0 +5bdd 9051 +5bde 9b8b +5bdf 8e40 +5be1 89c7 +5be2 9b8a +5be4 9b88 +5be5 9b8c +5be6 9b89 +5be7 944a +5be8 9ecb +5be9 9052 +5beb 9b8d +5bee 97be +5bf0 9b8e +5bf3 9b90 +5bf5 929e +5bf6 9b8f +5bf8 90a1 +5bfa 8e9b +5bfe 91ce +5bff 8ef5 +5c01 9595 +5c02 90ea +5c04 8ecb +5c05 9b91 +5c06 8fab +5c07 9b92 +5c08 9b93 +5c09 88d1 +5c0a 91b8 +5c0b 9071 +5c0d 9b94 +5c0e 93b1 +5c0f 8fac +5c11 8fad +5c13 9b95 +5c16 90eb +5c1a 8fae +5c20 9b96 +5c22 9b97 +5c24 96de +5c28 9b98 +5c2d 8bc4 +5c31 8f41 +5c38 9b99 +5c39 9b9a +5c3a 8eda +5c3b 904b +5c3c 93f2 +5c3d 9073 +5c3e 94f6 +5c3f 9441 +5c40 8bc7 +5c41 9b9b +5c45 8b8f +5c46 9b9c +5c48 8bfc +5c4a 93cd +5c4b 89ae +5c4d 8e72 +5c4e 9b9d +5c4f 9ba0 +5c50 9b9f +5c51 8bfb +5c53 9b9e +5c55 9357 +5c5e 91ae +5c60 936a +5c61 8ec6 +5c64 9177 +5c65 979a +5c6c 9ba2 +5c6e 9ba3 +5c6f 93d4 +5c71 8e52 +5c76 9ba5 +5c79 9ba6 +5c8c 9ba7 +5c90 8af2 +5c91 9ba8 +5c94 9ba9 +5ca1 89aa +5ca8 915a +5ca9 8ae2 +5cab 9bab +5cac 96a6 +5cb1 91d0 +5cb3 8a78 +5cb6 9bad +5cb7 9baf +5cb8 8add +5cbb 9bac +5cbc 9bae +5cbe 9bb1 +5cc5 9bb0 +5cc7 9bb2 +5cd9 9bb3 +5ce0 93bb +5ce1 8bac +5ce8 89e3 +5ce9 9bb4 +5cea 9bb9 +5ced 9bb7 +5cef 95f5 +5cf0 95f4 +5cf6 9387 +5cfa 9bb6 +5cfb 8f73 +5cfd 9bb5 +5d07 9092 +5d0b 9bba +5d0e 8de8 +5d11 9bc0 +5d14 9bc1 +5d15 9bbb +5d16 8a52 +5d17 9bbc +5d18 9bc5 +5d19 9bc4 +5d1a 9bc3 +5d1b 9bbf +5d1f 9bbe +5d22 9bc2 +5d29 95f6 +5d4b 9bc9 +5d4c 9bc6 +5d4e 9bc8 +5d50 9792 +5d52 9bc7 +5d5c 9bbd +5d69 9093 +5d6c 9bca +5d6f 8db5 +5d73 9bcb +5d76 9bcc +5d82 9bcf +5d84 9bce +5d87 9bcd +5d8b 9388 +5d8c 9bb8 +5d90 9bd5 +5d9d 9bd1 +5da2 9bd0 +5dac 9bd2 +5dae 9bd3 +5db7 9bd6 +5dba 97e4 +5dbc 9bd7 +5dbd 9bd4 +5dc9 9bd8 +5dcc 8ade +5dcd 9bd9 +5dd2 9bdb +5dd3 9bda +5dd6 9bdc +5ddb 9bdd +5ddd 90ec +5dde 8f42 +5de1 8f84 +5de3 9183 +5de5 8d48 +5de6 8db6 +5de7 8d49 +5de8 8b90 +5deb 9bde +5dee 8db7 +5df1 8cc8 +5df2 9bdf +5df3 96a4 +5df4 9462 +5df5 9be0 +5df7 8d4a +5dfb 8aaa +5dfd 9246 +5dfe 8bd0 +5e02 8e73 +5e03 957a +5e06 94bf +5e0b 9be1 +5e0c 8af3 +5e11 9be4 +5e16 929f +5e19 9be3 +5e1a 9be2 +5e1b 9be5 +5e1d 92e9 +5e25 9083 +5e2b 8e74 +5e2d 90c8 +5e2f 91d1 +5e30 8b41 +5e33 92a0 +5e36 9be6 +5e37 9be7 +5e38 8fed +5e3d 9658 +5e40 9bea +5e43 9be9 +5e44 9be8 +5e45 959d +5e47 9bf1 +5e4c 9679 +5e4e 9beb +5e54 9bed +5e55 968b +5e57 9bec +5e5f 9bee +5e61 94a6 +5e62 9bef +5e63 95bc +5e64 9bf0 +5e72 8ab1 +5e73 95bd +5e74 944e +5e75 9bf2 +5e76 9bf3 +5e78 8d4b +5e79 8ab2 +5e7a 9bf4 +5e7b 8cb6 +5e7c 9763 +5e7d 9748 +5e7e 8af4 +5e7f 9bf6 +5e81 92a1 +5e83 8d4c +5e84 8faf +5e87 94dd +5e8a 8fb0 +5e8f 8f98 +5e95 92ea +5e96 95f7 +5e97 9358 +5e9a 8d4d +5e9c 957b +5ea0 9bf7 +5ea6 9378 +5ea7 8dc0 +5eab 8cc9 +5ead 92eb +5eb5 88c1 +5eb6 8f8e +5eb7 8d4e +5eb8 9766 +5ec1 9bf8 +5ec2 9bf9 +5ec3 9470 +5ec8 9bfa +5ec9 97f5 +5eca 984c +5ecf 9bfc +5ed0 9bfb +5ed3 8a66 +5ed6 9c40 +5eda 9c43 +5edb 9c44 +5edd 9c42 +5edf 955f +5ee0 8fb1 +5ee1 9c46 +5ee2 9c45 +5ee3 9c41 +5ee8 9c47 +5ee9 9c48 +5eec 9c49 +5ef0 9c4c +5ef1 9c4a +5ef3 9c4b +5ef4 9c4d +5ef6 8984 +5ef7 92ec +5ef8 9c4e +5efa 8c9a +5efb 89f4 +5efc 9455 +5efe 9c4f +5eff 93f9 +5f01 95d9 +5f03 9c50 +5f04 984d +5f09 9c51 +5f0a 95be +5f0b 9c54 +5f0c 989f +5f0d 98af +5f0f 8eae +5f10 93f3 +5f11 9c55 +5f13 8b7c +5f14 92a2 +5f15 88f8 +5f16 9c56 +5f17 95a4 +5f18 8d4f +5f1b 926f +5f1f 92ed +5f25 96ed +5f26 8cb7 +5f27 8cca +5f29 9c57 +5f2d 9c58 +5f2f 9c5e +5f31 8ee3 +5f35 92a3 +5f37 8bad +5f38 9c59 +5f3c 954a +5f3e 9265 +5f41 9c5a +5f48 9c5b +5f4a 8bae +5f4c 9c5c +5f4e 9c5d +5f51 9c5f +5f53 9396 +5f56 9c60 +5f57 9c61 +5f59 9c62 +5f5c 9c53 +5f5d 9c52 +5f61 9c63 +5f62 8c60 +5f66 9546 +5f69 8dca +5f6a 9556 +5f6b 92a4 +5f6c 956a +5f6d 9c64 +5f70 8fb2 +5f71 8965 +5f73 9c65 +5f77 9c66 +5f79 96f0 +5f7c 94de +5f7f 9c69 +5f80 899d +5f81 90aa +5f82 9c68 +5f83 9c67 +5f84 8c61 +5f85 91d2 +5f87 9c6d +5f88 9c6b +5f8a 9c6a +5f8b 97a5 +5f8c 8ce3 +5f90 8f99 +5f91 9c6c +5f92 936b +5f93 8f5d +5f97 93be +5f98 9c70 +5f99 9c6f +5f9e 9c6e +5fa0 9c71 +5fa1 8ce4 +5fa8 9c72 +5fa9 959c +5faa 8f7a +5fad 9c73 +5fae 94f7 +5fb3 93bf +5fb4 92a5 +5fb9 934f +5fbc 9c74 +5fbd 8b4a +5fc3 9053 +5fc5 954b +5fcc 8af5 +5fcd 9445 +5fd6 9c75 +5fd7 8e75 +5fd8 9659 +5fd9 965a +5fdc 899e +5fdd 9c7a +5fe0 9289 +5fe4 9c77 +5feb 89f5 +5ff0 9cab +5ff1 9c79 +5ff5 944f +5ff8 9c78 +5ffb 9c76 +5ffd 8d9a +5fff 9c7c +600e 9c83 +600f 9c89 +6010 9c81 +6012 937b +6015 9c86 +6016 957c +6019 9c80 +601b 9c85 +601c 97e5 +601d 8e76 +6020 91d3 +6021 9c7d +6025 8b7d +6026 9c88 +6027 90ab +6028 8985 +6029 9c82 +602a 89f6 +602b 9c87 +602f 8baf +6031 9c84 +603a 9c8a +6041 9c8c +6042 9c96 +6043 9c94 +6046 9c91 +604a 9c90 +604b 97f6 +604d 9c92 +6050 8bb0 +6052 8d50 +6055 8f9a +6059 9c99 +605a 9c8b +605f 9c8f +6060 9c7e +6062 89f8 +6063 9c93 +6064 9c95 +6065 9270 +6068 8da6 +6069 89b6 +606a 9c8d +606b 9c98 +606c 9c97 +606d 8bb1 +606f 91a7 +6070 8a86 +6075 8c62 +6077 9c8e +6081 9c9a +6083 9c9d +6084 9c9f +6089 8ebb +608b 9ca5 +608c 92ee +608d 9c9b +6092 9ca3 +6094 89f7 +6096 9ca1 +6097 9ca2 +609a 9c9e +609b 9ca0 +609f 8ce5 +60a0 9749 +60a3 8ab3 +60a6 8978 +60a7 9ca4 +60a9 9459 +60aa 88ab +60b2 94df +60b3 9c7b +60b4 9caa +60b5 9cae +60b6 96e3 +60b8 9ca7 +60bc 9389 +60bd 9cac +60c5 8fee +60c6 9cad +60c7 93d5 +60d1 9866 +60d3 9ca9 +60d8 9caf +60da 8d9b +60dc 90c9 +60df 88d2 +60e0 9ca8 +60e1 9ca6 +60e3 9179 +60e7 9c9c +60e8 8e53 +60f0 91c4 +60f1 9cbb +60f3 917a +60f4 9cb6 +60f6 9cb3 +60f7 9cb4 +60f9 8ee4 +60fa 9cb7 +60fb 9cba +6100 9cb5 +6101 8f44 +6103 9cb8 +6106 9cb2 +6108 96fa +6109 96f9 +610d 9cbc +610e 9cbd +610f 88d3 +6115 9cb1 +611a 8bf0 +611b 88a4 +611f 8ab4 +6121 9cb9 +6127 9cc1 +6128 9cc0 +612c 9cc5 +6134 9cc6 +613c 9cc4 +613d 9cc7 +613e 9cbf +613f 9cc3 +6142 9cc8 +6144 9cc9 +6147 9cbe +6148 8e9c +614a 9cc2 +614b 91d4 +614c 8d51 +614d 9cb0 +614e 9054 +6153 9cd6 +6155 95e7 +6158 9ccc +6159 9ccd +615a 9cce +615d 9cd5 +615f 9cd4 +6162 969d +6163 8ab5 +6165 9cd2 +6167 8c64 +6168 8a53 +616b 9ccf +616e 97b6 +616f 9cd1 +6170 88d4 +6171 9cd3 +6173 9cca +6174 9cd0 +6175 9cd7 +6176 8c63 +6177 9ccb +617e 977c +6182 974a +6187 9cda +618a 9cde +618e 919e +6190 97f7 +6191 9cdf +6194 9cdc +6196 9cd9 +6199 9cd8 +619a 9cdd +61a4 95ae +61a7 93b2 +61a9 8c65 +61ab 9ce0 +61ac 9cdb +61ae 9ce1 +61b2 8c9b +61b6 89af +61ba 9ce9 +61be 8ab6 +61c3 9ce7 +61c6 9ce8 +61c7 8da7 +61c8 9ce6 +61c9 9ce4 +61ca 9ce3 +61cb 9cea +61cc 9ce2 +61cd 9cec +61d0 89f9 +61e3 9cee +61e6 9ced +61f2 92a6 +61f4 9cf1 +61f6 9cef +61f7 9ce5 +61f8 8c9c +61fa 9cf0 +61fc 9cf4 +61fd 9cf3 +61fe 9cf5 +61ff 9cf2 +6200 9cf6 +6208 9cf7 +6209 9cf8 +620a 95e8 +620c 9cfa +620d 9cf9 +620e 8f5e +6210 90ac +6211 89e4 +6212 89fa +6214 9cfb +6216 88bd +621a 90ca +621b 9cfc +621d e6c1 +621e 9d40 +621f 8c81 +6221 9d41 +6226 90ed +622a 9d42 +622e 9d43 +622f 8b59 +6230 9d44 +6232 9d45 +6233 9d46 +6234 91d5 +6238 8ccb +623b 96df +623f 965b +6240 8f8a +6241 9d47 +6247 90ee +6248 e7bb +6249 94e0 +624b 8ee8 +624d 8dcb +624e 9d48 +6253 91c5 +6255 95a5 +6258 91ef +625b 9d4b +625e 9d49 +6260 9d4c +6263 9d4a +6268 9d4d +626e 95af +6271 88b5 +6276 957d +6279 94e1 +627c 9d4e +627e 9d51 +627f 8fb3 +6280 8b5a +6282 9d4f +6283 9d56 +6284 8fb4 +6289 9d50 +628a 9463 +6291 977d +6292 9d52 +6293 9d53 +6294 9d57 +6295 938a +6296 9d54 +6297 8d52 +6298 90dc +629b 9d65 +629c 94b2 +629e 91f0 +62ab 94e2 +62ac 9dab +62b1 95f8 +62b5 92ef +62b9 9695 +62bb 9d5a +62bc 899f +62bd 928a +62c2 9d63 +62c5 9253 +62c6 9d5d +62c7 9d64 +62c8 9d5f +62c9 9d66 +62ca 9d62 +62cc 9d61 +62cd 948f +62cf 9d5b +62d0 89fb +62d1 9d59 +62d2 8b91 +62d3 91f1 +62d4 9d55 +62d7 9d58 +62d8 8d53 +62d9 90d9 +62db 8fb5 +62dc 9d60 +62dd 9471 +62e0 8b92 +62e1 8a67 +62ec 8a87 +62ed 9040 +62ee 9d68 +62ef 9d6d +62f1 9d69 +62f3 8c9d +62f5 9d6e +62f6 8e41 +62f7 8d89 +62fe 8f45 +62ff 9d5c +6301 8e9d +6302 9d6b +6307 8e77 +6308 9d6c +6309 88c2 +630c 9d67 +6311 92a7 +6319 8b93 +631f 8bb2 +6327 9d6a +6328 88a5 +632b 8dc1 +632f 9055 +633a 92f0 +633d 94d2 +633e 9d70 +633f 917d +6349 91a8 +634c 8e4a +634d 9d71 +634f 9d73 +6350 9d6f +6355 95df +6357 92bb +635c 917b +6367 95f9 +6368 8ecc +6369 9d80 +636b 9d7e +636e 9098 +6372 8c9e +6376 9d78 +6377 8fb7 +637a 93e6 +637b 9450 +6380 9d76 +6383 917c +6388 8ef6 +6389 9d7b +638c 8fb6 +638e 9d75 +638f 9d7a +6392 9472 +6396 9d74 +6398 8c40 +639b 8a7c +639f 9d7c +63a0 97a9 +63a1 8dcc +63a2 9254 +63a3 9d79 +63a5 90da +63a7 8d54 +63a8 9084 +63a9 8986 +63aa 915b +63ab 9d77 +63ac 8b64 +63b2 8c66 +63b4 92cd +63b5 9d7d +63bb 917e +63be 9d81 +63c0 9d83 +63c3 91b5 +63c4 9d89 +63c6 9d84 +63c9 9d86 +63cf 9560 +63d0 92f1 +63d2 9d87 +63d6 974b +63da 9767 +63db 8ab7 +63e1 88ac +63e3 9d85 +63e9 9d82 +63ee 8af6 +63f4 8987 +63f6 9d88 +63fa 9768 +6406 9d8c +640d 91b9 +640f 9d93 +6413 9d8d +6416 9d8a +6417 9d91 +641c 9d72 +6426 9d8e +6428 9d92 +642c 94c0 +642d 938b +6434 9d8b +6436 9d8f +643a 8c67 +643e 8def +6442 90db +644e 9d97 +6458 9345 +6467 9d94 +6469 9680 +646f 9d95 +6476 9d96 +6478 96cc +647a 90a0 +6483 8c82 +6488 9d9d +6492 8e54 +6493 9d9a +6495 9d99 +649a 9451 +649e 93b3 +64a4 9350 +64a5 9d9b +64a9 9d9c +64ab 958f +64ad 9464 +64ae 8e42 +64b0 90ef +64b2 966f +64b9 8a68 +64bb 9da3 +64bc 9d9e +64c1 9769 +64c2 9da5 +64c5 9da1 +64c7 9da2 +64cd 9180 +64d2 9da0 +64d4 9d5e +64d8 9da4 +64da 9d9f +64e0 9da9 +64e1 9daa +64e2 9346 +64e3 9dac +64e6 8e43 +64e7 9da7 +64ec 8b5b +64ef 9dad +64f1 9da6 +64f2 9db1 +64f4 9db0 +64f6 9daf +64fa 9db2 +64fd 9db4 +64fe 8fef +6500 9db3 +6505 9db7 +6518 9db5 +651c 9db6 +651d 9d90 +6523 9db9 +6524 9db8 +652a 9d98 +652b 9dba +652c 9dae +652f 8e78 +6534 9dbb +6535 9dbc +6536 9dbe +6537 9dbd +6538 9dbf +6539 89fc +653b 8d55 +653e 95fa +653f 90ad +6545 8ccc +6548 9dc1 +654d 9dc4 +654f 9571 +6551 8b7e +6555 9dc3 +6556 9dc2 +6557 9473 +6558 9dc5 +6559 8bb3 +655d 9dc7 +655e 9dc6 +6562 8ab8 +6563 8e55 +6566 93d6 +656c 8c68 +6570 9094 +6572 9dc8 +6574 90ae +6575 9347 +6577 957e +6578 9dc9 +6582 9dca +6583 9dcb +6587 95b6 +6588 9b7c +6589 90c4 +658c 956b +658e 8dd6 +6590 94e3 +6591 94c1 +6597 936c +6599 97bf +659b 9dcd +659c 8ece +659f 9dce +65a1 88b4 +65a4 8bd2 +65a5 90cb +65a7 9580 +65ab 9dcf +65ac 8e61 +65ad 9266 +65af 8e7a +65b0 9056 +65b7 9dd0 +65b9 95fb +65bc 8997 +65bd 8e7b +65c1 9dd3 +65c3 9dd1 +65c4 9dd4 +65c5 97b7 +65c6 9dd2 +65cb 90f9 +65cc 9dd5 +65cf 91b0 +65d2 9dd6 +65d7 8af8 +65d9 9dd8 +65db 9dd7 +65e0 9dd9 +65e1 9dda +65e2 8af9 +65e5 93fa +65e6 9255 +65e7 8b8c +65e8 8e7c +65e9 9181 +65ec 8f7b +65ed 88ae +65f1 9ddb +65fa 89a0 +65fb 9ddf +6602 8d56 +6603 9dde +6606 8da9 +6607 8fb8 +660a 9ddd +660c 8fb9 +660e 96be +660f 8da8 +6613 88d5 +6614 90cc +661c 9de4 +661f 90af +6620 8966 +6625 8f74 +6627 9686 +6628 8df0 +662d 8fba +662f 90a5 +6634 9de3 +6635 9de1 +6636 9de2 +663c 928b +663f 9e45 +6641 9de8 +6642 8e9e +6643 8d57 +6644 9de6 +6649 9de7 +664b 9057 +664f 9de5 +6652 8e4e +665d 9dea +665e 9de9 +665f 9dee +6662 9def +6664 9deb +6666 8a41 +6667 9dec +6668 9ded +6669 94d3 +666e 9581 +666f 8c69 +6670 9df0 +6674 90b0 +6676 8fbb +667a 9271 +6681 8bc5 +6683 9df1 +6684 9df5 +6687 89c9 +6688 9df2 +6689 9df4 +668e 9df3 +6691 8f8b +6696 9267 +6697 88c3 +6698 9df6 +669d 9df7 +66a2 92a8 +66a6 97ef +66ab 8e62 +66ae 95e9 +66b4 965c +66b8 9e41 +66b9 9df9 +66bc 9dfc +66be 9dfb +66c1 9df8 +66c4 9e40 +66c7 93dc +66c9 9dfa +66d6 9e42 +66d9 8f8c +66da 9e43 +66dc 976a +66dd 9498 +66e0 9e44 +66e6 9e46 +66e9 9e47 +66f0 9e48 +66f2 8bc8 +66f3 8967 +66f4 8d58 +66f5 9e49 +66f7 9e4a +66f8 8f91 +66f9 9182 +66fc 99d6 +66fd 915d +66fe 915c +66ff 91d6 +6700 8dc5 +6703 98f0 +6708 8c8e +6709 974c +670b 95fc +670d 959e +670f 9e4b +6714 8df1 +6715 92bd +6716 9e4c +6717 984e +671b 965d +671d 92a9 +671e 9e4d +671f 8afa +6726 9e4e +6727 9e4f +6728 96d8 +672a 96a2 +672b 9696 +672c 967b +672d 8e44 +672e 9e51 +6731 8ee9 +6734 9670 +6736 9e53 +6737 9e56 +6738 9e55 +673a 8af7 +673d 8b80 +673f 9e52 +6741 9e54 +6746 9e57 +6749 9099 +674e 979b +674f 88c7 +6750 8dde +6751 91ba +6753 8edb +6756 8ff1 +6759 9e5a +675c 936d +675e 9e58 +675f 91a9 +6760 9e59 +6761 8ff0 +6762 96db +6763 9e5b +6764 9e5c +6765 9788 +676a 9e61 +676d 8d59 +676f 9474 +6770 9e5e +6771 938c +6772 9ddc +6773 9de0 +6775 8b6e +6777 9466 +677c 9e60 +677e 8fbc +677f 94c2 +6785 9e66 +6787 94f8 +6789 9e5d +678b 9e63 +678c 9e62 +6790 90cd +6795 968d +6797 97d1 +679a 9687 +679c 89ca +679d 8e7d +67a0 9867 +67a1 9e65 +67a2 9095 +67a6 9e64 +67a9 9e5f +67af 8ccd +67b3 9e6b +67b4 9e69 +67b6 89cb +67b7 9e67 +67b8 9e6d +67b9 9e73 +67c1 91c6 +67c4 95bf +67c6 9e75 +67ca 9541 +67ce 9e74 +67cf 9490 +67d0 965e +67d1 8ab9 +67d3 90f5 +67d4 8f5f +67d8 92d1 +67da 974d +67dd 9e70 +67de 9e6f +67e2 9e71 +67e4 9e6e +67e7 9e76 +67e9 9e6c +67ec 9e6a +67ee 9e72 +67ef 9e68 +67f1 928c +67f3 96f6 +67f4 8ec4 +67f5 8df2 +67fb 8db8 +67fe 968f +67ff 8a60 +6802 92cc +6803 93c8 +6804 8968 +6813 90f0 +6816 90b2 +6817 8c49 +681e 9e78 +6821 8d5a +6822 8a9c +6829 9e7a +682a 8a94 +682b 9e81 +6832 9e7d +6834 90f1 +6838 8a6a +6839 8daa +683c 8a69 +683d 8dcd +6840 9e7b +6841 8c85 +6842 8c6a +6843 938d +6846 9e79 +6848 88c4 +684d 9e7c +684e 9e7e +6850 8bcb +6851 8c4b +6853 8aba +6854 8b6a +6859 9e82 +685c 8df7 +685d 9691 +685f 8e56 +6863 9e83 +6867 954f +6874 9e8f +6876 89b1 +6877 9e84 +687e 9e95 +687f 9e85 +6881 97c0 +6883 9e8c +6885 947e +688d 9e94 +688f 9e87 +6893 88b2 +6894 9e89 +6897 8d5b +689b 9e8b +689d 9e8a +689f 9e86 +68a0 9e91 +68a2 8fbd +68a6 9aeb +68a7 8ce6 +68a8 979c +68ad 9e88 +68af 92f2 +68b0 8a42 +68b1 8dab +68b3 9e80 +68b5 9e90 +68b6 8a81 +68b9 9e8e +68ba 9e92 +68bc 938e +68c4 8afc +68c6 9eb0 +68c9 96c7 +68ca 9e97 +68cb 8afb +68cd 9e9e +68d2 965f +68d4 9e9f +68d5 9ea1 +68d7 9ea5 +68d8 9e99 +68da 9249 +68df 938f +68e0 9ea9 +68e1 9e9c +68e3 9ea6 +68e7 9ea0 +68ee 9058 +68ef 9eaa +68f2 90b1 +68f9 9ea8 +68fa 8abb +6900 986f +6901 9e96 +6904 9ea4 +6905 88d6 +6908 9e98 +690b 96b8 +690c 9e9d +690d 9041 +690e 92c5 +690f 9e93 +6912 9ea3 +6919 909a +691a 9ead +691b 8a91 +691c 8c9f +6921 9eaf +6922 9e9a +6923 9eae +6925 9ea7 +6926 9e9b +6928 9eab +692a 9eac +6930 9ebd +6934 93cc +6936 9ea2 +6939 9eb9 +693d 9ebb +693f 92d6 +694a 976b +6953 9596 +6954 9eb6 +6955 91c8 +6959 9ebc +695a 915e +695c 9eb3 +695d 9ec0 +695e 9ebf +6960 93ed +6961 9ebe +6962 93e8 +696a 9ec2 +696b 9eb5 +696d 8bc6 +696e 9eb8 +696f 8f7c +6973 9480 +6974 9eba +6975 8bc9 +6977 9eb2 +6978 9eb4 +6979 9eb1 +697c 984f +697d 8a79 +697e 9eb7 +6981 9ec1 +6982 8a54 +698a 8de5 +698e 897c +6991 9ed2 +6994 9850 +6995 9ed5 +699b 9059 +699c 9ed4 +69a0 9ed3 +69a7 9ed0 +69ae 9ec4 +69b1 9ee1 +69b2 9ec3 +69b4 9ed6 +69bb 9ece +69be 9ec9 +69bf 9ec6 +69c1 9ec7 +69c3 9ecf +69c7 eaa0 +69ca 9ecc +69cb 8d5c +69cc 92c6 +69cd 9184 +69ce 9eca +69d0 9ec5 +69d3 9ec8 +69d8 976c +69d9 968a +69dd 9ecd +69de 9ed7 +69e7 9edf +69e8 9ed8 +69eb 9ee5 +69ed 9ee3 +69f2 9ede +69f9 9edd +69fb 92ce +69fd 9185 +69ff 9edb +6a02 9ed9 +6a05 9ee0 +6a0a 9ee6 +6a0b 94f3 +6a0c 9eec +6a12 9ee7 +6a13 9eea +6a14 9ee4 +6a17 9294 +6a19 9557 +6a1b 9eda +6a1e 9ee2 +6a1f 8fbe +6a21 96cd +6a22 9ef6 +6a23 9ee9 +6a29 8ca0 +6a2a 89a1 +6a2b 8a7e +6a2e 9ed1 +6a35 8fbf +6a36 9eee +6a38 9ef5 +6a39 8ef7 +6a3a 8a92 +6a3d 924d +6a44 9eeb +6a47 9ef0 +6a48 9ef4 +6a4b 8bb4 +6a58 8b6b +6a59 9ef2 +6a5f 8b40 +6a61 93c9 +6a62 9ef1 +6a66 9ef3 +6a72 9eed +6a78 9eef +6a7f 8a80 +6a80 9268 +6a84 9efa +6a8d 9ef8 +6a8e 8ce7 +6a90 9ef7 +6a97 9f40 +6a9c 9e77 +6aa0 9ef9 +6aa2 9efb +6aa3 9efc +6aaa 9f4b +6aac 9f47 +6aae 9e8d +6ab3 9f46 +6ab8 9f45 +6abb 9f42 +6ac1 9ee8 +6ac2 9f44 +6ac3 9f43 +6ad1 9f49 +6ad3 9845 +6ada 9f4c +6adb 8bf9 +6ade 9f48 +6adf 9f4a +6ae8 94a5 +6aea 9f4d +6afa 9f51 +6afb 9f4e +6b04 9793 +6b05 9f4f +6b0a 9edc +6b12 9f52 +6b16 9f53 +6b1d 8954 +6b1f 9f55 +6b20 8c87 +6b21 8e9f +6b23 8bd3 +6b27 89a2 +6b32 977e +6b37 9f57 +6b38 9f56 +6b39 9f59 +6b3a 8b5c +6b3d 8bd4 +6b3e 8abc +6b43 9f5c +6b47 9f5b +6b49 9f5d +6b4c 89cc +6b4e 9256 +6b50 9f5e +6b53 8abd +6b54 9f60 +6b59 9f5f +6b5b 9f61 +6b5f 9f62 +6b61 9f63 +6b62 8e7e +6b63 90b3 +6b64 8d9f +6b66 9590 +6b69 95e0 +6b6a 9863 +6b6f 8e95 +6b73 8dce +6b74 97f0 +6b78 9f64 +6b79 9f65 +6b7b 8e80 +6b7f 9f66 +6b80 9f67 +6b83 9f69 +6b84 9f68 +6b86 9677 +6b89 8f7d +6b8a 8eea +6b8b 8e63 +6b8d 9f6a +6b95 9f6c +6b96 9042 +6b98 9f6b +6b9e 9f6d +6ba4 9f6e +6baa 9f6f +6bab 9f70 +6baf 9f71 +6bb1 9f73 +6bb2 9f72 +6bb3 9f74 +6bb4 89a3 +6bb5 9269 +6bb7 9f75 +6bba 8e45 +6bbb 8a6b +6bbc 9f76 +6bbf 9361 +6bc0 9aca +6bc5 8b42 +6bc6 9f77 +6bcb 9f78 +6bcd 95ea +6bce 9688 +6bd2 93c5 +6bd3 9f79 +6bd4 94e4 +6bd8 94f9 +6bdb 96d1 +6bdf 9f7a +6beb 9f7c +6bec 9f7b +6bef 9f7e +6bf3 9f7d +6c08 9f81 +6c0f 8e81 +6c11 96af +6c13 9f82 +6c14 9f83 +6c17 8b43 +6c1b 9f84 +6c23 9f86 +6c24 9f85 +6c34 9085 +6c37 9558 +6c38 8969 +6c3e 94c3 +6c40 92f3 +6c41 8f60 +6c42 8b81 +6c4e 94c4 +6c50 8eac +6c55 9f88 +6c57 8abe +6c5a 8998 +6c5d 93f0 +6c5e 9f87 +6c5f 8d5d +6c60 9272 +6c62 9f89 +6c68 9f91 +6c6a 9f8a +6c70 91bf +6c72 8b82 +6c73 9f92 +6c7a 8c88 +6c7d 8b44 +6c7e 9f90 +6c81 9f8e +6c82 9f8b +6c83 9780 +6c88 92be +6c8c 93d7 +6c8d 9f8c +6c90 9f94 +6c92 9f93 +6c93 8c42 +6c96 89ab +6c99 8db9 +6c9a 9f8d +6c9b 9f8f +6ca1 9676 +6ca2 91f2 +6cab 9697 +6cae 9f9c +6cb1 9f9d +6cb3 89cd +6cb8 95a6 +6cb9 96fb +6cba 9f9f +6cbb 8ea1 +6cbc 8fc0 +6cbd 9f98 +6cbe 9f9e +6cbf 8988 +6cc1 8bb5 +6cc4 9f95 +6cc5 9f9a +6cc9 90f2 +6cca 9491 +6ccc 94e5 +6cd3 9f97 +6cd5 9640 +6cd7 9f99 +6cd9 9fa2 +6cdb 9fa0 +6cdd 9f9b +6ce1 9641 +6ce2 9467 +6ce3 8b83 +6ce5 9344 +6ce8 928d +6cea 9fa3 +6cef 9fa1 +6cf0 91d7 +6cf1 9f96 +6cf3 896a +6d0b 976d +6d0c 9fae +6d12 9fad +6d17 90f4 +6d19 9faa +6d1b 978c +6d1e 93b4 +6d1f 9fa4 +6d25 92c3 +6d29 896b +6d2a 8d5e +6d2b 9fa7 +6d32 8f46 +6d33 9fac +6d35 9fab +6d36 9fa6 +6d38 9fa9 +6d3b 8a88 +6d3d 9fa8 +6d3e 9468 +6d41 97ac +6d44 8ff2 +6d45 90f3 +6d59 9fb4 +6d5a 9fb2 +6d5c 956c +6d63 9faf +6d64 9fb1 +6d66 8959 +6d69 8d5f +6d6a 9851 +6d6c 8a5c +6d6e 9582 +6d74 9781 +6d77 8a43 +6d78 905a +6d79 9fb3 +6d85 9fb8 +6d88 8fc1 +6d8c 974f +6d8e 9fb5 +6d93 9fb0 +6d95 9fb6 +6d99 97dc +6d9b 9393 +6d9c 93c0 +6daf 8a55 +6db2 8974 +6db5 9fbc +6db8 9fbf +6dbc 97c1 +6dc0 9784 +6dc5 9fc6 +6dc6 9fc0 +6dc7 9fbd +6dcb 97d2 +6dcc 9fc3 +6dd1 8f69 +6dd2 9fc5 +6dd5 9fca +6dd8 9391 +6dd9 9fc8 +6dde 9fc2 +6de1 9257 +6de4 9fc9 +6de6 9fbe +6de8 9fc4 +6dea 9fcb +6deb 88fa +6dec 9fc1 +6dee 9fcc +6df1 905b +6df3 8f7e +6df5 95a3 +6df7 8dac +6df9 9fb9 +6dfa 9fc7 +6dfb 9359 +6e05 90b4 +6e07 8a89 +6e08 8dcf +6e09 8fc2 +6e0a 9fbb +6e0b 8f61 +6e13 8c6b +6e15 9fba +6e19 9fd0 +6e1a 8f8d +6e1b 8cb8 +6e1d 9fdf +6e1f 9fd9 +6e20 8b94 +6e21 936e +6e23 9fd4 +6e24 9fdd +6e25 88ad +6e26 8951 +6e29 89b7 +6e2b 9fd6 +6e2c 91aa +6e2d 9fcd +6e2e 9fcf +6e2f 8d60 +6e38 9fe0 +6e3a 9fdb +6e3e 9fd3 +6e43 9fda +6e4a 96a9 +6e4d 9fd8 +6e4e 9fdc +6e56 8cce +6e58 8fc3 +6e5b 9258 +6e5f 9fd2 +6e67 974e +6e6b 9fd5 +6e6e 9fce +6e6f 9392 +6e72 9fd1 +6e76 9fd7 +6e7e 9870 +6e7f 8ebc +6e80 969e +6e82 9fe1 +6e8c 94ac +6e8f 9fed +6e90 8cb9 +6e96 8f80 +6e98 9fe3 +6e9c 97ad +6e9d 8d61 +6e9f 9ff0 +6ea2 88ec +6ea5 9fee +6eaa 9fe2 +6eaf 9fe8 +6eb2 9fea +6eb6 976e +6eb7 9fe5 +6eba 934d +6ebd 9fe7 +6ec2 9fef +6ec4 9fe9 +6ec5 96c5 +6ec9 9fe4 +6ecb 8ea0 +6ecc 9ffc +6ed1 8a8a +6ed3 9fe6 +6ed4 9feb +6ed5 9fec +6edd 91ea +6ede 91d8 +6eec 9ff4 +6eef 9ffa +6ef2 9ff8 +6ef4 9348 +6ef7 e042 +6ef8 9ff5 +6efe 9ff6 +6eff 9fde +6f01 8b99 +6f02 9559 +6f06 8ebd +6f09 8d97 +6f0f 9852 +6f11 9ff2 +6f13 e041 +6f14 8989 +6f15 9186 +6f20 9499 +6f22 8abf +6f23 97f8 +6f2b 969f +6f2c 92d0 +6f31 9ff9 +6f32 9ffb +6f38 9151 +6f3e e040 +6f3f 9ff7 +6f41 9ff1 +6f45 8ac1 +6f54 8c89 +6f58 e04e +6f5b e049 +6f5c 90f6 +6f5f 8a83 +6f64 8f81 +6f66 e052 +6f6d e04b +6f6e 92aa +6f6f e048 +6f70 92d7 +6f74 e06b +6f78 e045 +6f7a e044 +6f7c e04d +6f80 e047 +6f81 e046 +6f82 e04c +6f84 909f +6f86 e043 +6f8e e04f +6f91 e050 +6f97 8ac0 +6fa1 e055 +6fa3 e054 +6fa4 e056 +6faa e059 +6fb1 9362 +6fb3 e053 +6fb9 e057 +6fc0 8c83 +6fc1 91f7 +6fc2 e051 +6fc3 945a +6fc6 e058 +6fd4 e05d +6fd5 e05b +6fd8 e05e +6fdb e061 +6fdf e05a +6fe0 8d8a +6fe1 9447 +6fe4 9fb7 +6feb 9794 +6fec e05c +6fee e060 +6fef 91f3 +6ff1 e05f +6ff3 e04a +6ff6 e889 +6ffa e064 +6ffe e068 +7001 e066 +7009 e062 +700b e063 +700f e067 +7011 e065 +7015 956d +7018 e06d +701a e06a +701b e069 +701d e06c +701e 93d2 +701f e06e +7026 9295 +7027 91eb +702c 90a3 +7030 e06f +7032 e071 +703e e070 +704c 9ff3 +7051 e072 +7058 93e5 +7063 e073 +706b 89ce +706f 9394 +7070 8a44 +7078 8b84 +707c 8edc +707d 8dd0 +7089 9846 +708a 9086 +708e 898a +7092 e075 +7099 e074 +70ac e078 +70ad 9259 +70ae e07b +70af e076 +70b3 e07a +70b8 e079 +70b9 935f +70ba 88d7 +70c8 97f3 +70cb e07d +70cf 8947 +70d9 e080 +70dd e07e +70df e07c +70f1 e077 +70f9 9642 +70fd e082 +7109 e081 +7114 898b +7119 e084 +711a 95b0 +711c e083 +7121 96b3 +7126 8fc5 +7136 9152 +713c 8fc4 +7149 97f9 +714c e08a +714e 90f7 +7155 e086 +7156 e08b +7159 898c +7162 e089 +7164 9481 +7165 e085 +7166 e088 +7167 8fc6 +7169 94cf +716c e08c +716e 8ecf +717d 90f8 +7184 e08f +7188 e087 +718a 8c46 +718f e08d +7194 976f +7195 e090 +7199 eaa4 +719f 8f6e +71a8 e091 +71ac e092 +71b1 944d +71b9 e094 +71be e095 +71c3 9452 +71c8 9395 +71c9 e097 +71ce e099 +71d0 97d3 +71d2 e096 +71d4 e098 +71d5 898d +71d7 e093 +71df 9a7a +71e0 e09a +71e5 9187 +71e6 8e57 +71e7 e09c +71ec e09b +71ed 9043 +71ee 99d7 +71f5 e09d +71f9 e09f +71fb e08e +71fc e09e +71ff e0a0 +7206 949a +720d e0a1 +7210 e0a2 +721b e0a3 +7228 e0a4 +722a 92dc +722c e0a6 +722d e0a5 +7230 e0a7 +7232 e0a8 +7235 8edd +7236 9583 +723a 96ea +723b e0a9 +723c e0aa +723d 9175 +723e 8ea2 +723f e0ab +7240 e0ac +7246 e0ad +7247 95d0 +7248 94c5 +724b e0ae +724c 9476 +7252 92ab +7258 e0af +7259 89e5 +725b 8b8d +725d 96c4 +725f 96b4 +7261 89b2 +7262 9853 +7267 9671 +7269 95a8 +7272 90b5 +7274 e0b0 +7279 93c1 +727d 8ca1 +727e e0b1 +7280 8dd2 +7281 e0b3 +7282 e0b2 +7287 e0b4 +7292 e0b5 +7296 e0b6 +72a0 8b5d +72a2 e0b7 +72a7 e0b8 +72ac 8ca2 +72af 94c6 +72b2 e0ba +72b6 8ff3 +72b9 e0b9 +72c2 8bb6 +72c3 e0bb +72c4 e0bd +72c6 e0bc +72ce e0be +72d0 8ccf +72d2 e0bf +72d7 8be7 +72d9 915f +72db 8d9d +72e0 e0c1 +72e1 e0c2 +72e2 e0c0 +72e9 8eeb +72ec 93c6 +72ed 8bb7 +72f7 e0c4 +72f8 924b +72f9 e0c3 +72fc 9854 +72fd 9482 +730a e0c7 +7316 e0c9 +7317 e0c6 +731b 96d2 +731c e0c8 +731d e0ca +731f 97c2 +7325 e0ce +7329 e0cd +732a 9296 +732b 944c +732e 8ca3 +732f e0cc +7334 e0cb +7336 9750 +7337 9751 +733e e0cf +733f 898e +7344 8d96 +7345 8e82 +734e e0d0 +734f e0d1 +7357 e0d3 +7363 8f62 +7368 e0d5 +736a e0d4 +7370 e0d6 +7372 8a6c +7375 e0d8 +7378 e0d7 +737a e0da +737b e0d9 +7384 8cba +7387 97a6 +7389 8bca +738b 89a4 +7396 8be8 +73a9 8adf +73b2 97e6 +73b3 e0dc +73bb e0de +73c0 e0df +73c2 89cf +73c8 e0db +73ca 8e58 +73cd 92bf +73ce e0dd +73de e0e2 +73e0 8eec +73e5 e0e0 +73ea 8c5d +73ed 94c7 +73ee e0e1 +73f1 e0fc +73f8 e0e7 +73fe 8cbb +7403 8b85 +7405 e0e4 +7406 979d +7409 97ae +7422 91f4 +7425 e0e6 +7432 e0e8 +7433 97d4 +7434 8bd5 +7435 94fa +7436 9469 +743a e0e9 +743f e0eb +7441 e0ee +7455 e0ea +7459 e0ed +745a 8ce8 +745b 896c +745c e0ef +745e 9090 +745f e0ec +7460 97da +7463 e0f2 +7464 eaa2 +7469 e0f0 +746a e0f3 +746f e0e5 +7470 e0f1 +7473 8dba +7476 e0f4 +747e e0f5 +7483 979e +748b e0f6 +749e e0f7 +74a2 e0e3 +74a7 e0f8 +74b0 8ac2 +74bd 8ea3 +74ca e0f9 +74cf e0fa +74d4 e0fb +74dc 895a +74e0 e140 +74e2 955a +74e3 e141 +74e6 8aa2 +74e7 e142 +74e9 e143 +74ee e144 +74f0 e146 +74f1 e147 +74f2 e145 +74f6 9572 +74f7 e149 +74f8 e148 +7503 e14b +7504 e14a +7505 e14c +750c e14d +750d e14f +750e e14e +7511 8d99 +7513 e151 +7515 e150 +7518 8ac3 +751a 9072 +751c 935b +751e e152 +751f 90b6 +7523 8e59 +7525 8999 +7526 e153 +7528 9770 +752b 95e1 +752c e154 +7530 9363 +7531 9752 +7532 8d62 +7533 905c +7537 926a +7538 99b2 +753a 92ac +753b 89e6 +753c e155 +7544 e156 +7546 e15b +7549 e159 +754a e158 +754b 9dc0 +754c 8a45 +754d e157 +754f 88d8 +7551 94a8 +7554 94c8 +7559 97af +755a e15c +755b e15a +755c 927b +755d 90a4 +7560 94a9 +7562 954c +7564 e15e +7565 97aa +7566 8c6c +7567 e15f +7569 e15d +756a 94d4 +756b e160 +756d e161 +7570 88d9 +7573 8ff4 +7574 e166 +7576 e163 +7577 93eb +7578 e162 +757f 8b45 +7582 e169 +7586 e164 +7587 e165 +7589 e168 +758a e167 +758b 9544 +758e 9161 +758f 9160 +7591 8b5e +7594 e16a +759a e16b +759d e16c +75a3 e16e +75a5 e16d +75ab 8975 +75b1 e176 +75b2 94e6 +75b3 e170 +75b5 e172 +75b8 e174 +75b9 905d +75bc e175 +75bd e173 +75be 8ebe +75c2 e16f +75c3 e171 +75c5 9561 +75c7 8fc7 +75ca e178 +75cd e177 +75d2 e179 +75d4 8ea4 +75d5 8dad +75d8 9397 +75d9 e17a +75db 92c9 +75de e17c +75e2 979f +75e3 e17b +75e9 9189 +75f0 e182 +75f2 e184 +75f3 e185 +75f4 9273 +75fa e183 +75fc e180 +75fe e17d +75ff e17e +7601 e181 +7609 e188 +760b e186 +760d e187 +761f e189 +7620 e18b +7621 e18c +7622 e18d +7624 e18e +7627 e18a +7630 e190 +7634 e18f +763b e191 +7642 97c3 +7646 e194 +7647 e192 +7648 e193 +764c 8ae0 +7652 96fc +7656 95c8 +7658 e196 +765c e195 +7661 e197 +7662 e198 +7667 e19c +7668 e199 +7669 e19a +766a e19b +766c e19d +7670 e19e +7672 e19f +7676 e1a0 +7678 e1a1 +767a 94ad +767b 936f +767c e1a2 +767d 9492 +767e 9553 +7680 e1a3 +7683 e1a4 +7684 9349 +7686 8a46 +7687 8d63 +7688 e1a5 +768b e1a6 +768e e1a7 +7690 8e48 +7693 e1a9 +7696 e1a8 +7699 e1aa +769a e1ab +76ae 94e7 +76b0 e1ac +76b4 e1ad +76b7 ea89 +76b8 e1ae +76b9 e1af +76ba e1b0 +76bf 8e4d +76c2 e1b1 +76c3 9475 +76c6 967e +76c8 896d +76ca 8976 +76cd e1b2 +76d2 e1b4 +76d6 e1b3 +76d7 9390 +76db 90b7 +76dc 9f58 +76de e1b5 +76df 96bf +76e1 e1b6 +76e3 8ac4 +76e4 94d5 +76e5 e1b7 +76e7 e1b8 +76ea e1b9 +76ee 96da +76f2 96d3 +76f4 92bc +76f8 918a +76fb e1bb +76fe 8f82 +7701 8fc8 +7704 e1be +7707 e1bd +7708 e1bc +7709 94fb +770b 8ac5 +770c 8ca7 +771b e1c4 +771e e1c1 +771f 905e +7720 96b0 +7724 e1c0 +7725 e1c2 +7726 e1c3 +7729 e1bf +7737 e1c5 +7738 e1c6 +773a 92ad +773c 8ae1 +7740 9285 +7747 e1c7 +775a e1c8 +775b e1cb +7761 9087 +7763 93c2 +7765 e1cc +7766 9672 +7768 e1c9 +776b e1ca +7779 e1cf +777e e1ce +777f e1cd +778b e1d1 +778e e1d0 +7791 e1d2 +779e e1d4 +77a0 e1d3 +77a5 95cb +77ac 8f75 +77ad 97c4 +77b0 e1d5 +77b3 93b5 +77b6 e1d6 +77b9 e1d7 +77bb e1db +77bc e1d9 +77bd e1da +77bf e1d8 +77c7 e1dc +77cd e1dd +77d7 e1de +77da e1df +77db 96b5 +77dc e1e0 +77e2 96ee +77e3 e1e1 +77e5 926d +77e7 948a +77e9 8be9 +77ed 925a +77ee e1e2 +77ef 8bb8 +77f3 90ce +77fc e1e3 +7802 8dbb +780c e1e4 +7812 e1e5 +7814 8ca4 +7815 8dd3 +7820 e1e7 +7825 9375 +7826 8dd4 +7827 8b6d +7832 9643 +7834 946a +783a 9376 +783f 8d7b +7845 e1e9 +785d 8fc9 +786b 97b0 +786c 8d64 +786f 8ca5 +7872 94a1 +7874 e1eb +787c e1ed +7881 8ce9 +7886 e1ec +7887 92f4 +788c e1ef +788d 8a56 +788e e1ea +7891 94e8 +7893 894f +7895 8dea +7897 9871 +789a e1ee +78a3 e1f0 +78a7 95c9 +78a9 90d7 +78aa e1f2 +78af e1f3 +78b5 e1f1 +78ba 8a6d +78bc e1f9 +78be e1f8 +78c1 8ea5 +78c5 e1fa +78c6 e1f5 +78ca e1fb +78cb e1f6 +78d0 94d6 +78d1 e1f4 +78d4 e1f7 +78da e241 +78e7 e240 +78e8 9681 +78ec e1fc +78ef 88e9 +78f4 e243 +78fd e242 +7901 8fca +7907 e244 +790e 9162 +7911 e246 +7912 e245 +7919 e247 +7926 e1e6 +792a e1e8 +792b e249 +792c e248 +793a 8ea6 +793c 97e7 +793e 8ed0 +7940 e24a +7941 8c56 +7947 8b5f +7948 8b46 +7949 8e83 +7950 9753 +7953 e250 +7955 e24f +7956 9163 +7957 e24c +795a e24e +795d 8f6a +795e 905f +795f e24d +7960 e24b +7962 9449 +7965 8fcb +7968 955b +796d 8dd5 +7977 9398 +797a e251 +797f e252 +7980 e268 +7981 8bd6 +7984 985c +7985 9154 +798a e253 +798d 89d0 +798e 92f5 +798f 959f +799d e254 +79a6 8b9a +79a7 e255 +79aa e257 +79ae e258 +79b0 9448 +79b3 e259 +79b9 e25a +79ba e25b +79bd 8bd7 +79be 89d1 +79bf 93c3 +79c0 8f47 +79c1 8e84 +79c9 e25c +79cb 8f48 +79d1 89c8 +79d2 9562 +79d5 e25d +79d8 94e9 +79df 9164 +79e1 e260 +79e3 e261 +79e4 9489 +79e6 9060 +79e7 e25e +79e9 9281 +79ec e25f +79f0 8fcc +79fb 88da +7a00 8b48 +7a08 e262 +7a0b 92f6 +7a0d e263 +7a0e 90c5 +7a14 96ab +7a17 9542 +7a18 e264 +7a19 e265 +7a1a 9274 +7a1c 97c5 +7a1f e267 +7a20 e266 +7a2e 8eed +7a31 e269 +7a32 88ee +7a37 e26c +7a3b e26a +7a3c 89d2 +7a3d 8c6d +7a3e e26b +7a3f 8d65 +7a40 8d92 +7a42 95e4 +7a43 e26d +7a46 9673 +7a49 e26f +7a4d 90cf +7a4e 896e +7a4f 89b8 +7a50 88aa +7a57 e26e +7a61 e270 +7a62 e271 +7a63 8ff5 +7a69 e272 +7a6b 8a6e +7a70 e274 +7a74 8c8a +7a76 8b86 +7a79 e275 +7a7a 8bf3 +7a7d e276 +7a7f 90fa +7a81 93cb +7a83 90de +7a84 8df3 +7a88 e277 +7a92 9282 +7a93 918b +7a95 e279 +7a96 e27b +7a97 e278 +7a98 e27a +7a9f 8c41 +7aa9 e27c +7aaa 8c45 +7aae 8b87 +7aaf 9771 +7ab0 e27e +7ab6 e280 +7aba 894d +7abf e283 +7ac3 8a96 +7ac4 e282 +7ac5 e281 +7ac7 e285 +7ac8 e27d +7aca e286 +7acb 97a7 +7acd e287 +7acf e288 +7ad2 9af2 +7ad3 e28a +7ad5 e289 +7ad9 e28b +7ada e28c +7adc 97b3 +7add e28d +7adf e8ed +7ae0 8fcd +7ae1 e28e +7ae2 e28f +7ae3 8f76 +7ae5 93b6 +7ae6 e290 +7aea 9247 +7aed e291 +7aef 925b +7af0 e292 +7af6 8ba3 +7af8 995e +7af9 927c +7afa 8eb1 +7aff 8ac6 +7b02 e293 +7b04 e2a0 +7b06 e296 +7b08 8b88 +7b0a e295 +7b0b e2a2 +7b0f e294 +7b11 8fce +7b18 e298 +7b19 e299 +7b1b 934a +7b1e e29a +7b20 8a7d +7b25 9079 +7b26 9584 +7b28 e29c +7b2c 91e6 +7b33 e297 +7b35 e29b +7b36 e29d +7b39 8df9 +7b45 e2a4 +7b46 954d +7b48 94a4 +7b49 9399 +7b4b 8bd8 +7b4c e2a3 +7b4d e2a1 +7b4f 94b3 +7b50 e29e +7b51 927d +7b52 939b +7b54 939a +7b56 8df4 +7b5d e2b6 +7b65 e2a6 +7b67 e2a8 +7b6c e2ab +7b6e e2ac +7b70 e2a9 +7b71 e2aa +7b74 e2a7 +7b75 e2a5 +7b7a e29f +7b86 95cd +7b87 89d3 +7b8b e2b3 +7b8d e2b0 +7b8f e2b5 +7b92 e2b4 +7b94 9493 +7b95 96a5 +7b97 8e5a +7b98 e2ae +7b99 e2b7 +7b9a e2b2 +7b9c e2b1 +7b9d e2ad +7b9f e2af +7ba1 8ac7 +7baa 925c +7bad 90fb +7bb1 94a0 +7bb4 e2bc +7bb8 94a2 +7bc0 90df +7bc1 e2b9 +7bc4 94cd +7bc6 e2bd +7bc7 95d1 +7bc9 927a +7bcb e2b8 +7bcc e2ba +7bcf e2bb +7bdd e2be +7be0 8ec2 +7be4 93c4 +7be5 e2c3 +7be6 e2c2 +7be9 e2bf +7bed 9855 +7bf3 e2c8 +7bf6 e2cc +7bf7 e2c9 +7c00 e2c5 +7c07 e2c6 +7c0d e2cb +7c11 e2c0 +7c12 99d3 +7c13 e2c7 +7c14 e2c1 +7c17 e2ca +7c1f e2d0 +7c21 8ac8 +7c23 e2cd +7c27 e2ce +7c2a e2cf +7c2b e2d2 +7c37 e2d1 +7c38 94f4 +7c3d e2d3 +7c3e 97fa +7c3f 95eb +7c40 e2d8 +7c43 e2d5 +7c4c e2d4 +7c4d 90d0 +7c4f e2d7 +7c50 e2d9 +7c54 e2d6 +7c56 e2dd +7c58 e2da +7c5f e2db +7c60 e2c4 +7c64 e2dc +7c65 e2de +7c6c e2df +7c73 95c4 +7c75 e2e0 +7c7e 96e0 +7c81 8bcc +7c82 8c48 +7c83 e2e1 +7c89 95b2 +7c8b 9088 +7c8d 96ae +7c90 e2e2 +7c92 97b1 +7c95 9494 +7c97 9165 +7c98 9453 +7c9b 8f6c +7c9f 88be +7ca1 e2e7 +7ca2 e2e5 +7ca4 e2e3 +7ca5 8a9f +7ca7 8fcf +7ca8 e2e8 +7cab e2e6 +7cad e2e4 +7cae e2ec +7cb1 e2eb +7cb2 e2ea +7cb3 e2e9 +7cb9 e2ed +7cbd e2ee +7cbe 90b8 +7cc0 e2ef +7cc2 e2f1 +7cc5 e2f0 +7cca 8cd0 +7cce 9157 +7cd2 e2f3 +7cd6 939c +7cd8 e2f2 +7cdc e2f4 +7cde 95b3 +7cdf 918c +7ce0 8d66 +7ce2 e2f5 +7ce7 97c6 +7cef e2f7 +7cf2 e2f8 +7cf4 e2f9 +7cf6 e2fa +7cf8 8e85 +7cfa e2fb +7cfb 8c6e +7cfe 8b8a +7d00 8b49 +7d02 e340 +7d04 96f1 +7d05 8d67 +7d06 e2fc +7d0a e343 +7d0b 96e4 +7d0d 945b +7d10 9552 +7d14 8f83 +7d15 e342 +7d17 8ed1 +7d18 8d68 +7d19 8e86 +7d1a 8b89 +7d1b 95b4 +7d1c e341 +7d20 9166 +7d21 9661 +7d22 8df5 +7d2b 8e87 +7d2c 92db +7d2e e346 +7d2f 97dd +7d30 8dd7 +7d32 e347 +7d33 9061 +7d35 e349 +7d39 8fd0 +7d3a 8dae +7d3f e348 +7d42 8f49 +7d43 8cbc +7d44 9167 +7d45 e344 +7d46 e34a +7d4b e345 +7d4c 8c6f +7d4e e34d +7d4f e351 +7d50 8c8b +7d56 e34c +7d5b e355 +7d5e 8d69 +7d61 978d +7d62 88ba +7d63 e352 +7d66 8b8b +7d68 e34f +7d6e e350 +7d71 939d +7d72 e34e +7d73 e34b +7d75 8a47 +7d76 90e2 +7d79 8ca6 +7d7d e357 +7d89 e354 +7d8f e356 +7d93 e353 +7d99 8c70 +7d9a 91b1 +7d9b e358 +7d9c 918e +7d9f e365 +7da2 e361 +7da3 e35b +7dab e35f +7dac 8ef8 +7dad 88db +7dae e35a +7daf e362 +7db0 e366 +7db1 8d6a +7db2 96d4 +7db4 92d4 +7db5 e35c +7db8 e364 +7dba e359 +7dbb 925d +7dbd e35e +7dbe 88bb +7dbf 96c8 +7dc7 e35d +7dca 8bd9 +7dcb 94ea +7dcf 918d +7dd1 97ce +7dd2 8f8f +7dd5 e38e +7dd8 e367 +7dda 90fc +7ddc e363 +7ddd e368 +7dde e36a +7de0 92f7 +7de1 e36d +7de4 e369 +7de8 95d2 +7de9 8ac9 +7dec 96c9 +7def 88dc +7df2 e36c +7df4 97fb +7dfb e36b +7e01 898f +7e04 93ea +7e05 e36e +7e09 e375 +7e0a e36f +7e0b e376 +7e12 e372 +7e1b 949b +7e1e 8ec8 +7e1f e374 +7e21 e371 +7e22 e377 +7e23 e370 +7e26 8f63 +7e2b 9644 +7e2e 8f6b +7e31 e373 +7e32 e380 +7e35 e37b +7e37 e37e +7e39 e37c +7e3a e381 +7e3b e37a +7e3d e360 +7e3e 90d1 +7e41 94c9 +7e43 e37d +7e46 e378 +7e4a 9140 +7e4b 8c71 +7e4d 8f4a +7e54 9044 +7e55 9155 +7e56 e384 +7e59 e386 +7e5a e387 +7e5d e383 +7e5e e385 +7e66 e379 +7e67 e382 +7e69 e38a +7e6a e389 +7e6d 969a +7e70 8c4a +7e79 e388 +7e7b e38c +7e7c e38b +7e7d e38f +7e7f e391 +7e82 8e5b +7e83 e38d +7e88 e392 +7e89 e393 +7e8c e394 +7e8e e39a +7e8f 935a +7e90 e396 +7e92 e395 +7e93 e397 +7e94 e398 +7e96 e399 +7e9b e39b +7e9c e39c +7f36 8aca +7f38 e39d +7f3a e39e +7f45 e39f +7f4c e3a0 +7f4d e3a1 +7f4e e3a2 +7f50 e3a3 +7f51 e3a4 +7f54 e3a6 +7f55 e3a5 +7f58 e3a7 +7f5f e3a8 +7f60 e3a9 +7f67 e3ac +7f68 e3aa +7f69 e3ab +7f6a 8ddf +7f6b 8c72 +7f6e 9275 +7f70 94b1 +7f72 8f90 +7f75 946c +7f77 94eb +7f78 e3ad +7f79 9ceb +7f82 e3ae +7f83 e3b0 +7f85 9785 +7f86 e3af +7f87 e3b2 +7f88 e3b1 +7f8a 9772 +7f8c e3b3 +7f8e 94fc +7f94 e3b4 +7f9a e3b7 +7f9d e3b6 +7f9e e3b5 +7fa3 e3b8 +7fa4 8c51 +7fa8 9141 +7fa9 8b60 +7fae e3bc +7faf e3b9 +7fb2 e3ba +7fb6 e3bd +7fb8 e3be +7fb9 e3bb +7fbd 8948 +7fc1 89a5 +7fc5 e3c0 +7fc6 e3c1 +7fca e3c2 +7fcc 9782 +7fd2 8f4b +7fd4 e3c4 +7fd5 e3c3 +7fe0 9089 +7fe1 e3c5 +7fe6 e3c6 +7fe9 e3c7 +7feb 8ae3 +7ff0 8acb +7ff3 e3c8 +7ff9 e3c9 +7ffb 967c +7ffc 9783 +8000 9773 +8001 9856 +8003 8d6c +8004 e3cc +8005 8ed2 +8006 e3cb +800b e3cd +800c 8ea7 +8010 91cf +8012 e3ce +8015 8d6b +8017 96d5 +8018 e3cf +8019 e3d0 +801c e3d1 +8021 e3d2 +8028 e3d3 +8033 8ea8 +8036 96eb +803b e3d5 +803d 925e +803f e3d4 +8046 e3d7 +804a e3d6 +8052 e3d8 +8056 90b9 +8058 e3d9 +805a e3da +805e 95b7 +805f e3db +8061 918f +8062 e3dc +8068 e3dd +806f 97fc +8070 e3e0 +8072 e3df +8073 e3de +8074 92ae +8076 e3e1 +8077 9045 +8079 e3e2 +807d e3e3 +807e 9857 +807f e3e4 +8084 e3e5 +8085 e3e7 +8086 e3e6 +8087 94a3 +8089 93f7 +808b 985d +808c 94a7 +8093 e3e9 +8096 8fd1 +8098 9549 +809a e3ea +809b e3e8 +809d 8acc +80a1 8cd2 +80a2 8e88 +80a5 94ec +80a9 8ca8 +80aa 9662 +80ac e3ed +80ad e3eb +80af 8d6d +80b1 8d6e +80b2 88e7 +80b4 8de6 +80ba 9478 +80c3 88dd +80c4 e3f2 +80c6 925f +80cc 9477 +80ce 91d9 +80d6 e3f4 +80d9 e3f0 +80da e3f3 +80db e3ee +80dd e3f1 +80de 9645 +80e1 8cd3 +80e4 88fb +80e5 e3ef +80ef e3f6 +80f1 e3f7 +80f4 93b7 +80f8 8bb9 +80fc e445 +80fd 945c +8102 8e89 +8105 8bba +8106 90c6 +8107 9865 +8108 96ac +8109 e3f5 +810a 90d2 +811a 8b72 +811b e3f8 +8123 e3fa +8129 e3f9 +812f e3fb +8131 9245 +8133 945d +8139 92af +813e e442 +8146 e441 +814b e3fc +814e 9074 +8150 9585 +8151 e444 +8153 e443 +8154 8d6f +8155 9872 +815f e454 +8165 e448 +8166 e449 +816b 8eee +816e e447 +8170 8d98 +8171 e446 +8174 e44a +8178 92b0 +8179 95a0 +817a 9142 +817f 91da +8180 e44e +8182 e44f +8183 e44b +8188 e44c +818a e44d +818f 8d70 +8193 e455 +8195 e451 +819a 9586 +819c 968c +819d 9547 +81a0 e450 +81a3 e453 +81a4 e452 +81a8 9663 +81a9 e456 +81b0 e457 +81b3 9156 +81b5 e458 +81b8 e45a +81ba e45e +81bd e45b +81be e459 +81bf 945e +81c0 e45c +81c2 e45d +81c6 89b0 +81c8 e464 +81c9 e45f +81cd e460 +81d1 e461 +81d3 919f +81d8 e463 +81d9 e462 +81da e465 +81df e466 +81e0 e467 +81e3 9062 +81e5 89e7 +81e7 e468 +81e8 97d5 +81ea 8ea9 +81ed 8f4c +81f3 8e8a +81f4 9276 +81fa e469 +81fb e46a +81fc 8950 +81fe e46b +8201 e46c +8202 e46d +8205 e46e +8207 e46f +8208 8bbb +8209 9da8 +820a e470 +820c 90e3 +820d e471 +820e 8ec9 +8210 e472 +8212 98ae +8216 e473 +8217 95dc +8218 8ada +821b 9143 +821c 8f77 +821e 9591 +821f 8f4d +8229 e474 +822a 8d71 +822b e475 +822c 94ca +822e e484 +8233 e477 +8235 91c7 +8236 9495 +8237 8cbd +8238 e476 +8239 9144 +8240 e478 +8247 92f8 +8258 e47a +8259 e479 +825a e47c +825d e47b +825f e47d +8262 e480 +8264 e47e +8266 8acd +8268 e481 +826a e482 +826b e483 +826e 8daf +826f 97c7 +8271 e485 +8272 9046 +8276 8990 +8277 e486 +8278 e487 +827e e488 +828b 88f0 +828d e489 +8292 e48a +8299 9587 +829d 8ec5 +829f e48c +82a5 8a48 +82a6 88b0 +82ab e48b +82ac e48e +82ad 946d +82af 9063 +82b1 89d4 +82b3 9646 +82b8 8c7c +82b9 8bda +82bb e48d +82bd 89e8 +82c5 8aa1 +82d1 8991 +82d2 e492 +82d3 97e8 +82d4 91db +82d7 9563 +82d9 e49e +82db 89d5 +82dc e49c +82de e49a +82df e491 +82e1 e48f +82e3 e490 +82e5 8ee1 +82e6 8bea +82e7 9297 +82eb 93cf +82f1 8970 +82f3 e494 +82f4 e493 +82f9 e499 +82fa e495 +82fb e498 +8302 96ce +8303 e497 +8304 89d6 +8305 8a9d +8306 e49b +8309 e49d +830e 8c73 +8316 e4a1 +8317 e4aa +8318 e4ab +831c 88a9 +8323 e4b2 +8328 88ef +832b e4a9 +832f e4a8 +8331 e4a3 +8332 e4a2 +8334 e4a0 +8335 e49f +8336 9283 +8338 91f9 +8339 e4a5 +8340 e4a4 +8345 e4a7 +8349 9190 +834a 8c74 +834f 8960 +8350 e4a6 +8352 8d72 +8358 9191 +8373 e4b8 +8375 e4b9 +8377 89d7 +837b 89ac +837c e4b6 +8385 e4ac +8387 e4b4 +8389 e4bb +838a e4b5 +838e e4b3 +8393 e496 +8396 e4b1 +839a e4ad +839e 8ace +839f e4af +83a0 e4ba +83a2 e4b0 +83a8 e4bc +83aa e4ae +83ab 949c +83b1 9789 +83b5 e4b7 +83bd e4cd +83c1 e4c5 +83c5 909b +83ca 8b65 +83cc 8bdb +83ce e4c0 +83d3 89d9 +83d6 8fd2 +83d8 e4c3 +83dc 8dd8 +83df 9370 +83e0 e4c8 +83e9 95ec +83eb e4bf +83ef 89d8 +83f0 8cd4 +83f1 9548 +83f2 e4c9 +83f4 e4bd +83f7 e4c6 +83fb e4d0 +83fd e4c1 +8403 e4c2 +8404 93b8 +8407 e4c7 +840b e4c4 +840c 9647 +840d e4ca +840e 88de +8413 e4be +8420 e4cc +8422 e4cb +8429 948b +842a e4d2 +842c e4dd +8431 8a9e +8435 e4e0 +8438 e4ce +843c e4d3 +843d 978e +8446 e4dc +8449 9774 +844e 97a8 +8457 9298 +845b 8a8b +8461 9592 +8462 e4e2 +8463 939f +8466 88af +8469 e4db +846b e4d7 +846c 9192 +846d e4d1 +846e e4d9 +846f e4de +8471 944b +8475 88a8 +8477 e4d6 +8479 e4df +847a 9598 +8482 e4da +8484 e4d5 +848b 8fd3 +8490 8f4e +8494 8eaa +8499 96d6 +849c 9566 +849f e4e5 +84a1 e4ee +84ad e4d8 +84b2 8a97 +84b8 8ff6 +84b9 e4e3 +84bb e4e8 +84bc 9193 +84bf e4e4 +84c1 e4eb +84c4 927e +84c6 e4ec +84c9 9775 +84ca e4e1 +84cb 8a57 +84cd e4e7 +84d0 e4ea +84d1 96aa +84d6 e4ed +84d9 e4e6 +84da e4e9 +84ec 9648 +84ee 9840 +84f4 e4f1 +84fc e4f8 +84ff e4f0 +8500 8ec1 +8506 e4cf +8511 95cc +8513 96a0 +8514 e4f7 +8515 e4f6 +8517 e4f2 +8518 e4f3 +851a 8955 +851f e4f5 +8521 e4ef +8526 92d3 +852c e4f4 +852d 88fc +8535 91a0 +853d 95c1 +8540 e4f9 +8541 e540 +8543 94d7 +8548 e4fc +8549 8fd4 +854a 8ec7 +854b e542 +854e 8bbc +8555 e543 +8557 9599 +8558 e4fb +855a e4d4 +8563 e4fa +8568 986e +8569 93a0 +856a 9593 +856d e54a +8577 e550 +857e e551 +8580 e544 +8584 9496 +8587 e54e +8588 e546 +858a e548 +8590 e552 +8591 e547 +8594 e54b +8597 8992 +8599 93e3 +859b e54c +859c e54f +85a4 e545 +85a6 9145 +85a8 e549 +85a9 8e46 +85aa 9064 +85ab 8c4f +85ac 96f2 +85ae 96f7 +85af 8f92 +85b9 e556 +85ba e554 +85c1 986d +85c9 e553 +85cd 9795 +85cf e555 +85d0 e557 +85d5 e558 +85dc e55b +85dd e559 +85e4 93a1 +85e5 e55a +85e9 94cb +85ea e54d +85f7 8f93 +85f9 e55c +85fa e561 +85fb 9194 +85fe e560 +8602 e541 +8606 e562 +8607 9168 +860a e55d +860b e55f +8613 e55e +8616 9f50 +8617 9f41 +861a e564 +8622 e563 +862d 9796 +862f e1ba +8630 e565 +863f e566 +864d e567 +864e 8cd5 +8650 8b73 +8654 e569 +8655 997c +865a 8b95 +865c 97b8 +865e 8bf1 +865f e56a +8667 e56b +866b 928e +8671 e56c +8679 93f8 +867b 88b8 +868a 89e1 +868b e571 +868c e572 +8693 e56d +8695 8e5c +86a3 e56e +86a4 9461 +86a9 e56f +86aa e570 +86ab e57a +86af e574 +86b0 e577 +86b6 e573 +86c4 e575 +86c6 e576 +86c7 8ed6 +86c9 e578 +86cb 9260 +86cd 8c75 +86ce 8a61 +86d4 e57b +86d9 8a5e +86db e581 +86de e57c +86df e580 +86e4 94b8 +86e9 e57d +86ec e57e +86ed 9567 +86ee 94d8 +86ef e582 +86f8 91fb +86f9 e58c +86fb e588 +86fe 89e9 +8700 e586 +8702 9649 +8703 e587 +8706 e584 +8708 e585 +8709 e58a +870a e58d +870d e58b +8711 e589 +8712 e583 +8718 9277 +871a e594 +871c 96a8 +8725 e592 +8729 e593 +8734 e58e +8737 e590 +873b e591 +873f e58f +8749 90e4 +874b 9858 +874c e598 +874e e599 +8753 e59f +8755 9049 +8757 e59b +8759 e59e +875f e596 +8760 e595 +8763 e5a0 +8766 89da +8768 e59c +876a e5a1 +876e e59d +8774 e59a +8776 92b1 +8778 e597 +877f 9488 +8782 e5a5 +878d 975a +879f e5a4 +87a2 e5a3 +87ab e5ac +87af e5a6 +87b3 e5ae +87ba 9786 +87bb e5b1 +87bd e5a8 +87c0 e5a9 +87c4 e5ad +87c6 e5b0 +87c7 e5af +87cb e5a7 +87d0 e5aa +87d2 e5bb +87e0 e5b4 +87ef e5b2 +87f2 e5b3 +87f6 e5b8 +87f7 e5b9 +87f9 8a49 +87fb 8b61 +87fe e5b7 +8805 e5a2 +880d e5b6 +880e e5ba +880f e5b5 +8811 e5bc +8815 e5be +8816 e5bd +8821 e5c0 +8822 e5bf +8823 e579 +8827 e5c4 +8831 e5c1 +8836 e5c2 +8839 e5c3 +883b e5c5 +8840 8c8c +8842 e5c7 +8844 e5c6 +8846 8f4f +884c 8d73 +884d 9fa5 +8852 e5c8 +8853 8f70 +8857 8a58 +8859 e5c9 +885b 8971 +885d 8fd5 +885e e5ca +8861 8d74 +8862 e5cb +8863 88df +8868 955c +886b e5cc +8870 908a +8872 e5d3 +8875 e5d0 +8877 928f +887d e5d1 +887e e5ce +887f 8bdc +8881 e5cd +8882 e5d4 +8888 8c55 +888b 91dc +888d e5da +8892 e5d6 +8896 91b3 +8897 e5d5 +8899 e5d8 +889e e5cf +88a2 e5d9 +88a4 e5db +88ab 94ed +88ae e5d7 +88b0 e5dc +88b1 e5de +88b4 8cd1 +88b5 e5d2 +88b7 88bf +88bf e5dd +88c1 8dd9 +88c2 97f4 +88c3 e5df +88c4 e5e0 +88c5 9195 +88cf 97a0 +88d4 e5e1 +88d5 9754 +88d8 e5e2 +88d9 e5e3 +88dc 95e2 +88dd e5e4 +88df 8dbe +88e1 97a1 +88e8 e5e9 +88f2 e5ea +88f3 8fd6 +88f4 e5e8 +88f8 9787 +88f9 e5e5 +88fc e5e7 +88fd 90bb +88fe 909e +8902 e5e6 +8904 e5eb +8907 95a1 +890a e5ed +890c e5ec +8910 8a8c +8912 964a +8913 e5ee +891d e5fa +891e e5f0 +8925 e5f1 +892a e5f2 +892b e5f3 +8936 e5f7 +8938 e5f8 +893b e5f6 +8941 e5f4 +8943 e5ef +8944 e5f5 +894c e5f9 +894d e8b5 +8956 89a6 +895e e5fc +895f 8bdd +8960 e5fb +8964 e641 +8966 e640 +896a e643 +896d e642 +896f e644 +8972 8f50 +8974 e645 +8977 e646 +897e e647 +897f 90bc +8981 9776 +8983 e648 +8986 95a2 +8987 9465 +8988 e649 +898a e64a +898b 8ca9 +898f 8b4b +8993 e64b +8996 8e8b +8997 9460 +8998 e64c +899a 8a6f +89a1 e64d +89a6 e64f +89a7 9797 +89a9 e64e +89aa 9065 +89ac e650 +89af e651 +89b2 e652 +89b3 8acf +89ba e653 +89bd e654 +89bf e655 +89c0 e656 +89d2 8a70 +89da e657 +89dc e658 +89dd e659 +89e3 89f0 +89e6 9047 +89e7 e65a +89f4 e65b +89f8 e65c +8a00 8cbe +8a02 92f9 +8a03 e65d +8a08 8c76 +8a0a 9075 +8a0c e660 +8a0e 93a2 +8a10 e65f +8a13 8c50 +8a16 e65e +8a17 91f5 +8a18 8b4c +8a1b e661 +8a1d e662 +8a1f 8fd7 +8a23 8c8d +8a25 e663 +8a2a 964b +8a2d 90dd +8a31 8b96 +8a33 96f3 +8a34 9169 +8a36 e664 +8a3a 9066 +8a3b 9290 +8a3c 8fd8 +8a41 e665 +8a46 e668 +8a48 e669 +8a50 8dbc +8a51 91c0 +8a52 e667 +8a54 8fd9 +8a55 955d +8a5b e666 +8a5e 8e8c +8a60 8972 +8a62 e66d +8a63 8c77 +8a66 8e8e +8a69 8e8d +8a6b 986c +8a6c e66c +8a6d e66b +8a6e 9146 +8a70 8b6c +8a71 9862 +8a72 8a59 +8a73 8fda +8a7c e66a +8a82 e66f +8a84 e670 +8a85 e66e +8a87 8cd6 +8a89 975f +8a8c 8e8f +8a8d 9446 +8a91 e673 +8a93 90be +8a95 9261 +8a98 9755 +8a9a e676 +8a9e 8cea +8aa0 90bd +8aa1 e672 +8aa3 e677 +8aa4 8ceb +8aa5 e674 +8aa6 e675 +8aa8 e671 +8aac 90e0 +8aad 93c7 +8ab0 924e +8ab2 89db +8ab9 94ee +8abc 8b62 +8abf 92b2 +8ac2 e67a +8ac4 e678 +8ac7 926b +8acb 90bf +8acc 8ad0 +8acd e679 +8acf 907a +8ad2 97c8 +8ad6 985f +8ada e67b +8adb e687 +8adc 92b3 +8ade e686 +8ae0 e683 +8ae1 e68b +8ae2 e684 +8ae4 e680 +8ae6 92fa +8ae7 e67e +8aeb e67c +8aed 9740 +8aee 8e90 +8af1 e681 +8af3 e67d +8af7 e685 +8af8 8f94 +8afa 8cbf +8afe 91f8 +8b00 9664 +8b01 8979 +8b02 88e0 +8b04 93a3 +8b07 e689 +8b0c e688 +8b0e 93e4 +8b10 e68d +8b14 e682 +8b16 e68c +8b17 e68e +8b19 8caa +8b1a e68a +8b1b 8d75 +8b1d 8ed3 +8b20 e68f +8b21 9777 +8b26 e692 +8b28 e695 +8b2b e693 +8b2c 9554 +8b33 e690 +8b39 8bde +8b3e e694 +8b41 e696 +8b49 e69a +8b4c e697 +8b4e e699 +8b4f e698 +8b56 e69b +8b58 8eaf +8b5a e69d +8b5b e69c +8b5c 9588 +8b5f e69f +8b66 8c78 +8b6b e69e +8b6c e6a0 +8b6f e6a1 +8b70 8b63 +8b71 e3bf +8b72 8ff7 +8b74 e6a2 +8b77 8cec +8b7d e6a3 +8b80 e6a4 +8b83 8e5d +8b8a 9dcc +8b8c e6a5 +8b8e e6a6 +8b90 8f51 +8b92 e6a7 +8b93 e6a8 +8b96 e6a9 +8b99 e6aa +8b9a e6ab +8c37 924a +8c3a e6ac +8c3f e6ae +8c41 e6ad +8c46 93a4 +8c48 e6af +8c4a 964c +8c4c e6b0 +8c4e e6b1 +8c50 e6b2 +8c55 e6b3 +8c5a 93d8 +8c61 8fdb +8c62 e6b4 +8c6a 8d8b +8c6b 98ac +8c6c e6b5 +8c78 e6b6 +8c79 955e +8c7a e6b7 +8c7c e6bf +8c82 e6b8 +8c85 e6ba +8c89 e6b9 +8c8a e6bb +8c8c 9665 +8c8d e6bc +8c8e e6bd +8c94 e6be +8c98 e6c0 +8c9d 8a4c +8c9e 92e5 +8ca0 9589 +8ca1 8de0 +8ca2 8d76 +8ca7 956e +8ca8 89dd +8ca9 94cc +8caa e6c3 +8cab 8ad1 +8cac 90d3 +8cad e6c2 +8cae e6c7 +8caf 9299 +8cb0 96e1 +8cb2 e6c5 +8cb3 e6c6 +8cb4 8b4d +8cb6 e6c8 +8cb7 9483 +8cb8 91dd +8cbb 94ef +8cbc 935c +8cbd e6c4 +8cbf 9666 +8cc0 89ea +8cc1 e6ca +8cc2 9847 +8cc3 92c0 +8cc4 9864 +8cc7 8e91 +8cc8 e6c9 +8cca 91af +8ccd e6da +8cce 9147 +8cd1 93f6 +8cd3 956f +8cda e6cd +8cdb 8e5e +8cdc 8e92 +8cde 8fdc +8ce0 9485 +8ce2 8cab +8ce3 e6cc +8ce4 e6cb +8ce6 958a +8cea 8ebf +8ced 9371 +8cfa e6cf +8cfb e6d0 +8cfc 8d77 +8cfd e6ce +8d04 e6d1 +8d05 e6d2 +8d07 e6d4 +8d08 91a1 +8d0a e6d3 +8d0b 8ae4 +8d0d e6d6 +8d0f e6d5 +8d10 e6d7 +8d13 e6d9 +8d14 e6db +8d16 e6dc +8d64 90d4 +8d66 8ecd +8d67 e6dd +8d6b 8a71 +8d6d e6de +8d70 9196 +8d71 e6df +8d73 e6e0 +8d74 958b +8d77 8b4e +8d81 e6e1 +8d85 92b4 +8d8a 897a +8d99 e6e2 +8da3 8eef +8da8 9096 +8db3 91ab +8dba e6e5 +8dbe e6e4 +8dc2 e6e3 +8dcb e6eb +8dcc e6e9 +8dcf e6e6 +8dd6 e6e8 +8dda e6e7 +8ddb e6ea +8ddd 8b97 +8ddf e6ee +8de1 90d5 +8de3 e6ef +8de8 8cd7 +8dea e6ec +8deb e6ed +8def 9848 +8df3 92b5 +8df5 9148 +8dfc e6f0 +8dff e6f3 +8e08 e6f1 +8e09 e6f2 +8e0a 9778 +8e0f 93a5 +8e10 e6f6 +8e1d e6f4 +8e1e e6f5 +8e1f e6f7 +8e2a e748 +8e30 e6fa +8e34 e6fb +8e35 e6f9 +8e42 e6f8 +8e44 92fb +8e47 e740 +8e48 e744 +8e49 e741 +8e4a e6fc +8e4c e742 +8e50 e743 +8e55 e74a +8e59 e745 +8e5f 90d6 +8e60 e747 +8e63 e749 +8e64 e746 +8e72 e74c +8e74 8f52 +8e76 e74b +8e7c e74d +8e81 e74e +8e84 e751 +8e85 e750 +8e87 e74f +8e8a e753 +8e8b e752 +8e8d 96f4 +8e91 e755 +8e93 e754 +8e94 e756 +8e99 e757 +8ea1 e759 +8eaa e758 +8eab 9067 +8eac e75a +8eaf 8beb +8eb0 e75b +8eb1 e75d +8ebe e75e +8ec5 e75f +8ec6 e75c +8ec8 e760 +8eca 8ed4 +8ecb e761 +8ecc 8b4f +8ecd 8c52 +8ed2 8cac +8edb e762 +8edf 93ee +8ee2 935d +8ee3 e763 +8eeb e766 +8ef8 8eb2 +8efb e765 +8efc e764 +8efd 8c79 +8efe e767 +8f03 8a72 +8f05 e769 +8f09 8dda +8f0a e768 +8f0c e771 +8f12 e76b +8f13 e76d +8f14 95e3 +8f15 e76a +8f19 e76c +8f1b e770 +8f1c e76e +8f1d 8b50 +8f1f e76f +8f26 e772 +8f29 9479 +8f2a 97d6 +8f2f 8f53 +8f33 e773 +8f38 9741 +8f39 e775 +8f3b e774 +8f3e e778 +8f3f 9760 +8f42 e777 +8f44 8a8d +8f45 e776 +8f46 e77b +8f49 e77a +8f4c e779 +8f4d 9351 +8f4e e77c +8f57 e77d +8f5c e77e +8f5f 8d8c +8f61 8c44 +8f62 e780 +8f63 e781 +8f64 e782 +8f9b 9068 +8f9c e783 +8f9e 8eab +8f9f e784 +8fa3 e785 +8fa7 999f +8fa8 999e +8fad e786 +8fae e390 +8faf e787 +8fb0 9243 +8fb1 904a +8fb2 945f +8fb7 e788 +8fba 95d3 +8fbb 92d2 +8fbc 8d9e +8fbf 9248 +8fc2 8949 +8fc4 9698 +8fc5 9076 +8fce 8c7d +8fd1 8bdf +8fd4 95d4 +8fda e789 +8fe2 e78b +8fe5 e78a +8fe6 89de +8fe9 93f4 +8fea e78c +8feb 9497 +8fed 9352 +8fef e78d +8ff0 8f71 +8ff4 e78f +8ff7 96c0 +8ff8 e79e +8ff9 e791 +8ffa e792 +8ffd 92c7 +9000 91de +9001 9197 +9003 93a6 +9005 e790 +9006 8b74 +900b e799 +900d e796 +900e e7a3 +900f 93a7 +9010 9280 +9011 e793 +9013 92fc +9014 9372 +9015 e794 +9016 e798 +9017 9080 +9019 9487 +901a 92ca +901d 90c0 +901e e797 +901f 91ac +9020 91a2 +9021 e795 +9022 88a7 +9023 9841 +9027 e79a +902e 91df +9031 8f54 +9032 9069 +9035 e79c +9036 e79b +9038 88ed +9039 e79d +903c 954e +903e e7a5 +9041 93d9 +9042 908b +9045 9278 +9047 8bf6 +9049 e7a4 +904a 9756 +904b 895e +904d 95d5 +904e 89df +904f e79f +9050 e7a0 +9051 e7a1 +9052 e7a2 +9053 93b9 +9054 9242 +9055 88e1 +9056 e7a6 +9058 e7a7 +9059 eaa1 +905c 91bb +905e e7a8 +9060 8993 +9061 916b +9063 8cad +9065 9779 +9068 e7a9 +9069 934b +906d 9198 +906e 8ed5 +906f e7aa +9072 e7ad +9075 8f85 +9076 e7ab +9077 914a +9078 9149 +907a 88e2 +907c 97c9 +907d e7af +907f 94f0 +9080 e7b1 +9081 e7b0 +9082 e7ae +9083 e284 +9084 8ad2 +9087 e78e +9089 e7b3 +908a e7b2 +908f e7b4 +9091 9757 +90a3 93df +90a6 964d +90a8 e7b5 +90aa 8ed7 +90af e7b6 +90b1 e7b7 +90b5 e7b8 +90b8 9340 +90c1 88e8 +90ca 8d78 +90ce 9859 +90db e7bc +90e1 8c53 +90e2 e7b9 +90e4 e7ba +90e8 9594 +90ed 8a73 +90f5 9758 +90f7 8bbd +90fd 9373 +9102 e7bd +9112 e7be +9119 e7bf +912d 9341 +9130 e7c1 +9132 e7c0 +9149 93d1 +914a e7c2 +914b 8f55 +914c 8ede +914d 947a +914e 9291 +9152 8ef0 +9154 908c +9156 e7c3 +9158 e7c4 +9162 907c +9163 e7c5 +9165 e7c6 +9169 e7c7 +916a 978f +916c 8f56 +9172 e7c9 +9173 e7c8 +9175 8d79 +9177 8d93 +9178 8e5f +9182 e7cc +9187 8f86 +9189 e7cb +918b e7ca +918d 91e7 +9190 8ced +9192 90c1 +9197 94ae +919c 8f58 +91a2 e7cd +91a4 8fdd +91aa e7d0 +91ab e7ce +91af e7cf +91b4 e7d2 +91b5 e7d1 +91b8 8ff8 +91ba e7d3 +91c0 e7d4 +91c1 e7d5 +91c6 94ce +91c7 8dd1 +91c8 8edf +91c9 e7d6 +91cb e7d7 +91cc 97a2 +91cd 8f64 +91ce 96ec +91cf 97ca +91d0 e7d8 +91d1 8be0 +91d6 e7d9 +91d8 9342 +91db e7dc +91dc 8a98 +91dd 906a +91df e7da +91e1 e7db +91e3 92de +91e6 9674 +91e7 8bfa +91f5 e7de +91f6 e7df +91fc e7dd +91ff e7e1 +920d 93dd +920e 8a62 +9211 e7e5 +9214 e7e2 +9215 e7e4 +921e e7e0 +9229 e86e +922c e7e3 +9234 97e9 +9237 8cd8 +923f e7ed +9244 9353 +9245 e7e8 +9248 e7eb +9249 e7e9 +924b e7ee +9250 e7ef +9257 e7e7 +925a e7f4 +925b 8994 +925e e7e6 +9262 94ab +9264 e7ea +9266 8fde +9271 8d7a +927e 9667 +9280 8be2 +9283 8f65 +9285 93ba +9291 914c +9293 e7f2 +9295 e7ec +9296 e7f1 +9298 96c1 +929a 92b6 +929b e7f3 +929c e7f0 +92ad 914b +92b7 e7f7 +92b9 e7f6 +92cf e7f5 +92d2 964e +92e4 8f9b +92e9 e7f8 +92ea 95dd +92ed 8973 +92f2 9565 +92f3 9292 +92f8 8b98 +92fa e7fa +92fc 8d7c +9306 8e4b +930f e7f9 +9310 908d +9318 908e +9319 e840 +931a e842 +9320 8ff9 +9322 e841 +9323 e843 +9326 8bd1 +9328 9564 +932b 8ee0 +932c 9842 +932e e7fc +932f 8df6 +9332 985e +9335 e845 +933a e844 +933b e846 +9344 e7fb +934b 93e7 +934d 9374 +9354 92d5 +9356 e84b +935b 9262 +935c e847 +9360 e848 +936c 8c4c +936e e84a +9375 8cae +937c e849 +937e 8fdf +938c 8a99 +9394 e84f +9396 8dbd +9397 9199 +939a 92c8 +93a7 8a5a +93ac e84d +93ad e84e +93ae 92c1 +93b0 e84c +93b9 e850 +93c3 e856 +93c8 e859 +93d0 e858 +93d1 934c +93d6 e851 +93d7 e852 +93d8 e855 +93dd e857 +93e1 8bbe +93e4 e85a +93e5 e854 +93e8 e853 +9403 e85e +9407 e85f +9410 e860 +9413 e85d +9414 e85c +9418 8fe0 +9419 93a8 +941a e85b +9421 e864 +942b e862 +9435 e863 +9436 e861 +9438 91f6 +943a e865 +9441 e866 +9444 e868 +9451 8ad3 +9452 e867 +9453 96f8 +945a e873 +945b e869 +945e e86c +9460 e86a +9462 e86b +946a e86d +9470 e86f +9475 e870 +9477 e871 +947c e874 +947d e872 +947e e875 +947f e877 +9481 e876 +9577 92b7 +9580 96e5 +9582 e878 +9583 914d +9587 e879 +9589 95c2 +958a e87a +958b 8a4a +958f 895b +9591 8ad5 +9593 8ad4 +9594 e87b +9596 e87c +9598 e87d +9599 e87e +95a0 e880 +95a2 8ad6 +95a3 8a74 +95a4 8d7d +95a5 94b4 +95a7 e882 +95a8 e881 +95ad e883 +95b2 897b +95b9 e886 +95bb e885 +95bc e884 +95be e887 +95c3 e88a +95c7 88c5 +95ca e888 +95cc e88c +95cd e88b +95d4 e88e +95d5 e88d +95d6 e88f +95d8 93ac +95dc e890 +95e1 e891 +95e2 e893 +95e5 e892 +961c 958c +9621 e894 +9628 e895 +962a 8de3 +962e e896 +962f e897 +9632 9668 +963b 916a +963f 88a2 +9640 91c9 +9642 e898 +9644 958d +964b e89b +964c e899 +964d 8d7e +964f e89a +9650 8cc0 +965b 95c3 +965c e89d +965d e89f +965e e89e +965f e8a0 +9662 8940 +9663 9077 +9664 8f9c +9665 8ad7 +9666 e8a1 +966a 9486 +966c e8a3 +9670 8941 +9672 e8a2 +9673 92c2 +9675 97cb +9676 93a9 +9677 e89c +9678 97a4 +967a 8caf +967d 977a +9685 8bf7 +9686 97b2 +9688 8c47 +968a 91e0 +968b e440 +968d e8a4 +968e 8a4b +968f 908f +9694 8a75 +9695 e8a6 +9697 e8a7 +9698 e8a5 +9699 8c84 +969b 8ddb +969c 8fe1 +96a0 8942 +96a3 97d7 +96a7 e8a9 +96a8 e7ac +96aa e8a8 +96b0 e8ac +96b1 e8aa +96b2 e8ab +96b4 e8ad +96b6 e8ae +96b7 97ea +96b8 e8af +96b9 e8b0 +96bb 90c7 +96bc 94b9 +96c0 909d +96c1 8ae5 +96c4 9759 +96c5 89eb +96c6 8f57 +96c7 8cd9 +96c9 e8b3 +96cb e8b2 +96cc 8e93 +96cd e8b4 +96ce e8b1 +96d1 8e47 +96d5 e8b8 +96d6 e5ab +96d9 99d4 +96db 9097 +96dc e8b6 +96e2 97a3 +96e3 93ef +96e8 894a +96ea 90e1 +96eb 8eb4 +96f0 95b5 +96f2 895f +96f6 97eb +96f7 978b +96f9 e8b9 +96fb 9364 +9700 8ef9 +9704 e8ba +9706 e8bb +9707 906b +9708 e8bc +970a 97ec +970d e8b7 +970e e8be +970f e8c0 +9711 e8bf +9713 e8bd +9716 e8c1 +9719 e8c2 +971c 919a +971e 89e0 +9724 e8c3 +9727 96b6 +972a e8c4 +9730 e8c5 +9732 9849 +9738 9e50 +9739 e8c6 +973d e8c7 +973e e8c8 +9742 e8cc +9744 e8c9 +9746 e8ca +9748 e8cb +9749 e8cd +9752 90c2 +9756 96f5 +9759 90c3 +975c e8ce +975e 94f1 +9760 e8cf +9761 ea72 +9762 96ca +9764 e8d0 +9766 e8d1 +9768 e8d2 +9769 8a76 +976b e8d4 +976d 9078 +9771 e8d5 +9774 8c43 +9779 e8d6 +977a e8da +977c e8d8 +9781 e8d9 +9784 8a93 +9785 e8d7 +9786 e8db +978b e8dc +978d 88c6 +978f e8dd +9790 e8de +9798 8fe2 +979c e8df +97a0 8b66 +97a3 e8e2 +97a6 e8e1 +97a8 e8e0 +97ab e691 +97ad 95da +97b3 e8e3 +97b4 e8e4 +97c3 e8e5 +97c6 e8e6 +97c8 e8e7 +97cb e8e8 +97d3 8ad8 +97dc e8e9 +97ed e8ea +97ee 9442 +97f2 e8ec +97f3 89b9 +97f5 e8ef +97f6 e8ee +97fb 8943 +97ff 8bbf +9801 95c5 +9802 92b8 +9803 8da0 +9805 8d80 +9806 8f87 +9808 907b +980c e8f1 +980f e8f0 +9810 9761 +9811 8ae6 +9812 94d0 +9813 93da +9817 909c +9818 97cc +981a 8c7a +9821 e8f4 +9824 e8f3 +982c 966a +982d 93aa +9834 896f +9837 e8f5 +9838 e8f2 +983b 9570 +983c 978a +983d e8f6 +9846 e8f7 +984b e8f9 +984c 91e8 +984d 8a7a +984e 8a7b +984f e8f8 +9854 8ae7 +9855 8cb0 +9858 8ae8 +985b 935e +985e 97de +9867 8cda +986b e8fa +986f e8fb +9870 e8fc +9871 e940 +9873 e942 +9874 e941 +98a8 9597 +98aa e943 +98af e944 +98b1 e945 +98b6 e946 +98c3 e948 +98c4 e947 +98c6 e949 +98db 94f2 +98dc e3ca +98df 9048 +98e2 8b51 +98e9 e94a +98eb e94b +98ed 99aa +98ee 9f5a +98ef 94d1 +98f2 88f9 +98f4 88b9 +98fc 8e94 +98fd 964f +98fe 8ffc +9903 e94c +9905 96dd +9909 e94d +990a 977b +990c 8961 +9910 8e60 +9912 e94e +9913 89ec +9914 e94f +9918 e950 +991d e952 +991e e953 +9920 e955 +9921 e951 +9924 e954 +9928 8ad9 +992c e956 +992e e957 +993d e958 +993e e959 +9942 e95a +9945 e95c +9949 e95b +994b e95e +994c e961 +9950 e95d +9951 e95f +9952 e960 +9955 e962 +9957 8bc0 +9996 8ef1 +9997 e963 +9998 e964 +9999 8d81 +99a5 e965 +99a8 8a5d +99ac 946e +99ad e966 +99ae e967 +99b3 9279 +99b4 93e9 +99bc e968 +99c1 949d +99c4 91ca +99c5 8977 +99c6 8bec +99c8 8bed +99d0 9293 +99d1 e96d +99d2 8bee +99d5 89ed +99d8 e96c +99db e96a +99dd e96b +99df e969 +99e2 e977 +99ed e96e +99ee e96f +99f1 e970 +99f2 e971 +99f8 e973 +99fb e972 +99ff 8f78 +9a01 e974 +9a05 e976 +9a0e 8b52 +9a0f e975 +9a12 919b +9a13 8cb1 +9a19 e978 +9a28 91cb +9a2b e979 +9a30 93ab +9a37 e97a +9a3e e980 +9a40 e97d +9a42 e97c +9a43 e97e +9a45 e97b +9a4d e982 +9a55 e981 +9a57 e984 +9a5a 8bc1 +9a5b e983 +9a5f e985 +9a62 e986 +9a64 e988 +9a65 e987 +9a69 e989 +9a6a e98b +9a6b e98a +9aa8 8d9c +9aad e98c +9ab0 e98d +9ab8 8a5b +9abc e98e +9ac0 e98f +9ac4 9091 +9acf e990 +9ad1 e991 +9ad3 e992 +9ad4 e993 +9ad8 8d82 +9ade e994 +9adf e995 +9ae2 e996 +9ae3 e997 +9ae6 e998 +9aea 94af +9aeb e99a +9aed 9545 +9aee e99b +9aef e999 +9af1 e99d +9af4 e99c +9af7 e99e +9afb e99f +9b06 e9a0 +9b18 e9a1 +9b1a e9a2 +9b1f e9a3 +9b22 e9a4 +9b23 e9a5 +9b25 e9a6 +9b27 e9a7 +9b28 e9a8 +9b29 e9a9 +9b2a e9aa +9b2e e9ab +9b2f e9ac +9b31 9f54 +9b32 e9ad +9b3b e2f6 +9b3c 8b53 +9b41 8a40 +9b42 8db0 +9b43 e9af +9b44 e9ae +9b45 96a3 +9b4d e9b1 +9b4e e9b2 +9b4f e9b0 +9b51 e9b3 +9b54 9682 +9b58 e9b4 +9b5a 8b9b +9b6f 9844 +9b74 e9b5 +9b83 e9b7 +9b8e 88bc +9b91 e9b8 +9b92 95a9 +9b93 e9b6 +9b96 e9b9 +9b97 e9ba +9b9f e9bb +9ba0 e9bc +9ba8 e9bd +9baa 968e +9bab 8e4c +9bad 8df8 +9bae 914e +9bb4 e9be +9bb9 e9c1 +9bc0 e9bf +9bc6 e9c2 +9bc9 8cef +9bca e9c0 +9bcf e9c3 +9bd1 e9c4 +9bd2 e9c5 +9bd4 e9c9 +9bd6 8e49 +9bdb 91e2 +9be1 e9ca +9be2 e9c7 +9be3 e9c6 +9be4 e9c8 +9be8 8c7e +9bf0 e9ce +9bf1 e9cd +9bf2 e9cc +9bf5 88b1 +9c04 e9d8 +9c06 e9d4 +9c08 e9d5 +9c09 e9d1 +9c0a e9d7 +9c0c e9d3 +9c0d 8a82 +9c10 986b +9c12 e9d6 +9c13 e9d2 +9c14 e9d0 +9c15 e9cf +9c1b e9da +9c21 e9dd +9c24 e9dc +9c25 e9db +9c2d 9568 +9c2e e9d9 +9c2f 88f1 +9c30 e9de +9c32 e9e0 +9c39 8a8f +9c3a e9cb +9c3b 8956 +9c3e e9e2 +9c46 e9e1 +9c47 e9df +9c48 924c +9c52 9690 +9c57 97d8 +9c5a e9e3 +9c60 e9e4 +9c67 e9e5 +9c76 e9e6 +9c78 e9e7 +9ce5 92b9 +9ce7 e9e8 +9ce9 94b5 +9ceb e9ed +9cec e9e9 +9cf0 e9ea +9cf3 9650 +9cf4 96c2 +9cf6 93ce +9d03 e9ee +9d06 e9ef +9d07 93bc +9d08 e9ec +9d09 e9eb +9d0e 89a8 +9d12 e9f7 +9d15 e9f6 +9d1b 8995 +9d1f e9f4 +9d23 e9f3 +9d26 e9f1 +9d28 8a9b +9d2a e9f0 +9d2b 8eb0 +9d2c 89a7 +9d3b 8d83 +9d3e e9fa +9d3f e9f9 +9d41 e9f8 +9d44 e9f5 +9d46 e9fb +9d48 e9fc +9d50 ea44 +9d51 ea43 +9d59 ea45 +9d5c 894c +9d5d ea40 +9d5e ea41 +9d60 8d94 +9d61 96b7 +9d64 ea42 +9d6c 9651 +9d6f ea4a +9d72 ea46 +9d7a ea4b +9d87 ea48 +9d89 ea47 +9d8f 8c7b +9d9a ea4c +9da4 ea4d +9da9 ea4e +9dab ea49 +9daf e9f2 +9db2 ea4f +9db4 92df +9db8 ea53 +9dba ea54 +9dbb ea52 +9dc1 ea51 +9dc2 ea57 +9dc4 ea50 +9dc6 ea55 +9dcf ea56 +9dd3 ea59 +9dd9 ea58 +9de6 ea5b +9ded ea5c +9def ea5d +9df2 9868 +9df8 ea5a +9df9 91e9 +9dfa 8deb +9dfd ea5e +9e1a ea5f +9e1b ea60 +9e1e ea61 +9e75 ea62 +9e78 8cb2 +9e79 ea63 +9e7d ea64 +9e7f 8ead +9e81 ea65 +9e88 ea66 +9e8b ea67 +9e8c ea68 +9e91 ea6b +9e92 ea69 +9e93 985b +9e95 ea6a +9e97 97ed +9e9d ea6c +9e9f 97d9 +9ea5 ea6d +9ea6 949e +9ea9 ea6e +9eaa ea70 +9ead ea71 +9eb8 ea6f +9eb9 8d8d +9eba 96cb +9ebb 9683 +9ebc 9bf5 +9ebe 9f80 +9ebf 969b +9ec4 89a9 +9ecc ea73 +9ecd 8b6f +9ece ea74 +9ecf ea75 +9ed0 ea76 +9ed2 8d95 +9ed4 ea77 +9ed8 e0d2 +9ed9 96d9 +9edb 91e1 +9edc ea78 +9edd ea7a +9ede ea79 +9ee0 ea7b +9ee5 ea7c +9ee8 ea7d +9eef ea7e +9ef4 ea80 +9ef6 ea81 +9ef7 ea82 +9ef9 ea83 +9efb ea84 +9efc ea85 +9efd ea86 +9f07 ea87 +9f08 ea88 +9f0e 9343 +9f13 8cdb +9f15 ea8a +9f20 916c +9f21 ea8b +9f2c ea8c +9f3b 9540 +9f3e ea8d +9f4a ea8e +9f4b e256 +9f4e e6d8 +9f4f e8eb +9f52 ea8f +9f54 ea90 +9f5f ea92 +9f60 ea93 +9f61 ea94 +9f62 97ee +9f63 ea91 +9f66 ea95 +9f67 ea96 +9f6a ea98 +9f6c ea97 +9f72 ea9a +9f76 ea9b +9f77 ea99 +9f8d 97b4 +9f95 ea9c +9f9c ea9d +9f9d e273 +9fa0 ea9e +ff01 8149 +ff03 8194 +ff04 8190 +ff05 8193 +ff06 8195 +ff08 8169 +ff09 816a +ff0a 8196 +ff0b 817b +ff0c 8143 +ff0e 8144 +ff0f 815e +ff10 824f +ff11 8250 +ff12 8251 +ff13 8252 +ff14 8253 +ff15 8254 +ff16 8255 +ff17 8256 +ff18 8257 +ff19 8258 +ff1a 8146 +ff1b 8147 +ff1c 8183 +ff1d 8181 +ff1e 8184 +ff1f 8148 +ff20 8197 +ff21 8260 +ff22 8261 +ff23 8262 +ff24 8263 +ff25 8264 +ff26 8265 +ff27 8266 +ff28 8267 +ff29 8268 +ff2a 8269 +ff2b 826a +ff2c 826b +ff2d 826c +ff2e 826d +ff2f 826e +ff30 826f +ff31 8270 +ff32 8271 +ff33 8272 +ff34 8273 +ff35 8274 +ff36 8275 +ff37 8276 +ff38 8277 +ff39 8278 +ff3a 8279 +ff3b 816d +ff3c 815f +ff3d 816e +ff3e 814f +ff3f 8151 +ff40 814d +ff41 8281 +ff42 8282 +ff43 8283 +ff44 8284 +ff45 8285 +ff46 8286 +ff47 8287 +ff48 8288 +ff49 8289 +ff4a 828a +ff4b 828b +ff4c 828c +ff4d 828d +ff4e 828e +ff4f 828f +ff50 8290 +ff51 8291 +ff52 8292 +ff53 8293 +ff54 8294 +ff55 8295 +ff56 8296 +ff57 8297 +ff58 8298 +ff59 8299 +ff5a 829a +ff5b 816f +ff5c 8162 +ff5d 8170 +ff61 a1 +ff62 a2 +ff63 a3 +ff64 a4 +ff65 a5 +ff66 a6 +ff67 a7 +ff68 a8 +ff69 a9 +ff6a aa +ff6b ab +ff6c ac +ff6d ad +ff6e ae +ff6f af +ff70 b0 +ff71 b1 +ff72 b2 +ff73 b3 +ff74 b4 +ff75 b5 +ff76 b6 +ff77 b7 +ff78 b8 +ff79 b9 +ff7a ba +ff7b bb +ff7c bc +ff7d bd +ff7e be +ff7f bf +ff80 c0 +ff81 c1 +ff82 c2 +ff83 c3 +ff84 c4 +ff85 c5 +ff86 c6 +ff87 c7 +ff88 c8 +ff89 c9 +ff8a ca +ff8b cb +ff8c cc +ff8d cd +ff8e ce +ff8f cf +ff90 d0 +ff91 d1 +ff92 d2 +ff93 d3 +ff94 d4 +ff95 d5 +ff96 d6 +ff97 d7 +ff98 d8 +ff99 d9 +ff9a da +ff9b db +ff9c dc +ff9d dd +ff9e de +ff9f df +ffe3 8150 +ffe5 818f diff --git a/jdk/test/java/nio/charset/coders/ref.windows-31j b/jdk/test/java/nio/charset/coders/ref.windows-31j new file mode 100644 index 00000000000..0766c319a8e --- /dev/null +++ b/jdk/test/java/nio/charset/coders/ref.windows-31j @@ -0,0 +1,9409 @@ +0 00 +1 01 +2 02 +3 03 +4 04 +5 05 +6 06 +7 07 +8 08 +9 09 +a 0a +b 0b +c 0c +d 0d +e 0e +f 0f +10 10 +11 11 +12 12 +13 13 +14 14 +15 15 +16 16 +17 17 +18 18 +19 19 +1a 1a +1b 1b +1c 1c +1d 1d +1e 1e +1f 1f +20 20 +21 21 +22 22 +23 23 +24 24 +25 25 +26 26 +27 27 +28 28 +29 29 +2a 2a +2b 2b +2c 2c +2d 2d +2e 2e +2f 2f +30 30 +31 31 +32 32 +33 33 +34 34 +35 35 +36 36 +37 37 +38 38 +39 39 +3a 3a +3b 3b +3c 3c +3d 3d +3e 3e +3f 3f +40 40 +41 41 +42 42 +43 43 +44 44 +45 45 +46 46 +47 47 +48 48 +49 49 +4a 4a +4b 4b +4c 4c +4d 4d +4e 4e +4f 4f +50 50 +51 51 +52 52 +53 53 +54 54 +55 55 +56 56 +57 57 +58 58 +59 59 +5a 5a +5b 5b +5c 5c +5d 5d +5e 5e +5f 5f +60 60 +61 61 +62 62 +63 63 +64 64 +65 65 +66 66 +67 67 +68 68 +69 69 +6a 6a +6b 6b +6c 6c +6d 6d +6e 6e +6f 6f +70 70 +71 71 +72 72 +73 73 +74 74 +75 75 +76 76 +77 77 +78 78 +79 79 +7a 7a +7b 7b +7c 7c +7d 7d +7e 7e +7f 7f +#a2 8191 +#a3 8192 +#a5 5c +a7 8198 +a8 814e +#ab 81e1 +#ac 81ca +#af 8150 +b0 818b +b1 817d +b4 814c +#b5 83ca +b6 81f7 +#b7 8145 +#b8 8143 +#bb 81e2 +d7 817e +f7 8180 +391 839f +392 83a0 +393 83a1 +394 83a2 +395 83a3 +396 83a4 +397 83a5 +398 83a6 +399 83a7 +39a 83a8 +39b 83a9 +39c 83aa +39d 83ab +39e 83ac +39f 83ad +3a0 83ae +3a1 83af +3a3 83b0 +3a4 83b1 +3a5 83b2 +3a6 83b3 +3a7 83b4 +3a8 83b5 +3a9 83b6 +3b1 83bf +3b2 83c0 +3b3 83c1 +3b4 83c2 +3b5 83c3 +3b6 83c4 +3b7 83c5 +3b8 83c6 +3b9 83c7 +3ba 83c8 +3bb 83c9 +3bc 83ca +3bd 83cb +3be 83cc +3bf 83cd +3c0 83ce +3c1 83cf +3c3 83d0 +3c4 83d1 +3c5 83d2 +3c6 83d3 +3c7 83d4 +3c8 83d5 +3c9 83d6 +401 8446 +410 8440 +411 8441 +412 8442 +413 8443 +414 8444 +415 8445 +416 8447 +417 8448 +418 8449 +419 844a +41a 844b +41b 844c +41c 844d +41d 844e +41e 844f +41f 8450 +420 8451 +421 8452 +422 8453 +423 8454 +424 8455 +425 8456 +426 8457 +427 8458 +428 8459 +429 845a +42a 845b +42b 845c +42c 845d +42d 845e +42e 845f +42f 8460 +430 8470 +431 8471 +432 8472 +433 8473 +434 8474 +435 8475 +436 8477 +437 8478 +438 8479 +439 847a +43a 847b +43b 847c +43c 847d +43d 847e +43e 8480 +43f 8481 +440 8482 +441 8483 +442 8484 +443 8485 +444 8486 +445 8487 +446 8488 +447 8489 +448 848a +449 848b +44a 848c +44b 848d +44c 848e +44d 848f +44e 8490 +44f 8491 +451 8476 +2010 815d +2015 815c +2018 8165 +2019 8166 +201c 8167 +201d 8168 +2020 81f5 +2021 81f6 +2025 8164 +2026 8163 +2030 81f1 +2032 818c +2033 818d +203b 81a6 +#203e 7e +2103 818e +2116 8782 +2121 8784 +212b 81f0 +2160 8754 +2161 8755 +2162 8756 +2163 8757 +2164 8758 +2165 8759 +2166 875a +2167 875b +2168 875c +2169 875d +2170 fa40 +2171 fa41 +2172 fa42 +2173 fa43 +2174 fa44 +2175 fa45 +2176 fa46 +2177 fa47 +2178 fa48 +2179 fa49 +2190 81a9 +2191 81aa +2192 81a8 +2193 81ab +21d2 81cb +21d4 81cc +2200 81cd +2202 81dd +2203 81ce +2207 81de +2208 81b8 +220b 81b9 +2211 8794 +221a 81e3 +221d 81e5 +221e 8187 +221f 8798 +2220 81da +2225 8161 +2227 81c8 +2228 81c9 +2229 81bf +222a 81be +222b 81e7 +222c 81e8 +222e 8793 +2234 8188 +2235 81e6 +223d 81e4 +2252 81e0 +2260 8182 +2261 81df +2266 8185 +2267 8186 +226a 81e1 +226b 81e2 +2282 81bc +2283 81bd +2286 81ba +2287 81bb +22a5 81db +22bf 8799 +2312 81dc +2460 8740 +2461 8741 +2462 8742 +2463 8743 +2464 8744 +2465 8745 +2466 8746 +2467 8747 +2468 8748 +2469 8749 +246a 874a +246b 874b +246c 874c +246d 874d +246e 874e +246f 874f +2470 8750 +2471 8751 +2472 8752 +2473 8753 +2500 849f +2501 84aa +2502 84a0 +2503 84ab +250c 84a1 +250f 84ac +2510 84a2 +2513 84ad +2514 84a4 +2517 84af +2518 84a3 +251b 84ae +251c 84a5 +251d 84ba +2520 84b5 +2523 84b0 +2524 84a7 +2525 84bc +2528 84b7 +252b 84b2 +252c 84a6 +252f 84b6 +2530 84bb +2533 84b1 +2534 84a8 +2537 84b8 +2538 84bd +253b 84b3 +253c 84a9 +253f 84b9 +2542 84be +254b 84b4 +25a0 81a1 +25a1 81a0 +25b2 81a3 +25b3 81a2 +25bc 81a5 +25bd 81a4 +25c6 819f +25c7 819e +25cb 819b +25ce 819d +25cf 819c +25ef 81fc +2605 819a +2606 8199 +2640 818a +2642 8189 +266a 81f4 +266d 81f3 +266f 81f2 +3000 8140 +3001 8141 +3002 8142 +3003 8156 +3005 8158 +3006 8159 +3007 815a +3008 8171 +3009 8172 +300a 8173 +300b 8174 +300c 8175 +300d 8176 +300e 8177 +300f 8178 +3010 8179 +3011 817a +3012 81a7 +3013 81ac +3014 816b +3015 816c +301d 8780 +301f 8781 +3041 829f +3042 82a0 +3043 82a1 +3044 82a2 +3045 82a3 +3046 82a4 +3047 82a5 +3048 82a6 +3049 82a7 +304a 82a8 +304b 82a9 +304c 82aa +304d 82ab +304e 82ac +304f 82ad +3050 82ae +3051 82af +3052 82b0 +3053 82b1 +3054 82b2 +3055 82b3 +3056 82b4 +3057 82b5 +3058 82b6 +3059 82b7 +305a 82b8 +305b 82b9 +305c 82ba +305d 82bb +305e 82bc +305f 82bd +3060 82be +3061 82bf +3062 82c0 +3063 82c1 +3064 82c2 +3065 82c3 +3066 82c4 +3067 82c5 +3068 82c6 +3069 82c7 +306a 82c8 +306b 82c9 +306c 82ca +306d 82cb +306e 82cc +306f 82cd +3070 82ce +3071 82cf +3072 82d0 +3073 82d1 +3074 82d2 +3075 82d3 +3076 82d4 +3077 82d5 +3078 82d6 +3079 82d7 +307a 82d8 +307b 82d9 +307c 82da +307d 82db +307e 82dc +307f 82dd +3080 82de +3081 82df +3082 82e0 +3083 82e1 +3084 82e2 +3085 82e3 +3086 82e4 +3087 82e5 +3088 82e6 +3089 82e7 +308a 82e8 +308b 82e9 +308c 82ea +308d 82eb +308e 82ec +308f 82ed +3090 82ee +3091 82ef +3092 82f0 +3093 82f1 +#3094 8394 +309b 814a +309c 814b +309d 8154 +309e 8155 +30a1 8340 +30a2 8341 +30a3 8342 +30a4 8343 +30a5 8344 +30a6 8345 +30a7 8346 +30a8 8347 +30a9 8348 +30aa 8349 +30ab 834a +30ac 834b +30ad 834c +30ae 834d +30af 834e +30b0 834f +30b1 8350 +30b2 8351 +30b3 8352 +30b4 8353 +30b5 8354 +30b6 8355 +30b7 8356 +30b8 8357 +30b9 8358 +30ba 8359 +30bb 835a +30bc 835b +30bd 835c +30be 835d +30bf 835e +30c0 835f +30c1 8360 +30c2 8361 +30c3 8362 +30c4 8363 +30c5 8364 +30c6 8365 +30c7 8366 +30c8 8367 +30c9 8368 +30ca 8369 +30cb 836a +30cc 836b +30cd 836c +30ce 836d +30cf 836e +30d0 836f +30d1 8370 +30d2 8371 +30d3 8372 +30d4 8373 +30d5 8374 +30d6 8375 +30d7 8376 +30d8 8377 +30d9 8378 +30da 8379 +30db 837a +30dc 837b +30dd 837c +30de 837d +30df 837e +30e0 8380 +30e1 8381 +30e2 8382 +30e3 8383 +30e4 8384 +30e5 8385 +30e6 8386 +30e7 8387 +30e8 8388 +30e9 8389 +30ea 838a +30eb 838b +30ec 838c +30ed 838d +30ee 838e +30ef 838f +30f0 8390 +30f1 8391 +30f2 8392 +30f3 8393 +30f4 8394 +30f5 8395 +30f6 8396 +30fb 8145 +30fc 815b +30fd 8152 +30fe 8153 +3231 878a +3232 878b +3239 878c +32a4 8785 +32a5 8786 +32a6 8787 +32a7 8788 +32a8 8789 +3303 8765 +330d 8769 +3314 8760 +3318 8763 +3322 8761 +3323 876b +3326 876a +3327 8764 +332b 876c +3336 8766 +333b 876e +3349 875f +334a 876d +334d 8762 +3351 8767 +3357 8768 +337b 877e +337c 878f +337d 878e +337e 878d +338e 8772 +338f 8773 +339c 876f +339d 8770 +339e 8771 +33a1 8775 +33c4 8774 +33cd 8783 +4e00 88ea +4e01 929a +4e03 8eb5 +4e07 969c +4e08 8fe4 +4e09 8e4f +4e0a 8fe3 +4e0b 89ba +4e0d 9573 +4e0e 975e +4e10 98a0 +4e11 894e +4e14 8a8e +4e15 98a1 +4e16 90a2 +4e17 99c0 +4e18 8b75 +4e19 95b8 +4e1e 8fe5 +4e21 97bc +4e26 95c0 +4e28 fa68 +4e2a 98a2 +4e2d 9286 +4e31 98a3 +4e32 8bf8 +4e36 98a4 +4e38 8adb +4e39 924f +4e3b 8ee5 +4e3c 98a5 +4e3f 98a6 +4e42 98a7 +4e43 9454 +4e45 8b76 +4e4b 9456 +4e4d 93e1 +4e4e 8cc1 +4e4f 9652 +4e55 e568 +4e56 98a8 +4e57 8fe6 +4e58 98a9 +4e59 89b3 +4e5d 8be3 +4e5e 8cee +4e5f 96e7 +4e62 9ba4 +4e71 9790 +4e73 93fb +4e7e 8aa3 +4e80 8b54 +4e82 98aa +4e85 98ab +4e86 97b9 +4e88 975c +4e89 9188 +4e8a 98ad +4e8b 8e96 +4e8c 93f1 +4e8e 98b0 +4e91 895d +4e92 8cdd +4e94 8cdc +4e95 88e4 +4e98 986a +4e99 9869 +4e9b 8db1 +4e9c 889f +4e9e 98b1 +4e9f 98b2 +4ea0 98b3 +4ea1 9653 +4ea2 98b4 +4ea4 8cf0 +4ea5 88e5 +4ea6 9692 +4ea8 8b9c +4eab 8b9d +4eac 8b9e +4ead 92e0 +4eae 97ba +4eb0 98b5 +4eb3 98b6 +4eb6 98b7 +4eba 906c +4ec0 8f59 +4ec1 906d +4ec2 98bc +4ec4 98ba +4ec6 98bb +4ec7 8b77 +4eca 8da1 +4ecb 89ee +4ecd 98b9 +4ece 98b8 +4ecf 95a7 +4ed4 8e65 +4ed5 8e64 +4ed6 91bc +4ed7 98bd +4ed8 9574 +4ed9 90e5 +4edd 8157 +4ede 98be +4edf 98c0 +4ee1 fa69 +4ee3 91e3 +4ee4 97df +4ee5 88c8 +4eed 98bf +4eee 89bc +4ef0 8bc2 +4ef2 9287 +4ef6 8c8f +4ef7 98c1 +4efb 9443 +4efc fa6a +4f00 fa6b +4f01 8ae9 +4f03 fa6c +4f09 98c2 +4f0a 88c9 +4f0d 8cde +4f0e 8aea +4f0f 959a +4f10 94b0 +4f11 8b78 +4f1a 89ef +4f1c 98e5 +4f1d 9360 +4f2f 948c +4f30 98c4 +4f34 94ba +4f36 97e0 +4f38 904c +4f39 fa6d +4f3a 8e66 +4f3c 8e97 +4f3d 89be +4f43 92cf +4f46 9241 +4f47 98c8 +4f4d 88ca +4f4e 92e1 +4f4f 8f5a +4f50 8db2 +4f51 9743 +4f53 91cc +4f55 89bd +4f56 fa6e +4f57 98c7 +4f59 975d +4f5a 98c3 +4f5b 98c5 +4f5c 8dec +4f5d 98c6 +4f5e 9b43 +4f69 98ce +4f6f 98d1 +4f70 98cf +4f73 89c0 +4f75 95b9 +4f76 98c9 +4f7b 98cd +4f7c 8cf1 +4f7f 8e67 +4f83 8aa4 +4f86 98d2 +4f88 98ca +4f8a fa70 +4f8b 97e1 +4f8d 8e98 +4f8f 98cb +4f91 98d0 +4f92 fa6f +4f94 fa72 +4f96 98d3 +4f98 98cc +4f9a fa71 +4f9b 8b9f +4f9d 88cb +4fa0 8ba0 +4fa1 89bf +4fab 9b44 +4fad 9699 +4fae 958e +4faf 8cf2 +4fb5 904e +4fb6 97b5 +4fbf 95d6 +4fc2 8c57 +4fc3 91a3 +4fc4 89e2 +4fc9 fa61 +4fca 8f72 +4fcd fa73 +4fce 98d7 +4fd0 98dc +4fd1 98da +4fd4 98d5 +4fd7 91ad +4fd8 98d8 +4fda 98db +4fdb 98d9 +4fdd 95db +4fdf 98d6 +4fe1 904d +4fe3 9693 +4fe4 98dd +4fe5 98de +4fee 8f43 +4fef 98eb +4ff3 946f +4ff5 9555 +4ff6 98e6 +4ff8 95ee +4ffa 89b4 +4ffe 98ea +4fff fa76 +5005 98e4 +5006 98ed +5009 9171 +500b 8cc2 +500d 947b +500f e0c5 +5011 98ec +5012 937c +5014 98e1 +5016 8cf4 +5019 8cf3 +501a 98df +501e fa77 +501f 8ed8 +5021 98e7 +5022 fa75 +5023 95ed +5024 926c +5025 98e3 +5026 8c91 +5028 98e0 +5029 98e8 +502a 98e2 +502b 97cf +502c 98e9 +502d 9860 +5036 8be4 +5039 8c90 +5040 fa74 +5042 fa7a +5043 98ee +5046 fa78 +5047 98ef +5048 98f3 +5049 88cc +504f 95ce +5050 98f2 +5055 98f1 +5056 98f5 +505a 98f4 +505c 92e2 +5065 8c92 +506c 98f6 +5070 fa79 +5072 8ec3 +5074 91a4 +5075 92e3 +5076 8bf4 +5078 98f7 +507d 8b55 +5080 98f8 +5085 98fa +508d 9654 +5091 8c86 +5094 fa7b +5098 8e50 +5099 94f5 +509a 98f9 +50ac 8dc3 +50ad 9762 +50b2 98fc +50b3 9942 +50b4 98fb +50b5 8dc2 +50b7 8f9d +50be 8c58 +50c2 9943 +50c5 8bcd +50c9 9940 +50ca 9941 +50cd 93ad +50cf 919c +50d1 8ba1 +50d5 966c +50d6 9944 +50d8 fa7d +50da 97bb +50de 9945 +50e3 9948 +50e5 9946 +50e7 916d +50ed 9947 +50ee 9949 +50f4 fa7c +50f5 994b +50f9 994a +50fb 95c6 +5100 8b56 +5101 994d +5102 994e +5104 89ad +5109 994c +5112 8ef2 +5114 9951 +5115 9950 +5116 994f +5118 98d4 +511a 9952 +511f 8f9e +5121 9953 +512a 9744 +5132 96d7 +5137 9955 +513a 9954 +513b 9957 +513c 9956 +513f 9958 +5140 9959 +5141 88f2 +5143 8cb3 +5144 8c5a +5145 8f5b +5146 929b +5147 8ba2 +5148 90e6 +5149 8cf5 +514a fa7e +514b 8d8e +514c 995b +514d 96c6 +514e 9365 +5150 8e99 +5152 995a +5154 995c +515a 937d +515c 8a95 +5162 995d +5164 fa80 +5165 93fc +5168 9153 +5169 995f +516a 9960 +516b 94aa +516c 8cf6 +516d 985a +516e 9961 +5171 8ba4 +5175 95ba +5176 91b4 +5177 8bef +5178 9354 +517c 8c93 +5180 9962 +5182 9963 +5185 93e0 +5186 897e +5189 9966 +518a 8dfb +518c 9965 +518d 8dc4 +518f 9967 +5190 e3ec +5191 9968 +5192 9660 +5193 9969 +5195 996a +5196 996b +5197 8fe7 +5199 8eca +519d fa81 +51a0 8aa5 +51a2 996e +51a4 996c +51a5 96bb +51a6 996d +51a8 9579 +51a9 996f +51aa 9970 +51ab 9971 +51ac 937e +51b0 9975 +51b1 9973 +51b2 9974 +51b3 9972 +51b4 8de1 +51b5 9976 +51b6 96e8 +51b7 97e2 +51bd 9977 +51be fa82 +51c4 90a6 +51c5 9978 +51c6 8f79 +51c9 9979 +51cb 929c +51cc 97bd +51cd 9380 +51d6 99c3 +51db 997a +51dc eaa3 +51dd 8bc3 +51e0 997b +51e1 967d +51e6 8f88 +51e7 91fa +51e9 997d +51ea 93e2 +51ec fa83 +51ed 997e +51f0 9980 +51f1 8a4d +51f5 9981 +51f6 8ba5 +51f8 93ca +51f9 899a +51fa 8f6f +51fd 949f +51fe 9982 +5200 9381 +5203 906e +5204 9983 +5206 95aa +5207 90d8 +5208 8aa0 +520a 8aa7 +520b 9984 +520e 9986 +5211 8c59 +5214 9985 +5215 fa84 +5217 97f1 +521d 8f89 +5224 94bb +5225 95ca +5227 9987 +5229 9798 +522a 9988 +522e 9989 +5230 939e +5233 998a +5236 90a7 +5237 8dfc +5238 8c94 +5239 998b +523a 8e68 +523b 8d8f +5243 92e4 +5244 998d +5247 91a5 +524a 8ded +524b 998e +524c 998f +524d 914f +524f 998c +5254 9991 +5256 9655 +525b 8d84 +525e 9990 +5263 8c95 +5264 8ddc +5265 948d +5269 9994 +526a 9992 +526f 959b +5270 8fe8 +5271 999b +5272 8a84 +5273 9995 +5274 9993 +5275 916e +527d 9997 +527f 9996 +5283 8a63 +5287 8c80 +5288 999c +5289 97ab +528d 9998 +5291 999d +5292 999a +5294 9999 +529b 97cd +529c fa85 +529f 8cf7 +52a0 89c1 +52a3 97f2 +52a6 fa86 +52a9 8f95 +52aa 9377 +52ab 8d85 +52ac 99a0 +52ad 99a1 +52af fb77 +52b1 97e3 +52b4 984a +52b5 99a3 +52b9 8cf8 +52bc 99a2 +52be 8a4e +52c0 fa87 +52c1 99a4 +52c3 9675 +52c5 92ba +52c7 9745 +52c9 95d7 +52cd 99a5 +52d2 e8d3 +52d5 93ae +52d7 99a6 +52d8 8aa8 +52d9 96b1 +52db fa88 +52dd 8f9f +52de 99a7 +52df 95e5 +52e0 99ab +52e2 90a8 +52e3 99a8 +52e4 8bce +52e6 99a9 +52e7 8aa9 +52f2 8c4d +52f3 99ac +52f5 99ad +52f8 99ae +52f9 99af +52fa 8ed9 +52fe 8cf9 +52ff 96dc +5300 fa89 +5301 96e6 +5302 93f5 +5305 95ef +5306 99b0 +5307 fa8a +5308 99b1 +530d 99b3 +530f 99b5 +5310 99b4 +5315 99b6 +5316 89bb +5317 966b +5319 8dfa +531a 99b7 +531d 9178 +5320 8fa0 +5321 8ba7 +5323 99b8 +5324 fa8b +532a 94d9 +532f 99b9 +5331 99ba +5333 99bb +5338 99bc +5339 9543 +533a 8be6 +533b 88e3 +533f 93bd +5340 99bd +5341 8f5c +5343 90e7 +5345 99bf +5346 99be +5347 8fa1 +5348 8cdf +5349 99c1 +534a 94bc +534d 99c2 +5351 94da +5352 91b2 +5353 91ec +5354 8ba6 +5357 93ec +5358 9250 +535a 948e +535c 966d +535e 99c4 +5360 90e8 +5366 8c54 +5369 99c5 +536e 99c6 +536f 894b +5370 88f3 +5371 8aeb +5372 fa8c +5373 91a6 +5374 8b70 +5375 9791 +5377 99c9 +5378 89b5 +537b 99c8 +537f 8ba8 +5382 99ca +5384 96ef +5393 fa8d +5396 99cb +5398 97d0 +539a 8cfa +539f 8cb4 +53a0 99cc +53a5 99ce +53a6 99cd +53a8 907e +53a9 8958 +53ad 897d +53ae 99cf +53b0 99d0 +53b2 fa8e +53b3 8cb5 +53b6 99d1 +53bb 8b8e +53c2 8e51 +53c3 99d2 +53c8 9694 +53c9 8db3 +53ca 8b79 +53cb 9746 +53cc 916f +53cd 94bd +53ce 8efb +53d4 8f66 +53d6 8ee6 +53d7 8ef3 +53d9 8f96 +53db 94be +53dd fa8f +53df 99d5 +53e1 8962 +53e2 9170 +53e3 8cfb +53e4 8cc3 +53e5 8be5 +53e8 99d9 +53e9 9240 +53ea 91fc +53eb 8ba9 +53ec 8fa2 +53ed 99da +53ee 99d8 +53ef 89c2 +53f0 91e4 +53f1 8eb6 +53f2 8e6a +53f3 8945 +53f6 8a90 +53f7 8d86 +53f8 8e69 +53fa 99db +5401 99dc +5403 8b68 +5404 8a65 +5408 8d87 +5409 8b67 +540a 92dd +540b 8944 +540c 93af +540d 96bc +540e 8d40 +540f 9799 +5410 9366 +5411 8cfc +541b 8c4e +541d 99e5 +541f 8be1 +5420 9669 +5426 94db +5429 99e4 +542b 8adc +542c 99df +542d 99e0 +542e 99e2 +5436 99e3 +5438 8b7a +5439 9081 +543b 95ab +543c 99e1 +543d 99dd +543e 8ce1 +5440 99de +5442 9843 +5446 95f0 +5448 92e6 +5449 8ce0 +544a 8d90 +544e 99e6 +5451 93db +545f 99ea +5468 8efc +546a 8ef4 +5470 99ed +5471 99eb +5473 96a1 +5475 99e8 +5476 99f1 +5477 99ec +547b 99ef +547c 8cc4 +547d 96bd +5480 99f0 +5484 99f2 +5486 99f4 +548a fa92 +548b 8dee +548c 9861 +548e 99e9 +548f 99e7 +5490 99f3 +5492 99ee +549c fa91 +54a2 99f6 +54a4 9a42 +54a5 99f8 +54a8 99fc +54a9 fa93 +54ab 9a40 +54ac 99f9 +54af 9a5d +54b2 8de7 +54b3 8a50 +54b8 99f7 +54bc 9a44 +54bd 88f4 +54be 9a43 +54c0 88a3 +54c1 9569 +54c2 9a41 +54c4 99fa +54c7 99f5 +54c8 99fb +54c9 8dc6 +54d8 9a45 +54e1 88f5 +54e2 9a4e +54e5 9a46 +54e6 9a47 +54e8 8fa3 +54e9 9689 +54ed 9a4c +54ee 9a4b +54f2 934e +54fa 9a4d +54fd 9a4a +54ff fa94 +5504 8953 +5506 8db4 +5507 904f +550f 9a48 +5510 9382 +5514 9a49 +5516 88a0 +552e 9a53 +552f 9742 +5531 8fa5 +5533 9a59 +5538 9a58 +5539 9a4f +553e 91c1 +5540 9a50 +5544 91ed +5545 9a55 +5546 8fa4 +554c 9a52 +554f 96e2 +5553 8c5b +5556 9a56 +5557 9a57 +555c 9a54 +555d 9a5a +5563 9a51 +557b 9a60 +557c 9a65 +557e 9a61 +5580 9a5c +5583 9a66 +5584 9150 +5586 fa95 +5587 9a68 +5589 8d41 +558a 9a5e +558b 929d +5598 9a62 +5599 9a5b +559a 8aab +559c 8aec +559d 8a85 +559e 9a63 +559f 9a5f +55a7 8c96 +55a8 9a69 +55a9 9a67 +55aa 9172 +55ab 8b69 +55ac 8baa +55ae 9a64 +55b0 8bf2 +55b6 8963 +55c4 9a6d +55c5 9a6b +55c7 9aa5 +55d4 9a70 +55da 9a6a +55dc 9a6e +55df 9a6c +55e3 8e6b +55e4 9a6f +55f7 9a72 +55f9 9a77 +55fd 9a75 +55fe 9a74 +5606 9251 +5609 89c3 +5614 9a71 +5616 9a73 +5617 8fa6 +5618 8952 +561b 9a76 +5629 89dc +562f 9a82 +5631 8ffa +5632 9a7d +5634 9a7b +5636 9a7c +5638 9a7e +5642 895c +564c 9158 +564e 9a78 +5650 9a79 +565b 8a9a +5664 9a81 +5668 8aed +566a 9a84 +566b 9a80 +566c 9a83 +5674 95ac +5678 93d3 +567a 94b6 +5680 9a86 +5686 9a85 +5687 8a64 +568a 9a87 +568f 9a8a +5694 9a89 +56a0 9a88 +56a2 9458 +56a5 9a8b +56ae 9a8c +56b4 9a8e +56b6 9a8d +56bc 9a90 +56c0 9a93 +56c1 9a91 +56c2 9a8f +56c3 9a92 +56c8 9a94 +56ce 9a95 +56d1 9a96 +56d3 9a97 +56d7 9a98 +56d8 9964 +56da 8efa +56db 8e6c +56de 89f1 +56e0 88f6 +56e3 9263 +56ee 9a99 +56f0 8da2 +56f2 88cd +56f3 907d +56f9 9a9a +56fa 8cc5 +56fd 8d91 +56ff 9a9c +5700 9a9b +5703 95de +5704 9a9d +5708 9a9f +5709 9a9e +570b 9aa0 +570d 9aa1 +570f 8c97 +5712 8980 +5713 9aa2 +5716 9aa4 +5718 9aa3 +571c 9aa6 +571f 9379 +5726 9aa7 +5727 88b3 +5728 8ddd +572d 8c5c +5730 926e +5737 9aa8 +5738 9aa9 +573b 9aab +5740 9aac +5742 8de2 +5747 8bcf +574a 9656 +574e 9aaa +574f 9aad +5750 8dbf +5751 8d42 +5759 fa96 +5761 9ab1 +5764 8da3 +5765 fa97 +5766 9252 +5769 9aae +576a 92d8 +577f 9ab2 +5782 9082 +5788 9ab0 +5789 9ab3 +578b 8c5e +5793 9ab4 +57a0 9ab5 +57a2 8d43 +57a3 8a5f +57a4 9ab7 +57aa 9ab8 +57ac fa98 +57b0 9ab9 +57b3 9ab6 +57c0 9aaf +57c3 9aba +57c6 9abb +57c7 fa9a +57c8 fa99 +57cb 9684 +57ce 8fe9 +57d2 9abd +57d3 9abe +57d4 9abc +57d6 9ac0 +57dc 9457 +57df 88e6 +57e0 9575 +57e3 9ac1 +57f4 8ffb +57f7 8eb7 +57f9 947c +57fa 8aee +57fc 8de9 +5800 9678 +5802 93b0 +5805 8c98 +5806 91cd +580a 9abf +580b 9ac2 +5815 91c2 +5819 9ac3 +581d 9ac4 +5821 9ac6 +5824 92e7 +582a 8aac +582f ea9f +5830 8981 +5831 95f1 +5834 8fea +5835 9367 +583a 8de4 +583d 9acc +5840 95bb +5841 97db +584a 89f2 +584b 9ac8 +5851 9159 +5852 9acb +5854 9383 +5857 9368 +5858 9384 +5859 94b7 +585a 92cb +585e 8dc7 +5862 9ac7 +5869 8996 +586b 9355 +5870 9ac9 +5872 9ac5 +5875 906f +5879 9acd +587e 8f6d +5883 8bab +5885 9ace +5893 95e6 +5897 919d +589c 92c4 +589e fa9d +589f 9ad0 +58a8 966e +58ab 9ad1 +58ae 9ad6 +58b2 fa9e +58b3 95ad +58b8 9ad5 +58b9 9acf +58ba 9ad2 +58bb 9ad4 +58be 8da4 +58c1 95c7 +58c5 9ad7 +58c7 9264 +58ca 89f3 +58cc 8feb +58d1 9ad9 +58d3 9ad8 +58d5 8d88 +58d7 9ada +58d8 9adc +58d9 9adb +58dc 9ade +58de 9ad3 +58df 9ae0 +58e4 9adf +58e5 9add +58eb 8e6d +58ec 9070 +58ee 9173 +58ef 9ae1 +58f0 90ba +58f1 88eb +58f2 9484 +58f7 92d9 +58f9 9ae3 +58fa 9ae2 +58fb 9ae4 +58fc 9ae5 +58fd 9ae6 +5902 9ae7 +5909 95cf +590a 9ae8 +590b fa9f +590f 89c4 +5910 9ae9 +5915 975b +5916 8a4f +5918 99c7 +5919 8f67 +591a 91bd +591b 9aea +591c 96e9 +5922 96b2 +5925 9aec +5927 91e5 +5929 9356 +592a 91be +592b 9576 +592c 9aed +592d 9aee +592e 899b +5931 8eb8 +5932 9aef +5937 88ce +5938 9af0 +593e 9af1 +5944 8982 +5947 8aef +5948 93de +5949 95f2 +594e 9af5 +594f 9174 +5950 9af4 +5951 8c5f +5953 faa0 +5954 967a +5955 9af3 +5957 9385 +5958 9af7 +595a 9af6 +595b faa1 +595d faa2 +5960 9af9 +5962 9af8 +5963 faa3 +5965 899c +5967 9afa +5968 8fa7 +5969 9afc +596a 9244 +596c 9afb +596e 95b1 +5973 8f97 +5974 937a +5978 9b40 +597d 8d44 +5981 9b41 +5982 9440 +5983 94dc +5984 96cf +598a 9444 +598d 9b4a +5993 8b57 +5996 9764 +5999 96ad +599b 9baa +599d 9b42 +59a3 9b45 +59a4 faa4 +59a5 91c3 +59a8 9657 +59ac 9369 +59b2 9b46 +59b9 9685 +59ba faa5 +59bb 8dc8 +59be 8fa8 +59c6 9b47 +59c9 8e6f +59cb 8e6e +59d0 88b7 +59d1 8cc6 +59d3 90a9 +59d4 88cf +59d9 9b4b +59da 9b4c +59dc 9b49 +59e5 8957 +59e6 8aad +59e8 9b48 +59ea 96c3 +59eb 9550 +59f6 88a6 +59fb 88f7 +59ff 8e70 +5a01 88d0 +5a03 88a1 +5a09 9b51 +5a11 9b4f +5a18 96ba +5a1a 9b52 +5a1c 9b50 +5a1f 9b4e +5a20 9050 +5a25 9b4d +5a29 95d8 +5a2f 8ce2 +5a35 9b56 +5a36 9b57 +5a3c 8fa9 +5a40 9b53 +5a41 984b +5a46 946b +5a49 9b55 +5a5a 8da5 +5a62 9b58 +5a66 9577 +5a6a 9b59 +5a6c 9b54 +5a7f 96b9 +5a92 947d +5a9a 9b5a +5a9b 9551 +5abc 9b5b +5abd 9b5f +5abe 9b5c +5ac1 89c5 +5ac2 9b5e +5ac9 8eb9 +5acb 9b5d +5acc 8c99 +5ad0 9b6b +5ad6 9b64 +5ad7 9b61 +5ae1 9284 +5ae3 9b60 +5ae6 9b62 +5ae9 9b63 +5afa 9b65 +5afb 9b66 +5b09 8af0 +5b0b 9b68 +5b0c 9b67 +5b16 9b69 +5b22 8fec +5b2a 9b6c +5b2c 92da +5b30 8964 +5b32 9b6a +5b36 9b6d +5b3e 9b6e +5b40 9b71 +5b43 9b6f +5b45 9b70 +5b50 8e71 +5b51 9b72 +5b54 8d45 +5b55 9b73 +5b56 faa6 +5b57 8e9a +5b58 91b6 +5b5a 9b74 +5b5b 9b75 +5b5c 8e79 +5b5d 8d46 +5b5f 96d0 +5b63 8b47 +5b64 8cc7 +5b65 9b76 +5b66 8a77 +5b69 9b77 +5b6b 91b7 +5b70 9b78 +5b71 9ba1 +5b73 9b79 +5b75 9b7a +5b78 9b7b +5b7a 9b7d +5b80 9b7e +5b83 9b80 +5b85 91ee +5b87 8946 +5b88 8ee7 +5b89 88c0 +5b8b 9176 +5b8c 8aae +5b8d 8eb3 +5b8f 8d47 +5b95 9386 +5b97 8f40 +5b98 8aaf +5b99 9288 +5b9a 92e8 +5b9b 88b6 +5b9c 8b58 +5b9d 95f3 +5b9f 8ec0 +5ba2 8b71 +5ba3 90e9 +5ba4 8eba +5ba5 9747 +5ba6 9b81 +5bae 8b7b +5bb0 8dc9 +5bb3 8a51 +5bb4 8983 +5bb5 8faa +5bb6 89c6 +5bb8 9b82 +5bb9 9765 +5bbf 8f68 +5bc0 faa7 +5bc2 8ee2 +5bc3 9b83 +5bc4 8af1 +5bc5 93d0 +5bc6 96a7 +5bc7 9b84 +5bc9 9b85 +5bcc 9578 +5bd0 9b87 +5bd2 8aa6 +5bd3 8bf5 +5bd4 9b86 +5bd8 faa9 +5bdb 8ab0 +5bdd 9051 +5bde 9b8b +5bdf 8e40 +5be1 89c7 +5be2 9b8a +5be4 9b88 +5be5 9b8c +5be6 9b89 +5be7 944a +5be8 9ecb +5be9 9052 +5beb 9b8d +5bec faaa +5bee 97be +5bf0 9b8e +5bf3 9b90 +5bf5 929e +5bf6 9b8f +5bf8 90a1 +5bfa 8e9b +5bfe 91ce +5bff 8ef5 +5c01 9595 +5c02 90ea +5c04 8ecb +5c05 9b91 +5c06 8fab +5c07 9b92 +5c08 9b93 +5c09 88d1 +5c0a 91b8 +5c0b 9071 +5c0d 9b94 +5c0e 93b1 +5c0f 8fac +5c11 8fad +5c13 9b95 +5c16 90eb +5c1a 8fae +5c1e faab +5c20 9b96 +5c22 9b97 +5c24 96de +5c28 9b98 +5c2d 8bc4 +5c31 8f41 +5c38 9b99 +5c39 9b9a +5c3a 8eda +5c3b 904b +5c3c 93f2 +5c3d 9073 +5c3e 94f6 +5c3f 9441 +5c40 8bc7 +5c41 9b9b +5c45 8b8f +5c46 9b9c +5c48 8bfc +5c4a 93cd +5c4b 89ae +5c4d 8e72 +5c4e 9b9d +5c4f 9ba0 +5c50 9b9f +5c51 8bfb +5c53 9b9e +5c55 9357 +5c5e 91ae +5c60 936a +5c61 8ec6 +5c64 9177 +5c65 979a +5c6c 9ba2 +5c6e 9ba3 +5c6f 93d4 +5c71 8e52 +5c76 9ba5 +5c79 9ba6 +5c8c 9ba7 +5c90 8af2 +5c91 9ba8 +5c94 9ba9 +5ca1 89aa +5ca6 faac +5ca8 915a +5ca9 8ae2 +5cab 9bab +5cac 96a6 +5cb1 91d0 +5cb3 8a78 +5cb6 9bad +5cb7 9baf +5cb8 8add +5cba faad +5cbb 9bac +5cbc 9bae +5cbe 9bb1 +5cc5 9bb0 +5cc7 9bb2 +5cd9 9bb3 +5ce0 93bb +5ce1 8bac +5ce8 89e3 +5ce9 9bb4 +5cea 9bb9 +5ced 9bb7 +5cef 95f5 +5cf0 95f4 +5cf5 faae +5cf6 9387 +5cfa 9bb6 +5cfb 8f73 +5cfd 9bb5 +5d07 9092 +5d0b 9bba +5d0e 8de8 +5d11 9bc0 +5d14 9bc1 +5d15 9bbb +5d16 8a52 +5d17 9bbc +5d18 9bc5 +5d19 9bc4 +5d1a 9bc3 +5d1b 9bbf +5d1f 9bbe +5d22 9bc2 +5d27 faaf +5d29 95f6 +5d42 fab2 +5d4b 9bc9 +5d4c 9bc6 +5d4e 9bc8 +5d50 9792 +5d52 9bc7 +5d53 fab0 +5d5c 9bbd +5d69 9093 +5d6c 9bca +5d6d fab3 +5d6f 8db5 +5d73 9bcb +5d76 9bcc +5d82 9bcf +5d84 9bce +5d87 9bcd +5d8b 9388 +5d8c 9bb8 +5d90 9bd5 +5d9d 9bd1 +5da2 9bd0 +5dac 9bd2 +5dae 9bd3 +5db7 9bd6 +5db8 fab4 +5db9 fab5 +5dba 97e4 +5dbc 9bd7 +5dbd 9bd4 +5dc9 9bd8 +5dcc 8ade +5dcd 9bd9 +5dd0 fab6 +5dd2 9bdb +5dd3 9bda +5dd6 9bdc +5ddb 9bdd +5ddd 90ec +5dde 8f42 +5de1 8f84 +5de3 9183 +5de5 8d48 +5de6 8db6 +5de7 8d49 +5de8 8b90 +5deb 9bde +5dee 8db7 +5df1 8cc8 +5df2 9bdf +5df3 96a4 +5df4 9462 +5df5 9be0 +5df7 8d4a +5dfb 8aaa +5dfd 9246 +5dfe 8bd0 +5e02 8e73 +5e03 957a +5e06 94bf +5e0b 9be1 +5e0c 8af3 +5e11 9be4 +5e16 929f +5e19 9be3 +5e1a 9be2 +5e1b 9be5 +5e1d 92e9 +5e25 9083 +5e2b 8e74 +5e2d 90c8 +5e2f 91d1 +5e30 8b41 +5e33 92a0 +5e36 9be6 +5e37 9be7 +5e38 8fed +5e3d 9658 +5e40 9bea +5e43 9be9 +5e44 9be8 +5e45 959d +5e47 9bf1 +5e4c 9679 +5e4e 9beb +5e54 9bed +5e55 968b +5e57 9bec +5e5f 9bee +5e61 94a6 +5e62 9bef +5e63 95bc +5e64 9bf0 +5e72 8ab1 +5e73 95bd +5e74 944e +5e75 9bf2 +5e76 9bf3 +5e78 8d4b +5e79 8ab2 +5e7a 9bf4 +5e7b 8cb6 +5e7c 9763 +5e7d 9748 +5e7e 8af4 +5e7f 9bf6 +5e81 92a1 +5e83 8d4c +5e84 8faf +5e87 94dd +5e8a 8fb0 +5e8f 8f98 +5e95 92ea +5e96 95f7 +5e97 9358 +5e9a 8d4d +5e9c 957b +5ea0 9bf7 +5ea6 9378 +5ea7 8dc0 +5eab 8cc9 +5ead 92eb +5eb5 88c1 +5eb6 8f8e +5eb7 8d4e +5eb8 9766 +5ec1 9bf8 +5ec2 9bf9 +5ec3 9470 +5ec8 9bfa +5ec9 97f5 +5eca 984c +5ecf 9bfc +5ed0 9bfb +5ed3 8a66 +5ed6 9c40 +5eda 9c43 +5edb 9c44 +5edd 9c42 +5edf 955f +5ee0 8fb1 +5ee1 9c46 +5ee2 9c45 +5ee3 9c41 +5ee8 9c47 +5ee9 9c48 +5eec 9c49 +5ef0 9c4c +5ef1 9c4a +5ef3 9c4b +5ef4 9c4d +5ef6 8984 +5ef7 92ec +5ef8 9c4e +5efa 8c9a +5efb 89f4 +5efc 9455 +5efe 9c4f +5eff 93f9 +5f01 95d9 +5f03 9c50 +5f04 984d +5f09 9c51 +5f0a 95be +5f0b 9c54 +5f0c 989f +5f0d 98af +5f0f 8eae +5f10 93f3 +5f11 9c55 +5f13 8b7c +5f14 92a2 +5f15 88f8 +5f16 9c56 +5f17 95a4 +5f18 8d4f +5f1b 926f +5f1f 92ed +5f21 fab7 +5f25 96ed +5f26 8cb7 +5f27 8cca +5f29 9c57 +5f2d 9c58 +5f2f 9c5e +5f31 8ee3 +5f34 fab8 +5f35 92a3 +5f37 8bad +5f38 9c59 +5f3c 954a +5f3e 9265 +5f41 9c5a +5f45 fa67 +5f48 9c5b +5f4a 8bae +5f4c 9c5c +5f4e 9c5d +5f51 9c5f +5f53 9396 +5f56 9c60 +5f57 9c61 +5f59 9c62 +5f5c 9c53 +5f5d 9c52 +5f61 9c63 +5f62 8c60 +5f66 9546 +5f67 fab9 +5f69 8dca +5f6a 9556 +5f6b 92a4 +5f6c 956a +5f6d 9c64 +5f70 8fb2 +5f71 8965 +5f73 9c65 +5f77 9c66 +5f79 96f0 +5f7c 94de +5f7f 9c69 +5f80 899d +5f81 90aa +5f82 9c68 +5f83 9c67 +5f84 8c61 +5f85 91d2 +5f87 9c6d +5f88 9c6b +5f8a 9c6a +5f8b 97a5 +5f8c 8ce3 +5f90 8f99 +5f91 9c6c +5f92 936b +5f93 8f5d +5f97 93be +5f98 9c70 +5f99 9c6f +5f9e 9c6e +5fa0 9c71 +5fa1 8ce4 +5fa8 9c72 +5fa9 959c +5faa 8f7a +5fad 9c73 +5fae 94f7 +5fb3 93bf +5fb4 92a5 +5fb7 faba +5fb9 934f +5fbc 9c74 +5fbd 8b4a +5fc3 9053 +5fc5 954b +5fcc 8af5 +5fcd 9445 +5fd6 9c75 +5fd7 8e75 +5fd8 9659 +5fd9 965a +5fdc 899e +5fdd 9c7a +5fde fabb +5fe0 9289 +5fe4 9c77 +5feb 89f5 +5ff0 9cab +5ff1 9c79 +5ff5 944f +5ff8 9c78 +5ffb 9c76 +5ffd 8d9a +5fff 9c7c +600e 9c83 +600f 9c89 +6010 9c81 +6012 937b +6015 9c86 +6016 957c +6019 9c80 +601b 9c85 +601c 97e5 +601d 8e76 +6020 91d3 +6021 9c7d +6025 8b7d +6026 9c88 +6027 90ab +6028 8985 +6029 9c82 +602a 89f6 +602b 9c87 +602f 8baf +6031 9c84 +603a 9c8a +6041 9c8c +6042 9c96 +6043 9c94 +6046 9c91 +604a 9c90 +604b 97f6 +604d 9c92 +6050 8bb0 +6052 8d50 +6055 8f9a +6059 9c99 +605a 9c8b +605d fabc +605f 9c8f +6060 9c7e +6062 89f8 +6063 9c93 +6064 9c95 +6065 9270 +6068 8da6 +6069 89b6 +606a 9c8d +606b 9c98 +606c 9c97 +606d 8bb1 +606f 91a7 +6070 8a86 +6075 8c62 +6077 9c8e +6081 9c9a +6083 9c9d +6084 9c9f +6085 fabd +6089 8ebb +608a fabe +608b 9ca5 +608c 92ee +608d 9c9b +6092 9ca3 +6094 89f7 +6096 9ca1 +6097 9ca2 +609a 9c9e +609b 9ca0 +609f 8ce5 +60a0 9749 +60a3 8ab3 +60a6 8978 +60a7 9ca4 +60a9 9459 +60aa 88ab +60b2 94df +60b3 9c7b +60b4 9caa +60b5 9cae +60b6 96e3 +60b8 9ca7 +60bc 9389 +60bd 9cac +60c5 8fee +60c6 9cad +60c7 93d5 +60d1 9866 +60d3 9ca9 +60d5 fac0 +60d8 9caf +60da 8d9b +60dc 90c9 +60de fabf +60df 88d2 +60e0 9ca8 +60e1 9ca6 +60e3 9179 +60e7 9c9c +60e8 8e53 +60f0 91c4 +60f1 9cbb +60f2 fac2 +60f3 917a +60f4 9cb6 +60f6 9cb3 +60f7 9cb4 +60f9 8ee4 +60fa 9cb7 +60fb 9cba +6100 9cb5 +6101 8f44 +6103 9cb8 +6106 9cb2 +6108 96fa +6109 96f9 +610d 9cbc +610e 9cbd +610f 88d3 +6111 fac3 +6115 9cb1 +611a 8bf0 +611b 88a4 +611f 8ab4 +6120 fac1 +6121 9cb9 +6127 9cc1 +6128 9cc0 +612c 9cc5 +6130 fac5 +6134 9cc6 +6137 fac4 +613c 9cc4 +613d 9cc7 +613e 9cbf +613f 9cc3 +6142 9cc8 +6144 9cc9 +6147 9cbe +6148 8e9c +614a 9cc2 +614b 91d4 +614c 8d51 +614d 9cb0 +614e 9054 +6153 9cd6 +6155 95e7 +6158 9ccc +6159 9ccd +615a 9cce +615d 9cd5 +615f 9cd4 +6162 969d +6163 8ab5 +6165 9cd2 +6167 8c64 +6168 8a53 +616b 9ccf +616e 97b6 +616f 9cd1 +6170 88d4 +6171 9cd3 +6173 9cca +6174 9cd0 +6175 9cd7 +6176 8c63 +6177 9ccb +617e 977c +6182 974a +6187 9cda +618a 9cde +618e 919e +6190 97f7 +6191 9cdf +6194 9cdc +6196 9cd9 +6198 fac6 +6199 9cd8 +619a 9cdd +61a4 95ae +61a7 93b2 +61a9 8c65 +61ab 9ce0 +61ac 9cdb +61ae 9ce1 +61b2 8c9b +61b6 89af +61ba 9ce9 +61be 8ab6 +61c3 9ce7 +61c6 9ce8 +61c7 8da7 +61c8 9ce6 +61c9 9ce4 +61ca 9ce3 +61cb 9cea +61cc 9ce2 +61cd 9cec +61d0 89f9 +61e3 9cee +61e6 9ced +61f2 92a6 +61f4 9cf1 +61f6 9cef +61f7 9ce5 +61f8 8c9c +61fa 9cf0 +61fc 9cf4 +61fd 9cf3 +61fe 9cf5 +61ff 9cf2 +6200 9cf6 +6208 9cf7 +6209 9cf8 +620a 95e8 +620c 9cfa +620d 9cf9 +620e 8f5e +6210 90ac +6211 89e4 +6212 89fa +6213 fac7 +6214 9cfb +6216 88bd +621a 90ca +621b 9cfc +621d e6c1 +621e 9d40 +621f 8c81 +6221 9d41 +6226 90ed +622a 9d42 +622e 9d43 +622f 8b59 +6230 9d44 +6232 9d45 +6233 9d46 +6234 91d5 +6238 8ccb +623b 96df +623f 965b +6240 8f8a +6241 9d47 +6247 90ee +6248 e7bb +6249 94e0 +624b 8ee8 +624d 8dcb +624e 9d48 +6253 91c5 +6255 95a5 +6258 91ef +625b 9d4b +625e 9d49 +6260 9d4c +6263 9d4a +6268 9d4d +626e 95af +6271 88b5 +6276 957d +6279 94e1 +627c 9d4e +627e 9d51 +627f 8fb3 +6280 8b5a +6282 9d4f +6283 9d56 +6284 8fb4 +6289 9d50 +628a 9463 +6291 977d +6292 9d52 +6293 9d53 +6294 9d57 +6295 938a +6296 9d54 +6297 8d52 +6298 90dc +629b 9d65 +629c 94b2 +629e 91f0 +62a6 fac8 +62ab 94e2 +62ac 9dab +62b1 95f8 +62b5 92ef +62b9 9695 +62bb 9d5a +62bc 899f +62bd 928a +62c2 9d63 +62c5 9253 +62c6 9d5d +62c7 9d64 +62c8 9d5f +62c9 9d66 +62ca 9d62 +62cc 9d61 +62cd 948f +62cf 9d5b +62d0 89fb +62d1 9d59 +62d2 8b91 +62d3 91f1 +62d4 9d55 +62d7 9d58 +62d8 8d53 +62d9 90d9 +62db 8fb5 +62dc 9d60 +62dd 9471 +62e0 8b92 +62e1 8a67 +62ec 8a87 +62ed 9040 +62ee 9d68 +62ef 9d6d +62f1 9d69 +62f3 8c9d +62f5 9d6e +62f6 8e41 +62f7 8d89 +62fe 8f45 +62ff 9d5c +6301 8e9d +6302 9d6b +6307 8e77 +6308 9d6c +6309 88c2 +630c 9d67 +6311 92a7 +6319 8b93 +631f 8bb2 +6327 9d6a +6328 88a5 +632b 8dc1 +632f 9055 +633a 92f0 +633d 94d2 +633e 9d70 +633f 917d +6349 91a8 +634c 8e4a +634d 9d71 +634f 9d73 +6350 9d6f +6355 95df +6357 92bb +635c 917b +6367 95f9 +6368 8ecc +6369 9d80 +636b 9d7e +636e 9098 +6372 8c9e +6376 9d78 +6377 8fb7 +637a 93e6 +637b 9450 +6380 9d76 +6383 917c +6388 8ef6 +6389 9d7b +638c 8fb6 +638e 9d75 +638f 9d7a +6392 9472 +6396 9d74 +6398 8c40 +639b 8a7c +639f 9d7c +63a0 97a9 +63a1 8dcc +63a2 9254 +63a3 9d79 +63a5 90da +63a7 8d54 +63a8 9084 +63a9 8986 +63aa 915b +63ab 9d77 +63ac 8b64 +63b2 8c66 +63b4 92cd +63b5 9d7d +63bb 917e +63be 9d81 +63c0 9d83 +63c3 91b5 +63c4 9d89 +63c6 9d84 +63c9 9d86 +63cf 9560 +63d0 92f1 +63d2 9d87 +63d6 974b +63da 9767 +63db 8ab7 +63e1 88ac +63e3 9d85 +63e9 9d82 +63ee 8af6 +63f4 8987 +63f5 fac9 +63f6 9d88 +63fa 9768 +6406 9d8c +640d 91b9 +640f 9d93 +6413 9d8d +6416 9d8a +6417 9d91 +641c 9d72 +6426 9d8e +6428 9d92 +642c 94c0 +642d 938b +6434 9d8b +6436 9d8f +643a 8c67 +643e 8def +6442 90db +644e 9d97 +6458 9345 +6460 faca +6467 9d94 +6469 9680 +646f 9d95 +6476 9d96 +6478 96cc +647a 90a0 +6483 8c82 +6488 9d9d +6492 8e54 +6493 9d9a +6495 9d99 +649a 9451 +649d facb +649e 93b3 +64a4 9350 +64a5 9d9b +64a9 9d9c +64ab 958f +64ad 9464 +64ae 8e42 +64b0 90ef +64b2 966f +64b9 8a68 +64bb 9da3 +64bc 9d9e +64c1 9769 +64c2 9da5 +64c5 9da1 +64c7 9da2 +64cd 9180 +64ce facc +64d2 9da0 +64d4 9d5e +64d8 9da4 +64da 9d9f +64e0 9da9 +64e1 9daa +64e2 9346 +64e3 9dac +64e6 8e43 +64e7 9da7 +64ec 8b5b +64ef 9dad +64f1 9da6 +64f2 9db1 +64f4 9db0 +64f6 9daf +64fa 9db2 +64fd 9db4 +64fe 8fef +6500 9db3 +6505 9db7 +6518 9db5 +651c 9db6 +651d 9d90 +6523 9db9 +6524 9db8 +652a 9d98 +652b 9dba +652c 9dae +652f 8e78 +6534 9dbb +6535 9dbc +6536 9dbe +6537 9dbd +6538 9dbf +6539 89fc +653b 8d55 +653e 95fa +653f 90ad +6545 8ccc +6548 9dc1 +654d 9dc4 +654e facd +654f 9571 +6551 8b7e +6555 9dc3 +6556 9dc2 +6557 9473 +6558 9dc5 +6559 8bb3 +655d 9dc7 +655e 9dc6 +6562 8ab8 +6563 8e55 +6566 93d6 +656c 8c68 +6570 9094 +6572 9dc8 +6574 90ae +6575 9347 +6577 957e +6578 9dc9 +6582 9dca +6583 9dcb +6587 95b6 +6588 9b7c +6589 90c4 +658c 956b +658e 8dd6 +6590 94e3 +6591 94c1 +6597 936c +6599 97bf +659b 9dcd +659c 8ece +659f 9dce +65a1 88b4 +65a4 8bd2 +65a5 90cb +65a7 9580 +65ab 9dcf +65ac 8e61 +65ad 9266 +65af 8e7a +65b0 9056 +65b7 9dd0 +65b9 95fb +65bc 8997 +65bd 8e7b +65c1 9dd3 +65c3 9dd1 +65c4 9dd4 +65c5 97b7 +65c6 9dd2 +65cb 90f9 +65cc 9dd5 +65cf 91b0 +65d2 9dd6 +65d7 8af8 +65d9 9dd8 +65db 9dd7 +65e0 9dd9 +65e1 9dda +65e2 8af9 +65e5 93fa +65e6 9255 +65e7 8b8c +65e8 8e7c +65e9 9181 +65ec 8f7b +65ed 88ae +65f1 9ddb +65fa 89a0 +65fb 9ddf +6600 face +6602 8d56 +6603 9dde +6606 8da9 +6607 8fb8 +6609 fad1 +660a 9ddd +660c 8fb9 +660e 96be +660f 8da8 +6613 88d5 +6614 90cc +6615 facf +661c 9de4 +661e fad3 +661f 90af +6620 8966 +6624 fad4 +6625 8f74 +6627 9686 +6628 8df0 +662d 8fba +662e fad2 +662f 90a5 +6631 fa63 +6634 9de3 +6635 9de1 +6636 9de2 +663b fad0 +663c 928b +663f 9e45 +6641 9de8 +6642 8e9e +6643 8d57 +6644 9de6 +6649 9de7 +664b 9057 +664f 9de5 +6652 8e4e +6657 fad6 +6659 fad7 +665d 9dea +665e 9de9 +665f 9dee +6662 9def +6664 9deb +6665 fad5 +6666 8a41 +6667 9dec +6668 9ded +6669 94d3 +666e 9581 +666f 8c69 +6670 9df0 +6673 fad9 +6674 90b0 +6676 8fbb +667a 9271 +6681 8bc5 +6683 9df1 +6684 9df5 +6687 89c9 +6688 9df2 +6689 9df4 +668e 9df3 +6691 8f8b +6696 9267 +6697 88c3 +6698 9df6 +6699 fada +669d 9df7 +66a0 fadb +66a2 92a8 +66a6 97ef +66ab 8e62 +66ae 95e9 +66b2 fadc +66b4 965c +66b8 9e41 +66b9 9df9 +66bc 9dfc +66be 9dfb +66bf fadd +66c1 9df8 +66c4 9e40 +66c7 93dc +66c9 9dfa +66d6 9e42 +66d9 8f8c +66da 9e43 +66dc 976a +66dd 9498 +66e0 9e44 +66e6 9e46 +66e9 9e47 +66f0 9e48 +66f2 8bc8 +66f3 8967 +66f4 8d58 +66f5 9e49 +66f7 9e4a +66f8 8f91 +66f9 9182 +66fa fade +66fb fa66 +66fc 99d6 +66fd 915d +66fe 915c +66ff 91d6 +6700 8dc5 +6703 98f0 +6708 8c8e +6709 974c +670b 95fc +670d 959e +670e fadf +670f 9e4b +6714 8df1 +6715 92bd +6716 9e4c +6717 984e +671b 965d +671d 92a9 +671e 9e4d +671f 8afa +6726 9e4e +6727 9e4f +6728 96d8 +672a 96a2 +672b 9696 +672c 967b +672d 8e44 +672e 9e51 +6731 8ee9 +6734 9670 +6736 9e53 +6737 9e56 +6738 9e55 +673a 8af7 +673d 8b80 +673f 9e52 +6741 9e54 +6746 9e57 +6749 9099 +674e 979b +674f 88c7 +6750 8dde +6751 91ba +6753 8edb +6756 8ff1 +6759 9e5a +675c 936d +675e 9e58 +675f 91a9 +6760 9e59 +6761 8ff0 +6762 96db +6763 9e5b +6764 9e5c +6765 9788 +6766 fae1 +676a 9e61 +676d 8d59 +676f 9474 +6770 9e5e +6771 938c +6772 9ddc +6773 9de0 +6775 8b6e +6777 9466 +677c 9e60 +677e 8fbc +677f 94c2 +6785 9e66 +6787 94f8 +6789 9e5d +678b 9e63 +678c 9e62 +6790 90cd +6795 968d +6797 97d1 +679a 9687 +679c 89ca +679d 8e7d +67a0 9867 +67a1 9e65 +67a2 9095 +67a6 9e64 +67a9 9e5f +67af 8ccd +67b3 9e6b +67b4 9e69 +67b6 89cb +67b7 9e67 +67b8 9e6d +67b9 9e73 +67bb fae2 +67c0 fae4 +67c1 91c6 +67c4 95bf +67c6 9e75 +67ca 9541 +67ce 9e74 +67cf 9490 +67d0 965e +67d1 8ab9 +67d3 90f5 +67d4 8f5f +67d8 92d1 +67da 974d +67dd 9e70 +67de 9e6f +67e2 9e71 +67e4 9e6e +67e7 9e76 +67e9 9e6c +67ec 9e6a +67ee 9e72 +67ef 9e68 +67f1 928c +67f3 96f6 +67f4 8ec4 +67f5 8df2 +67fb 8db8 +67fe 968f +67ff 8a60 +6801 fae5 +6802 92cc +6803 93c8 +6804 8968 +6813 90f0 +6816 90b2 +6817 8c49 +681e 9e78 +6821 8d5a +6822 8a9c +6829 9e7a +682a 8a94 +682b 9e81 +6832 9e7d +6834 90f1 +6838 8a6a +6839 8daa +683c 8a69 +683d 8dcd +6840 9e7b +6841 8c85 +6842 8c6a +6843 938d +6844 fae6 +6846 9e79 +6848 88c4 +684d 9e7c +684e 9e7e +6850 8bcb +6851 8c4b +6852 fae3 +6853 8aba +6854 8b6a +6859 9e82 +685c 8df7 +685d 9691 +685f 8e56 +6863 9e83 +6867 954f +6874 9e8f +6876 89b1 +6877 9e84 +687e 9e95 +687f 9e85 +6881 97c0 +6883 9e8c +6885 947e +688d 9e94 +688f 9e87 +6893 88b2 +6894 9e89 +6897 8d5b +689b 9e8b +689d 9e8a +689f 9e86 +68a0 9e91 +68a2 8fbd +68a6 9aeb +68a7 8ce6 +68a8 979c +68ad 9e88 +68af 92f2 +68b0 8a42 +68b1 8dab +68b3 9e80 +68b5 9e90 +68b6 8a81 +68b9 9e8e +68ba 9e92 +68bc 938e +68c4 8afc +68c6 9eb0 +68c8 fa64 +68c9 96c7 +68ca 9e97 +68cb 8afb +68cd 9e9e +68cf fae7 +68d2 965f +68d4 9e9f +68d5 9ea1 +68d7 9ea5 +68d8 9e99 +68da 9249 +68df 938f +68e0 9ea9 +68e1 9e9c +68e3 9ea6 +68e7 9ea0 +68ee 9058 +68ef 9eaa +68f2 90b1 +68f9 9ea8 +68fa 8abb +6900 986f +6901 9e96 +6904 9ea4 +6905 88d6 +6908 9e98 +690b 96b8 +690c 9e9d +690d 9041 +690e 92c5 +690f 9e93 +6912 9ea3 +6919 909a +691a 9ead +691b 8a91 +691c 8c9f +6921 9eaf +6922 9e9a +6923 9eae +6925 9ea7 +6926 9e9b +6928 9eab +692a 9eac +6930 9ebd +6934 93cc +6936 9ea2 +6939 9eb9 +693d 9ebb +693f 92d6 +694a 976b +6953 9596 +6954 9eb6 +6955 91c8 +6959 9ebc +695a 915e +695c 9eb3 +695d 9ec0 +695e 9ebf +6960 93ed +6961 9ebe +6962 93e8 +6968 fae9 +696a 9ec2 +696b 9eb5 +696d 8bc6 +696e 9eb8 +696f 8f7c +6973 9480 +6974 9eba +6975 8bc9 +6977 9eb2 +6978 9eb4 +6979 9eb1 +697c 984f +697d 8a79 +697e 9eb7 +6981 9ec1 +6982 8a54 +698a 8de5 +698e 897c +6991 9ed2 +6994 9850 +6995 9ed5 +6998 faeb +699b 9059 +699c 9ed4 +69a0 9ed3 +69a7 9ed0 +69ae 9ec4 +69b1 9ee1 +69b2 9ec3 +69b4 9ed6 +69bb 9ece +69be 9ec9 +69bf 9ec6 +69c1 9ec7 +69c3 9ecf +69c7 eaa0 +69ca 9ecc +69cb 8d5c +69cc 92c6 +69cd 9184 +69ce 9eca +69d0 9ec5 +69d3 9ec8 +69d8 976c +69d9 968a +69dd 9ecd +69de 9ed7 +69e2 faec +69e7 9edf +69e8 9ed8 +69eb 9ee5 +69ed 9ee3 +69f2 9ede +69f9 9edd +69fb 92ce +69fd 9185 +69ff 9edb +6a02 9ed9 +6a05 9ee0 +6a0a 9ee6 +6a0b 94f3 +6a0c 9eec +6a12 9ee7 +6a13 9eea +6a14 9ee4 +6a17 9294 +6a19 9557 +6a1b 9eda +6a1e 9ee2 +6a1f 8fbe +6a21 96cd +6a22 9ef6 +6a23 9ee9 +6a29 8ca0 +6a2a 89a1 +6a2b 8a7e +6a2e 9ed1 +6a30 faed +6a35 8fbf +6a36 9eee +6a38 9ef5 +6a39 8ef7 +6a3a 8a92 +6a3d 924d +6a44 9eeb +6a46 faef +6a47 9ef0 +6a48 9ef4 +6a4b 8bb4 +6a58 8b6b +6a59 9ef2 +6a5f 8b40 +6a61 93c9 +6a62 9ef1 +6a66 9ef3 +6a6b faee +6a72 9eed +6a73 faf0 +6a78 9eef +6a7e faf1 +6a7f 8a80 +6a80 9268 +6a84 9efa +6a8d 9ef8 +6a8e 8ce7 +6a90 9ef7 +6a97 9f40 +6a9c 9e77 +6aa0 9ef9 +6aa2 9efb +6aa3 9efc +6aaa 9f4b +6aac 9f47 +6aae 9e8d +6ab3 9f46 +6ab8 9f45 +6abb 9f42 +6ac1 9ee8 +6ac2 9f44 +6ac3 9f43 +6ad1 9f49 +6ad3 9845 +6ada 9f4c +6adb 8bf9 +6ade 9f48 +6adf 9f4a +6ae2 faf2 +6ae4 faf3 +6ae8 94a5 +6aea 9f4d +6afa 9f51 +6afb 9f4e +6b04 9793 +6b05 9f4f +6b0a 9edc +6b12 9f52 +6b16 9f53 +6b1d 8954 +6b1f 9f55 +6b20 8c87 +6b21 8e9f +6b23 8bd3 +6b27 89a2 +6b32 977e +6b37 9f57 +6b38 9f56 +6b39 9f59 +6b3a 8b5c +6b3d 8bd4 +6b3e 8abc +6b43 9f5c +6b47 9f5b +6b49 9f5d +6b4c 89cc +6b4e 9256 +6b50 9f5e +6b53 8abd +6b54 9f60 +6b59 9f5f +6b5b 9f61 +6b5f 9f62 +6b61 9f63 +6b62 8e7e +6b63 90b3 +6b64 8d9f +6b66 9590 +6b69 95e0 +6b6a 9863 +6b6f 8e95 +6b73 8dce +6b74 97f0 +6b78 9f64 +6b79 9f65 +6b7b 8e80 +6b7f 9f66 +6b80 9f67 +6b83 9f69 +6b84 9f68 +6b86 9677 +6b89 8f7d +6b8a 8eea +6b8b 8e63 +6b8d 9f6a +6b95 9f6c +6b96 9042 +6b98 9f6b +6b9e 9f6d +6ba4 9f6e +6baa 9f6f +6bab 9f70 +6baf 9f71 +6bb1 9f73 +6bb2 9f72 +6bb3 9f74 +6bb4 89a3 +6bb5 9269 +6bb7 9f75 +6bba 8e45 +6bbb 8a6b +6bbc 9f76 +6bbf 9361 +6bc0 9aca +6bc5 8b42 +6bc6 9f77 +6bcb 9f78 +6bcd 95ea +6bce 9688 +6bd2 93c5 +6bd3 9f79 +6bd4 94e4 +6bd6 faf4 +6bd8 94f9 +6bdb 96d1 +6bdf 9f7a +6beb 9f7c +6bec 9f7b +6bef 9f7e +6bf3 9f7d +6c08 9f81 +6c0f 8e81 +6c11 96af +6c13 9f82 +6c14 9f83 +6c17 8b43 +6c1b 9f84 +6c23 9f86 +6c24 9f85 +6c34 9085 +6c37 9558 +6c38 8969 +6c3e 94c3 +6c3f faf5 +6c40 92f3 +6c41 8f60 +6c42 8b81 +6c4e 94c4 +6c50 8eac +6c55 9f88 +6c57 8abe +6c5a 8998 +6c5c faf6 +6c5d 93f0 +6c5e 9f87 +6c5f 8d5d +6c60 9272 +6c62 9f89 +6c68 9f91 +6c6a 9f8a +6c6f faf8 +6c70 91bf +6c72 8b82 +6c73 9f92 +6c7a 8c88 +6c7d 8b44 +6c7e 9f90 +6c81 9f8e +6c82 9f8b +6c83 9780 +6c86 faf7 +6c88 92be +6c8c 93d7 +6c8d 9f8c +6c90 9f94 +6c92 9f93 +6c93 8c42 +6c96 89ab +6c99 8db9 +6c9a 9f8d +6c9b 9f8f +6ca1 9676 +6ca2 91f2 +6cab 9697 +6cae 9f9c +6cb1 9f9d +6cb3 89cd +6cb8 95a6 +6cb9 96fb +6cba 9f9f +6cbb 8ea1 +6cbc 8fc0 +6cbd 9f98 +6cbe 9f9e +6cbf 8988 +6cc1 8bb5 +6cc4 9f95 +6cc5 9f9a +6cc9 90f2 +6cca 9491 +6ccc 94e5 +6cd3 9f97 +6cd5 9640 +6cd7 9f99 +6cd9 9fa2 +6cda faf9 +6cdb 9fa0 +6cdd 9f9b +6ce1 9641 +6ce2 9467 +6ce3 8b83 +6ce5 9344 +6ce8 928d +6cea 9fa3 +6cef 9fa1 +6cf0 91d7 +6cf1 9f96 +6cf3 896a +6d04 fafa +6d0b 976d +6d0c 9fae +6d12 9fad +6d17 90f4 +6d19 9faa +6d1b 978c +6d1e 93b4 +6d1f 9fa4 +6d25 92c3 +6d29 896b +6d2a 8d5e +6d2b 9fa7 +6d32 8f46 +6d33 9fac +6d35 9fab +6d36 9fa6 +6d38 9fa9 +6d3b 8a88 +6d3d 9fa8 +6d3e 9468 +6d41 97ac +6d44 8ff2 +6d45 90f3 +6d59 9fb4 +6d5a 9fb2 +6d5c 956c +6d63 9faf +6d64 9fb1 +6d66 8959 +6d69 8d5f +6d6a 9851 +6d6c 8a5c +6d6e 9582 +6d6f fafc +6d74 9781 +6d77 8a43 +6d78 905a +6d79 9fb3 +6d85 9fb8 +6d87 fafb +6d88 8fc1 +6d8c 974f +6d8e 9fb5 +6d93 9fb0 +6d95 9fb6 +6d96 fb40 +6d99 97dc +6d9b 9393 +6d9c 93c0 +6dac fb41 +6daf 8a55 +6db2 8974 +6db5 9fbc +6db8 9fbf +6dbc 97c1 +6dc0 9784 +6dc5 9fc6 +6dc6 9fc0 +6dc7 9fbd +6dcb 97d2 +6dcc 9fc3 +6dcf fb42 +6dd1 8f69 +6dd2 9fc5 +6dd5 9fca +6dd8 9391 +6dd9 9fc8 +6dde 9fc2 +6de1 9257 +6de4 9fc9 +6de6 9fbe +6de8 9fc4 +6dea 9fcb +6deb 88fa +6dec 9fc1 +6dee 9fcc +6df1 905b +6df2 fb44 +6df3 8f7e +6df5 95a3 +6df7 8dac +6df8 fb43 +6df9 9fb9 +6dfa 9fc7 +6dfb 9359 +6dfc fb45 +6e05 90b4 +6e07 8a89 +6e08 8dcf +6e09 8fc2 +6e0a 9fbb +6e0b 8f61 +6e13 8c6b +6e15 9fba +6e19 9fd0 +6e1a 8f8d +6e1b 8cb8 +6e1d 9fdf +6e1f 9fd9 +6e20 8b94 +6e21 936e +6e23 9fd4 +6e24 9fdd +6e25 88ad +6e26 8951 +6e27 fb48 +6e29 89b7 +6e2b 9fd6 +6e2c 91aa +6e2d 9fcd +6e2e 9fcf +6e2f 8d60 +6e38 9fe0 +6e39 fb46 +6e3a 9fdb +6e3c fb49 +6e3e 9fd3 +6e43 9fda +6e4a 96a9 +6e4d 9fd8 +6e4e 9fdc +6e56 8cce +6e58 8fc3 +6e5b 9258 +6e5c fb47 +6e5f 9fd2 +6e67 974e +6e6b 9fd5 +6e6e 9fce +6e6f 9392 +6e72 9fd1 +6e76 9fd7 +6e7e 9870 +6e7f 8ebc +6e80 969e +6e82 9fe1 +6e8c 94ac +6e8f 9fed +6e90 8cb9 +6e96 8f80 +6e98 9fe3 +6e9c 97ad +6e9d 8d61 +6e9f 9ff0 +6ea2 88ec +6ea5 9fee +6eaa 9fe2 +6eaf 9fe8 +6eb2 9fea +6eb6 976e +6eb7 9fe5 +6eba 934d +6ebd 9fe7 +6ebf fb4a +6ec2 9fef +6ec4 9fe9 +6ec5 96c5 +6ec9 9fe4 +6ecb 8ea0 +6ecc 9ffc +6ed1 8a8a +6ed3 9fe6 +6ed4 9feb +6ed5 9fec +6edd 91ea +6ede 91d8 +6eec 9ff4 +6eef 9ffa +6ef2 9ff8 +6ef4 9348 +6ef7 e042 +6ef8 9ff5 +6efe 9ff6 +6eff 9fde +6f01 8b99 +6f02 9559 +6f06 8ebd +6f09 8d97 +6f0f 9852 +6f11 9ff2 +6f13 e041 +6f14 8989 +6f15 9186 +6f20 9499 +6f22 8abf +6f23 97f8 +6f2b 969f +6f2c 92d0 +6f31 9ff9 +6f32 9ffb +6f38 9151 +6f3e e040 +6f3f 9ff7 +6f41 9ff1 +6f45 8ac1 +6f54 8c89 +6f58 e04e +6f5b e049 +6f5c 90f6 +6f5f 8a83 +6f64 8f81 +6f66 e052 +6f6d e04b +6f6e 92aa +6f6f e048 +6f70 92d7 +6f74 e06b +6f78 e045 +6f7a e044 +6f7c e04d +6f80 e047 +6f81 e046 +6f82 e04c +6f84 909f +6f86 e043 +6f88 fb4b +6f8e e04f +6f91 e050 +6f97 8ac0 +6fa1 e055 +6fa3 e054 +6fa4 e056 +6faa e059 +6fb1 9362 +6fb3 e053 +6fb5 fb4c +6fb9 e057 +6fc0 8c83 +6fc1 91f7 +6fc2 e051 +6fc3 945a +6fc6 e058 +6fd4 e05d +6fd5 e05b +6fd8 e05e +6fdb e061 +6fdf e05a +6fe0 8d8a +6fe1 9447 +6fe4 9fb7 +6feb 9794 +6fec e05c +6fee e060 +6fef 91f3 +6ff1 e05f +6ff3 e04a +6ff5 fb4d +6ff6 e889 +6ffa e064 +6ffe e068 +7001 e066 +7005 fb4e +7007 fb4f +7009 e062 +700b e063 +700f e067 +7011 e065 +7015 956d +7018 e06d +701a e06a +701b e069 +701d e06c +701e 93d2 +701f e06e +7026 9295 +7027 91eb +7028 fb50 +702c 90a3 +7030 e06f +7032 e071 +703e e070 +704c 9ff3 +7051 e072 +7058 93e5 +7063 e073 +706b 89ce +706f 9394 +7070 8a44 +7078 8b84 +707c 8edc +707d 8dd0 +7085 fb51 +7089 9846 +708a 9086 +708e 898a +7092 e075 +7099 e074 +70ab fb52 +70ac e078 +70ad 9259 +70ae e07b +70af e076 +70b3 e07a +70b8 e079 +70b9 935f +70ba 88d7 +70bb fa62 +70c8 97f3 +70cb e07d +70cf 8947 +70d9 e080 +70dd e07e +70df e07c +70f1 e077 +70f9 9642 +70fd e082 +7104 fb54 +7109 e081 +710f fb53 +7114 898b +7119 e084 +711a 95b0 +711c e083 +7121 96b3 +7126 8fc5 +7136 9152 +713c 8fc4 +7146 fb56 +7147 fb57 +7149 97f9 +714c e08a +714e 90f7 +7155 e086 +7156 e08b +7159 898c +715c fb55 +7162 e089 +7164 9481 +7165 e085 +7166 e088 +7167 8fc6 +7169 94cf +716c e08c +716e 8ecf +717d 90f8 +7184 e08f +7188 e087 +718a 8c46 +718f e08d +7194 976f +7195 e090 +7199 eaa4 +719f 8f6e +71a8 e091 +71ac e092 +71b1 944d +71b9 e094 +71be e095 +71c1 fb59 +71c3 9452 +71c8 9395 +71c9 e097 +71ce e099 +71d0 97d3 +71d2 e096 +71d4 e098 +71d5 898d +71d7 e093 +71df 9a7a +71e0 e09a +71e5 9187 +71e6 8e57 +71e7 e09c +71ec e09b +71ed 9043 +71ee 99d7 +71f5 e09d +71f9 e09f +71fb e08e +71fc e09e +71fe fb5a +71ff e0a0 +7206 949a +720d e0a1 +7210 e0a2 +721b e0a3 +7228 e0a4 +722a 92dc +722c e0a6 +722d e0a5 +7230 e0a7 +7232 e0a8 +7235 8edd +7236 9583 +723a 96ea +723b e0a9 +723c e0aa +723d 9175 +723e 8ea2 +723f e0ab +7240 e0ac +7246 e0ad +7247 95d0 +7248 94c5 +724b e0ae +724c 9476 +7252 92ab +7258 e0af +7259 89e5 +725b 8b8d +725d 96c4 +725f 96b4 +7261 89b2 +7262 9853 +7267 9671 +7269 95a8 +7272 90b5 +7274 e0b0 +7279 93c1 +727d 8ca1 +727e e0b1 +7280 8dd2 +7281 e0b3 +7282 e0b2 +7287 e0b4 +7292 e0b5 +7296 e0b6 +72a0 8b5d +72a2 e0b7 +72a7 e0b8 +72ac 8ca2 +72af 94c6 +72b1 fb5b +72b2 e0ba +72b6 8ff3 +72b9 e0b9 +72be fb5c +72c2 8bb6 +72c3 e0bb +72c4 e0bd +72c6 e0bc +72ce e0be +72d0 8ccf +72d2 e0bf +72d7 8be7 +72d9 915f +72db 8d9d +72e0 e0c1 +72e1 e0c2 +72e2 e0c0 +72e9 8eeb +72ec 93c6 +72ed 8bb7 +72f7 e0c4 +72f8 924b +72f9 e0c3 +72fc 9854 +72fd 9482 +730a e0c7 +7316 e0c9 +7317 e0c6 +731b 96d2 +731c e0c8 +731d e0ca +731f 97c2 +7324 fb5d +7325 e0ce +7329 e0cd +732a 9296 +732b 944c +732e 8ca3 +732f e0cc +7334 e0cb +7336 9750 +7337 9751 +733e e0cf +733f 898e +7344 8d96 +7345 8e82 +734e e0d0 +734f e0d1 +7357 e0d3 +7363 8f62 +7368 e0d5 +736a e0d4 +7370 e0d6 +7372 8a6c +7375 e0d8 +7377 fb5f +7378 e0d7 +737a e0da +737b e0d9 +7384 8cba +7387 97a6 +7389 8bca +738b 89a4 +7396 8be8 +73a9 8adf +73b2 97e6 +73b3 e0dc +73bb e0de +73bd fb60 +73c0 e0df +73c2 89cf +73c8 e0db +73c9 fb61 +73ca 8e58 +73cd 92bf +73ce e0dd +73d2 fb64 +73d6 fb62 +73de e0e2 +73e0 8eec +73e3 fb63 +73e5 e0e0 +73ea 8c5d +73ed 94c7 +73ee e0e1 +73f1 e0fc +73f5 fb66 +73f8 e0e7 +73fe 8cbb +7403 8b85 +7405 e0e4 +7406 979d +7407 fb65 +7409 97ae +7422 91f4 +7425 e0e6 +7426 fb67 +7429 fb69 +742a fb68 +742e fb6a +7432 e0e8 +7433 97d4 +7434 8bd5 +7435 94fa +7436 9469 +743a e0e9 +743f e0eb +7441 e0ee +7455 e0ea +7459 e0ed +745a 8ce8 +745b 896c +745c e0ef +745e 9090 +745f e0ec +7460 97da +7462 fb6b +7463 e0f2 +7464 eaa2 +7469 e0f0 +746a e0f3 +746f e0e5 +7470 e0f1 +7473 8dba +7476 e0f4 +747e e0f5 +7483 979e +7489 fb6c +748b e0f6 +749e e0f7 +749f fb6d +74a2 e0e3 +74a7 e0f8 +74b0 8ac2 +74bd 8ea3 +74ca e0f9 +74cf e0fa +74d4 e0fb +74dc 895a +74e0 e140 +74e2 955a +74e3 e141 +74e6 8aa2 +74e7 e142 +74e9 e143 +74ee e144 +74f0 e146 +74f1 e147 +74f2 e145 +74f6 9572 +74f7 e149 +74f8 e148 +7501 fb6e +7503 e14b +7504 e14a +7505 e14c +750c e14d +750d e14f +750e e14e +7511 8d99 +7513 e151 +7515 e150 +7518 8ac3 +751a 9072 +751c 935b +751e e152 +751f 90b6 +7523 8e59 +7525 8999 +7526 e153 +7528 9770 +752b 95e1 +752c e154 +752f faa8 +7530 9363 +7531 9752 +7532 8d62 +7533 905c +7537 926a +7538 99b2 +753a 92ac +753b 89e6 +753c e155 +7544 e156 +7546 e15b +7549 e159 +754a e158 +754b 9dc0 +754c 8a45 +754d e157 +754f 88d8 +7551 94a8 +7554 94c8 +7559 97af +755a e15c +755b e15a +755c 927b +755d 90a4 +7560 94a9 +7562 954c +7564 e15e +7565 97aa +7566 8c6c +7567 e15f +7569 e15d +756a 94d4 +756b e160 +756d e161 +756f fb6f +7570 88d9 +7573 8ff4 +7574 e166 +7576 e163 +7577 93eb +7578 e162 +757f 8b45 +7582 e169 +7586 e164 +7587 e165 +7589 e168 +758a e167 +758b 9544 +758e 9161 +758f 9160 +7591 8b5e +7594 e16a +759a e16b +759d e16c +75a3 e16e +75a5 e16d +75ab 8975 +75b1 e176 +75b2 94e6 +75b3 e170 +75b5 e172 +75b8 e174 +75b9 905d +75bc e175 +75bd e173 +75be 8ebe +75c2 e16f +75c3 e171 +75c5 9561 +75c7 8fc7 +75ca e178 +75cd e177 +75d2 e179 +75d4 8ea4 +75d5 8dad +75d8 9397 +75d9 e17a +75db 92c9 +75de e17c +75e2 979f +75e3 e17b +75e9 9189 +75f0 e182 +75f2 e184 +75f3 e185 +75f4 9273 +75fa e183 +75fc e180 +75fe e17d +75ff e17e +7601 e181 +7609 e188 +760b e186 +760d e187 +761f e189 +7620 e18b +7621 e18c +7622 e18d +7624 e18e +7627 e18a +7630 e190 +7634 e18f +763b e191 +7642 97c3 +7646 e194 +7647 e192 +7648 e193 +764c 8ae0 +7652 96fc +7656 95c8 +7658 e196 +765c e195 +7661 e197 +7662 e198 +7667 e19c +7668 e199 +7669 e19a +766a e19b +766c e19d +7670 e19e +7672 e19f +7676 e1a0 +7678 e1a1 +767a 94ad +767b 936f +767c e1a2 +767d 9492 +767e 9553 +7680 e1a3 +7682 fb70 +7683 e1a4 +7684 9349 +7686 8a46 +7687 8d63 +7688 e1a5 +768b e1a6 +768e e1a7 +7690 8e48 +7693 e1a9 +7696 e1a8 +7699 e1aa +769a e1ab +769b fb73 +769c fb71 +769e fb72 +76a6 fb74 +76ae 94e7 +76b0 e1ac +76b4 e1ad +76b7 ea89 +76b8 e1ae +76b9 e1af +76ba e1b0 +76bf 8e4d +76c2 e1b1 +76c3 9475 +76c6 967e +76c8 896d +76ca 8976 +76cd e1b2 +76d2 e1b4 +76d6 e1b3 +76d7 9390 +76db 90b7 +76dc 9f58 +76de e1b5 +76df 96bf +76e1 e1b6 +76e3 8ac4 +76e4 94d5 +76e5 e1b7 +76e7 e1b8 +76ea e1b9 +76ee 96da +76f2 96d3 +76f4 92bc +76f8 918a +76fb e1bb +76fe 8f82 +7701 8fc8 +7704 e1be +7707 e1bd +7708 e1bc +7709 94fb +770b 8ac5 +770c 8ca7 +771b e1c4 +771e e1c1 +771f 905e +7720 96b0 +7724 e1c0 +7725 e1c2 +7726 e1c3 +7729 e1bf +7737 e1c5 +7738 e1c6 +773a 92ad +773c 8ae1 +7740 9285 +7746 fb76 +7747 e1c7 +775a e1c8 +775b e1cb +7761 9087 +7763 93c2 +7765 e1cc +7766 9672 +7768 e1c9 +776b e1ca +7779 e1cf +777e e1ce +777f e1cd +778b e1d1 +778e e1d0 +7791 e1d2 +779e e1d4 +77a0 e1d3 +77a5 95cb +77ac 8f75 +77ad 97c4 +77b0 e1d5 +77b3 93b5 +77b6 e1d6 +77b9 e1d7 +77bb e1db +77bc e1d9 +77bd e1da +77bf e1d8 +77c7 e1dc +77cd e1dd +77d7 e1de +77da e1df +77db 96b5 +77dc e1e0 +77e2 96ee +77e3 e1e1 +77e5 926d +77e7 948a +77e9 8be9 +77ed 925a +77ee e1e2 +77ef 8bb8 +77f3 90ce +77fc e1e3 +7802 8dbb +780c e1e4 +7812 e1e5 +7814 8ca4 +7815 8dd3 +7820 e1e7 +7821 fb78 +7825 9375 +7826 8dd4 +7827 8b6d +7832 9643 +7834 946a +783a 9376 +783f 8d7b +7845 e1e9 +784e fb79 +785d 8fc9 +7864 fb7a +786b 97b0 +786c 8d64 +786f 8ca5 +7872 94a1 +7874 e1eb +787a fb7b +787c e1ed +7881 8ce9 +7886 e1ec +7887 92f4 +788c e1ef +788d 8a56 +788e e1ea +7891 94e8 +7893 894f +7895 8dea +7897 9871 +789a e1ee +78a3 e1f0 +78a7 95c9 +78a9 90d7 +78aa e1f2 +78af e1f3 +78b5 e1f1 +78ba 8a6d +78bc e1f9 +78be e1f8 +78c1 8ea5 +78c5 e1fa +78c6 e1f5 +78ca e1fb +78cb e1f6 +78d0 94d6 +78d1 e1f4 +78d4 e1f7 +78da e241 +78e7 e240 +78e8 9681 +78ec e1fc +78ef 88e9 +78f4 e243 +78fd e242 +7901 8fca +7907 e244 +790e 9162 +7911 e246 +7912 e245 +7919 e247 +7926 e1e6 +792a e1e8 +792b e249 +792c e248 +7930 fb7c +793a 8ea6 +793c 97e7 +793e 8ed0 +7940 e24a +7941 8c56 +7947 8b5f +7948 8b46 +7949 8e83 +7950 9753 +7953 e250 +7955 e24f +7956 9163 +7957 e24c +795a e24e +795d 8f6a +795e 905f +795f e24d +7960 e24b +7962 9449 +7965 8fcb +7968 955b +796d 8dd5 +7977 9398 +797a e251 +797f e252 +7980 e268 +7981 8bd6 +7984 985c +7985 9154 +798a e253 +798d 89d0 +798e 92f5 +798f 959f +7994 fb81 +799b fb83 +799d e254 +79a6 8b9a +79a7 e255 +79aa e257 +79ae e258 +79b0 9448 +79b3 e259 +79b9 e25a +79ba e25b +79bd 8bd7 +79be 89d1 +79bf 93c3 +79c0 8f47 +79c1 8e84 +79c9 e25c +79cb 8f48 +79d1 89c8 +79d2 9562 +79d5 e25d +79d8 94e9 +79df 9164 +79e1 e260 +79e3 e261 +79e4 9489 +79e6 9060 +79e7 e25e +79e9 9281 +79ec e25f +79f0 8fcc +79fb 88da +7a00 8b48 +7a08 e262 +7a0b 92f6 +7a0d e263 +7a0e 90c5 +7a14 96ab +7a17 9542 +7a18 e264 +7a19 e265 +7a1a 9274 +7a1c 97c5 +7a1f e267 +7a20 e266 +7a2e 8eed +7a31 e269 +7a32 88ee +7a37 e26c +7a3b e26a +7a3c 89d2 +7a3d 8c6d +7a3e e26b +7a3f 8d65 +7a40 8d92 +7a42 95e4 +7a43 e26d +7a46 9673 +7a49 e26f +7a4d 90cf +7a4e 896e +7a4f 89b8 +7a50 88aa +7a57 e26e +7a61 e270 +7a62 e271 +7a63 8ff5 +7a69 e272 +7a6b 8a6e +7a70 e274 +7a74 8c8a +7a76 8b86 +7a79 e275 +7a7a 8bf3 +7a7d e276 +7a7f 90fa +7a81 93cb +7a83 90de +7a84 8df3 +7a88 e277 +7a92 9282 +7a93 918b +7a95 e279 +7a96 e27b +7a97 e278 +7a98 e27a +7a9f 8c41 +7aa9 e27c +7aaa 8c45 +7aae 8b87 +7aaf 9771 +7ab0 e27e +7ab6 e280 +7aba 894d +7abf e283 +7ac3 8a96 +7ac4 e282 +7ac5 e281 +7ac7 e285 +7ac8 e27d +7aca e286 +7acb 97a7 +7acd e287 +7acf e288 +7ad1 fb84 +7ad2 9af2 +7ad3 e28a +7ad5 e289 +7ad9 e28b +7ada e28c +7adc 97b3 +7add e28d +7adf e8ed +7ae0 8fcd +7ae1 e28e +7ae2 e28f +7ae3 8f76 +7ae5 93b6 +7ae6 e290 +7ae7 fb85 +7aea 9247 +7aeb fb87 +7aed e291 +7aef 925b +7af0 e292 +7af6 8ba3 +7af8 995e +7af9 927c +7afa 8eb1 +7aff 8ac6 +7b02 e293 +7b04 e2a0 +7b06 e296 +7b08 8b88 +7b0a e295 +7b0b e2a2 +7b0f e294 +7b11 8fce +7b18 e298 +7b19 e299 +7b1b 934a +7b1e e29a +7b20 8a7d +7b25 9079 +7b26 9584 +7b28 e29c +7b2c 91e6 +7b33 e297 +7b35 e29b +7b36 e29d +7b39 8df9 +7b45 e2a4 +7b46 954d +7b48 94a4 +7b49 9399 +7b4b 8bd8 +7b4c e2a3 +7b4d e2a1 +7b4f 94b3 +7b50 e29e +7b51 927d +7b52 939b +7b54 939a +7b56 8df4 +7b5d e2b6 +7b65 e2a6 +7b67 e2a8 +7b6c e2ab +7b6e e2ac +7b70 e2a9 +7b71 e2aa +7b74 e2a7 +7b75 e2a5 +7b7a e29f +7b86 95cd +7b87 89d3 +7b8b e2b3 +7b8d e2b0 +7b8f e2b5 +7b92 e2b4 +7b94 9493 +7b95 96a5 +7b97 8e5a +7b98 e2ae +7b99 e2b7 +7b9a e2b2 +7b9c e2b1 +7b9d e2ad +7b9e fb88 +7b9f e2af +7ba1 8ac7 +7baa 925c +7bad 90fb +7bb1 94a0 +7bb4 e2bc +7bb8 94a2 +7bc0 90df +7bc1 e2b9 +7bc4 94cd +7bc6 e2bd +7bc7 95d1 +7bc9 927a +7bcb e2b8 +7bcc e2ba +7bcf e2bb +7bdd e2be +7be0 8ec2 +7be4 93c4 +7be5 e2c3 +7be6 e2c2 +7be9 e2bf +7bed 9855 +7bf3 e2c8 +7bf6 e2cc +7bf7 e2c9 +7c00 e2c5 +7c07 e2c6 +7c0d e2cb +7c11 e2c0 +7c12 99d3 +7c13 e2c7 +7c14 e2c1 +7c17 e2ca +7c1f e2d0 +7c21 8ac8 +7c23 e2cd +7c27 e2ce +7c2a e2cf +7c2b e2d2 +7c37 e2d1 +7c38 94f4 +7c3d e2d3 +7c3e 97fa +7c3f 95eb +7c40 e2d8 +7c43 e2d5 +7c4c e2d4 +7c4d 90d0 +7c4f e2d7 +7c50 e2d9 +7c54 e2d6 +7c56 e2dd +7c58 e2da +7c5f e2db +7c60 e2c4 +7c64 e2dc +7c65 e2de +7c6c e2df +7c73 95c4 +7c75 e2e0 +7c7e 96e0 +7c81 8bcc +7c82 8c48 +7c83 e2e1 +7c89 95b2 +7c8b 9088 +7c8d 96ae +7c90 e2e2 +7c92 97b1 +7c95 9494 +7c97 9165 +7c98 9453 +7c9b 8f6c +7c9f 88be +7ca1 e2e7 +7ca2 e2e5 +7ca4 e2e3 +7ca5 8a9f +7ca7 8fcf +7ca8 e2e8 +7cab e2e6 +7cad e2e4 +7cae e2ec +7cb1 e2eb +7cb2 e2ea +7cb3 e2e9 +7cb9 e2ed +7cbd e2ee +7cbe 90b8 +7cc0 e2ef +7cc2 e2f1 +7cc5 e2f0 +7cca 8cd0 +7cce 9157 +7cd2 e2f3 +7cd6 939c +7cd8 e2f2 +7cdc e2f4 +7cde 95b3 +7cdf 918c +7ce0 8d66 +7ce2 e2f5 +7ce7 97c6 +7cef e2f7 +7cf2 e2f8 +7cf4 e2f9 +7cf6 e2fa +7cf8 8e85 +7cfa e2fb +7cfb 8c6e +7cfe 8b8a +7d00 8b49 +7d02 e340 +7d04 96f1 +7d05 8d67 +7d06 e2fc +7d0a e343 +7d0b 96e4 +7d0d 945b +7d10 9552 +7d14 8f83 +7d15 e342 +7d17 8ed1 +7d18 8d68 +7d19 8e86 +7d1a 8b89 +7d1b 95b4 +7d1c e341 +7d20 9166 +7d21 9661 +7d22 8df5 +7d2b 8e87 +7d2c 92db +7d2e e346 +7d2f 97dd +7d30 8dd7 +7d32 e347 +7d33 9061 +7d35 e349 +7d39 8fd0 +7d3a 8dae +7d3f e348 +7d42 8f49 +7d43 8cbc +7d44 9167 +7d45 e344 +7d46 e34a +7d48 fb8a +7d4b e345 +7d4c 8c6f +7d4e e34d +7d4f e351 +7d50 8c8b +7d56 e34c +7d5b e355 +7d5c fb8b +7d5e 8d69 +7d61 978d +7d62 88ba +7d63 e352 +7d66 8b8b +7d68 e34f +7d6e e350 +7d71 939d +7d72 e34e +7d73 e34b +7d75 8a47 +7d76 90e2 +7d79 8ca6 +7d7d e357 +7d89 e354 +7d8f e356 +7d93 e353 +7d99 8c70 +7d9a 91b1 +7d9b e358 +7d9c 918e +7d9f e365 +7da0 fb8d +7da2 e361 +7da3 e35b +7dab e35f +7dac 8ef8 +7dad 88db +7dae e35a +7daf e362 +7db0 e366 +7db1 8d6a +7db2 96d4 +7db4 92d4 +7db5 e35c +7db7 fb8c +7db8 e364 +7dba e359 +7dbb 925d +7dbd e35e +7dbe 88bb +7dbf 96c8 +7dc7 e35d +7dca 8bd9 +7dcb 94ea +7dcf 918d +7dd1 97ce +7dd2 8f8f +7dd5 e38e +7dd6 fb8e +7dd8 e367 +7dda 90fc +7ddc e363 +7ddd e368 +7dde e36a +7de0 92f7 +7de1 e36d +7de4 e369 +7de8 95d2 +7de9 8ac9 +7dec 96c9 +7def 88dc +7df2 e36c +7df4 97fb +7dfb e36b +7e01 898f +7e04 93ea +7e05 e36e +7e09 e375 +7e0a e36f +7e0b e376 +7e12 e372 +7e1b 949b +7e1e 8ec8 +7e1f e374 +7e21 e371 +7e22 e377 +7e23 e370 +7e26 8f63 +7e2b 9644 +7e2e 8f6b +7e31 e373 +7e32 e380 +7e35 e37b +7e37 e37e +7e39 e37c +7e3a e381 +7e3b e37a +7e3d e360 +7e3e 90d1 +7e41 94c9 +7e43 e37d +7e46 e378 +7e4a 9140 +7e4b 8c71 +7e4d 8f4a +7e52 fb8f +7e54 9044 +7e55 9155 +7e56 e384 +7e59 e386 +7e5a e387 +7e5d e383 +7e5e e385 +7e66 e379 +7e67 e382 +7e69 e38a +7e6a e389 +7e6d 969a +7e70 8c4a +7e79 e388 +7e7b e38c +7e7c e38b +7e7d e38f +7e7f e391 +7e82 8e5b +7e83 e38d +7e88 e392 +7e89 e393 +7e8a fa5c +7e8c e394 +7e8e e39a +7e8f 935a +7e90 e396 +7e92 e395 +7e93 e397 +7e94 e398 +7e96 e399 +7e9b e39b +7e9c e39c +7f36 8aca +7f38 e39d +7f3a e39e +7f45 e39f +7f47 fb90 +7f4c e3a0 +7f4d e3a1 +7f4e e3a2 +7f50 e3a3 +7f51 e3a4 +7f54 e3a6 +7f55 e3a5 +7f58 e3a7 +7f5f e3a8 +7f60 e3a9 +7f67 e3ac +7f68 e3aa +7f69 e3ab +7f6a 8ddf +7f6b 8c72 +7f6e 9275 +7f70 94b1 +7f72 8f90 +7f75 946c +7f77 94eb +7f78 e3ad +7f79 9ceb +7f82 e3ae +7f83 e3b0 +7f85 9785 +7f86 e3af +7f87 e3b2 +7f88 e3b1 +7f8a 9772 +7f8c e3b3 +7f8e 94fc +7f94 e3b4 +7f9a e3b7 +7f9d e3b6 +7f9e e3b5 +7fa1 fb91 +7fa3 e3b8 +7fa4 8c51 +7fa8 9141 +7fa9 8b60 +7fae e3bc +7faf e3b9 +7fb2 e3ba +7fb6 e3bd +7fb8 e3be +7fb9 e3bb +7fbd 8948 +7fc1 89a5 +7fc5 e3c0 +7fc6 e3c1 +7fca e3c2 +7fcc 9782 +7fd2 8f4b +7fd4 e3c4 +7fd5 e3c3 +7fe0 9089 +7fe1 e3c5 +7fe6 e3c6 +7fe9 e3c7 +7feb 8ae3 +7ff0 8acb +7ff3 e3c8 +7ff9 e3c9 +7ffb 967c +7ffc 9783 +8000 9773 +8001 9856 +8003 8d6c +8004 e3cc +8005 8ed2 +8006 e3cb +800b e3cd +800c 8ea7 +8010 91cf +8012 e3ce +8015 8d6b +8017 96d5 +8018 e3cf +8019 e3d0 +801c e3d1 +8021 e3d2 +8028 e3d3 +8033 8ea8 +8036 96eb +803b e3d5 +803d 925e +803f e3d4 +8046 e3d7 +804a e3d6 +8052 e3d8 +8056 90b9 +8058 e3d9 +805a e3da +805e 95b7 +805f e3db +8061 918f +8062 e3dc +8068 e3dd +806f 97fc +8070 e3e0 +8072 e3df +8073 e3de +8074 92ae +8076 e3e1 +8077 9045 +8079 e3e2 +807d e3e3 +807e 9857 +807f e3e4 +8084 e3e5 +8085 e3e7 +8086 e3e6 +8087 94a3 +8089 93f7 +808b 985d +808c 94a7 +8093 e3e9 +8096 8fd1 +8098 9549 +809a e3ea +809b e3e8 +809d 8acc +80a1 8cd2 +80a2 8e88 +80a5 94ec +80a9 8ca8 +80aa 9662 +80ac e3ed +80ad e3eb +80af 8d6d +80b1 8d6e +80b2 88e7 +80b4 8de6 +80ba 9478 +80c3 88dd +80c4 e3f2 +80c6 925f +80cc 9477 +80ce 91d9 +80d6 e3f4 +80d9 e3f0 +80da e3f3 +80db e3ee +80dd e3f1 +80de 9645 +80e1 8cd3 +80e4 88fb +80e5 e3ef +80ef e3f6 +80f1 e3f7 +80f4 93b7 +80f8 8bb9 +80fc e445 +80fd 945c +8102 8e89 +8105 8bba +8106 90c6 +8107 9865 +8108 96ac +8109 e3f5 +810a 90d2 +811a 8b72 +811b e3f8 +8123 e3fa +8129 e3f9 +812f e3fb +8131 9245 +8133 945d +8139 92af +813e e442 +8146 e441 +814b e3fc +814e 9074 +8150 9585 +8151 e444 +8153 e443 +8154 8d6f +8155 9872 +815f e454 +8165 e448 +8166 e449 +816b 8eee +816e e447 +8170 8d98 +8171 e446 +8174 e44a +8178 92b0 +8179 95a0 +817a 9142 +817f 91da +8180 e44e +8182 e44f +8183 e44b +8188 e44c +818a e44d +818f 8d70 +8193 e455 +8195 e451 +819a 9586 +819c 968c +819d 9547 +81a0 e450 +81a3 e453 +81a4 e452 +81a8 9663 +81a9 e456 +81b0 e457 +81b3 9156 +81b5 e458 +81b8 e45a +81ba e45e +81bd e45b +81be e459 +81bf 945e +81c0 e45c +81c2 e45d +81c6 89b0 +81c8 e464 +81c9 e45f +81cd e460 +81d1 e461 +81d3 919f +81d8 e463 +81d9 e462 +81da e465 +81df e466 +81e0 e467 +81e3 9062 +81e5 89e7 +81e7 e468 +81e8 97d5 +81ea 8ea9 +81ed 8f4c +81f3 8e8a +81f4 9276 +81fa e469 +81fb e46a +81fc 8950 +81fe e46b +8201 e46c +8202 e46d +8205 e46e +8207 e46f +8208 8bbb +8209 9da8 +820a e470 +820c 90e3 +820d e471 +820e 8ec9 +8210 e472 +8212 98ae +8216 e473 +8217 95dc +8218 8ada +821b 9143 +821c 8f77 +821e 9591 +821f 8f4d +8229 e474 +822a 8d71 +822b e475 +822c 94ca +822e e484 +8233 e477 +8235 91c7 +8236 9495 +8237 8cbd +8238 e476 +8239 9144 +8240 e478 +8247 92f8 +8258 e47a +8259 e479 +825a e47c +825d e47b +825f e47d +8262 e480 +8264 e47e +8266 8acd +8268 e481 +826a e482 +826b e483 +826e 8daf +826f 97c7 +8271 e485 +8272 9046 +8276 8990 +8277 e486 +8278 e487 +827e e488 +828b 88f0 +828d e489 +8292 e48a +8299 9587 +829d 8ec5 +829f e48c +82a5 8a48 +82a6 88b0 +82ab e48b +82ac e48e +82ad 946d +82af 9063 +82b1 89d4 +82b3 9646 +82b8 8c7c +82b9 8bda +82bb e48d +82bd 89e8 +82c5 8aa1 +82d1 8991 +82d2 e492 +82d3 97e8 +82d4 91db +82d7 9563 +82d9 e49e +82db 89d5 +82dc e49c +82de e49a +82df e491 +82e1 e48f +82e3 e490 +82e5 8ee1 +82e6 8bea +82e7 9297 +82eb 93cf +82f1 8970 +82f3 e494 +82f4 e493 +82f9 e499 +82fa e495 +82fb e498 +8301 fb93 +8302 96ce +8303 e497 +8304 89d6 +8305 8a9d +8306 e49b +8309 e49d +830e 8c73 +8316 e4a1 +8317 e4aa +8318 e4ab +831c 88a9 +8323 e4b2 +8328 88ef +832b e4a9 +832f e4a8 +8331 e4a3 +8332 e4a2 +8334 e4a0 +8335 e49f +8336 9283 +8338 91f9 +8339 e4a5 +8340 e4a4 +8345 e4a7 +8349 9190 +834a 8c74 +834f 8960 +8350 e4a6 +8352 8d72 +8358 9191 +8362 fb94 +8373 e4b8 +8375 e4b9 +8377 89d7 +837b 89ac +837c e4b6 +837f fb95 +8385 e4ac +8387 e4b4 +8389 e4bb +838a e4b5 +838e e4b3 +8393 e496 +8396 e4b1 +839a e4ad +839e 8ace +839f e4af +83a0 e4ba +83a2 e4b0 +83a8 e4bc +83aa e4ae +83ab 949c +83b1 9789 +83b5 e4b7 +83bd e4cd +83c1 e4c5 +83c5 909b +83c7 fb96 +83ca 8b65 +83cc 8bdb +83ce e4c0 +83d3 89d9 +83d6 8fd2 +83d8 e4c3 +83dc 8dd8 +83df 9370 +83e0 e4c8 +83e9 95ec +83eb e4bf +83ef 89d8 +83f0 8cd4 +83f1 9548 +83f2 e4c9 +83f4 e4bd +83f6 fb97 +83f7 e4c6 +83fb e4d0 +83fd e4c1 +8403 e4c2 +8404 93b8 +8407 e4c7 +840b e4c4 +840c 9647 +840d e4ca +840e 88de +8413 e4be +8420 e4cc +8422 e4cb +8429 948b +842a e4d2 +842c e4dd +8431 8a9e +8435 e4e0 +8438 e4ce +843c e4d3 +843d 978e +8446 e4dc +8448 fb98 +8449 9774 +844e 97a8 +8457 9298 +845b 8a8b +8461 9592 +8462 e4e2 +8463 939f +8466 88af +8469 e4db +846b e4d7 +846c 9192 +846d e4d1 +846e e4d9 +846f e4de +8471 944b +8475 88a8 +8477 e4d6 +8479 e4df +847a 9598 +8482 e4da +8484 e4d5 +848b 8fd3 +8490 8f4e +8494 8eaa +8499 96d6 +849c 9566 +849f e4e5 +84a1 e4ee +84ad e4d8 +84b2 8a97 +84b4 fb99 +84b8 8ff6 +84b9 e4e3 +84bb e4e8 +84bc 9193 +84bf e4e4 +84c1 e4eb +84c4 927e +84c6 e4ec +84c9 9775 +84ca e4e1 +84cb 8a57 +84cd e4e7 +84d0 e4ea +84d1 96aa +84d6 e4ed +84d9 e4e6 +84da e4e9 +84dc fa60 +84ec 9648 +84ee 9840 +84f4 e4f1 +84fc e4f8 +84ff e4f0 +8500 8ec1 +8506 e4cf +8511 95cc +8513 96a0 +8514 e4f7 +8515 e4f6 +8517 e4f2 +8518 e4f3 +851a 8955 +851f e4f5 +8521 e4ef +8526 92d3 +852c e4f4 +852d 88fc +8535 91a0 +853d 95c1 +8540 e4f9 +8541 e540 +8543 94d7 +8548 e4fc +8549 8fd4 +854a 8ec7 +854b e542 +854e 8bbc +8553 fb9a +8555 e543 +8557 9599 +8558 e4fb +8559 fb9b +855a e4d4 +8563 e4fa +8568 986e +8569 93a0 +856a 9593 +856b fb9c +856d e54a +8577 e550 +857e e551 +8580 e544 +8584 9496 +8587 e54e +8588 e546 +858a e548 +8590 e552 +8591 e547 +8594 e54b +8597 8992 +8599 93e3 +859b e54c +859c e54f +85a4 e545 +85a6 9145 +85a8 e549 +85a9 8e46 +85aa 9064 +85ab 8c4f +85ac 96f2 +85ae 96f7 +85af 8f92 +85b0 fb9e +85b9 e556 +85ba e554 +85c1 986d +85c9 e553 +85cd 9795 +85cf e555 +85d0 e557 +85d5 e558 +85dc e55b +85dd e559 +85e4 93a1 +85e5 e55a +85e9 94cb +85ea e54d +85f7 8f93 +85f9 e55c +85fa e561 +85fb 9194 +85fe e560 +8602 e541 +8606 e562 +8607 9168 +860a e55d +860b e55f +8613 e55e +8616 9f50 +8617 9f41 +861a e564 +8622 e563 +862d 9796 +862f e1ba +8630 e565 +863f e566 +864d e567 +864e 8cd5 +8650 8b73 +8654 e569 +8655 997c +865a 8b95 +865c 97b8 +865e 8bf1 +865f e56a +8667 e56b +866b 928e +8671 e56c +8679 93f8 +867b 88b8 +868a 89e1 +868b e571 +868c e572 +8693 e56d +8695 8e5c +86a3 e56e +86a4 9461 +86a9 e56f +86aa e570 +86ab e57a +86af e574 +86b0 e577 +86b6 e573 +86c4 e575 +86c6 e576 +86c7 8ed6 +86c9 e578 +86cb 9260 +86cd 8c75 +86ce 8a61 +86d4 e57b +86d9 8a5e +86db e581 +86de e57c +86df e580 +86e4 94b8 +86e9 e57d +86ec e57e +86ed 9567 +86ee 94d8 +86ef e582 +86f8 91fb +86f9 e58c +86fb e588 +86fe 89e9 +8700 e586 +8702 9649 +8703 e587 +8706 e584 +8708 e585 +8709 e58a +870a e58d +870d e58b +8711 e589 +8712 e583 +8718 9277 +871a e594 +871c 96a8 +8725 e592 +8729 e593 +8734 e58e +8737 e590 +873b e591 +873f e58f +8749 90e4 +874b 9858 +874c e598 +874e e599 +8753 e59f +8755 9049 +8757 e59b +8759 e59e +875f e596 +8760 e595 +8763 e5a0 +8766 89da +8768 e59c +876a e5a1 +876e e59d +8774 e59a +8776 92b1 +8778 e597 +877f 9488 +8782 e5a5 +878d 975a +879f e5a4 +87a2 e5a3 +87ab e5ac +87af e5a6 +87b3 e5ae +87ba 9786 +87bb e5b1 +87bd e5a8 +87c0 e5a9 +87c4 e5ad +87c6 e5b0 +87c7 e5af +87cb e5a7 +87d0 e5aa +87d2 e5bb +87e0 e5b4 +87ef e5b2 +87f2 e5b3 +87f6 e5b8 +87f7 e5b9 +87f9 8a49 +87fb 8b61 +87fe e5b7 +8805 e5a2 +8807 fba1 +880d e5b6 +880e e5ba +880f e5b5 +8811 e5bc +8815 e5be +8816 e5bd +8821 e5c0 +8822 e5bf +8823 e579 +8827 e5c4 +8831 e5c1 +8836 e5c2 +8839 e5c3 +883b e5c5 +8840 8c8c +8842 e5c7 +8844 e5c6 +8846 8f4f +884c 8d73 +884d 9fa5 +8852 e5c8 +8853 8f70 +8857 8a58 +8859 e5c9 +885b 8971 +885d 8fd5 +885e e5ca +8861 8d74 +8862 e5cb +8863 88df +8868 955c +886b e5cc +8870 908a +8872 e5d3 +8875 e5d0 +8877 928f +887d e5d1 +887e e5ce +887f 8bdc +8881 e5cd +8882 e5d4 +8888 8c55 +888b 91dc +888d e5da +8892 e5d6 +8896 91b3 +8897 e5d5 +8899 e5d8 +889e e5cf +88a2 e5d9 +88a4 e5db +88ab 94ed +88ae e5d7 +88b0 e5dc +88b1 e5de +88b4 8cd1 +88b5 e5d2 +88b7 88bf +88bf e5dd +88c1 8dd9 +88c2 97f4 +88c3 e5df +88c4 e5e0 +88c5 9195 +88cf 97a0 +88d4 e5e1 +88d5 9754 +88d8 e5e2 +88d9 e5e3 +88dc 95e2 +88dd e5e4 +88df 8dbe +88e1 97a1 +88e8 e5e9 +88f2 e5ea +88f3 8fd6 +88f4 e5e8 +88f5 fba2 +88f8 9787 +88f9 e5e5 +88fc e5e7 +88fd 90bb +88fe 909e +8902 e5e6 +8904 e5eb +8907 95a1 +890a e5ed +890c e5ec +8910 8a8c +8912 964a +8913 e5ee +891c fa5d +891d e5fa +891e e5f0 +8925 e5f1 +892a e5f2 +892b e5f3 +8936 e5f7 +8938 e5f8 +893b e5f6 +8941 e5f4 +8943 e5ef +8944 e5f5 +894c e5f9 +894d e8b5 +8956 89a6 +895e e5fc +895f 8bdd +8960 e5fb +8964 e641 +8966 e640 +896a e643 +896d e642 +896f e644 +8972 8f50 +8974 e645 +8977 e646 +897e e647 +897f 90bc +8981 9776 +8983 e648 +8986 95a2 +8987 9465 +8988 e649 +898a e64a +898b 8ca9 +898f 8b4b +8993 e64b +8996 8e8b +8997 9460 +8998 e64c +899a 8a6f +89a1 e64d +89a6 e64f +89a7 9797 +89a9 e64e +89aa 9065 +89ac e650 +89af e651 +89b2 e652 +89b3 8acf +89ba e653 +89bd e654 +89bf e655 +89c0 e656 +89d2 8a70 +89da e657 +89dc e658 +89dd e659 +89e3 89f0 +89e6 9047 +89e7 e65a +89f4 e65b +89f8 e65c +8a00 8cbe +8a02 92f9 +8a03 e65d +8a08 8c76 +8a0a 9075 +8a0c e660 +8a0e 93a2 +8a10 e65f +8a12 fba3 +8a13 8c50 +8a16 e65e +8a17 91f5 +8a18 8b4c +8a1b e661 +8a1d e662 +8a1f 8fd7 +8a23 8c8d +8a25 e663 +8a2a 964b +8a2d 90dd +8a31 8b96 +8a33 96f3 +8a34 9169 +8a36 e664 +8a37 fba4 +8a3a 9066 +8a3b 9290 +8a3c 8fd8 +8a41 e665 +8a46 e668 +8a48 e669 +8a50 8dbc +8a51 91c0 +8a52 e667 +8a54 8fd9 +8a55 955d +8a5b e666 +8a5e 8e8c +8a60 8972 +8a62 e66d +8a63 8c77 +8a66 8e8e +8a69 8e8d +8a6b 986c +8a6c e66c +8a6d e66b +8a6e 9146 +8a70 8b6c +8a71 9862 +8a72 8a59 +8a73 8fda +8a79 fba5 +8a7c e66a +8a82 e66f +8a84 e670 +8a85 e66e +8a87 8cd6 +8a89 975f +8a8c 8e8f +8a8d 9446 +8a91 e673 +8a93 90be +8a95 9261 +8a98 9755 +8a9a e676 +8a9e 8cea +8aa0 90bd +8aa1 e672 +8aa3 e677 +8aa4 8ceb +8aa5 e674 +8aa6 e675 +8aa7 fba6 +8aa8 e671 +8aac 90e0 +8aad 93c7 +8ab0 924e +8ab2 89db +8ab9 94ee +8abc 8b62 +8abe fba7 +8abf 92b2 +8ac2 e67a +8ac4 e678 +8ac7 926b +8acb 90bf +8acc 8ad0 +8acd e679 +8acf 907a +8ad2 97c8 +8ad6 985f +8ada e67b +8adb e687 +8adc 92b3 +8ade e686 +8adf fba8 +8ae0 e683 +8ae1 e68b +8ae2 e684 +8ae4 e680 +8ae6 92fa +8ae7 e67e +8aeb e67c +8aed 9740 +8aee 8e90 +8af1 e681 +8af3 e67d +8af6 fbaa +8af7 e685 +8af8 8f94 +8afa 8cbf +8afe 91f8 +8b00 9664 +8b01 8979 +8b02 88e0 +8b04 93a3 +8b07 e689 +8b0c e688 +8b0e 93e4 +8b10 e68d +8b14 e682 +8b16 e68c +8b17 e68e +8b19 8caa +8b1a e68a +8b1b 8d75 +8b1d 8ed3 +8b20 e68f +8b21 9777 +8b26 e692 +8b28 e695 +8b2b e693 +8b2c 9554 +8b33 e690 +8b39 8bde +8b3e e694 +8b41 e696 +8b49 e69a +8b4c e697 +8b4e e699 +8b4f e698 +8b53 fbab +8b56 e69b +8b58 8eaf +8b5a e69d +8b5b e69c +8b5c 9588 +8b5f e69f +8b66 8c78 +8b6b e69e +8b6c e6a0 +8b6f e6a1 +8b70 8b63 +8b71 e3bf +8b72 8ff7 +8b74 e6a2 +8b77 8cec +8b7d e6a3 +8b7f fbac +8b80 e6a4 +8b83 8e5d +8b8a 9dcc +8b8c e6a5 +8b8e e6a6 +8b90 8f51 +8b92 e6a7 +8b93 e6a8 +8b96 e6a9 +8b99 e6aa +8b9a e6ab +8c37 924a +8c3a e6ac +8c3f e6ae +8c41 e6ad +8c46 93a4 +8c48 e6af +8c4a 964c +8c4c e6b0 +8c4e e6b1 +8c50 e6b2 +8c55 e6b3 +8c5a 93d8 +8c61 8fdb +8c62 e6b4 +8c6a 8d8b +8c6b 98ac +8c6c e6b5 +8c78 e6b6 +8c79 955e +8c7a e6b7 +8c7c e6bf +8c82 e6b8 +8c85 e6ba +8c89 e6b9 +8c8a e6bb +8c8c 9665 +8c8d e6bc +8c8e e6bd +8c94 e6be +8c98 e6c0 +8c9d 8a4c +8c9e 92e5 +8ca0 9589 +8ca1 8de0 +8ca2 8d76 +8ca7 956e +8ca8 89dd +8ca9 94cc +8caa e6c3 +8cab 8ad1 +8cac 90d3 +8cad e6c2 +8cae e6c7 +8caf 9299 +8cb0 96e1 +8cb2 e6c5 +8cb3 e6c6 +8cb4 8b4d +8cb6 e6c8 +8cb7 9483 +8cb8 91dd +8cbb 94ef +8cbc 935c +8cbd e6c4 +8cbf 9666 +8cc0 89ea +8cc1 e6ca +8cc2 9847 +8cc3 92c0 +8cc4 9864 +8cc7 8e91 +8cc8 e6c9 +8cca 91af +8ccd e6da +8cce 9147 +8cd1 93f6 +8cd3 956f +8cda e6cd +8cdb 8e5e +8cdc 8e92 +8cde 8fdc +8ce0 9485 +8ce2 8cab +8ce3 e6cc +8ce4 e6cb +8ce6 958a +8cea 8ebf +8ced 9371 +8cf0 fbad +8cf4 fbae +8cfa e6cf +8cfb e6d0 +8cfc 8d77 +8cfd e6ce +8d04 e6d1 +8d05 e6d2 +8d07 e6d4 +8d08 91a1 +8d0a e6d3 +8d0b 8ae4 +8d0d e6d6 +8d0f e6d5 +8d10 e6d7 +8d12 fbaf +8d13 e6d9 +8d14 e6db +8d16 e6dc +8d64 90d4 +8d66 8ecd +8d67 e6dd +8d6b 8a71 +8d6d e6de +8d70 9196 +8d71 e6df +8d73 e6e0 +8d74 958b +8d76 fbb0 +8d77 8b4e +8d81 e6e1 +8d85 92b4 +8d8a 897a +8d99 e6e2 +8da3 8eef +8da8 9096 +8db3 91ab +8dba e6e5 +8dbe e6e4 +8dc2 e6e3 +8dcb e6eb +8dcc e6e9 +8dcf e6e6 +8dd6 e6e8 +8dda e6e7 +8ddb e6ea +8ddd 8b97 +8ddf e6ee +8de1 90d5 +8de3 e6ef +8de8 8cd7 +8dea e6ec +8deb e6ed +8def 9848 +8df3 92b5 +8df5 9148 +8dfc e6f0 +8dff e6f3 +8e08 e6f1 +8e09 e6f2 +8e0a 9778 +8e0f 93a5 +8e10 e6f6 +8e1d e6f4 +8e1e e6f5 +8e1f e6f7 +8e2a e748 +8e30 e6fa +8e34 e6fb +8e35 e6f9 +8e42 e6f8 +8e44 92fb +8e47 e740 +8e48 e744 +8e49 e741 +8e4a e6fc +8e4c e742 +8e50 e743 +8e55 e74a +8e59 e745 +8e5f 90d6 +8e60 e747 +8e63 e749 +8e64 e746 +8e72 e74c +8e74 8f52 +8e76 e74b +8e7c e74d +8e81 e74e +8e84 e751 +8e85 e750 +8e87 e74f +8e8a e753 +8e8b e752 +8e8d 96f4 +8e91 e755 +8e93 e754 +8e94 e756 +8e99 e757 +8ea1 e759 +8eaa e758 +8eab 9067 +8eac e75a +8eaf 8beb +8eb0 e75b +8eb1 e75d +8ebe e75e +8ec5 e75f +8ec6 e75c +8ec8 e760 +8eca 8ed4 +8ecb e761 +8ecc 8b4f +8ecd 8c52 +8ecf fbb2 +8ed2 8cac +8edb e762 +8edf 93ee +8ee2 935d +8ee3 e763 +8eeb e766 +8ef8 8eb2 +8efb e765 +8efc e764 +8efd 8c79 +8efe e767 +8f03 8a72 +8f05 e769 +8f09 8dda +8f0a e768 +8f0c e771 +8f12 e76b +8f13 e76d +8f14 95e3 +8f15 e76a +8f19 e76c +8f1b e770 +8f1c e76e +8f1d 8b50 +8f1f e76f +8f26 e772 +8f29 9479 +8f2a 97d6 +8f2f 8f53 +8f33 e773 +8f38 9741 +8f39 e775 +8f3b e774 +8f3e e778 +8f3f 9760 +8f42 e777 +8f44 8a8d +8f45 e776 +8f46 e77b +8f49 e77a +8f4c e779 +8f4d 9351 +8f4e e77c +8f57 e77d +8f5c e77e +8f5f 8d8c +8f61 8c44 +8f62 e780 +8f63 e781 +8f64 e782 +8f9b 9068 +8f9c e783 +8f9e 8eab +8f9f e784 +8fa3 e785 +8fa7 999f +8fa8 999e +8fad e786 +8fae e390 +8faf e787 +8fb0 9243 +8fb1 904a +8fb2 945f +8fb7 e788 +8fba 95d3 +8fbb 92d2 +8fbc 8d9e +8fbf 9248 +8fc2 8949 +8fc4 9698 +8fc5 9076 +8fce 8c7d +8fd1 8bdf +8fd4 95d4 +8fda e789 +8fe2 e78b +8fe5 e78a +8fe6 89de +8fe9 93f4 +8fea e78c +8feb 9497 +8fed 9352 +8fef e78d +8ff0 8f71 +8ff4 e78f +8ff7 96c0 +8ff8 e79e +8ff9 e791 +8ffa e792 +8ffd 92c7 +9000 91de +9001 9197 +9003 93a6 +9005 e790 +9006 8b74 +900b e799 +900d e796 +900e e7a3 +900f 93a7 +9010 9280 +9011 e793 +9013 92fc +9014 9372 +9015 e794 +9016 e798 +9017 9080 +9019 9487 +901a 92ca +901d 90c0 +901e e797 +901f 91ac +9020 91a2 +9021 e795 +9022 88a7 +9023 9841 +9027 e79a +902e 91df +9031 8f54 +9032 9069 +9035 e79c +9036 e79b +9038 88ed +9039 e79d +903c 954e +903e e7a5 +9041 93d9 +9042 908b +9045 9278 +9047 8bf6 +9049 e7a4 +904a 9756 +904b 895e +904d 95d5 +904e 89df +904f e79f +9050 e7a0 +9051 e7a1 +9052 e7a2 +9053 93b9 +9054 9242 +9055 88e1 +9056 e7a6 +9058 e7a7 +9059 eaa1 +905c 91bb +905e e7a8 +9060 8993 +9061 916b +9063 8cad +9065 9779 +9067 fbb5 +9068 e7a9 +9069 934b +906d 9198 +906e 8ed5 +906f e7aa +9072 e7ad +9075 8f85 +9076 e7ab +9077 914a +9078 9149 +907a 88e2 +907c 97c9 +907d e7af +907f 94f0 +9080 e7b1 +9081 e7b0 +9082 e7ae +9083 e284 +9084 8ad2 +9087 e78e +9089 e7b3 +908a e7b2 +908f e7b4 +9091 9757 +90a3 93df +90a6 964d +90a8 e7b5 +90aa 8ed7 +90af e7b6 +90b1 e7b7 +90b5 e7b8 +90b8 9340 +90c1 88e8 +90ca 8d78 +90ce 9859 +90db e7bc +90de fbb6 +90e1 8c53 +90e2 e7b9 +90e4 e7ba +90e8 9594 +90ed 8a73 +90f5 9758 +90f7 8bbd +90fd 9373 +9102 e7bd +9112 e7be +9115 fbb8 +9119 e7bf +9127 fbb9 +912d 9341 +9130 e7c1 +9132 e7c0 +9149 93d1 +914a e7c2 +914b 8f55 +914c 8ede +914d 947a +914e 9291 +9152 8ef0 +9154 908c +9156 e7c3 +9158 e7c4 +9162 907c +9163 e7c5 +9165 e7c6 +9169 e7c7 +916a 978f +916c 8f56 +9172 e7c9 +9173 e7c8 +9175 8d79 +9177 8d93 +9178 8e5f +9182 e7cc +9187 8f86 +9189 e7cb +918b e7ca +918d 91e7 +9190 8ced +9192 90c1 +9197 94ae +919c 8f58 +91a2 e7cd +91a4 8fdd +91aa e7d0 +91ab e7ce +91af e7cf +91b4 e7d2 +91b5 e7d1 +91b8 8ff8 +91ba e7d3 +91c0 e7d4 +91c1 e7d5 +91c6 94ce +91c7 8dd1 +91c8 8edf +91c9 e7d6 +91cb e7d7 +91cc 97a2 +91cd 8f64 +91ce 96ec +91cf 97ca +91d0 e7d8 +91d1 8be0 +91d6 e7d9 +91d7 fbbb +91d8 9342 +91da fbba +91db e7dc +91dc 8a98 +91dd 906a +91de fbbc +91df e7da +91e1 e7db +91e3 92de +91e4 fbbf +91e5 fbc0 +91e6 9674 +91e7 8bfa +91ed fbbd +91ee fbbe +91f5 e7de +91f6 e7df +91fc e7dd +91ff e7e1 +9206 fbc1 +920a fbc3 +920d 93dd +920e 8a62 +9210 fbc2 +9211 e7e5 +9214 e7e2 +9215 e7e4 +921e e7e0 +9229 e86e +922c e7e3 +9234 97e9 +9237 8cd8 +9239 fbca +923a fbc4 +923c fbc6 +923f e7ed +9240 fbc5 +9244 9353 +9245 e7e8 +9248 e7eb +9249 e7e9 +924b e7ee +924e fbc7 +9250 e7ef +9251 fbc9 +9257 e7e7 +9259 fbc8 +925a e7f4 +925b 8994 +925e e7e6 +9262 94ab +9264 e7ea +9266 8fde +9267 fbcb +9271 8d7a +9277 fbcd +9278 fbce +927e 9667 +9280 8be2 +9283 8f65 +9285 93ba +9288 fa5f +9291 914c +9293 e7f2 +9295 e7ec +9296 e7f1 +9298 96c1 +929a 92b6 +929b e7f3 +929c e7f0 +92a7 fbcc +92ad 914b +92b7 e7f7 +92b9 e7f6 +92cf e7f5 +92d0 fbd2 +92d2 964e +92d3 fbd6 +92d5 fbd4 +92d7 fbd0 +92d9 fbd1 +92e0 fbd5 +92e4 8f9b +92e7 fbcf +92e9 e7f8 +92ea 95dd +92ed 8973 +92f2 9565 +92f3 9292 +92f8 8b98 +92f9 fa65 +92fa e7fa +92fb fbd9 +92fc 8d7c +92ff fbdc +9302 fbde +9306 8e4b +930f e7f9 +9310 908d +9318 908e +9319 e840 +931a e842 +931d fbdd +931e fbdb +9320 8ff9 +9321 fbd8 +9322 e841 +9323 e843 +9325 fbd7 +9326 8bd1 +9328 9564 +932b 8ee0 +932c 9842 +932e e7fc +932f 8df6 +9332 985e +9335 e845 +933a e844 +933b e846 +9344 e7fb +9348 fa5e +934b 93e7 +934d 9374 +9354 92d5 +9356 e84b +9357 fbe0 +935b 9262 +935c e847 +9360 e848 +936c 8c4c +936e e84a +9370 fbdf +9375 8cae +937c e849 +937e 8fdf +938c 8a99 +9394 e84f +9396 8dbd +9397 9199 +939a 92c8 +93a4 fbe1 +93a7 8a5a +93ac e84d +93ad e84e +93ae 92c1 +93b0 e84c +93b9 e850 +93c3 e856 +93c6 fbe2 +93c8 e859 +93d0 e858 +93d1 934c +93d6 e851 +93d7 e852 +93d8 e855 +93dd e857 +93de fbe3 +93e1 8bbe +93e4 e85a +93e5 e854 +93e8 e853 +93f8 fbe4 +9403 e85e +9407 e85f +9410 e860 +9413 e85d +9414 e85c +9418 8fe0 +9419 93a8 +941a e85b +9421 e864 +942b e862 +9431 fbe5 +9435 e863 +9436 e861 +9438 91f6 +943a e865 +9441 e866 +9444 e868 +9445 fbe6 +9448 fbe7 +9451 8ad3 +9452 e867 +9453 96f8 +945a e873 +945b e869 +945e e86c +9460 e86a +9462 e86b +946a e86d +9470 e86f +9475 e870 +9477 e871 +947c e874 +947d e872 +947e e875 +947f e877 +9481 e876 +9577 92b7 +9580 96e5 +9582 e878 +9583 914d +9587 e879 +9589 95c2 +958a e87a +958b 8a4a +958f 895b +9591 8ad5 +9592 fbe8 +9593 8ad4 +9594 e87b +9596 e87c +9598 e87d +9599 e87e +95a0 e880 +95a2 8ad6 +95a3 8a74 +95a4 8d7d +95a5 94b4 +95a7 e882 +95a8 e881 +95ad e883 +95b2 897b +95b9 e886 +95bb e885 +95bc e884 +95be e887 +95c3 e88a +95c7 88c5 +95ca e888 +95cc e88c +95cd e88b +95d4 e88e +95d5 e88d +95d6 e88f +95d8 93ac +95dc e890 +95e1 e891 +95e2 e893 +95e5 e892 +961c 958c +9621 e894 +9628 e895 +962a 8de3 +962e e896 +962f e897 +9632 9668 +963b 916a +963f 88a2 +9640 91c9 +9642 e898 +9644 958d +964b e89b +964c e899 +964d 8d7e +964f e89a +9650 8cc0 +965b 95c3 +965c e89d +965d e89f +965e e89e +965f e8a0 +9662 8940 +9663 9077 +9664 8f9c +9665 8ad7 +9666 e8a1 +966a 9486 +966c e8a3 +9670 8941 +9672 e8a2 +9673 92c2 +9675 97cb +9676 93a9 +9677 e89c +9678 97a4 +967a 8caf +967d 977a +9685 8bf7 +9686 97b2 +9688 8c47 +968a 91e0 +968b e440 +968d e8a4 +968e 8a4b +968f 908f +9694 8a75 +9695 e8a6 +9697 e8a7 +9698 e8a5 +9699 8c84 +969b 8ddb +969c 8fe1 +969d fbeb +96a0 8942 +96a3 97d7 +96a7 e8a9 +96a8 e7ac +96aa e8a8 +96af fbec +96b0 e8ac +96b1 e8aa +96b2 e8ab +96b4 e8ad +96b6 e8ae +96b7 97ea +96b8 e8af +96b9 e8b0 +96bb 90c7 +96bc 94b9 +96c0 909d +96c1 8ae5 +96c4 9759 +96c5 89eb +96c6 8f57 +96c7 8cd9 +96c9 e8b3 +96cb e8b2 +96cc 8e93 +96cd e8b4 +96ce e8b1 +96d1 8e47 +96d5 e8b8 +96d6 e5ab +96d9 99d4 +96db 9097 +96dc e8b6 +96e2 97a3 +96e3 93ef +96e8 894a +96ea 90e1 +96eb 8eb4 +96f0 95b5 +96f2 895f +96f6 97eb +96f7 978b +96f9 e8b9 +96fb 9364 +9700 8ef9 +9704 e8ba +9706 e8bb +9707 906b +9708 e8bc +970a 97ec +970d e8b7 +970e e8be +970f e8c0 +9711 e8bf +9713 e8bd +9716 e8c1 +9719 e8c2 +971c 919a +971e 89e0 +9724 e8c3 +9727 96b6 +972a e8c4 +9730 e8c5 +9732 9849 +9733 fbed +9738 9e50 +9739 e8c6 +973b fbee +973d e8c7 +973e e8c8 +9742 e8cc +9743 fbef +9744 e8c9 +9746 e8ca +9748 e8cb +9749 e8cd +974d fbf0 +974f fbf1 +9751 fbf2 +9752 90c2 +9755 fbf3 +9756 96f5 +9759 90c3 +975c e8ce +975e 94f1 +9760 e8cf +9761 ea72 +9762 96ca +9764 e8d0 +9766 e8d1 +9768 e8d2 +9769 8a76 +976b e8d4 +976d 9078 +9771 e8d5 +9774 8c43 +9779 e8d6 +977a e8da +977c e8d8 +9781 e8d9 +9784 8a93 +9785 e8d7 +9786 e8db +978b e8dc +978d 88c6 +978f e8dd +9790 e8de +9798 8fe2 +979c e8df +97a0 8b66 +97a3 e8e2 +97a6 e8e1 +97a8 e8e0 +97ab e691 +97ad 95da +97b3 e8e3 +97b4 e8e4 +97c3 e8e5 +97c6 e8e6 +97c8 e8e7 +97cb e8e8 +97d3 8ad8 +97dc e8e9 +97ed e8ea +97ee 9442 +97f2 e8ec +97f3 89b9 +97f5 e8ef +97f6 e8ee +97fb 8943 +97ff 8bbf +9801 95c5 +9802 92b8 +9803 8da0 +9805 8d80 +9806 8f87 +9808 907b +980c e8f1 +980f e8f0 +9810 9761 +9811 8ae6 +9812 94d0 +9813 93da +9817 909c +9818 97cc +981a 8c7a +9821 e8f4 +9824 e8f3 +982c 966a +982d 93aa +9834 896f +9837 e8f5 +9838 e8f2 +983b 9570 +983c 978a +983d e8f6 +9846 e8f7 +984b e8f9 +984c 91e8 +984d 8a7a +984e 8a7b +984f e8f8 +9854 8ae7 +9855 8cb0 +9857 fbf4 +9858 8ae8 +985b 935e +985e 97de +9865 fbf5 +9867 8cda +986b e8fa +986f e8fb +9870 e8fc +9871 e940 +9873 e942 +9874 e941 +98a8 9597 +98aa e943 +98af e944 +98b1 e945 +98b6 e946 +98c3 e948 +98c4 e947 +98c6 e949 +98db 94f2 +98dc e3ca +98df 9048 +98e2 8b51 +98e9 e94a +98eb e94b +98ed 99aa +98ee 9f5a +98ef 94d1 +98f2 88f9 +98f4 88b9 +98fc 8e94 +98fd 964f +98fe 8ffc +9903 e94c +9905 96dd +9909 e94d +990a 977b +990c 8961 +9910 8e60 +9912 e94e +9913 89ec +9914 e94f +9918 e950 +991d e952 +991e e953 +9920 e955 +9921 e951 +9924 e954 +9927 fbf8 +9928 8ad9 +992c e956 +992e e957 +993d e958 +993e e959 +9942 e95a +9945 e95c +9949 e95b +994b e95e +994c e961 +9950 e95d +9951 e95f +9952 e960 +9955 e962 +9957 8bc0 +9996 8ef1 +9997 e963 +9998 e964 +9999 8d81 +999e fbfa +99a5 e965 +99a8 8a5d +99ac 946e +99ad e966 +99ae e967 +99b3 9279 +99b4 93e9 +99bc e968 +99c1 949d +99c4 91ca +99c5 8977 +99c6 8bec +99c8 8bed +99d0 9293 +99d1 e96d +99d2 8bee +99d5 89ed +99d8 e96c +99db e96a +99dd e96b +99df e969 +99e2 e977 +99ed e96e +99ee e96f +99f1 e970 +99f2 e971 +99f8 e973 +99fb e972 +99ff 8f78 +9a01 e974 +9a05 e976 +9a0e 8b52 +9a0f e975 +9a12 919b +9a13 8cb1 +9a19 e978 +9a28 91cb +9a2b e979 +9a30 93ab +9a37 e97a +9a3e e980 +9a40 e97d +9a42 e97c +9a43 e97e +9a45 e97b +9a4d e982 +9a4e fbfb +9a55 e981 +9a57 e984 +9a5a 8bc1 +9a5b e983 +9a5f e985 +9a62 e986 +9a64 e988 +9a65 e987 +9a69 e989 +9a6a e98b +9a6b e98a +9aa8 8d9c +9aad e98c +9ab0 e98d +9ab8 8a5b +9abc e98e +9ac0 e98f +9ac4 9091 +9acf e990 +9ad1 e991 +9ad3 e992 +9ad4 e993 +9ad8 8d82 +9ad9 fbfc +9adc fc40 +9ade e994 +9adf e995 +9ae2 e996 +9ae3 e997 +9ae6 e998 +9aea 94af +9aeb e99a +9aed 9545 +9aee e99b +9aef e999 +9af1 e99d +9af4 e99c +9af7 e99e +9afb e99f +9b06 e9a0 +9b18 e9a1 +9b1a e9a2 +9b1f e9a3 +9b22 e9a4 +9b23 e9a5 +9b25 e9a6 +9b27 e9a7 +9b28 e9a8 +9b29 e9a9 +9b2a e9aa +9b2e e9ab +9b2f e9ac +9b31 9f54 +9b32 e9ad +9b3b e2f6 +9b3c 8b53 +9b41 8a40 +9b42 8db0 +9b43 e9af +9b44 e9ae +9b45 96a3 +9b4d e9b1 +9b4e e9b2 +9b4f e9b0 +9b51 e9b3 +9b54 9682 +9b58 e9b4 +9b5a 8b9b +9b6f 9844 +9b72 fc42 +9b74 e9b5 +9b75 fc41 +9b83 e9b7 +9b8e 88bc +9b8f fc43 +9b91 e9b8 +9b92 95a9 +9b93 e9b6 +9b96 e9b9 +9b97 e9ba +9b9f e9bb +9ba0 e9bc +9ba8 e9bd +9baa 968e +9bab 8e4c +9bad 8df8 +9bae 914e +9bb1 fc44 +9bb4 e9be +9bb9 e9c1 +9bbb fc45 +9bc0 e9bf +9bc6 e9c2 +9bc9 8cef +9bca e9c0 +9bcf e9c3 +9bd1 e9c4 +9bd2 e9c5 +9bd4 e9c9 +9bd6 8e49 +9bdb 91e2 +9be1 e9ca +9be2 e9c7 +9be3 e9c6 +9be4 e9c8 +9be8 8c7e +9bf0 e9ce +9bf1 e9cd +9bf2 e9cc +9bf5 88b1 +9c00 fc46 +9c04 e9d8 +9c06 e9d4 +9c08 e9d5 +9c09 e9d1 +9c0a e9d7 +9c0c e9d3 +9c0d 8a82 +9c10 986b +9c12 e9d6 +9c13 e9d2 +9c14 e9d0 +9c15 e9cf +9c1b e9da +9c21 e9dd +9c24 e9dc +9c25 e9db +9c2d 9568 +9c2e e9d9 +9c2f 88f1 +9c30 e9de +9c32 e9e0 +9c39 8a8f +9c3a e9cb +9c3b 8956 +9c3e e9e2 +9c46 e9e1 +9c47 e9df +9c48 924c +9c52 9690 +9c57 97d8 +9c5a e9e3 +9c60 e9e4 +9c67 e9e5 +9c76 e9e6 +9c78 e9e7 +9ce5 92b9 +9ce7 e9e8 +9ce9 94b5 +9ceb e9ed +9cec e9e9 +9cf0 e9ea +9cf3 9650 +9cf4 96c2 +9cf6 93ce +9d03 e9ee +9d06 e9ef +9d07 93bc +9d08 e9ec +9d09 e9eb +9d0e 89a8 +9d12 e9f7 +9d15 e9f6 +9d1b 8995 +9d1f e9f4 +9d23 e9f3 +9d26 e9f1 +9d28 8a9b +9d2a e9f0 +9d2b 8eb0 +9d2c 89a7 +9d3b 8d83 +9d3e e9fa +9d3f e9f9 +9d41 e9f8 +9d44 e9f5 +9d46 e9fb +9d48 e9fc +9d50 ea44 +9d51 ea43 +9d59 ea45 +9d5c 894c +9d5d ea40 +9d5e ea41 +9d60 8d94 +9d61 96b7 +9d64 ea42 +9d6b fc48 +9d6c 9651 +9d6f ea4a +9d70 fc47 +9d72 ea46 +9d7a ea4b +9d87 ea48 +9d89 ea47 +9d8f 8c7b +9d9a ea4c +9da4 ea4d +9da9 ea4e +9dab ea49 +9daf e9f2 +9db2 ea4f +9db4 92df +9db8 ea53 +9dba ea54 +9dbb ea52 +9dc1 ea51 +9dc2 ea57 +9dc4 ea50 +9dc6 ea55 +9dcf ea56 +9dd3 ea59 +9dd9 ea58 +9de6 ea5b +9ded ea5c +9def ea5d +9df2 9868 +9df8 ea5a +9df9 91e9 +9dfa 8deb +9dfd ea5e +9e19 fc4a +9e1a ea5f +9e1b ea60 +9e1e ea61 +9e75 ea62 +9e78 8cb2 +9e79 ea63 +9e7d ea64 +9e7f 8ead +9e81 ea65 +9e88 ea66 +9e8b ea67 +9e8c ea68 +9e91 ea6b +9e92 ea69 +9e93 985b +9e95 ea6a +9e97 97ed +9e9d ea6c +9e9f 97d9 +9ea5 ea6d +9ea6 949e +9ea9 ea6e +9eaa ea70 +9ead ea71 +9eb8 ea6f +9eb9 8d8d +9eba 96cb +9ebb 9683 +9ebc 9bf5 +9ebe 9f80 +9ebf 969b +9ec4 89a9 +9ecc ea73 +9ecd 8b6f +9ece ea74 +9ecf ea75 +9ed0 ea76 +9ed1 fc4b +9ed2 8d95 +9ed4 ea77 +9ed8 e0d2 +9ed9 96d9 +9edb 91e1 +9edc ea78 +9edd ea7a +9ede ea79 +9ee0 ea7b +9ee5 ea7c +9ee8 ea7d +9eef ea7e +9ef4 ea80 +9ef6 ea81 +9ef7 ea82 +9ef9 ea83 +9efb ea84 +9efc ea85 +9efd ea86 +9f07 ea87 +9f08 ea88 +9f0e 9343 +9f13 8cdb +9f15 ea8a +9f20 916c +9f21 ea8b +9f2c ea8c +9f3b 9540 +9f3e ea8d +9f4a ea8e +9f4b e256 +9f4e e6d8 +9f4f e8eb +9f52 ea8f +9f54 ea90 +9f5f ea92 +9f60 ea93 +9f61 ea94 +9f62 97ee +9f63 ea91 +9f66 ea95 +9f67 ea96 +9f6a ea98 +9f6c ea97 +9f72 ea9a +9f76 ea9b +9f77 ea99 +9f8d 97b4 +9f95 ea9c +9f9c ea9d +9f9d e273 +9fa0 ea9e +e000 f040 +e001 f041 +e002 f042 +e003 f043 +e004 f044 +e005 f045 +e006 f046 +e007 f047 +e008 f048 +e009 f049 +e00a f04a +e00b f04b +e00c f04c +e00d f04d +e00e f04e +e00f f04f +e010 f050 +e011 f051 +e012 f052 +e013 f053 +e014 f054 +e015 f055 +e016 f056 +e017 f057 +e018 f058 +e019 f059 +e01a f05a +e01b f05b +e01c f05c +e01d f05d +e01e f05e +e01f f05f +e020 f060 +e021 f061 +e022 f062 +e023 f063 +e024 f064 +e025 f065 +e026 f066 +e027 f067 +e028 f068 +e029 f069 +e02a f06a +e02b f06b +e02c f06c +e02d f06d +e02e f06e +e02f f06f +e030 f070 +e031 f071 +e032 f072 +e033 f073 +e034 f074 +e035 f075 +e036 f076 +e037 f077 +e038 f078 +e039 f079 +e03a f07a +e03b f07b +e03c f07c +e03d f07d +e03e f07e +e03f f080 +e040 f081 +e041 f082 +e042 f083 +e043 f084 +e044 f085 +e045 f086 +e046 f087 +e047 f088 +e048 f089 +e049 f08a +e04a f08b +e04b f08c +e04c f08d +e04d f08e +e04e f08f +e04f f090 +e050 f091 +e051 f092 +e052 f093 +e053 f094 +e054 f095 +e055 f096 +e056 f097 +e057 f098 +e058 f099 +e059 f09a +e05a f09b +e05b f09c +e05c f09d +e05d f09e +e05e f09f +e05f f0a0 +e060 f0a1 +e061 f0a2 +e062 f0a3 +e063 f0a4 +e064 f0a5 +e065 f0a6 +e066 f0a7 +e067 f0a8 +e068 f0a9 +e069 f0aa +e06a f0ab +e06b f0ac +e06c f0ad +e06d f0ae +e06e f0af +e06f f0b0 +e070 f0b1 +e071 f0b2 +e072 f0b3 +e073 f0b4 +e074 f0b5 +e075 f0b6 +e076 f0b7 +e077 f0b8 +e078 f0b9 +e079 f0ba +e07a f0bb +e07b f0bc +e07c f0bd +e07d f0be +e07e f0bf +e07f f0c0 +e080 f0c1 +e081 f0c2 +e082 f0c3 +e083 f0c4 +e084 f0c5 +e085 f0c6 +e086 f0c7 +e087 f0c8 +e088 f0c9 +e089 f0ca +e08a f0cb +e08b f0cc +e08c f0cd +e08d f0ce +e08e f0cf +e08f f0d0 +e090 f0d1 +e091 f0d2 +e092 f0d3 +e093 f0d4 +e094 f0d5 +e095 f0d6 +e096 f0d7 +e097 f0d8 +e098 f0d9 +e099 f0da +e09a f0db +e09b f0dc +e09c f0dd +e09d f0de +e09e f0df +e09f f0e0 +e0a0 f0e1 +e0a1 f0e2 +e0a2 f0e3 +e0a3 f0e4 +e0a4 f0e5 +e0a5 f0e6 +e0a6 f0e7 +e0a7 f0e8 +e0a8 f0e9 +e0a9 f0ea +e0aa f0eb +e0ab f0ec +e0ac f0ed +e0ad f0ee +e0ae f0ef +e0af f0f0 +e0b0 f0f1 +e0b1 f0f2 +e0b2 f0f3 +e0b3 f0f4 +e0b4 f0f5 +e0b5 f0f6 +e0b6 f0f7 +e0b7 f0f8 +e0b8 f0f9 +e0b9 f0fa +e0ba f0fb +e0bb f0fc +e0bc f140 +e0bd f141 +e0be f142 +e0bf f143 +e0c0 f144 +e0c1 f145 +e0c2 f146 +e0c3 f147 +e0c4 f148 +e0c5 f149 +e0c6 f14a +e0c7 f14b +e0c8 f14c +e0c9 f14d +e0ca f14e +e0cb f14f +e0cc f150 +e0cd f151 +e0ce f152 +e0cf f153 +e0d0 f154 +e0d1 f155 +e0d2 f156 +e0d3 f157 +e0d4 f158 +e0d5 f159 +e0d6 f15a +e0d7 f15b +e0d8 f15c +e0d9 f15d +e0da f15e +e0db f15f +e0dc f160 +e0dd f161 +e0de f162 +e0df f163 +e0e0 f164 +e0e1 f165 +e0e2 f166 +e0e3 f167 +e0e4 f168 +e0e5 f169 +e0e6 f16a +e0e7 f16b +e0e8 f16c +e0e9 f16d +e0ea f16e +e0eb f16f +e0ec f170 +e0ed f171 +e0ee f172 +e0ef f173 +e0f0 f174 +e0f1 f175 +e0f2 f176 +e0f3 f177 +e0f4 f178 +e0f5 f179 +e0f6 f17a +e0f7 f17b +e0f8 f17c +e0f9 f17d +e0fa f17e +e0fb f180 +e0fc f181 +e0fd f182 +e0fe f183 +e0ff f184 +e100 f185 +e101 f186 +e102 f187 +e103 f188 +e104 f189 +e105 f18a +e106 f18b +e107 f18c +e108 f18d +e109 f18e +e10a f18f +e10b f190 +e10c f191 +e10d f192 +e10e f193 +e10f f194 +e110 f195 +e111 f196 +e112 f197 +e113 f198 +e114 f199 +e115 f19a +e116 f19b +e117 f19c +e118 f19d +e119 f19e +e11a f19f +e11b f1a0 +e11c f1a1 +e11d f1a2 +e11e f1a3 +e11f f1a4 +e120 f1a5 +e121 f1a6 +e122 f1a7 +e123 f1a8 +e124 f1a9 +e125 f1aa +e126 f1ab +e127 f1ac +e128 f1ad +e129 f1ae +e12a f1af +e12b f1b0 +e12c f1b1 +e12d f1b2 +e12e f1b3 +e12f f1b4 +e130 f1b5 +e131 f1b6 +e132 f1b7 +e133 f1b8 +e134 f1b9 +e135 f1ba +e136 f1bb +e137 f1bc +e138 f1bd +e139 f1be +e13a f1bf +e13b f1c0 +e13c f1c1 +e13d f1c2 +e13e f1c3 +e13f f1c4 +e140 f1c5 +e141 f1c6 +e142 f1c7 +e143 f1c8 +e144 f1c9 +e145 f1ca +e146 f1cb +e147 f1cc +e148 f1cd +e149 f1ce +e14a f1cf +e14b f1d0 +e14c f1d1 +e14d f1d2 +e14e f1d3 +e14f f1d4 +e150 f1d5 +e151 f1d6 +e152 f1d7 +e153 f1d8 +e154 f1d9 +e155 f1da +e156 f1db +e157 f1dc +e158 f1dd +e159 f1de +e15a f1df +e15b f1e0 +e15c f1e1 +e15d f1e2 +e15e f1e3 +e15f f1e4 +e160 f1e5 +e161 f1e6 +e162 f1e7 +e163 f1e8 +e164 f1e9 +e165 f1ea +e166 f1eb +e167 f1ec +e168 f1ed +e169 f1ee +e16a f1ef +e16b f1f0 +e16c f1f1 +e16d f1f2 +e16e f1f3 +e16f f1f4 +e170 f1f5 +e171 f1f6 +e172 f1f7 +e173 f1f8 +e174 f1f9 +e175 f1fa +e176 f1fb +e177 f1fc +e178 f240 +e179 f241 +e17a f242 +e17b f243 +e17c f244 +e17d f245 +e17e f246 +e17f f247 +e180 f248 +e181 f249 +e182 f24a +e183 f24b +e184 f24c +e185 f24d +e186 f24e +e187 f24f +e188 f250 +e189 f251 +e18a f252 +e18b f253 +e18c f254 +e18d f255 +e18e f256 +e18f f257 +e190 f258 +e191 f259 +e192 f25a +e193 f25b +e194 f25c +e195 f25d +e196 f25e +e197 f25f +e198 f260 +e199 f261 +e19a f262 +e19b f263 +e19c f264 +e19d f265 +e19e f266 +e19f f267 +e1a0 f268 +e1a1 f269 +e1a2 f26a +e1a3 f26b +e1a4 f26c +e1a5 f26d +e1a6 f26e +e1a7 f26f +e1a8 f270 +e1a9 f271 +e1aa f272 +e1ab f273 +e1ac f274 +e1ad f275 +e1ae f276 +e1af f277 +e1b0 f278 +e1b1 f279 +e1b2 f27a +e1b3 f27b +e1b4 f27c +e1b5 f27d +e1b6 f27e +e1b7 f280 +e1b8 f281 +e1b9 f282 +e1ba f283 +e1bb f284 +e1bc f285 +e1bd f286 +e1be f287 +e1bf f288 +e1c0 f289 +e1c1 f28a +e1c2 f28b +e1c3 f28c +e1c4 f28d +e1c5 f28e +e1c6 f28f +e1c7 f290 +e1c8 f291 +e1c9 f292 +e1ca f293 +e1cb f294 +e1cc f295 +e1cd f296 +e1ce f297 +e1cf f298 +e1d0 f299 +e1d1 f29a +e1d2 f29b +e1d3 f29c +e1d4 f29d +e1d5 f29e +e1d6 f29f +e1d7 f2a0 +e1d8 f2a1 +e1d9 f2a2 +e1da f2a3 +e1db f2a4 +e1dc f2a5 +e1dd f2a6 +e1de f2a7 +e1df f2a8 +e1e0 f2a9 +e1e1 f2aa +e1e2 f2ab +e1e3 f2ac +e1e4 f2ad +e1e5 f2ae +e1e6 f2af +e1e7 f2b0 +e1e8 f2b1 +e1e9 f2b2 +e1ea f2b3 +e1eb f2b4 +e1ec f2b5 +e1ed f2b6 +e1ee f2b7 +e1ef f2b8 +e1f0 f2b9 +e1f1 f2ba +e1f2 f2bb +e1f3 f2bc +e1f4 f2bd +e1f5 f2be +e1f6 f2bf +e1f7 f2c0 +e1f8 f2c1 +e1f9 f2c2 +e1fa f2c3 +e1fb f2c4 +e1fc f2c5 +e1fd f2c6 +e1fe f2c7 +e1ff f2c8 +e200 f2c9 +e201 f2ca +e202 f2cb +e203 f2cc +e204 f2cd +e205 f2ce +e206 f2cf +e207 f2d0 +e208 f2d1 +e209 f2d2 +e20a f2d3 +e20b f2d4 +e20c f2d5 +e20d f2d6 +e20e f2d7 +e20f f2d8 +e210 f2d9 +e211 f2da +e212 f2db +e213 f2dc +e214 f2dd +e215 f2de +e216 f2df +e217 f2e0 +e218 f2e1 +e219 f2e2 +e21a f2e3 +e21b f2e4 +e21c f2e5 +e21d f2e6 +e21e f2e7 +e21f f2e8 +e220 f2e9 +e221 f2ea +e222 f2eb +e223 f2ec +e224 f2ed +e225 f2ee +e226 f2ef +e227 f2f0 +e228 f2f1 +e229 f2f2 +e22a f2f3 +e22b f2f4 +e22c f2f5 +e22d f2f6 +e22e f2f7 +e22f f2f8 +e230 f2f9 +e231 f2fa +e232 f2fb +e233 f2fc +e234 f340 +e235 f341 +e236 f342 +e237 f343 +e238 f344 +e239 f345 +e23a f346 +e23b f347 +e23c f348 +e23d f349 +e23e f34a +e23f f34b +e240 f34c +e241 f34d +e242 f34e +e243 f34f +e244 f350 +e245 f351 +e246 f352 +e247 f353 +e248 f354 +e249 f355 +e24a f356 +e24b f357 +e24c f358 +e24d f359 +e24e f35a +e24f f35b +e250 f35c +e251 f35d +e252 f35e +e253 f35f +e254 f360 +e255 f361 +e256 f362 +e257 f363 +e258 f364 +e259 f365 +e25a f366 +e25b f367 +e25c f368 +e25d f369 +e25e f36a +e25f f36b +e260 f36c +e261 f36d +e262 f36e +e263 f36f +e264 f370 +e265 f371 +e266 f372 +e267 f373 +e268 f374 +e269 f375 +e26a f376 +e26b f377 +e26c f378 +e26d f379 +e26e f37a +e26f f37b +e270 f37c +e271 f37d +e272 f37e +e273 f380 +e274 f381 +e275 f382 +e276 f383 +e277 f384 +e278 f385 +e279 f386 +e27a f387 +e27b f388 +e27c f389 +e27d f38a +e27e f38b +e27f f38c +e280 f38d +e281 f38e +e282 f38f +e283 f390 +e284 f391 +e285 f392 +e286 f393 +e287 f394 +e288 f395 +e289 f396 +e28a f397 +e28b f398 +e28c f399 +e28d f39a +e28e f39b +e28f f39c +e290 f39d +e291 f39e +e292 f39f +e293 f3a0 +e294 f3a1 +e295 f3a2 +e296 f3a3 +e297 f3a4 +e298 f3a5 +e299 f3a6 +e29a f3a7 +e29b f3a8 +e29c f3a9 +e29d f3aa +e29e f3ab +e29f f3ac +e2a0 f3ad +e2a1 f3ae +e2a2 f3af +e2a3 f3b0 +e2a4 f3b1 +e2a5 f3b2 +e2a6 f3b3 +e2a7 f3b4 +e2a8 f3b5 +e2a9 f3b6 +e2aa f3b7 +e2ab f3b8 +e2ac f3b9 +e2ad f3ba +e2ae f3bb +e2af f3bc +e2b0 f3bd +e2b1 f3be +e2b2 f3bf +e2b3 f3c0 +e2b4 f3c1 +e2b5 f3c2 +e2b6 f3c3 +e2b7 f3c4 +e2b8 f3c5 +e2b9 f3c6 +e2ba f3c7 +e2bb f3c8 +e2bc f3c9 +e2bd f3ca +e2be f3cb +e2bf f3cc +e2c0 f3cd +e2c1 f3ce +e2c2 f3cf +e2c3 f3d0 +e2c4 f3d1 +e2c5 f3d2 +e2c6 f3d3 +e2c7 f3d4 +e2c8 f3d5 +e2c9 f3d6 +e2ca f3d7 +e2cb f3d8 +e2cc f3d9 +e2cd f3da +e2ce f3db +e2cf f3dc +e2d0 f3dd +e2d1 f3de +e2d2 f3df +e2d3 f3e0 +e2d4 f3e1 +e2d5 f3e2 +e2d6 f3e3 +e2d7 f3e4 +e2d8 f3e5 +e2d9 f3e6 +e2da f3e7 +e2db f3e8 +e2dc f3e9 +e2dd f3ea +e2de f3eb +e2df f3ec +e2e0 f3ed +e2e1 f3ee +e2e2 f3ef +e2e3 f3f0 +e2e4 f3f1 +e2e5 f3f2 +e2e6 f3f3 +e2e7 f3f4 +e2e8 f3f5 +e2e9 f3f6 +e2ea f3f7 +e2eb f3f8 +e2ec f3f9 +e2ed f3fa +e2ee f3fb +e2ef f3fc +e2f0 f440 +e2f1 f441 +e2f2 f442 +e2f3 f443 +e2f4 f444 +e2f5 f445 +e2f6 f446 +e2f7 f447 +e2f8 f448 +e2f9 f449 +e2fa f44a +e2fb f44b +e2fc f44c +e2fd f44d +e2fe f44e +e2ff f44f +e300 f450 +e301 f451 +e302 f452 +e303 f453 +e304 f454 +e305 f455 +e306 f456 +e307 f457 +e308 f458 +e309 f459 +e30a f45a +e30b f45b +e30c f45c +e30d f45d +e30e f45e +e30f f45f +e310 f460 +e311 f461 +e312 f462 +e313 f463 +e314 f464 +e315 f465 +e316 f466 +e317 f467 +e318 f468 +e319 f469 +e31a f46a +e31b f46b +e31c f46c +e31d f46d +e31e f46e +e31f f46f +e320 f470 +e321 f471 +e322 f472 +e323 f473 +e324 f474 +e325 f475 +e326 f476 +e327 f477 +e328 f478 +e329 f479 +e32a f47a +e32b f47b +e32c f47c +e32d f47d +e32e f47e +e32f f480 +e330 f481 +e331 f482 +e332 f483 +e333 f484 +e334 f485 +e335 f486 +e336 f487 +e337 f488 +e338 f489 +e339 f48a +e33a f48b +e33b f48c +e33c f48d +e33d f48e +e33e f48f +e33f f490 +e340 f491 +e341 f492 +e342 f493 +e343 f494 +e344 f495 +e345 f496 +e346 f497 +e347 f498 +e348 f499 +e349 f49a +e34a f49b +e34b f49c +e34c f49d +e34d f49e +e34e f49f +e34f f4a0 +e350 f4a1 +e351 f4a2 +e352 f4a3 +e353 f4a4 +e354 f4a5 +e355 f4a6 +e356 f4a7 +e357 f4a8 +e358 f4a9 +e359 f4aa +e35a f4ab +e35b f4ac +e35c f4ad +e35d f4ae +e35e f4af +e35f f4b0 +e360 f4b1 +e361 f4b2 +e362 f4b3 +e363 f4b4 +e364 f4b5 +e365 f4b6 +e366 f4b7 +e367 f4b8 +e368 f4b9 +e369 f4ba +e36a f4bb +e36b f4bc +e36c f4bd +e36d f4be +e36e f4bf +e36f f4c0 +e370 f4c1 +e371 f4c2 +e372 f4c3 +e373 f4c4 +e374 f4c5 +e375 f4c6 +e376 f4c7 +e377 f4c8 +e378 f4c9 +e379 f4ca +e37a f4cb +e37b f4cc +e37c f4cd +e37d f4ce +e37e f4cf +e37f f4d0 +e380 f4d1 +e381 f4d2 +e382 f4d3 +e383 f4d4 +e384 f4d5 +e385 f4d6 +e386 f4d7 +e387 f4d8 +e388 f4d9 +e389 f4da +e38a f4db +e38b f4dc +e38c f4dd +e38d f4de +e38e f4df +e38f f4e0 +e390 f4e1 +e391 f4e2 +e392 f4e3 +e393 f4e4 +e394 f4e5 +e395 f4e6 +e396 f4e7 +e397 f4e8 +e398 f4e9 +e399 f4ea +e39a f4eb +e39b f4ec +e39c f4ed +e39d f4ee +e39e f4ef +e39f f4f0 +e3a0 f4f1 +e3a1 f4f2 +e3a2 f4f3 +e3a3 f4f4 +e3a4 f4f5 +e3a5 f4f6 +e3a6 f4f7 +e3a7 f4f8 +e3a8 f4f9 +e3a9 f4fa +e3aa f4fb +e3ab f4fc +e3ac f540 +e3ad f541 +e3ae f542 +e3af f543 +e3b0 f544 +e3b1 f545 +e3b2 f546 +e3b3 f547 +e3b4 f548 +e3b5 f549 +e3b6 f54a +e3b7 f54b +e3b8 f54c +e3b9 f54d +e3ba f54e +e3bb f54f +e3bc f550 +e3bd f551 +e3be f552 +e3bf f553 +e3c0 f554 +e3c1 f555 +e3c2 f556 +e3c3 f557 +e3c4 f558 +e3c5 f559 +e3c6 f55a +e3c7 f55b +e3c8 f55c +e3c9 f55d +e3ca f55e +e3cb f55f +e3cc f560 +e3cd f561 +e3ce f562 +e3cf f563 +e3d0 f564 +e3d1 f565 +e3d2 f566 +e3d3 f567 +e3d4 f568 +e3d5 f569 +e3d6 f56a +e3d7 f56b +e3d8 f56c +e3d9 f56d +e3da f56e +e3db f56f +e3dc f570 +e3dd f571 +e3de f572 +e3df f573 +e3e0 f574 +e3e1 f575 +e3e2 f576 +e3e3 f577 +e3e4 f578 +e3e5 f579 +e3e6 f57a +e3e7 f57b +e3e8 f57c +e3e9 f57d +e3ea f57e +e3eb f580 +e3ec f581 +e3ed f582 +e3ee f583 +e3ef f584 +e3f0 f585 +e3f1 f586 +e3f2 f587 +e3f3 f588 +e3f4 f589 +e3f5 f58a +e3f6 f58b +e3f7 f58c +e3f8 f58d +e3f9 f58e +e3fa f58f +e3fb f590 +e3fc f591 +e3fd f592 +e3fe f593 +e3ff f594 +e400 f595 +e401 f596 +e402 f597 +e403 f598 +e404 f599 +e405 f59a +e406 f59b +e407 f59c +e408 f59d +e409 f59e +e40a f59f +e40b f5a0 +e40c f5a1 +e40d f5a2 +e40e f5a3 +e40f f5a4 +e410 f5a5 +e411 f5a6 +e412 f5a7 +e413 f5a8 +e414 f5a9 +e415 f5aa +e416 f5ab +e417 f5ac +e418 f5ad +e419 f5ae +e41a f5af +e41b f5b0 +e41c f5b1 +e41d f5b2 +e41e f5b3 +e41f f5b4 +e420 f5b5 +e421 f5b6 +e422 f5b7 +e423 f5b8 +e424 f5b9 +e425 f5ba +e426 f5bb +e427 f5bc +e428 f5bd +e429 f5be +e42a f5bf +e42b f5c0 +e42c f5c1 +e42d f5c2 +e42e f5c3 +e42f f5c4 +e430 f5c5 +e431 f5c6 +e432 f5c7 +e433 f5c8 +e434 f5c9 +e435 f5ca +e436 f5cb +e437 f5cc +e438 f5cd +e439 f5ce +e43a f5cf +e43b f5d0 +e43c f5d1 +e43d f5d2 +e43e f5d3 +e43f f5d4 +e440 f5d5 +e441 f5d6 +e442 f5d7 +e443 f5d8 +e444 f5d9 +e445 f5da +e446 f5db +e447 f5dc +e448 f5dd +e449 f5de +e44a f5df +e44b f5e0 +e44c f5e1 +e44d f5e2 +e44e f5e3 +e44f f5e4 +e450 f5e5 +e451 f5e6 +e452 f5e7 +e453 f5e8 +e454 f5e9 +e455 f5ea +e456 f5eb +e457 f5ec +e458 f5ed +e459 f5ee +e45a f5ef +e45b f5f0 +e45c f5f1 +e45d f5f2 +e45e f5f3 +e45f f5f4 +e460 f5f5 +e461 f5f6 +e462 f5f7 +e463 f5f8 +e464 f5f9 +e465 f5fa +e466 f5fb +e467 f5fc +e468 f640 +e469 f641 +e46a f642 +e46b f643 +e46c f644 +e46d f645 +e46e f646 +e46f f647 +e470 f648 +e471 f649 +e472 f64a +e473 f64b +e474 f64c +e475 f64d +e476 f64e +e477 f64f +e478 f650 +e479 f651 +e47a f652 +e47b f653 +e47c f654 +e47d f655 +e47e f656 +e47f f657 +e480 f658 +e481 f659 +e482 f65a +e483 f65b +e484 f65c +e485 f65d +e486 f65e +e487 f65f +e488 f660 +e489 f661 +e48a f662 +e48b f663 +e48c f664 +e48d f665 +e48e f666 +e48f f667 +e490 f668 +e491 f669 +e492 f66a +e493 f66b +e494 f66c +e495 f66d +e496 f66e +e497 f66f +e498 f670 +e499 f671 +e49a f672 +e49b f673 +e49c f674 +e49d f675 +e49e f676 +e49f f677 +e4a0 f678 +e4a1 f679 +e4a2 f67a +e4a3 f67b +e4a4 f67c +e4a5 f67d +e4a6 f67e +e4a7 f680 +e4a8 f681 +e4a9 f682 +e4aa f683 +e4ab f684 +e4ac f685 +e4ad f686 +e4ae f687 +e4af f688 +e4b0 f689 +e4b1 f68a +e4b2 f68b +e4b3 f68c +e4b4 f68d +e4b5 f68e +e4b6 f68f +e4b7 f690 +e4b8 f691 +e4b9 f692 +e4ba f693 +e4bb f694 +e4bc f695 +e4bd f696 +e4be f697 +e4bf f698 +e4c0 f699 +e4c1 f69a +e4c2 f69b +e4c3 f69c +e4c4 f69d +e4c5 f69e +e4c6 f69f +e4c7 f6a0 +e4c8 f6a1 +e4c9 f6a2 +e4ca f6a3 +e4cb f6a4 +e4cc f6a5 +e4cd f6a6 +e4ce f6a7 +e4cf f6a8 +e4d0 f6a9 +e4d1 f6aa +e4d2 f6ab +e4d3 f6ac +e4d4 f6ad +e4d5 f6ae +e4d6 f6af +e4d7 f6b0 +e4d8 f6b1 +e4d9 f6b2 +e4da f6b3 +e4db f6b4 +e4dc f6b5 +e4dd f6b6 +e4de f6b7 +e4df f6b8 +e4e0 f6b9 +e4e1 f6ba +e4e2 f6bb +e4e3 f6bc +e4e4 f6bd +e4e5 f6be +e4e6 f6bf +e4e7 f6c0 +e4e8 f6c1 +e4e9 f6c2 +e4ea f6c3 +e4eb f6c4 +e4ec f6c5 +e4ed f6c6 +e4ee f6c7 +e4ef f6c8 +e4f0 f6c9 +e4f1 f6ca +e4f2 f6cb +e4f3 f6cc +e4f4 f6cd +e4f5 f6ce +e4f6 f6cf +e4f7 f6d0 +e4f8 f6d1 +e4f9 f6d2 +e4fa f6d3 +e4fb f6d4 +e4fc f6d5 +e4fd f6d6 +e4fe f6d7 +e4ff f6d8 +e500 f6d9 +e501 f6da +e502 f6db +e503 f6dc +e504 f6dd +e505 f6de +e506 f6df +e507 f6e0 +e508 f6e1 +e509 f6e2 +e50a f6e3 +e50b f6e4 +e50c f6e5 +e50d f6e6 +e50e f6e7 +e50f f6e8 +e510 f6e9 +e511 f6ea +e512 f6eb +e513 f6ec +e514 f6ed +e515 f6ee +e516 f6ef +e517 f6f0 +e518 f6f1 +e519 f6f2 +e51a f6f3 +e51b f6f4 +e51c f6f5 +e51d f6f6 +e51e f6f7 +e51f f6f8 +e520 f6f9 +e521 f6fa +e522 f6fb +e523 f6fc +e524 f740 +e525 f741 +e526 f742 +e527 f743 +e528 f744 +e529 f745 +e52a f746 +e52b f747 +e52c f748 +e52d f749 +e52e f74a +e52f f74b +e530 f74c +e531 f74d +e532 f74e +e533 f74f +e534 f750 +e535 f751 +e536 f752 +e537 f753 +e538 f754 +e539 f755 +e53a f756 +e53b f757 +e53c f758 +e53d f759 +e53e f75a +e53f f75b +e540 f75c +e541 f75d +e542 f75e +e543 f75f +e544 f760 +e545 f761 +e546 f762 +e547 f763 +e548 f764 +e549 f765 +e54a f766 +e54b f767 +e54c f768 +e54d f769 +e54e f76a +e54f f76b +e550 f76c +e551 f76d +e552 f76e +e553 f76f +e554 f770 +e555 f771 +e556 f772 +e557 f773 +e558 f774 +e559 f775 +e55a f776 +e55b f777 +e55c f778 +e55d f779 +e55e f77a +e55f f77b +e560 f77c +e561 f77d +e562 f77e +e563 f780 +e564 f781 +e565 f782 +e566 f783 +e567 f784 +e568 f785 +e569 f786 +e56a f787 +e56b f788 +e56c f789 +e56d f78a +e56e f78b +e56f f78c +e570 f78d +e571 f78e +e572 f78f +e573 f790 +e574 f791 +e575 f792 +e576 f793 +e577 f794 +e578 f795 +e579 f796 +e57a f797 +e57b f798 +e57c f799 +e57d f79a +e57e f79b +e57f f79c +e580 f79d +e581 f79e +e582 f79f +e583 f7a0 +e584 f7a1 +e585 f7a2 +e586 f7a3 +e587 f7a4 +e588 f7a5 +e589 f7a6 +e58a f7a7 +e58b f7a8 +e58c f7a9 +e58d f7aa +e58e f7ab +e58f f7ac +e590 f7ad +e591 f7ae +e592 f7af +e593 f7b0 +e594 f7b1 +e595 f7b2 +e596 f7b3 +e597 f7b4 +e598 f7b5 +e599 f7b6 +e59a f7b7 +e59b f7b8 +e59c f7b9 +e59d f7ba +e59e f7bb +e59f f7bc +e5a0 f7bd +e5a1 f7be +e5a2 f7bf +e5a3 f7c0 +e5a4 f7c1 +e5a5 f7c2 +e5a6 f7c3 +e5a7 f7c4 +e5a8 f7c5 +e5a9 f7c6 +e5aa f7c7 +e5ab f7c8 +e5ac f7c9 +e5ad f7ca +e5ae f7cb +e5af f7cc +e5b0 f7cd +e5b1 f7ce +e5b2 f7cf +e5b3 f7d0 +e5b4 f7d1 +e5b5 f7d2 +e5b6 f7d3 +e5b7 f7d4 +e5b8 f7d5 +e5b9 f7d6 +e5ba f7d7 +e5bb f7d8 +e5bc f7d9 +e5bd f7da +e5be f7db +e5bf f7dc +e5c0 f7dd +e5c1 f7de +e5c2 f7df +e5c3 f7e0 +e5c4 f7e1 +e5c5 f7e2 +e5c6 f7e3 +e5c7 f7e4 +e5c8 f7e5 +e5c9 f7e6 +e5ca f7e7 +e5cb f7e8 +e5cc f7e9 +e5cd f7ea +e5ce f7eb +e5cf f7ec +e5d0 f7ed +e5d1 f7ee +e5d2 f7ef +e5d3 f7f0 +e5d4 f7f1 +e5d5 f7f2 +e5d6 f7f3 +e5d7 f7f4 +e5d8 f7f5 +e5d9 f7f6 +e5da f7f7 +e5db f7f8 +e5dc f7f9 +e5dd f7fa +e5de f7fb +e5df f7fc +e5e0 f840 +e5e1 f841 +e5e2 f842 +e5e3 f843 +e5e4 f844 +e5e5 f845 +e5e6 f846 +e5e7 f847 +e5e8 f848 +e5e9 f849 +e5ea f84a +e5eb f84b +e5ec f84c +e5ed f84d +e5ee f84e +e5ef f84f +e5f0 f850 +e5f1 f851 +e5f2 f852 +e5f3 f853 +e5f4 f854 +e5f5 f855 +e5f6 f856 +e5f7 f857 +e5f8 f858 +e5f9 f859 +e5fa f85a +e5fb f85b +e5fc f85c +e5fd f85d +e5fe f85e +e5ff f85f +e600 f860 +e601 f861 +e602 f862 +e603 f863 +e604 f864 +e605 f865 +e606 f866 +e607 f867 +e608 f868 +e609 f869 +e60a f86a +e60b f86b +e60c f86c +e60d f86d +e60e f86e +e60f f86f +e610 f870 +e611 f871 +e612 f872 +e613 f873 +e614 f874 +e615 f875 +e616 f876 +e617 f877 +e618 f878 +e619 f879 +e61a f87a +e61b f87b +e61c f87c +e61d f87d +e61e f87e +e61f f880 +e620 f881 +e621 f882 +e622 f883 +e623 f884 +e624 f885 +e625 f886 +e626 f887 +e627 f888 +e628 f889 +e629 f88a +e62a f88b +e62b f88c +e62c f88d +e62d f88e +e62e f88f +e62f f890 +e630 f891 +e631 f892 +e632 f893 +e633 f894 +e634 f895 +e635 f896 +e636 f897 +e637 f898 +e638 f899 +e639 f89a +e63a f89b +e63b f89c +e63c f89d +e63d f89e +e63e f89f +e63f f8a0 +e640 f8a1 +e641 f8a2 +e642 f8a3 +e643 f8a4 +e644 f8a5 +e645 f8a6 +e646 f8a7 +e647 f8a8 +e648 f8a9 +e649 f8aa +e64a f8ab +e64b f8ac +e64c f8ad +e64d f8ae +e64e f8af +e64f f8b0 +e650 f8b1 +e651 f8b2 +e652 f8b3 +e653 f8b4 +e654 f8b5 +e655 f8b6 +e656 f8b7 +e657 f8b8 +e658 f8b9 +e659 f8ba +e65a f8bb +e65b f8bc +e65c f8bd +e65d f8be +e65e f8bf +e65f f8c0 +e660 f8c1 +e661 f8c2 +e662 f8c3 +e663 f8c4 +e664 f8c5 +e665 f8c6 +e666 f8c7 +e667 f8c8 +e668 f8c9 +e669 f8ca +e66a f8cb +e66b f8cc +e66c f8cd +e66d f8ce +e66e f8cf +e66f f8d0 +e670 f8d1 +e671 f8d2 +e672 f8d3 +e673 f8d4 +e674 f8d5 +e675 f8d6 +e676 f8d7 +e677 f8d8 +e678 f8d9 +e679 f8da +e67a f8db +e67b f8dc +e67c f8dd +e67d f8de +e67e f8df +e67f f8e0 +e680 f8e1 +e681 f8e2 +e682 f8e3 +e683 f8e4 +e684 f8e5 +e685 f8e6 +e686 f8e7 +e687 f8e8 +e688 f8e9 +e689 f8ea +e68a f8eb +e68b f8ec +e68c f8ed +e68d f8ee +e68e f8ef +e68f f8f0 +e690 f8f1 +e691 f8f2 +e692 f8f3 +e693 f8f4 +e694 f8f5 +e695 f8f6 +e696 f8f7 +e697 f8f8 +e698 f8f9 +e699 f8fa +e69a f8fb +e69b f8fc +e69c f940 +e69d f941 +e69e f942 +e69f f943 +e6a0 f944 +e6a1 f945 +e6a2 f946 +e6a3 f947 +e6a4 f948 +e6a5 f949 +e6a6 f94a +e6a7 f94b +e6a8 f94c +e6a9 f94d +e6aa f94e +e6ab f94f +e6ac f950 +e6ad f951 +e6ae f952 +e6af f953 +e6b0 f954 +e6b1 f955 +e6b2 f956 +e6b3 f957 +e6b4 f958 +e6b5 f959 +e6b6 f95a +e6b7 f95b +e6b8 f95c +e6b9 f95d +e6ba f95e +e6bb f95f +e6bc f960 +e6bd f961 +e6be f962 +e6bf f963 +e6c0 f964 +e6c1 f965 +e6c2 f966 +e6c3 f967 +e6c4 f968 +e6c5 f969 +e6c6 f96a +e6c7 f96b +e6c8 f96c +e6c9 f96d +e6ca f96e +e6cb f96f +e6cc f970 +e6cd f971 +e6ce f972 +e6cf f973 +e6d0 f974 +e6d1 f975 +e6d2 f976 +e6d3 f977 +e6d4 f978 +e6d5 f979 +e6d6 f97a +e6d7 f97b +e6d8 f97c +e6d9 f97d +e6da f97e +e6db f980 +e6dc f981 +e6dd f982 +e6de f983 +e6df f984 +e6e0 f985 +e6e1 f986 +e6e2 f987 +e6e3 f988 +e6e4 f989 +e6e5 f98a +e6e6 f98b +e6e7 f98c +e6e8 f98d +e6e9 f98e +e6ea f98f +e6eb f990 +e6ec f991 +e6ed f992 +e6ee f993 +e6ef f994 +e6f0 f995 +e6f1 f996 +e6f2 f997 +e6f3 f998 +e6f4 f999 +e6f5 f99a +e6f6 f99b +e6f7 f99c +e6f8 f99d +e6f9 f99e +e6fa f99f +e6fb f9a0 +e6fc f9a1 +e6fd f9a2 +e6fe f9a3 +e6ff f9a4 +e700 f9a5 +e701 f9a6 +e702 f9a7 +e703 f9a8 +e704 f9a9 +e705 f9aa +e706 f9ab +e707 f9ac +e708 f9ad +e709 f9ae +e70a f9af +e70b f9b0 +e70c f9b1 +e70d f9b2 +e70e f9b3 +e70f f9b4 +e710 f9b5 +e711 f9b6 +e712 f9b7 +e713 f9b8 +e714 f9b9 +e715 f9ba +e716 f9bb +e717 f9bc +e718 f9bd +e719 f9be +e71a f9bf +e71b f9c0 +e71c f9c1 +e71d f9c2 +e71e f9c3 +e71f f9c4 +e720 f9c5 +e721 f9c6 +e722 f9c7 +e723 f9c8 +e724 f9c9 +e725 f9ca +e726 f9cb +e727 f9cc +e728 f9cd +e729 f9ce +e72a f9cf +e72b f9d0 +e72c f9d1 +e72d f9d2 +e72e f9d3 +e72f f9d4 +e730 f9d5 +e731 f9d6 +e732 f9d7 +e733 f9d8 +e734 f9d9 +e735 f9da +e736 f9db +e737 f9dc +e738 f9dd +e739 f9de +e73a f9df +e73b f9e0 +e73c f9e1 +e73d f9e2 +e73e f9e3 +e73f f9e4 +e740 f9e5 +e741 f9e6 +e742 f9e7 +e743 f9e8 +e744 f9e9 +e745 f9ea +e746 f9eb +e747 f9ec +e748 f9ed +e749 f9ee +e74a f9ef +e74b f9f0 +e74c f9f1 +e74d f9f2 +e74e f9f3 +e74f f9f4 +e750 f9f5 +e751 f9f6 +e752 f9f7 +e753 f9f8 +e754 f9f9 +e755 f9fa +e756 f9fb +e757 f9fc +f929 fae0 +f9dc fbe9 +fa0e fa90 +fa0f fa9b +fa10 fa9c +fa11 fab1 +fa12 fad8 +fa13 fae8 +fa14 faea +fa15 fb58 +fa16 fb5e +fa17 fb75 +fa18 fb7d +fa19 fb7e +fa1a fb80 +fa1b fb82 +fa1c fb86 +fa1d fb89 +fa1e fb92 +fa1f fb9d +fa20 fb9f +fa21 fba0 +fa22 fba9 +fa23 fbb1 +fa24 fbb3 +fa25 fbb4 +fa26 fbb7 +fa27 fbd3 +fa28 fbda +fa29 fbea +fa2a fbf6 +fa2b fbf7 +fa2c fbf9 +fa2d fc49 +ff01 8149 +ff02 fa57 +ff03 8194 +ff04 8190 +ff05 8193 +ff06 8195 +ff07 fa56 +ff08 8169 +ff09 816a +ff0a 8196 +ff0b 817b +ff0c 8143 +ff0d 817c +ff0e 8144 +ff0f 815e +ff10 824f +ff11 8250 +ff12 8251 +ff13 8252 +ff14 8253 +ff15 8254 +ff16 8255 +ff17 8256 +ff18 8257 +ff19 8258 +ff1a 8146 +ff1b 8147 +ff1c 8183 +ff1d 8181 +ff1e 8184 +ff1f 8148 +ff20 8197 +ff21 8260 +ff22 8261 +ff23 8262 +ff24 8263 +ff25 8264 +ff26 8265 +ff27 8266 +ff28 8267 +ff29 8268 +ff2a 8269 +ff2b 826a +ff2c 826b +ff2d 826c +ff2e 826d +ff2f 826e +ff30 826f +ff31 8270 +ff32 8271 +ff33 8272 +ff34 8273 +ff35 8274 +ff36 8275 +ff37 8276 +ff38 8277 +ff39 8278 +ff3a 8279 +ff3b 816d +ff3c 815f +ff3d 816e +ff3e 814f +ff3f 8151 +ff40 814d +ff41 8281 +ff42 8282 +ff43 8283 +ff44 8284 +ff45 8285 +ff46 8286 +ff47 8287 +ff48 8288 +ff49 8289 +ff4a 828a +ff4b 828b +ff4c 828c +ff4d 828d +ff4e 828e +ff4f 828f +ff50 8290 +ff51 8291 +ff52 8292 +ff53 8293 +ff54 8294 +ff55 8295 +ff56 8296 +ff57 8297 +ff58 8298 +ff59 8299 +ff5a 829a +ff5b 816f +ff5c 8162 +ff5d 8170 +ff5e 8160 +ff61 a1 +ff62 a2 +ff63 a3 +ff64 a4 +ff65 a5 +ff66 a6 +ff67 a7 +ff68 a8 +ff69 a9 +ff6a aa +ff6b ab +ff6c ac +ff6d ad +ff6e ae +ff6f af +ff70 b0 +ff71 b1 +ff72 b2 +ff73 b3 +ff74 b4 +ff75 b5 +ff76 b6 +ff77 b7 +ff78 b8 +ff79 b9 +ff7a ba +ff7b bb +ff7c bc +ff7d bd +ff7e be +ff7f bf +ff80 c0 +ff81 c1 +ff82 c2 +ff83 c3 +ff84 c4 +ff85 c5 +ff86 c6 +ff87 c7 +ff88 c8 +ff89 c9 +ff8a ca +ff8b cb +ff8c cc +ff8d cd +ff8e ce +ff8f cf +ff90 d0 +ff91 d1 +ff92 d2 +ff93 d3 +ff94 d4 +ff95 d5 +ff96 d6 +ff97 d7 +ff98 d8 +ff99 d9 +ff9a da +ff9b db +ff9c dc +ff9d dd +ff9e de +ff9f df +ffe0 8191 +ffe1 8192 +ffe2 81ca +ffe3 8150 +ffe4 fa55 +ffe5 818f diff --git a/jdk/test/java/nio/charset/spi/FooCharset.java b/jdk/test/java/nio/charset/spi/FooCharset.java new file mode 100644 index 00000000000..6206f6e7319 --- /dev/null +++ b/jdk/test/java/nio/charset/spi/FooCharset.java @@ -0,0 +1,45 @@ +/* + * Copyright 2010 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.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CharsetEncoder; + + +public class FooCharset + extends Charset +{ + + public FooCharset() { + super("FOO", + new String[] { "FOO-1", "FOO-2" }); + } + + public boolean contains(Charset cs) { + return (cs instanceof FooCharset); + } + + public CharsetDecoder newDecoder() { return null; } + public CharsetEncoder newEncoder() { return null; } + +} diff --git a/jdk/test/java/nio/charset/spi/FooProvider.java b/jdk/test/java/nio/charset/spi/FooProvider.java new file mode 100644 index 00000000000..e40f30b237e --- /dev/null +++ b/jdk/test/java/nio/charset/spi/FooProvider.java @@ -0,0 +1,45 @@ +/* + * Copyright 2010 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.util.*; +import java.nio.charset.*; +import java.nio.charset.spi.*; + + +public class FooProvider + extends CharsetProvider +{ + + public FooProvider() {} + + public Iterator charsets() { + return Collections.singleton(new FooCharset()).iterator(); + } + + public Charset charsetForName(String charsetName) { + if (charsetName.equalsIgnoreCase("FOO")) + return new FooCharset(); + return null; + } + +} diff --git a/jdk/test/java/nio/charset/spi/Test.java b/jdk/test/java/nio/charset/spi/Test.java new file mode 100644 index 00000000000..d3a4ed21bbd --- /dev/null +++ b/jdk/test/java/nio/charset/spi/Test.java @@ -0,0 +1,92 @@ +/* + * Copyright 2010 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.io.*; +import java.nio.charset.*; +import java.util.*; + + +public class Test { + + private static PrintStream out = System.err; + private static final SortedMap available = Charset.availableCharsets(); + + private static void fail(String csn, String msg) { + throw new RuntimeException(csn + ": " + msg); + } + + private static void testPositive(String csn) { + if (!Charset.isSupported(csn)) + fail(csn, "Not supported"); + + Charset cs = Charset.forName(csn); + out.println(csn + " --> " + cs.getClass().getName()); + out.println(" " + cs.name() + " " + cs.aliases()); + + if (!available.containsKey(cs.name())) + fail(csn, "Not in available charsets: " + available.keySet()); + if (!((Charset)available.get(cs.name())).equals(cs)) + fail(csn, "Available charset != looked-up charset"); + + if (csn.equalsIgnoreCase("FOO")) { + if (!(cs instanceof FooCharset)) + fail(csn, "instanceof failed"); + } + } + + private static void testNegative(String csn) { + if (Charset.isSupported(csn)) + fail(csn, "Supported"); + if (available.containsKey(csn)) + fail(csn, "Available"); + try { + Charset.forName(csn); + } catch (UnsupportedCharsetException x) { + out.println(csn + " not supported, as expected"); + return; + } + fail(csn, "Lookup succeeded"); + } + + public static void main(String [] args) { + + out.println("Default: " + + new InputStreamReader(System.in).getEncoding()); + + out.print("Available:"); + for (Iterator i = available.keySet().iterator(); i.hasNext();) + out.print(" " + (String)i.next()); + out.println(); + + for (int i = 0; i < args.length; i++) { + String a = args[i]; + boolean not = a.startsWith("!"); + String csn = (not ? a.substring(1) : a); + if (not) + testNegative(csn); + else + testPositive(csn); + } + } + +} diff --git a/jdk/test/java/nio/charset/spi/basic.sh b/jdk/test/java/nio/charset/spi/basic.sh new file mode 100644 index 00000000000..972ed02fee8 --- /dev/null +++ b/jdk/test/java/nio/charset/spi/basic.sh @@ -0,0 +1,127 @@ +#!/bin/sh + +# +# Copyright 2010 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 4429040 4591027 4814743 +# @summary Unit test for charset providers +# +# @build Test FooCharset FooProvider +# @run shell basic.sh +# @run shell basic.sh ja_JP.eucJP +# @run shell basic.sh tr_TR +# + +# Command-line usage: sh basic.sh /path/to/build [locale] + +if [ -z "$TESTJAVA" ]; then + if [ $# -lt 1 ]; then exit 1; fi + TESTJAVA=$1; shift + TESTSRC=`pwd` + TESTCLASSES=`pwd` +fi + +JAVA=$TESTJAVA/bin/java +JAR=$TESTJAVA/bin/jar + +JARD=`pwd`/x.jar +EXTD=`pwd`/x.ext +TESTD=`pwd`/x.test + +CSS='US-ASCII 8859_1 iso-ir-6 UTF-16 windows-1252 !BAR cp1252' + + +if [ \! -d $EXTD ]; then + # Initialize + echo Initializing... + rm -rf $JARD $EXTD $TESTD + mkdir -p $JARD/META-INF/services x.ext + echo FooProvider \ + >$JARD/META-INF/services/java.nio.charset.spi.CharsetProvider + cp $TESTCLASSES/FooProvider.class $TESTCLASSES/FooCharset.class $JARD + mkdir $TESTD + cp $TESTCLASSES/Test.class $TESTD + (cd $JARD; $JAR -cf $EXTD/test.jar *) +fi + +if [ $# -gt 0 ]; then + # Use locale specified on command line, if it's supported + L="$1" + shift + s=`uname -s` + if [ $s != Linux -a $s != SunOS ]; then + echo "$L: Locales not supported on this system, skipping..." + exit 0 + fi + if [ "x`locale -a | grep $L`" != "x$L" ]; then + echo "$L: Locale not supported, skipping..." + exit 0 + fi + LC_ALL=$L; export LC_ALL +fi + +TMP=${TMP:-$TEMP}; TMP=${TMP:-/tmp} +cd $TMP + +case `uname` in + SunOS | Linux ) CPS=':' ;; + Windows* ) CPS=';' ;; + *) echo "Unknown platform: `uname`"; exit 1 ;; +esac + +failures=0 +for where in ext app; do + for security in none minimal-policy cp-policy; do + echo ''; + echo "LC_ALL=$LC_ALL where=$where security=$security" + av='' + if [ $where = ext ]; then + av="$av -cp $TESTD -Djava.ext.dirs=$EXTD"; + else + av="$av -cp $TESTD$CPS$EXTD/test.jar"; + fi + case $security in + none) css="$CSS FOO";; + # Minimal policy in this case is more or less carbon copy of jre default + # security policy and doesn't give explicit runtime permission + # for user provided runtime loadable charsets + minimal-policy) css="$CSS !FOO"; + av="$av -Djava.security.manager -Djava.security.policy==$TESTSRC/default-pol";; + cp-policy) css="$CSS FOO"; + av="$av -Djava.security.manager + -Djava.security.policy==$TESTSRC/charsetProvider.sp";; + esac + if (set -x; $JAVA $av Test $css) 2>&1; then + continue; + else + failures=`expr $failures + 1` + fi + done +done + +echo '' +if [ $failures -gt 0 ]; + then echo "$failures cases failed"; + else echo "All cases passed"; fi +exit $failures diff --git a/jdk/test/java/nio/charset/spi/charsetProvider.sp b/jdk/test/java/nio/charset/spi/charsetProvider.sp new file mode 100644 index 00000000000..a50c8a463a3 --- /dev/null +++ b/jdk/test/java/nio/charset/spi/charsetProvider.sp @@ -0,0 +1,5 @@ +// + +grant { + permission java.lang.RuntimePermission "charsetProvider"; +}; diff --git a/jdk/test/java/nio/charset/spi/default-pol b/jdk/test/java/nio/charset/spi/default-pol new file mode 100644 index 00000000000..557979ef936 --- /dev/null +++ b/jdk/test/java/nio/charset/spi/default-pol @@ -0,0 +1,48 @@ + +// Standard extensions get all permissions by default + +grant codeBase "file:${java.home}/lib/ext/*" { + permission java.security.AllPermission; +}; + +// default permissions granted to all domains + +grant { + // Allows any thread to stop itself using the java.lang.Thread.stop() + // method that takes no argument. + // Note that this permission is granted by default only to remain + // backwards compatible. + // It is strongly recommended that you either remove this permission + // from this policy file or further restrict it to code sources + // that you specify, because Thread.stop() is potentially unsafe. + // See "http://java.sun.com/notes" for more information. + permission java.lang.RuntimePermission "stopThread"; + + // allows anyone to listen on un-privileged ports + permission java.net.SocketPermission "localhost:1024-", "listen"; + + // "standard" properies that can be read by anyone + + permission java.util.PropertyPermission "java.version", "read"; + permission java.util.PropertyPermission "java.vendor", "read"; + permission java.util.PropertyPermission "java.vendor.url", "read"; + permission java.util.PropertyPermission "java.class.version", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.version", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "file.separator", "read"; + permission java.util.PropertyPermission "path.separator", "read"; + permission java.util.PropertyPermission "line.separator", "read"; + + permission java.util.PropertyPermission "java.specification.version", "read"; + permission java.util.PropertyPermission "java.specification.vendor", "read"; + permission java.util.PropertyPermission "java.specification.name", "read"; + + permission java.util.PropertyPermission "java.vm.specification.version", "read"; + permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; + permission java.util.PropertyPermission "java.vm.specification.name", "read"; + permission java.util.PropertyPermission "java.vm.version", "read"; + permission java.util.PropertyPermission "java.vm.vendor", "read"; + permission java.util.PropertyPermission "java.vm.name", "read"; +}; + From 3b48821acea19bece3ad134d9a10aed4978e7b8a Mon Sep 17 00:00:00 2001 From: Peter Zhelezniakov Date: Thu, 28 Jan 2010 17:06:54 +0300 Subject: [PATCH 032/109] 6912118: Incosistency in several SynthUI classes between inherited specs ofupdate() and paint() methods Reviewed-by: rupashka --- .../javax/swing/plaf/synth/SynthButtonUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthColorChooserUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthComboBoxUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthDesktopIconUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthDesktopPaneUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthEditorPaneUI.java | 14 +++++++-- .../plaf/synth/SynthInternalFrameUI.java | 22 +++++++++++-- .../javax/swing/plaf/synth/SynthLabelUI.java | 27 +++++++++++----- .../javax/swing/plaf/synth/SynthListUI.java | 11 ++++++- .../swing/plaf/synth/SynthMenuBarUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthMenuItemUI.java | 22 +++++++++++-- .../javax/swing/plaf/synth/SynthMenuUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthOptionPaneUI.java | 22 +++++++++++-- .../javax/swing/plaf/synth/SynthPanelUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthPopupMenuUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthProgressBarUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthRootPaneUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthScrollBarUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthScrollPaneUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthSeparatorUI.java | 22 +++++++++++-- .../javax/swing/plaf/synth/SynthSliderUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthSpinnerUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthSplitPaneUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthTabbedPaneUI.java | 31 +++++++++++++------ .../swing/plaf/synth/SynthTableHeaderUI.java | 22 +++++++++++-- .../javax/swing/plaf/synth/SynthTableUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthTextAreaUI.java | 14 +++++++-- .../swing/plaf/synth/SynthTextFieldUI.java | 14 +++++++-- .../swing/plaf/synth/SynthToolBarUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthToolTipUI.java | 22 +++++++++++-- .../javax/swing/plaf/synth/SynthTreeUI.java | 22 +++++++++++-- .../swing/plaf/synth/SynthViewportUI.java | 22 +++++++++++-- 32 files changed, 580 insertions(+), 103 deletions(-) diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java index 99372a9e28d..dfa358475cb 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java @@ -237,7 +237,16 @@ public class SynthButtonUI extends BasicButtonUI implements // ******************************** /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -250,7 +259,13 @@ public class SynthButtonUI extends BasicButtonUI implements } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -264,7 +279,8 @@ public class SynthButtonUI extends BasicButtonUI implements * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { AbstractButton b = (AbstractButton)context.getComponent(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java index 0b240d1ff0c..e430ce6345e 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java @@ -137,7 +137,16 @@ public class SynthColorChooserUI extends BasicColorChooserUI implements } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -151,7 +160,13 @@ public class SynthColorChooserUI extends BasicColorChooserUI implements } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -166,7 +181,8 @@ public class SynthColorChooserUI extends BasicColorChooserUI implements * This implementation does not perform any actions. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java index 0acd15594e9..038c5ad644e 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java @@ -305,7 +305,16 @@ public class SynthComboBoxUI extends BasicComboBoxUI implements // begin ComponentUI Implementation /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -319,7 +328,13 @@ public class SynthComboBoxUI extends BasicComboBoxUI implements } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -333,7 +348,8 @@ public class SynthComboBoxUI extends BasicComboBoxUI implements * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { hasFocus = comboBox.hasFocus(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java index 09c2bb52bcc..91bd34c7f69 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java @@ -152,7 +152,16 @@ public class SynthDesktopIconUI extends BasicDesktopIconUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -166,7 +175,13 @@ public class SynthDesktopIconUI extends BasicDesktopIconUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -180,7 +195,8 @@ public class SynthDesktopIconUI extends BasicDesktopIconUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java index 0f90f57854f..fce28bc8dfc 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java @@ -439,7 +439,16 @@ public class SynthDesktopPaneUI extends BasicDesktopPaneUI implements } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -453,7 +462,13 @@ public class SynthDesktopPaneUI extends BasicDesktopPaneUI implements } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -467,7 +482,8 @@ public class SynthDesktopPaneUI extends BasicDesktopPaneUI implements * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java index 9fdf1c6b265..68c3b40970f 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java @@ -148,7 +148,16 @@ public class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI { } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -164,7 +173,8 @@ public class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI { * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { super.paint(g, getComponent()); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java index 9ffc3ca36be..28625a666cc 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java @@ -194,7 +194,16 @@ public class SynthInternalFrameUI extends BasicInternalFrameUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -208,7 +217,13 @@ public class SynthInternalFrameUI extends BasicInternalFrameUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -222,7 +237,8 @@ public class SynthInternalFrameUI extends BasicInternalFrameUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java index 456d5bf218b..e39bf41c1bc 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java @@ -156,12 +156,16 @@ public class SynthLabelUI extends BasicLabelUI implements SynthUI { } /** - * Notifies this UI delegate that it's time to paint the specified - * component. This method is invoked by JComponent - * when the specified component is being painted. - */ - /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -175,7 +179,13 @@ public class SynthLabelUI extends BasicLabelUI implements SynthUI { } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -189,7 +199,8 @@ public class SynthLabelUI extends BasicLabelUI implements SynthUI { * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { JLabel label = (JLabel)context.getComponent(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthListUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthListUI.java index 909ab69b1d9..dbfdbdad54a 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthListUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthListUI.java @@ -57,7 +57,16 @@ public class SynthListUI extends BasicListUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint */ @Override public void update(Graphics g, JComponent c) { diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java index 613d3723181..5ebc827a16c 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java @@ -125,7 +125,16 @@ public class SynthMenuBarUI extends BasicMenuBarUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -139,7 +148,13 @@ public class SynthMenuBarUI extends BasicMenuBarUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -153,7 +168,8 @@ public class SynthMenuBarUI extends BasicMenuBarUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java index 668e4878a7e..51b68ff92b4 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java @@ -227,7 +227,16 @@ public class SynthMenuItemUI extends BasicMenuItemUI implements /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -240,7 +249,13 @@ public class SynthMenuItemUI extends BasicMenuItemUI implements } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -254,7 +269,8 @@ public class SynthMenuItemUI extends BasicMenuItemUI implements * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { SynthContext accContext = getContext(menuItem, diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java index ccee8b42c1f..2f3c2d44704 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java @@ -227,7 +227,16 @@ public class SynthMenuUI extends BasicMenuUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -241,7 +250,13 @@ public class SynthMenuUI extends BasicMenuUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -255,7 +270,8 @@ public class SynthMenuUI extends BasicMenuUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { SynthContext accContext = getContext(menuItem, diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java index 4a7e97b83a9..abef2bb2239 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java @@ -149,7 +149,16 @@ public class SynthOptionPaneUI extends BasicOptionPaneUI implements } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -163,7 +172,13 @@ public class SynthOptionPaneUI extends BasicOptionPaneUI implements } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -177,7 +192,8 @@ public class SynthOptionPaneUI extends BasicOptionPaneUI implements * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java index c1e30e2a376..8ec19849790 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java @@ -136,7 +136,16 @@ public class SynthPanelUI extends BasicPanelUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -150,7 +159,13 @@ public class SynthPanelUI extends BasicPanelUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -164,7 +179,8 @@ public class SynthPanelUI extends BasicPanelUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { // do actual painting diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java index e09150b4288..4abaa215a93 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java @@ -132,7 +132,16 @@ public class SynthPopupMenuUI extends BasicPopupMenuUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -146,7 +155,13 @@ public class SynthPopupMenuUI extends BasicPopupMenuUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -160,7 +175,8 @@ public class SynthPopupMenuUI extends BasicPopupMenuUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java index 87cbb4606ad..1211cfb6487 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java @@ -193,7 +193,16 @@ public class SynthProgressBarUI extends BasicProgressBarUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -208,7 +217,13 @@ public class SynthProgressBarUI extends BasicProgressBarUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -222,7 +237,8 @@ public class SynthProgressBarUI extends BasicProgressBarUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { JProgressBar pBar = (JProgressBar)context.getComponent(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java index 6760cc13224..13eb61d0d62 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java @@ -102,7 +102,16 @@ public class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI { } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -116,7 +125,13 @@ public class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI { } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -130,7 +145,8 @@ public class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI { * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java index 63e423e8dd4..2e967b73019 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java @@ -222,7 +222,16 @@ public class SynthScrollBarUI extends BasicScrollBarUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -237,7 +246,13 @@ public class SynthScrollBarUI extends BasicScrollBarUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -251,7 +266,8 @@ public class SynthScrollBarUI extends BasicScrollBarUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { SynthContext subcontext = getContext(scrollbar, diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java index 16f0054b70b..fbc6cbae099 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java @@ -64,7 +64,16 @@ public class SynthScrollPaneUI extends BasicScrollPaneUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -78,7 +87,13 @@ public class SynthScrollPaneUI extends BasicScrollPaneUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -92,7 +107,8 @@ public class SynthScrollPaneUI extends BasicScrollPaneUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { Border vpBorder = scrollpane.getViewportBorder(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java index 391a63658f0..ed21bbb93e1 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java @@ -135,7 +135,16 @@ public class SynthSeparatorUI extends SeparatorUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -151,7 +160,13 @@ public class SynthSeparatorUI extends SeparatorUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -165,7 +180,8 @@ public class SynthSeparatorUI extends SeparatorUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { JSeparator separator = (JSeparator)context.getComponent(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java index 5a07443f2ff..c5ecfcca9ea 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java @@ -788,7 +788,16 @@ public class SynthSliderUI extends BasicSliderUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -802,7 +811,13 @@ public class SynthSliderUI extends BasicSliderUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -815,7 +830,8 @@ public class SynthSliderUI extends BasicSliderUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { recalculateIfInsetsChanged(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java index f85589fb056..109b62d2a5f 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java @@ -283,7 +283,16 @@ public class SynthSpinnerUI extends BasicSpinnerUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -298,7 +307,13 @@ public class SynthSpinnerUI extends BasicSpinnerUI /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -312,7 +327,8 @@ public class SynthSpinnerUI extends BasicSpinnerUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java index 930e756f3b0..68217774e51 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java @@ -269,7 +269,16 @@ public class SynthSplitPaneUI extends BasicSplitPaneUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -283,7 +292,13 @@ public class SynthSplitPaneUI extends BasicSplitPaneUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -297,7 +312,8 @@ public class SynthSplitPaneUI extends BasicSplitPaneUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { // This is done to update package private variables in diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java index 3b026d1fc4c..387f1ddce53 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java @@ -92,8 +92,8 @@ public class SynthTabbedPaneUI extends BasicTabbedPaneUI private SynthStyle tabAreaStyle; private SynthStyle tabContentStyle; - private Rectangle textRect; - private Rectangle iconRect; + private Rectangle textRect = new Rectangle(); + private Rectangle iconRect = new Rectangle(); private Rectangle tabAreaBounds = new Rectangle(); @@ -115,11 +115,6 @@ public class SynthTabbedPaneUI extends BasicTabbedPaneUI return new SynthTabbedPaneUI(); } - private SynthTabbedPaneUI() { - textRect = new Rectangle(); - iconRect = new Rectangle(); - } - private boolean scrollableTabLayoutEnabled() { return (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT); } @@ -362,7 +357,16 @@ public class SynthTabbedPaneUI extends BasicTabbedPaneUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -409,7 +413,13 @@ public class SynthTabbedPaneUI extends BasicTabbedPaneUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -423,7 +433,8 @@ public class SynthTabbedPaneUI extends BasicTabbedPaneUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { int selectedIndex = tabPane.getSelectedIndex(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java index 86b50eb935b..f0104b42af1 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java @@ -123,7 +123,16 @@ public class SynthTableHeaderUI extends BasicTableHeaderUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -137,7 +146,13 @@ public class SynthTableHeaderUI extends BasicTableHeaderUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -151,7 +166,8 @@ public class SynthTableHeaderUI extends BasicTableHeaderUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { super.paint(g, context.getComponent()); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java index 43e8150dd22..a2e30e59332 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java @@ -256,7 +256,16 @@ public class SynthTableUI extends BasicTableUI // /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -279,7 +288,13 @@ public class SynthTableUI extends BasicTableUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -293,7 +308,8 @@ public class SynthTableUI extends BasicTableUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { Rectangle clip = g.getClipBounds(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java index 90c9a7e0553..3c1e2cfec26 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java @@ -123,7 +123,16 @@ public class SynthTextAreaUI extends BasicTextAreaUI implements SynthUI { } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -140,7 +149,8 @@ public class SynthTextAreaUI extends BasicTextAreaUI implements SynthUI { * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { super.paint(g, getComponent()); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java index c86b4a9dcca..68d85013173 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java @@ -161,7 +161,16 @@ public class SynthTextFieldUI extends BasicTextFieldUI implements SynthUI { } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -182,7 +191,8 @@ public class SynthTextFieldUI extends BasicTextFieldUI implements SynthUI { * model to potentially be updated asynchronously. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { super.paint(g, getComponent()); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java index 66a72b1ee70..fae89a198c7 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java @@ -198,7 +198,16 @@ public class SynthToolBarUI extends BasicToolBarUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -213,7 +222,13 @@ public class SynthToolBarUI extends BasicToolBarUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -258,7 +273,8 @@ public class SynthToolBarUI extends BasicToolBarUI * Paints the toolbar. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { if (handleIcon != null && toolBar.isFloatable()) { diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java index df23bac7579..141c54e45da 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java @@ -121,7 +121,16 @@ public class SynthToolTipUI extends BasicToolTipUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -144,7 +153,13 @@ public class SynthToolTipUI extends BasicToolTipUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -158,7 +173,8 @@ public class SynthToolTipUI extends BasicToolTipUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { JToolTip tip = (JToolTip)context.getComponent(); diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java index e81064408b8..541ab659ce9 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java @@ -250,7 +250,16 @@ public class SynthTreeUI extends BasicTreeUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -273,7 +282,13 @@ public class SynthTreeUI extends BasicTreeUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -287,7 +302,8 @@ public class SynthTreeUI extends BasicTreeUI * Paints the specified component. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { paintContext = context; diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java index 1e71e227d9a..24acbe1da4d 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java @@ -150,7 +150,16 @@ public class SynthViewportUI extends ViewportUI } /** - * @inheritDoc + * Notifies this UI delegate to repaint the specified component. + * This method paints the component background, then calls + * the {@link #paint(SynthContext,Graphics)} method. + * + *

    In general, this method does not need to be overridden by subclasses. + * All Look and Feel rendering code should reside in the {@code paint} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void update(Graphics g, JComponent c) { @@ -174,7 +183,13 @@ public class SynthViewportUI extends ViewportUI } /** - * @inheritDoc + * Paints the specified component according to the Look and Feel. + *

    This method is not used by Synth Look and Feel. + * Painting is handled by the {@link #paint(SynthContext,Graphics)} method. + * + * @param g the {@code Graphics} object used for painting + * @param c the component being painted + * @see #paint(SynthContext,Graphics) */ @Override public void paint(Graphics g, JComponent c) { @@ -188,7 +203,8 @@ public class SynthViewportUI extends ViewportUI * Paints the specified component. This implementation does nothing. * * @param context context for the component being painted - * @param g {@code Graphics} object used for painting + * @param g the {@code Graphics} object used for painting + * @see #update(Graphics,JComponent) */ protected void paint(SynthContext context, Graphics g) { } From 6e4af7581c84f32f8a692e0e1718a8d8e078119a Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Thu, 28 Jan 2010 08:36:34 -0800 Subject: [PATCH 033/109] 6920970: Zero build fixes after 6849984 and 6911204 Two recent commits broke the build on Zero. Reviewed-by: twisti --- hotspot/src/cpu/zero/vm/interpreter_zero.cpp | 6 +++++- hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp index 1ece7bbdffe..903d8060183 100644 --- a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,6 +47,10 @@ address InterpreterGenerator::generate_method_handle_entry() { return ShouldNotCallThisEntry(); } +bool AbstractInterpreter::can_be_compiled(methodHandle m) { + return true; +} + int AbstractInterpreter::size_activation(methodOop method, int tempcount, int popframe_extra_args, diff --git a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp index 5adb87aef70..57515a76587 100644 --- a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp +++ b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,8 +47,10 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters( int total_args_passed, int comp_args_on_stack, const BasicType *sig_bt, - const VMRegPair *regs) { - return new AdapterHandlerEntry( + const VMRegPair *regs, + AdapterFingerPrint *fingerprint) { + return AdapterHandlerLibrary::new_entry( + fingerprint, ShouldNotCallThisStub(), ShouldNotCallThisStub(), ShouldNotCallThisStub()); From 46cb7c49ab125f0bfffadce0e0a80da4889dae07 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Thu, 28 Jan 2010 20:49:00 +0300 Subject: [PATCH 034/109] 6412286: DOC: LTP: Unspecified NPE in java.beans.DefaultPersistenceDelegate.instantiate method Reviewed-by: peterz --- .../classes/java/beans/DefaultPersistenceDelegate.java | 6 +++++- jdk/src/share/classes/java/beans/PersistenceDelegate.java | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java b/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java index 5339aba83e4..9152909816e 100644 --- a/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java +++ b/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -146,6 +146,8 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate { * @param out The code output stream. * @return An expression whose value is oldInstance. * + * @throws NullPointerException if {@code out} is {@code null} + * * @see #DefaultPersistenceDelegate(String[]) */ protected Expression instantiate(Object oldInstance, Encoder out) { @@ -367,6 +369,8 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate { * @param newInstance The instance that is to be modified. * @param out The stream to which any initialization statements should be written. * + * @throws NullPointerException if {@code out} is {@code null} + * * @see java.beans.Introspector#getBeanInfo * @see java.beans.PropertyDescriptor */ diff --git a/jdk/src/share/classes/java/beans/PersistenceDelegate.java b/jdk/src/share/classes/java/beans/PersistenceDelegate.java index ca837941039..fd9b31a490f 100644 --- a/jdk/src/share/classes/java/beans/PersistenceDelegate.java +++ b/jdk/src/share/classes/java/beans/PersistenceDelegate.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -105,6 +105,8 @@ public abstract class PersistenceDelegate { * * @param oldInstance The instance that will be created by this expression. * @param out The stream to which this expression will be written. + * + * @throws NullPointerException if {@code out} is {@code null} */ public void writeObject(Object oldInstance, Encoder out) { Object newInstance = out.get(oldInstance); @@ -158,6 +160,8 @@ public abstract class PersistenceDelegate { * @param oldInstance The instance that will be created by this expression. * @param out The stream to which this expression will be written. * @return An expression whose value is oldInstance. + * + * @throws NullPointerException if {@code out} is {@code null} */ protected abstract Expression instantiate(Object oldInstance, Encoder out); @@ -196,6 +200,8 @@ public abstract class PersistenceDelegate { * @param oldInstance The instance to be copied. * @param newInstance The instance that is to be modified. * @param out The stream to which any initialization statements should be written. + * + * @throws NullPointerException if {@code out} is {@code null} */ protected void initialize(Class type, Object oldInstance, Object newInstance, From 9b387b7ab7e41612b8fb30c8df914ddd3978fdab Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 28 Jan 2010 11:26:38 -0800 Subject: [PATCH 035/109] Added tag jdk7-b81 for changeset f2507e238f8a --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 7f37898d353..e89dd0a443a 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -55,3 +55,4 @@ c8b63075403d53a208104a8a6ea5072c1cb66aab jdk7-b76 ab4ae8f4514693a9fe17ca2fec0239d8f8450d2c jdk7-b78 20aeeb51713990dbea6929a2e100a8bbf5df70d4 jdk7-b79 a3242906c7747b5d9bcc3d118c7c3c69aa40f4b7 jdk7-b80 +8403096d1fe7ff5318df9708cfec84a3fd3e1cf9 jdk7-b81 From 03ff9b9965e4639629b2d71a0173eb3c6c9c8170 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 28 Jan 2010 11:26:39 -0800 Subject: [PATCH 036/109] Added tag jdk7-b81 for changeset 9900f2781664 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 2472579cb11..3d89f1fffed 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -55,3 +55,4 @@ b751c528c55560cf2adeaeef24b39ca1f4d1cbf7 jdk7-b73 a7f7276b48cd74d8eb1baa83fbf3d1ef4a2603c8 jdk7-b78 ec0421b5703b677e2226cf4bf7ae4eaafd8061c5 jdk7-b79 0336e70ca0aeabc783cc01658f36cb6e27ea7934 jdk7-b80 +e08a42a2a94d97ea8eedb187a94dbff822c8fbba jdk7-b81 From 2fb0850cfdf519d2de8b023550c16062de32766b Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 28 Jan 2010 11:26:42 -0800 Subject: [PATCH 037/109] Added tag jdk7-b81 for changeset 4197a09e1259 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 84c4c8bc4c3..687370f73b9 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -55,3 +55,4 @@ d8dd291a362acb656026a9c0a9da48501505a1e7 jdk7-b75 e703499b4b51e3af756ae77c3d5e8b3058a14e4e jdk7-b78 a5a6adfca6ecefb5894a848debabfe442ff50e25 jdk7-b79 3003ddd1d4330b06cb4691ae74d600d3685899eb jdk7-b80 +1f9b07674480c224828852ffe137beea36b3cab5 jdk7-b81 From acd68fe1dac3767512f91d8c8c885806b14a83cd Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 28 Jan 2010 11:26:48 -0800 Subject: [PATCH 038/109] Added tag jdk7-b81 for changeset 0c8ad4a8e25b --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 88a3c46d299..2dbd5bd8e68 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -55,3 +55,4 @@ bfadab8c7b1bf806a49d3e1bc19ec919717f057a jdk7-b77 7a12d3789e1b07a560fc79568b991818d617ede2 jdk7-b78 b1005c504358c18694c84e95fec16b28cdce7ae1 jdk7-b79 9219574db5936367114b0f31469837f27d5a375a jdk7-b80 +204e59d488cdaa9eafa8cb7164ea955b5a9d4a51 jdk7-b81 From 04d4c26c540f7ebe2b14f026f105064de55e3953 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 28 Jan 2010 11:26:49 -0800 Subject: [PATCH 039/109] Added tag jdk7-b81 for changeset 4ef036bb3679 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 02f7c58c83e..397b72859f7 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -55,3 +55,4 @@ fcf2b8b5d606641659419f247fcee4b284c45e6e jdk7-b75 fc1c72d1dfbb17db7d46bba8db9afc39cbbb9299 jdk7-b78 c08894f5b6e594b9b12993e256b96c1b38099632 jdk7-b79 447767dee56a0f8cb89acc8bf7be5f9be7d84e8b jdk7-b80 +f051045fe94a48fae1097f90cbd9227e6aae6b7e jdk7-b81 From d202ec0bed0ddf764a0e4f7950c87fb5d5531735 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 28 Jan 2010 11:26:54 -0800 Subject: [PATCH 040/109] Added tag jdk7-b81 for changeset a280fa50978f --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index e6ad3c85d52..388b247aace 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -55,3 +55,4 @@ e6a5d095c356a547cf5b3c8885885aca5e91e09b jdk7-b77 1143e498f813b8223b5e3a696d79da7ff7c25354 jdk7-b78 918920710d65432a2d54fdf407c1524a5571c4ad jdk7-b79 049cfaaa9a7374e3768a79969a799e8b59ad52fa jdk7-b80 +10b993d417fcdb40480dad7032ac241f4b87f1af jdk7-b81 From 3ef138021970744a1f0a222f9eb3fdc6097bf3da Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 28 Jan 2010 11:27:04 -0800 Subject: [PATCH 041/109] Added tag jdk7-b81 for changeset 43ee00bea176 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 662a0caab64..00e80a25c55 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -55,3 +55,4 @@ ce9bcdcb7859bb7ef10afd078ad59ba7847f208d jdk7-b69 acc1e40a5874ebf32bebcb6ada565b3b40b7461c jdk7-b78 ac5b4c5644ce54585e5287563dde2b006fa664f4 jdk7-b79 f0074aa48d4e2a4c03c92b9c4f880679fea0306c jdk7-b80 +cfabfcf9f110ef896cbdd382903d20eefbceefe0 jdk7-b81 From 6e0e99e0cd5bdf6e621adba2427adbad4bd52be1 Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Thu, 28 Jan 2010 21:01:13 +0000 Subject: [PATCH 042/109] 6921068: Remove javadoc builds warnings from specdefault tag Ignore specdefault tag to avoid javadoc warnings Reviewed-by: darcy, ohair --- jdk/make/docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/make/docs/Makefile b/jdk/make/docs/Makefile index 5d287c37272..e0ae9b5a400 100644 --- a/jdk/make/docs/Makefile +++ b/jdk/make/docs/Makefile @@ -69,7 +69,7 @@ DRAFT = '
    DRAFT '$(MILESTONE)-$(BUILD_NUMBER)'' THIS_YEAR := $(shell $(DATE) | $(SED) -e 's/ / /g' | $(CUT) -d' ' -f6) TRADEMARK = &\#x2122; -IGNORED_TAGS = beaninfo revised since.unbundled spec Note ToDo +IGNORED_TAGS = beaninfo revised since.unbundled spec specdefault Note ToDo JLS3_URL = http://java.sun.com/docs/books/jls/ JLS3_CITE = \ From 0b2600abcd10d06f0cdf8048a1dd0cc74101d6c5 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Thu, 28 Jan 2010 16:28:28 -0800 Subject: [PATCH 043/109] 6920346: G1: "must avoid base_memory and AliasIdxTop" Reviewed-by: kvn --- hotspot/src/share/vm/opto/memnode.hpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/opto/memnode.hpp b/hotspot/src/share/vm/opto/memnode.hpp index cd0e60d971e..918a8353310 100644 --- a/hotspot/src/share/vm/opto/memnode.hpp +++ b/hotspot/src/share/vm/opto/memnode.hpp @@ -583,9 +583,22 @@ public: // Preceeding equivalent StoreCMs may be eliminated. class StoreCMNode : public StoreNode { private: + virtual uint hash() const { return StoreNode::hash() + _oop_alias_idx; } + virtual uint cmp( const Node &n ) const { + return _oop_alias_idx == ((StoreCMNode&)n)._oop_alias_idx + && StoreNode::cmp(n); + } + virtual uint size_of() const { return sizeof(*this); } int _oop_alias_idx; // The alias_idx of OopStore + public: - StoreCMNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val, Node *oop_store, int oop_alias_idx ) : StoreNode(c,mem,adr,at,val,oop_store), _oop_alias_idx(oop_alias_idx) {} + StoreCMNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val, Node *oop_store, int oop_alias_idx ) : + StoreNode(c,mem,adr,at,val,oop_store), + _oop_alias_idx(oop_alias_idx) { + assert(_oop_alias_idx >= Compile::AliasIdxRaw || + _oop_alias_idx == Compile::AliasIdxBot && Compile::current()->AliasLevel() == 0, + "bad oop alias idx"); + } virtual int Opcode() const; virtual Node *Identity( PhaseTransform *phase ); virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); From 2d314b47cd3710fb9e7590507373b8c904ef2fd8 Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 29 Jan 2010 02:38:22 +0000 Subject: [PATCH 044/109] 6917466: Should set bootclasspath for javadoc in jdk build Javadoc needs to reference the newly built classes so as not to hit APIs which differ between the boot JDK and the source files of the JDK being built. Reviewed-by: ohair --- jdk/make/common/shared/Defs-java.gmk | 9 +++++++-- jdk/make/javax/swing/beaninfo/SwingBeans.gmk | 9 ++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/jdk/make/common/shared/Defs-java.gmk b/jdk/make/common/shared/Defs-java.gmk index f9ed6353131..1d13c216940 100644 --- a/jdk/make/common/shared/Defs-java.gmk +++ b/jdk/make/common/shared/Defs-java.gmk @@ -138,6 +138,10 @@ JAVACFLAGS += $(OTHER_JAVACFLAGS) # Needed for javah JAVAHFLAGS += -bootclasspath $(CLASSBINDIR) +# Needed for javadoc to ensure it builds documentation +# against the newly built classes +JAVADOCFLAGS += -bootclasspath $(CLASSBINDIR) + # Needed for JAVADOC and BOOT_JAVACFLAGS NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true @@ -155,14 +159,15 @@ ifdef LANGTOOLS_DIST -jar $(JAVAH_JAR) $(JAVAHFLAGS) JAVADOC_CMD = $(BOOT_JAVA_CMD) \ "-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \ - -jar $(JAVADOC_JAR) + -jar $(JAVADOC_JAR) $(JAVADOCFLAGS) else # If no explicit tools, use boot tools (add VM flags in this case) JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \ $(JAVACFLAGS) JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \ $(JAVAHFLAGS) - JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) + JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \ + $(JAVADOCFLAGS) endif # Override of what javac to use (see deploy workspace) diff --git a/jdk/make/javax/swing/beaninfo/SwingBeans.gmk b/jdk/make/javax/swing/beaninfo/SwingBeans.gmk index 20a716e0742..61fcf0b79a9 100644 --- a/jdk/make/javax/swing/beaninfo/SwingBeans.gmk +++ b/jdk/make/javax/swing/beaninfo/SwingBeans.gmk @@ -25,7 +25,7 @@ # # Makefile to build the BeanInfo generation tool (ie, a doclet), and -# then the beaninfo itself. Swing versions prior to 1.2 is no longer +# then the beaninfo itself. Swing versions prior to 1.2 are no longer # built. # # This makefile could be a lot simpler if we made it more regular. @@ -44,13 +44,12 @@ swing-1.2-beans-debug: $(MAKE) DEBUG_FLAG=true make-swing-beans -LOCAL_JAVADOC = $(JAVADOC_CMD) $(JAVADOCFLAGS) # get the absolute path to the jar command. PREFIX = 1.2 -JAVADOCFLAGS = $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION) +JAVADOCFLAGS += $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION) SWINGPKG = javax/swing LOCAL_JAVAC_FLAGS = $(OTHER_JAVACFLAGS) -# since LOCAL_JAVADOC runs on ALT_BOOTDIR, the doclet and all its classes must be compiled to match +# since JAVADOC_CMD runs on ALT_BOOTDIR, the doclet and all its classes must be compiled to match DOCLET_JAVAC_FLAGS = -source 6 -target 6 include FILES.gmk @@ -114,7 +113,7 @@ mkbeaninfo: $(BEANSRCDIR) .delete.beanlist $(FILES_beans) .javadoc.beanlist .javadoc.beanlist: if [ -s $(TEMPDIR)/.beans.list ]; \ - then $(LOCAL_JAVADOC) $(DOCLETFLAGS) -x $(DEBUG_FLAG) -d $(BEANSRCDIR) -t $(DOCLETSRC)/SwingBeanInfo.template -docletpath $(DOCLETDST) \ + then $(JAVADOC_CMD) $(DOCLETFLAGS) -x $(DEBUG_FLAG) -d $(BEANSRCDIR) -t $(DOCLETSRC)/SwingBeanInfo.template -docletpath $(DOCLETDST) \ $(shell if [ -s $(TEMPDIR)/.beans.list ]; then $(CAT) $(TEMPDIR)/.beans.list; fi); \ fi @$(java-vm-cleanup) From 07c442542c117383a8fab1b953f4fdf9f82cfa73 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Thu, 28 Jan 2010 20:41:37 -0800 Subject: [PATCH 045/109] 6792161: assert("No dead instructions after post-alloc") Reviewed-by: kvn --- hotspot/src/share/vm/opto/ifg.cpp | 25 +++++++++- .../test/compiler/6792161/Test6792161.java | 49 +++++++++++++++++++ 2 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 hotspot/test/compiler/6792161/Test6792161.java diff --git a/hotspot/src/share/vm/opto/ifg.cpp b/hotspot/src/share/vm/opto/ifg.cpp index 9d260cbec67..bd10efdc478 100644 --- a/hotspot/src/share/vm/opto/ifg.cpp +++ b/hotspot/src/share/vm/opto/ifg.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -736,7 +736,28 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) { // the flags and assumes it's dead. This keeps the (useless) // flag-setting behavior alive while also keeping the (useful) // memory update effect. - for( uint k = ((n->Opcode() == Op_SCMemProj) ? 0:1); k < n->req(); k++ ) { + uint begin = 1; + uint end = n->req(); + if (n->Opcode() == Op_SCMemProj) { + begin = 0; + } else if (n->is_Mach()) { + switch (n->as_Mach()->ideal_Opcode()) { + case Op_MemBarAcquire: + case Op_MemBarVolatile: + if (n->len() >= MemBarNode::Precedent + 1 && + n->in(MemBarNode::Precedent) != NULL && + n->in(MemBarNode::Precedent)->outcnt() == 1) { + // This membar node is the single user of it's input + // so the input won't be considered live and this node + // would get deleted during copy elimination so force + // it to be live. + end = MemBarNode::Precedent + 1; + } + break; + } + } + + for( uint k = begin; k < end; k++ ) { Node *def = n->in(k); uint x = n2lidx(def); if( !x ) continue; diff --git a/hotspot/test/compiler/6792161/Test6792161.java b/hotspot/test/compiler/6792161/Test6792161.java new file mode 100644 index 00000000000..b6c9b579d82 --- /dev/null +++ b/hotspot/test/compiler/6792161/Test6792161.java @@ -0,0 +1,49 @@ +/* + * Copyright 2010 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 6792161 + * @summary assert("No dead instructions after post-alloc") + * + * @run main/othervm -Xcomp -XX:MaxInlineSize=120 Test6792161 + */ + +import java.lang.reflect.Constructor; +public class Test6792161 { + static Constructor test(Class cls) throws Exception { + Class[] args= { String.class }; + try { + return cls.getConstructor(args); + } catch (NoSuchMethodException e) {} + return cls.getConstructor(new Class[0]); + } + public static void main(final String[] args) throws Exception { + try { + for (int i = 0; i < 100000; i++) { + Constructor ctor = test(Class.forName("Test6792161")); + } + } catch (NoSuchMethodException e) {} + } +} From fbc43afae62d1cb2a10ef6a1c49502cdc35ac31e Mon Sep 17 00:00:00 2001 From: Christian Thalinger Date: Fri, 29 Jan 2010 12:13:05 +0100 Subject: [PATCH 046/109] 6917766: JSR 292 needs its own deopt handler We need to introduce a new MH deopt handler so we can easily determine if the deopt happened at a MH call site or not. Reviewed-by: never, jrose --- .../cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 30 +++---- hotspot/src/cpu/sparc/vm/frame_sparc.cpp | 13 +-- .../src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 32 +++---- hotspot/src/cpu/x86/vm/frame_x86.cpp | 88 +++++++++++++------ hotspot/src/cpu/x86/vm/frame_x86.inline.hpp | 27 +++--- hotspot/src/share/vm/asm/codeBuffer.hpp | 12 +-- hotspot/src/share/vm/c1/c1_Compilation.cpp | 18 +++- hotspot/src/share/vm/c1/c1_LIRAssembler.hpp | 6 +- hotspot/src/share/vm/code/nmethod.cpp | 25 +++++- hotspot/src/share/vm/code/nmethod.hpp | 57 +++++++----- hotspot/src/share/vm/opto/output.cpp | 6 +- .../src/share/vm/runtime/deoptimization.cpp | 8 +- hotspot/src/share/vm/runtime/frame.cpp | 39 +++++++- hotspot/src/share/vm/runtime/frame.hpp | 10 ++- .../src/share/vm/runtime/sharedRuntime.cpp | 18 +++- 15 files changed, 255 insertions(+), 134 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index 2b054b43e65..a4c9ce59d39 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -357,7 +357,7 @@ void LIR_Assembler::monitorexit(LIR_Opr obj_opr, LIR_Opr lock_opr, Register hdr, } -void LIR_Assembler::emit_exception_handler() { +int LIR_Assembler::emit_exception_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion @@ -373,13 +373,10 @@ void LIR_Assembler::emit_exception_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("exception handler overflow"); - return; + return -1; } -#ifdef ASSERT - int offset = code_offset(); -#endif // ASSERT - compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); + int offset = code_offset(); if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_exceptions()) { __ call(Runtime1::entry_for(Runtime1::handle_exception_id), relocInfo::runtime_call_type); @@ -390,11 +387,13 @@ void LIR_Assembler::emit_exception_handler() { __ delayed()->nop(); debug_only(__ stop("should have gone to the caller");) assert(code_offset() - offset <= exception_handler_size, "overflow"); - __ end_a_stub(); + + return offset; } -void LIR_Assembler::emit_deopt_handler() { + +int LIR_Assembler::emit_deopt_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion @@ -408,23 +407,18 @@ void LIR_Assembler::emit_deopt_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("deopt handler overflow"); - return; + return -1; } -#ifdef ASSERT + int offset = code_offset(); -#endif // ASSERT - compilation()->offsets()->set_value(CodeOffsets::Deopt, code_offset()); - AddressLiteral deopt_blob(SharedRuntime::deopt_blob()->unpack()); - __ JUMP(deopt_blob, G3_scratch, 0); // sethi;jmp __ delayed()->nop(); - assert(code_offset() - offset <= deopt_handler_size, "overflow"); - debug_only(__ stop("should have gone to the caller");) - __ end_a_stub(); + + return offset; } diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp index 13626f0700e..64b652376eb 100644 --- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -366,8 +366,9 @@ frame::frame(intptr_t* sp, intptr_t* younger_sp, bool younger_frame_adjusted_sta // as get_original_pc() needs correct value for unextended_sp() if (_pc != NULL) { _cb = CodeCache::find_blob(_pc); - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = ((nmethod*)_cb)->get_original_pc(this); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; @@ -519,9 +520,9 @@ void frame::patch_pc(Thread* thread, address pc) { _cb = CodeCache::find_blob(pc); *O7_addr() = pc - pc_return_offset; _cb = CodeCache::find_blob(_pc); - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - address orig = ((nmethod*)_cb)->get_original_pc(this); - assert(orig == _pc, "expected original to be stored before patching"); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + assert(original_pc == _pc, "expected original to be stored before patching"); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index 2fae5406861..d481137da3f 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -418,13 +418,12 @@ int LIR_Assembler::initial_frame_size_in_bytes() { } -void LIR_Assembler::emit_exception_handler() { +int LIR_Assembler::emit_exception_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion // failures when searching for the corresponding bci => add a nop // (was bug 5/14/1999 - gri) - __ nop(); // generate code for exception handler @@ -432,13 +431,10 @@ void LIR_Assembler::emit_exception_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("exception handler overflow"); - return; + return -1; } -#ifdef ASSERT - int offset = code_offset(); -#endif // ASSERT - compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); + int offset = code_offset(); // if the method does not have an exception handler, then there is // no reason to search for one @@ -474,19 +470,19 @@ void LIR_Assembler::emit_exception_handler() { // unwind activation and forward exception to caller // rax,: exception __ jump(RuntimeAddress(Runtime1::entry_for(Runtime1::unwind_exception_id))); - assert(code_offset() - offset <= exception_handler_size, "overflow"); - __ end_a_stub(); + + return offset; } -void LIR_Assembler::emit_deopt_handler() { + +int LIR_Assembler::emit_deopt_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion // failures when searching for the corresponding bci => add a nop // (was bug 5/14/1999 - gri) - __ nop(); // generate code for exception handler @@ -494,23 +490,17 @@ void LIR_Assembler::emit_deopt_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("deopt handler overflow"); - return; + return -1; } -#ifdef ASSERT + int offset = code_offset(); -#endif // ASSERT - - compilation()->offsets()->set_value(CodeOffsets::Deopt, code_offset()); - InternalAddress here(__ pc()); __ pushptr(here.addr()); - __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); - assert(code_offset() - offset <= deopt_handler_size, "overflow"); - __ end_a_stub(); + return offset; } diff --git a/hotspot/src/cpu/x86/vm/frame_x86.cpp b/hotspot/src/cpu/x86/vm/frame_x86.cpp index 7bbd7311dfa..ed8b741138d 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.cpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -222,9 +222,9 @@ void frame::patch_pc(Thread* thread, address pc) { } ((address *)sp())[-1] = pc; _cb = CodeCache::find_blob(pc); - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - address orig = (((nmethod*)_cb)->get_original_pc(this)); - assert(orig == _pc, "expected original to be stored before patching"); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + assert(original_pc == _pc, "expected original PC to be stored before patching"); _deopt_state = is_deoptimized; // leave _pc as is } else { @@ -323,19 +323,39 @@ frame frame::sender_for_entry_frame(RegisterMap* map) const { return fr; } + +//------------------------------------------------------------------------------ +// frame::sender_for_interpreter_frame frame frame::sender_for_interpreter_frame(RegisterMap* map) const { - // sp is the raw sp from the sender after adapter or interpreter extension - intptr_t* sp = (intptr_t*) addr_at(sender_sp_offset); + // SP is the raw SP from the sender after adapter or interpreter + // extension. + intptr_t* sender_sp = this->sender_sp(); // This is the sp before any possible extension (adapter/locals). intptr_t* unextended_sp = interpreter_frame_sender_sp(); + // Stored FP. + intptr_t* saved_fp = link(); + address sender_pc = this->sender_pc(); CodeBlob* sender_cb = CodeCache::find_blob_unsafe(sender_pc); assert(sender_cb, "sanity"); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); - if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { - unextended_sp = (intptr_t*) at(link_offset); + + if (sender_nm != NULL) { + // If the sender PC is a deoptimization point, get the original + // PC. For MethodHandle call site the unextended_sp is stored in + // saved_fp. + if (sender_nm->is_deopt_mh_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_mh_original_pc(sender_nm, saved_fp)); + unextended_sp = saved_fp; + } + else if (sender_nm->is_deopt_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_original_pc(sender_nm, unextended_sp)); + } + else if (sender_nm->is_method_handle_return(sender_pc)) { + unextended_sp = saved_fp; + } } // The interpreter and compiler(s) always save EBP/RBP in a known @@ -359,40 +379,51 @@ frame frame::sender_for_interpreter_frame(RegisterMap* map) const { } #endif // AMD64 } -#endif /* COMPILER2 */ - return frame(sp, unextended_sp, link(), sender_pc); +#endif // COMPILER2 + + return frame(sender_sp, unextended_sp, saved_fp, sender_pc); } -//------------------------------sender_for_compiled_frame----------------------- +//------------------------------------------------------------------------------ +// frame::sender_for_compiled_frame frame frame::sender_for_compiled_frame(RegisterMap* map) const { assert(map != NULL, "map must be set"); - const bool c1_compiled = _cb->is_compiled_by_c1(); // frame owned by optimizing compiler - intptr_t* sender_sp = NULL; - assert(_cb->frame_size() >= 0, "must have non-zero frame size"); - sender_sp = unextended_sp() + _cb->frame_size(); + intptr_t* sender_sp = unextended_sp() + _cb->frame_size(); + intptr_t* unextended_sp = sender_sp; // On Intel the return_address is always the word on the stack address sender_pc = (address) *(sender_sp-1); - // This is the saved value of ebp which may or may not really be an fp. - // it is only an fp if the sender is an interpreter frame (or c1?) + // This is the saved value of EBP which may or may not really be an FP. + // It is only an FP if the sender is an interpreter frame (or C1?). + intptr_t* saved_fp = (intptr_t*) *(sender_sp - frame::sender_sp_offset); - intptr_t *saved_fp = (intptr_t*)*(sender_sp - frame::sender_sp_offset); - - intptr_t* unextended_sp = sender_sp; - // If we are returning to a compiled method handle call site, - // the saved_fp will in fact be a saved value of the unextended SP. - // The simplest way to tell whether we are returning to such a call - // site is as follows: + // If we are returning to a compiled MethodHandle call site, the + // saved_fp will in fact be a saved value of the unextended SP. The + // simplest way to tell whether we are returning to such a call site + // is as follows: CodeBlob* sender_cb = CodeCache::find_blob_unsafe(sender_pc); assert(sender_cb, "sanity"); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); - if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { - unextended_sp = saved_fp; + + if (sender_nm != NULL) { + // If the sender PC is a deoptimization point, get the original + // PC. For MethodHandle call site the unextended_sp is stored in + // saved_fp. + if (sender_nm->is_deopt_mh_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_mh_original_pc(sender_nm, saved_fp)); + unextended_sp = saved_fp; + } + else if (sender_nm->is_deopt_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_original_pc(sender_nm, unextended_sp)); + } + else if (sender_nm->is_method_handle_return(sender_pc)) { + unextended_sp = saved_fp; + } } if (map->update_map()) { @@ -403,7 +434,7 @@ frame frame::sender_for_compiled_frame(RegisterMap* map) const { if (_cb->oop_maps() != NULL) { OopMapSet::update_register_map(this, map); } - // Since the prolog does the save and restore of epb there is no oopmap + // Since the prolog does the save and restore of EBP there is no oopmap // for it so we must fill in its location as if there was an oopmap entry // since if our caller was compiled code there could be live jvm state in it. map->set_location(rbp->as_VMReg(), (address) (sender_sp - frame::sender_sp_offset)); @@ -422,6 +453,9 @@ frame frame::sender_for_compiled_frame(RegisterMap* map) const { return frame(sender_sp, unextended_sp, saved_fp, sender_pc); } + +//------------------------------------------------------------------------------ +// frame::sender frame frame::sender(RegisterMap* map) const { // Default is we done have to follow them. The sender_for_xxx will // update it accordingly diff --git a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp index 1f2065ba449..809e26cfaa1 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -35,32 +35,35 @@ inline frame::frame() { _deopt_state = unknown; } -inline frame:: frame(intptr_t* sp, intptr_t* fp, address pc) { +inline frame::frame(intptr_t* sp, intptr_t* fp, address pc) { _sp = sp; _unextended_sp = sp; _fp = fp; _pc = pc; assert(pc != NULL, "no pc?"); _cb = CodeCache::find_blob(pc); - _deopt_state = not_deoptimized; - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = (((nmethod*)_cb)->get_original_pc(this)); + + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; } } -inline frame:: frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) { +inline frame::frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) { _sp = sp; _unextended_sp = unextended_sp; _fp = fp; _pc = pc; assert(pc != NULL, "no pc?"); _cb = CodeCache::find_blob(pc); - _deopt_state = not_deoptimized; - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = (((nmethod*)_cb)->get_original_pc(this)); + + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; + assert(((nmethod*)_cb)->code_contains(_pc), "original PC must be in nmethod"); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; @@ -86,9 +89,9 @@ inline frame::frame(intptr_t* sp, intptr_t* fp) { _cb = CodeCache::find_blob(_pc); - _deopt_state = not_deoptimized; - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = (((nmethod*)_cb)->get_original_pc(this)); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; diff --git a/hotspot/src/share/vm/asm/codeBuffer.hpp b/hotspot/src/share/vm/asm/codeBuffer.hpp index 6880fc59d5f..8751fb6494d 100644 --- a/hotspot/src/share/vm/asm/codeBuffer.hpp +++ b/hotspot/src/share/vm/asm/codeBuffer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -39,6 +39,7 @@ public: Dtrace_trap = OSR_Entry, // dtrace probes can never have an OSR entry so reuse it Exceptions, // Offset where exception handler lives Deopt, // Offset where deopt handler lives + DeoptMH, // Offset where MethodHandle deopt handler lives max_Entries }; // special value to note codeBlobs where profile (forte) stack walking is @@ -51,12 +52,13 @@ private: public: CodeOffsets() { - _values[Entry] = 0; + _values[Entry ] = 0; _values[Verified_Entry] = 0; _values[Frame_Complete] = frame_never_safe; - _values[OSR_Entry] = 0; - _values[Exceptions] = -1; - _values[Deopt] = -1; + _values[OSR_Entry ] = 0; + _values[Exceptions ] = -1; + _values[Deopt ] = -1; + _values[DeoptMH ] = -1; } int value(Entries e) { return _values[e]; } diff --git a/hotspot/src/share/vm/c1/c1_Compilation.cpp b/hotspot/src/share/vm/c1/c1_Compilation.cpp index d89ef4e7b1a..e1df739770f 100644 --- a/hotspot/src/share/vm/c1/c1_Compilation.cpp +++ b/hotspot/src/share/vm/c1/c1_Compilation.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2010 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 @@ -205,6 +205,8 @@ void Compilation::emit_lir() { void Compilation::emit_code_epilog(LIR_Assembler* assembler) { CHECK_BAILOUT(); + CodeOffsets* code_offsets = assembler->offsets(); + // generate code or slow cases assembler->emit_slow_case_stubs(); CHECK_BAILOUT(); @@ -213,10 +215,18 @@ void Compilation::emit_code_epilog(LIR_Assembler* assembler) { assembler->emit_exception_entries(exception_info_list()); CHECK_BAILOUT(); - // generate code for exception handler - assembler->emit_exception_handler(); + // Generate code for exception handler. + code_offsets->set_value(CodeOffsets::Exceptions, assembler->emit_exception_handler()); CHECK_BAILOUT(); - assembler->emit_deopt_handler(); + + // Generate code for deopt handler. + code_offsets->set_value(CodeOffsets::Deopt, assembler->emit_deopt_handler()); + CHECK_BAILOUT(); + + // Generate code for MethodHandle deopt handler. We can use the + // same code as for the normal deopt handler, we just need a + // different entry point address. + code_offsets->set_value(CodeOffsets::DeoptMH, assembler->emit_deopt_handler()); CHECK_BAILOUT(); // done diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp index f5de2c73479..8219b534eb0 100644 --- a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -133,9 +133,9 @@ class LIR_Assembler: public CompilationResourceObj { void add_call_info_here(CodeEmitInfo* info) { add_call_info(code_offset(), info); } // code patterns - void emit_exception_handler(); + int emit_exception_handler(); void emit_exception_entries(ExceptionInfoList* info_list); - void emit_deopt_handler(); + int emit_deopt_handler(); void emit_code(BlockList* hir); void emit_block(BlockBegin* block); diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index 82cfc7631d1..09aae4fa6a0 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -592,6 +592,7 @@ nmethod::nmethod( // values something that will never match a pc like the nmethod vtable entry _exception_offset = 0; _deoptimize_offset = 0; + _deoptimize_mh_offset = 0; _orig_pc_offset = 0; #ifdef HAVE_DTRACE_H _trap_offset = 0; @@ -682,6 +683,7 @@ nmethod::nmethod( // values something that will never match a pc like the nmethod vtable entry _exception_offset = 0; _deoptimize_offset = 0; + _deoptimize_mh_offset = 0; _trap_offset = offsets->value(CodeOffsets::Dtrace_trap); _orig_pc_offset = 0; _stub_offset = data_offset(); @@ -794,6 +796,7 @@ nmethod::nmethod( // Exception handler and deopt handler are in the stub section _exception_offset = _stub_offset + offsets->value(CodeOffsets::Exceptions); _deoptimize_offset = _stub_offset + offsets->value(CodeOffsets::Deopt); + _deoptimize_mh_offset = _stub_offset + offsets->value(CodeOffsets::DeoptMH); _consts_offset = instructions_offset() + code_buffer->total_offset_of(code_buffer->consts()->start()); _scopes_data_offset = data_offset(); _scopes_pcs_offset = _scopes_data_offset + round_to(debug_info->data_size (), oopSize); @@ -2031,9 +2034,21 @@ void nmethodLocker::unlock_nmethod(nmethod* nm) { guarantee(nm->_lock_count >= 0, "unmatched nmethod lock/unlock"); } -bool nmethod::is_deopt_pc(address pc) { - bool ret = pc == deopt_handler_begin(); - return ret; + +// ----------------------------------------------------------------------------- +// nmethod::get_deopt_original_pc +// +// Return the original PC for the given PC if: +// (a) the given PC belongs to a nmethod and +// (b) it is a deopt PC +address nmethod::get_deopt_original_pc(const frame* fr) { + if (fr->cb() == NULL) return NULL; + + nmethod* nm = fr->cb()->as_nmethod_or_null(); + if (nm != NULL && nm->is_deopt_pc(fr->pc())) + return nm->get_original_pc(fr); + + return NULL; } @@ -2404,6 +2419,8 @@ void nmethod::print_nmethod_labels(outputStream* stream, address block_begin) { if (block_begin == verified_entry_point()) stream->print_cr("[Verified Entry Point]"); if (block_begin == exception_begin()) stream->print_cr("[Exception Handler]"); if (block_begin == stub_begin()) stream->print_cr("[Stub Code]"); + if (block_begin == deopt_handler_begin()) stream->print_cr("[Deopt Handler Code]"); + if (block_begin == deopt_mh_handler_begin()) stream->print_cr("[Deopt MH Handler Code]"); if (block_begin == consts_begin()) stream->print_cr("[Constants]"); if (block_begin == entry_point()) { methodHandle m = method(); diff --git a/hotspot/src/share/vm/code/nmethod.hpp b/hotspot/src/share/vm/code/nmethod.hpp index 26a7edaac81..5837c6b82e9 100644 --- a/hotspot/src/share/vm/code/nmethod.hpp +++ b/hotspot/src/share/vm/code/nmethod.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -145,8 +145,12 @@ class nmethod : public CodeBlob { // Offsets for different nmethod parts int _exception_offset; - // All deoptee's will resume execution at this location described by this offset + // All deoptee's will resume execution at this location described by + // this offset. int _deoptimize_offset; + // All deoptee's at a MethodHandle call site will resume execution + // at this location described by this offset. + int _deoptimize_mh_offset; #ifdef HAVE_DTRACE_H int _trap_offset; #endif // def HAVE_DTRACE_H @@ -329,24 +333,25 @@ class nmethod : public CodeBlob { bool is_compiled_by_c2() const; // boundaries for different parts - address code_begin () const { return _entry_point; } - address code_end () const { return header_begin() + _stub_offset ; } - address exception_begin () const { return header_begin() + _exception_offset ; } - address deopt_handler_begin() const { return header_begin() + _deoptimize_offset ; } - address stub_begin () const { return header_begin() + _stub_offset ; } - address stub_end () const { return header_begin() + _consts_offset ; } - address consts_begin () const { return header_begin() + _consts_offset ; } - address consts_end () const { return header_begin() + _scopes_data_offset ; } - address scopes_data_begin () const { return header_begin() + _scopes_data_offset ; } - address scopes_data_end () const { return header_begin() + _scopes_pcs_offset ; } - PcDesc* scopes_pcs_begin () const { return (PcDesc*)(header_begin() + _scopes_pcs_offset ); } - PcDesc* scopes_pcs_end () const { return (PcDesc*)(header_begin() + _dependencies_offset); } - address dependencies_begin () const { return header_begin() + _dependencies_offset ; } - address dependencies_end () const { return header_begin() + _handler_table_offset ; } - address handler_table_begin() const { return header_begin() + _handler_table_offset ; } - address handler_table_end () const { return header_begin() + _nul_chk_table_offset ; } - address nul_chk_table_begin() const { return header_begin() + _nul_chk_table_offset ; } - address nul_chk_table_end () const { return header_begin() + _nmethod_end_offset ; } + address code_begin () const { return _entry_point; } + address code_end () const { return header_begin() + _stub_offset ; } + address exception_begin () const { return header_begin() + _exception_offset ; } + address deopt_handler_begin () const { return header_begin() + _deoptimize_offset ; } + address deopt_mh_handler_begin() const { return header_begin() + _deoptimize_mh_offset ; } + address stub_begin () const { return header_begin() + _stub_offset ; } + address stub_end () const { return header_begin() + _consts_offset ; } + address consts_begin () const { return header_begin() + _consts_offset ; } + address consts_end () const { return header_begin() + _scopes_data_offset ; } + address scopes_data_begin () const { return header_begin() + _scopes_data_offset ; } + address scopes_data_end () const { return header_begin() + _scopes_pcs_offset ; } + PcDesc* scopes_pcs_begin () const { return (PcDesc*)(header_begin() + _scopes_pcs_offset ); } + PcDesc* scopes_pcs_end () const { return (PcDesc*)(header_begin() + _dependencies_offset) ; } + address dependencies_begin () const { return header_begin() + _dependencies_offset ; } + address dependencies_end () const { return header_begin() + _handler_table_offset ; } + address handler_table_begin () const { return header_begin() + _handler_table_offset ; } + address handler_table_end () const { return header_begin() + _nul_chk_table_offset ; } + address nul_chk_table_begin () const { return header_begin() + _nul_chk_table_offset ; } + address nul_chk_table_end () const { return header_begin() + _nmethod_end_offset ; } int code_size () const { return code_end () - code_begin (); } int stub_size () const { return stub_end () - stub_begin (); } @@ -515,7 +520,7 @@ class nmethod : public CodeBlob { private: ScopeDesc* scope_desc_in(address begin, address end); - address* orig_pc_addr(const frame* fr ) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); } + address* orig_pc_addr(const frame* fr) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); } PcDesc* find_pc_desc_internal(address pc, bool approximate); @@ -538,13 +543,17 @@ class nmethod : public CodeBlob { void copy_scopes_pcs(PcDesc* pcs, int count); void copy_scopes_data(address buffer, int size); - // deopt - // return true is the pc is one would expect if the frame is being deopted. - bool is_deopt_pc(address pc); + // Deopt + // Return true is the PC is one would expect if the frame is being deopted. + bool is_deopt_pc (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); } + bool is_deopt_entry (address pc) { return pc == deopt_handler_begin(); } + bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); } // Accessor/mutator for the original pc of a frame before a frame was deopted. address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); } void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; } + static address get_deopt_original_pc(const frame* fr); + // MethodHandle bool is_method_handle_return(address return_pc); diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp index c762808b63c..4cacb2f8445 100644 --- a/hotspot/src/share/vm/opto/output.cpp +++ b/hotspot/src/share/vm/opto/output.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -1430,6 +1430,10 @@ void Compile::Fill_buffer() { _code_offsets.set_value(CodeOffsets::Exceptions, emit_exception_handler(*cb)); // Emit the deopt handler code. _code_offsets.set_value(CodeOffsets::Deopt, emit_deopt_handler(*cb)); + // Emit the MethodHandle deopt handler code. We can use the same + // code as for the normal deopt handler, we just need a different + // entry point address. + _code_offsets.set_value(CodeOffsets::DeoptMH, emit_deopt_handler(*cb)); } // One last check for failed CodeBuffer::expand: diff --git a/hotspot/src/share/vm/runtime/deoptimization.cpp b/hotspot/src/share/vm/runtime/deoptimization.cpp index b5800824b59..e40e052a582 100644 --- a/hotspot/src/share/vm/runtime/deoptimization.cpp +++ b/hotspot/src/share/vm/runtime/deoptimization.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -235,6 +235,12 @@ Deoptimization::UnrollBlock* Deoptimization::fetch_unroll_info_helper(JavaThread assert(cb->frame_size() >= 0, "Unexpected frame size"); intptr_t* unpack_sp = stub_frame.sp() + cb->frame_size(); + // If the deopt call site is a MethodHandle invoke call site we have + // to adjust the unpack_sp. + nmethod* deoptee_nm = deoptee.cb()->as_nmethod_or_null(); + if (deoptee_nm != NULL && deoptee_nm->is_method_handle_return(deoptee.pc())) + unpack_sp = deoptee.unextended_sp(); + #ifdef ASSERT assert(cb->is_deoptimization_stub() || cb->is_uncommon_trap_stub(), "just checking"); Events::log("fetch unroll sp " INTPTR_FORMAT, unpack_sp); diff --git a/hotspot/src/share/vm/runtime/frame.cpp b/hotspot/src/share/vm/runtime/frame.cpp index f82ef99735f..9d4b95ecd9a 100644 --- a/hotspot/src/share/vm/runtime/frame.cpp +++ b/hotspot/src/share/vm/runtime/frame.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -107,7 +107,11 @@ void RegisterMap::print() const { address frame::raw_pc() const { if (is_deoptimized_frame()) { - return ((nmethod*) cb())->deopt_handler_begin() - pc_return_offset; + nmethod* nm = cb()->as_nmethod_or_null(); + if (nm->is_method_handle_return(pc())) + return nm->deopt_mh_handler_begin() - pc_return_offset; + else + return nm->deopt_handler_begin() - pc_return_offset; } else { return (pc() - pc_return_offset); } @@ -269,10 +273,16 @@ void frame::deoptimize(JavaThread* thread, bool thread_is_known_safe) { } // NeedsDeoptSuspend - address deopt = nm->deopt_handler_begin(); + // If the call site is a MethodHandle call site use the MH deopt + // handler. + address deopt = nm->is_method_handle_return(pc()) ? + nm->deopt_mh_handler_begin() : + nm->deopt_handler_begin(); + // Save the original pc before we patch in the new one nm->set_original_pc(this, pc()); patch_pc(thread, deopt); + #ifdef ASSERT { RegisterMap map(thread, false); @@ -301,6 +311,29 @@ frame frame::real_sender(RegisterMap* map) const { return result; } + +//------------------------------------------------------------------------------ +// frame::verify_deopt_original_pc +// +// Verifies the calculated original PC of a deoptimization PC for the +// given unextended SP. The unextended SP might also be the saved SP +// for MethodHandle call sites. +#if ASSERT +void frame::verify_deopt_original_pc(nmethod* nm, intptr_t* unextended_sp, bool is_method_handle_return) { + frame fr; + + // This is ugly but it's better than to change {get,set}_original_pc + // to take an SP value as argument. And it's only a debugging + // method anyway. + fr._unextended_sp = unextended_sp; + + address original_pc = nm->get_original_pc(&fr); + assert(nm->code_contains(original_pc), "original PC must be in nmethod"); + assert(nm->is_method_handle_return(original_pc) == is_method_handle_return, "must be"); +} +#endif + + // Note: called by profiler - NOT for current thread frame frame::profile_find_Java_sender_frame(JavaThread *thread) { // If we don't recognize this frame, walk back up the stack until we do diff --git a/hotspot/src/share/vm/runtime/frame.hpp b/hotspot/src/share/vm/runtime/frame.hpp index 92df6b353d5..434d2d11c4e 100644 --- a/hotspot/src/share/vm/runtime/frame.hpp +++ b/hotspot/src/share/vm/runtime/frame.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -141,6 +141,14 @@ class frame VALUE_OBJ_CLASS_SPEC { frame sender_for_interpreter_frame(RegisterMap* map) const; frame sender_for_native_frame(RegisterMap* map) const; +#if ASSERT + // Used in frame::sender_for_{interpreter,compiled}_frame + static void verify_deopt_original_pc( nmethod* nm, intptr_t* unextended_sp, bool is_method_handle_return = false); + static void verify_deopt_mh_original_pc(nmethod* nm, intptr_t* unextended_sp) { + verify_deopt_original_pc(nm, unextended_sp, true); + } +#endif + // All frames: // A low-level interface for vframes: diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index bf100e71407..cfe9e45fc33 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -1033,10 +1033,20 @@ JRT_BLOCK_ENTRY(address, SharedRuntime::handle_wrong_method(JavaThread* thread)) address sender_pc = caller_frame.pc(); CodeBlob* sender_cb = caller_frame.cb(); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); + bool is_mh_invoke_via_adapter = false; // Direct c2c call or via adapter? + if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { + // If the callee_target is set, then we have come here via an i2c + // adapter. + methodOop callee = thread->callee_target(); + if (callee != NULL) { + assert(callee->is_method(), "sanity"); + is_mh_invoke_via_adapter = true; + } + } if (caller_frame.is_interpreted_frame() || - caller_frame.is_entry_frame() || - (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc))) { + caller_frame.is_entry_frame() || + is_mh_invoke_via_adapter) { methodOop callee = thread->callee_target(); guarantee(callee != NULL && callee->is_method(), "bad handshake"); thread->set_vm_result(callee); @@ -1417,7 +1427,7 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr if (callee == cb || callee->is_adapter_blob()) { // static call or optimized virtual if (TraceCallFixup) { - tty->print("fixup callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); + tty->print("fixup callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); moop->print_short_name(tty); tty->print_cr(" to " INTPTR_FORMAT, entry_point); } @@ -1433,7 +1443,7 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr } } else { if (TraceCallFixup) { - tty->print("already patched callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); + tty->print("already patched callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); moop->print_short_name(tty); tty->print_cr(" to " INTPTR_FORMAT, entry_point); } From 9aa675b7e60406c3a795d0312adee64498b6d3d1 Mon Sep 17 00:00:00 2001 From: Christian Thalinger Date: Fri, 29 Jan 2010 08:33:24 -0800 Subject: [PATCH 047/109] 6921339: backout 6917766 Reviewed-by: mr --- .../cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 34 ++++--- hotspot/src/cpu/sparc/vm/frame_sparc.cpp | 13 ++- .../src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 34 ++++--- hotspot/src/cpu/x86/vm/frame_x86.cpp | 88 ++++++------------- hotspot/src/cpu/x86/vm/frame_x86.inline.hpp | 27 +++--- hotspot/src/share/vm/asm/codeBuffer.hpp | 12 ++- hotspot/src/share/vm/c1/c1_Compilation.cpp | 18 +--- hotspot/src/share/vm/c1/c1_LIRAssembler.hpp | 6 +- hotspot/src/share/vm/code/nmethod.cpp | 25 +----- hotspot/src/share/vm/code/nmethod.hpp | 57 +++++------- hotspot/src/share/vm/opto/output.cpp | 6 +- .../src/share/vm/runtime/deoptimization.cpp | 8 +- hotspot/src/share/vm/runtime/frame.cpp | 39 +------- hotspot/src/share/vm/runtime/frame.hpp | 10 +-- .../src/share/vm/runtime/sharedRuntime.cpp | 18 +--- 15 files changed, 137 insertions(+), 258 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index a4c9ce59d39..2b054b43e65 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 Sun Microsystems, Inc. All Rights Reserved. + * 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 @@ -357,7 +357,7 @@ void LIR_Assembler::monitorexit(LIR_Opr obj_opr, LIR_Opr lock_opr, Register hdr, } -int LIR_Assembler::emit_exception_handler() { +void LIR_Assembler::emit_exception_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion @@ -373,10 +373,13 @@ int LIR_Assembler::emit_exception_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("exception handler overflow"); - return -1; + return; } - +#ifdef ASSERT int offset = code_offset(); +#endif // ASSERT + compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); + if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_exceptions()) { __ call(Runtime1::entry_for(Runtime1::handle_exception_id), relocInfo::runtime_call_type); @@ -387,13 +390,11 @@ int LIR_Assembler::emit_exception_handler() { __ delayed()->nop(); debug_only(__ stop("should have gone to the caller");) assert(code_offset() - offset <= exception_handler_size, "overflow"); - __ end_a_stub(); - return offset; + __ end_a_stub(); } - -int LIR_Assembler::emit_deopt_handler() { +void LIR_Assembler::emit_deopt_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion @@ -407,18 +408,23 @@ int LIR_Assembler::emit_deopt_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("deopt handler overflow"); - return -1; + return; } - +#ifdef ASSERT int offset = code_offset(); +#endif // ASSERT + compilation()->offsets()->set_value(CodeOffsets::Deopt, code_offset()); + AddressLiteral deopt_blob(SharedRuntime::deopt_blob()->unpack()); + __ JUMP(deopt_blob, G3_scratch, 0); // sethi;jmp __ delayed()->nop(); - assert(code_offset() - offset <= deopt_handler_size, "overflow"); - debug_only(__ stop("should have gone to the caller");) - __ end_a_stub(); - return offset; + assert(code_offset() - offset <= deopt_handler_size, "overflow"); + + debug_only(__ stop("should have gone to the caller");) + + __ end_a_stub(); } diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp index 64b652376eb..13626f0700e 100644 --- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -366,9 +366,8 @@ frame::frame(intptr_t* sp, intptr_t* younger_sp, bool younger_frame_adjusted_sta // as get_original_pc() needs correct value for unextended_sp() if (_pc != NULL) { _cb = CodeCache::find_blob(_pc); - address original_pc = nmethod::get_deopt_original_pc(this); - if (original_pc != NULL) { - _pc = original_pc; + if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { + _pc = ((nmethod*)_cb)->get_original_pc(this); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; @@ -520,9 +519,9 @@ void frame::patch_pc(Thread* thread, address pc) { _cb = CodeCache::find_blob(pc); *O7_addr() = pc - pc_return_offset; _cb = CodeCache::find_blob(_pc); - address original_pc = nmethod::get_deopt_original_pc(this); - if (original_pc != NULL) { - assert(original_pc == _pc, "expected original to be stored before patching"); + if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { + address orig = ((nmethod*)_cb)->get_original_pc(this); + assert(orig == _pc, "expected original to be stored before patching"); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index d481137da3f..2fae5406861 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 Sun Microsystems, Inc. All Rights Reserved. + * 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 @@ -418,12 +418,13 @@ int LIR_Assembler::initial_frame_size_in_bytes() { } -int LIR_Assembler::emit_exception_handler() { +void LIR_Assembler::emit_exception_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion // failures when searching for the corresponding bci => add a nop // (was bug 5/14/1999 - gri) + __ nop(); // generate code for exception handler @@ -431,10 +432,13 @@ int LIR_Assembler::emit_exception_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("exception handler overflow"); - return -1; + return; } - +#ifdef ASSERT int offset = code_offset(); +#endif // ASSERT + + compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); // if the method does not have an exception handler, then there is // no reason to search for one @@ -470,19 +474,19 @@ int LIR_Assembler::emit_exception_handler() { // unwind activation and forward exception to caller // rax,: exception __ jump(RuntimeAddress(Runtime1::entry_for(Runtime1::unwind_exception_id))); - assert(code_offset() - offset <= exception_handler_size, "overflow"); - __ end_a_stub(); - return offset; + assert(code_offset() - offset <= exception_handler_size, "overflow"); + + __ end_a_stub(); } - -int LIR_Assembler::emit_deopt_handler() { +void LIR_Assembler::emit_deopt_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion // failures when searching for the corresponding bci => add a nop // (was bug 5/14/1999 - gri) + __ nop(); // generate code for exception handler @@ -490,17 +494,23 @@ int LIR_Assembler::emit_deopt_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("deopt handler overflow"); - return -1; + return; } - +#ifdef ASSERT int offset = code_offset(); +#endif // ASSERT + + compilation()->offsets()->set_value(CodeOffsets::Deopt, code_offset()); + InternalAddress here(__ pc()); __ pushptr(here.addr()); + __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); + assert(code_offset() - offset <= deopt_handler_size, "overflow"); + __ end_a_stub(); - return offset; } diff --git a/hotspot/src/cpu/x86/vm/frame_x86.cpp b/hotspot/src/cpu/x86/vm/frame_x86.cpp index ed8b741138d..7bbd7311dfa 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.cpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -222,9 +222,9 @@ void frame::patch_pc(Thread* thread, address pc) { } ((address *)sp())[-1] = pc; _cb = CodeCache::find_blob(pc); - address original_pc = nmethod::get_deopt_original_pc(this); - if (original_pc != NULL) { - assert(original_pc == _pc, "expected original PC to be stored before patching"); + if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { + address orig = (((nmethod*)_cb)->get_original_pc(this)); + assert(orig == _pc, "expected original to be stored before patching"); _deopt_state = is_deoptimized; // leave _pc as is } else { @@ -323,39 +323,19 @@ frame frame::sender_for_entry_frame(RegisterMap* map) const { return fr; } - -//------------------------------------------------------------------------------ -// frame::sender_for_interpreter_frame frame frame::sender_for_interpreter_frame(RegisterMap* map) const { - // SP is the raw SP from the sender after adapter or interpreter - // extension. - intptr_t* sender_sp = this->sender_sp(); + // sp is the raw sp from the sender after adapter or interpreter extension + intptr_t* sp = (intptr_t*) addr_at(sender_sp_offset); // This is the sp before any possible extension (adapter/locals). intptr_t* unextended_sp = interpreter_frame_sender_sp(); - // Stored FP. - intptr_t* saved_fp = link(); - address sender_pc = this->sender_pc(); CodeBlob* sender_cb = CodeCache::find_blob_unsafe(sender_pc); assert(sender_cb, "sanity"); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); - - if (sender_nm != NULL) { - // If the sender PC is a deoptimization point, get the original - // PC. For MethodHandle call site the unextended_sp is stored in - // saved_fp. - if (sender_nm->is_deopt_mh_entry(sender_pc)) { - DEBUG_ONLY(verify_deopt_mh_original_pc(sender_nm, saved_fp)); - unextended_sp = saved_fp; - } - else if (sender_nm->is_deopt_entry(sender_pc)) { - DEBUG_ONLY(verify_deopt_original_pc(sender_nm, unextended_sp)); - } - else if (sender_nm->is_method_handle_return(sender_pc)) { - unextended_sp = saved_fp; - } + if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { + unextended_sp = (intptr_t*) at(link_offset); } // The interpreter and compiler(s) always save EBP/RBP in a known @@ -379,51 +359,40 @@ frame frame::sender_for_interpreter_frame(RegisterMap* map) const { } #endif // AMD64 } -#endif // COMPILER2 - - return frame(sender_sp, unextended_sp, saved_fp, sender_pc); +#endif /* COMPILER2 */ + return frame(sp, unextended_sp, link(), sender_pc); } -//------------------------------------------------------------------------------ -// frame::sender_for_compiled_frame +//------------------------------sender_for_compiled_frame----------------------- frame frame::sender_for_compiled_frame(RegisterMap* map) const { assert(map != NULL, "map must be set"); + const bool c1_compiled = _cb->is_compiled_by_c1(); // frame owned by optimizing compiler + intptr_t* sender_sp = NULL; + assert(_cb->frame_size() >= 0, "must have non-zero frame size"); - intptr_t* sender_sp = unextended_sp() + _cb->frame_size(); - intptr_t* unextended_sp = sender_sp; + sender_sp = unextended_sp() + _cb->frame_size(); // On Intel the return_address is always the word on the stack address sender_pc = (address) *(sender_sp-1); - // This is the saved value of EBP which may or may not really be an FP. - // It is only an FP if the sender is an interpreter frame (or C1?). - intptr_t* saved_fp = (intptr_t*) *(sender_sp - frame::sender_sp_offset); + // This is the saved value of ebp which may or may not really be an fp. + // it is only an fp if the sender is an interpreter frame (or c1?) - // If we are returning to a compiled MethodHandle call site, the - // saved_fp will in fact be a saved value of the unextended SP. The - // simplest way to tell whether we are returning to such a call site - // is as follows: + intptr_t *saved_fp = (intptr_t*)*(sender_sp - frame::sender_sp_offset); + + intptr_t* unextended_sp = sender_sp; + // If we are returning to a compiled method handle call site, + // the saved_fp will in fact be a saved value of the unextended SP. + // The simplest way to tell whether we are returning to such a call + // site is as follows: CodeBlob* sender_cb = CodeCache::find_blob_unsafe(sender_pc); assert(sender_cb, "sanity"); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); - - if (sender_nm != NULL) { - // If the sender PC is a deoptimization point, get the original - // PC. For MethodHandle call site the unextended_sp is stored in - // saved_fp. - if (sender_nm->is_deopt_mh_entry(sender_pc)) { - DEBUG_ONLY(verify_deopt_mh_original_pc(sender_nm, saved_fp)); - unextended_sp = saved_fp; - } - else if (sender_nm->is_deopt_entry(sender_pc)) { - DEBUG_ONLY(verify_deopt_original_pc(sender_nm, unextended_sp)); - } - else if (sender_nm->is_method_handle_return(sender_pc)) { - unextended_sp = saved_fp; - } + if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { + unextended_sp = saved_fp; } if (map->update_map()) { @@ -434,7 +403,7 @@ frame frame::sender_for_compiled_frame(RegisterMap* map) const { if (_cb->oop_maps() != NULL) { OopMapSet::update_register_map(this, map); } - // Since the prolog does the save and restore of EBP there is no oopmap + // Since the prolog does the save and restore of epb there is no oopmap // for it so we must fill in its location as if there was an oopmap entry // since if our caller was compiled code there could be live jvm state in it. map->set_location(rbp->as_VMReg(), (address) (sender_sp - frame::sender_sp_offset)); @@ -453,9 +422,6 @@ frame frame::sender_for_compiled_frame(RegisterMap* map) const { return frame(sender_sp, unextended_sp, saved_fp, sender_pc); } - -//------------------------------------------------------------------------------ -// frame::sender frame frame::sender(RegisterMap* map) const { // Default is we done have to follow them. The sender_for_xxx will // update it accordingly diff --git a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp index 809e26cfaa1..1f2065ba449 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -35,35 +35,32 @@ inline frame::frame() { _deopt_state = unknown; } -inline frame::frame(intptr_t* sp, intptr_t* fp, address pc) { +inline frame:: frame(intptr_t* sp, intptr_t* fp, address pc) { _sp = sp; _unextended_sp = sp; _fp = fp; _pc = pc; assert(pc != NULL, "no pc?"); _cb = CodeCache::find_blob(pc); - - address original_pc = nmethod::get_deopt_original_pc(this); - if (original_pc != NULL) { - _pc = original_pc; + _deopt_state = not_deoptimized; + if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { + _pc = (((nmethod*)_cb)->get_original_pc(this)); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; } } -inline frame::frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) { +inline frame:: frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) { _sp = sp; _unextended_sp = unextended_sp; _fp = fp; _pc = pc; assert(pc != NULL, "no pc?"); _cb = CodeCache::find_blob(pc); - - address original_pc = nmethod::get_deopt_original_pc(this); - if (original_pc != NULL) { - _pc = original_pc; - assert(((nmethod*)_cb)->code_contains(_pc), "original PC must be in nmethod"); + _deopt_state = not_deoptimized; + if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { + _pc = (((nmethod*)_cb)->get_original_pc(this)); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; @@ -89,9 +86,9 @@ inline frame::frame(intptr_t* sp, intptr_t* fp) { _cb = CodeCache::find_blob(_pc); - address original_pc = nmethod::get_deopt_original_pc(this); - if (original_pc != NULL) { - _pc = original_pc; + _deopt_state = not_deoptimized; + if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { + _pc = (((nmethod*)_cb)->get_original_pc(this)); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; diff --git a/hotspot/src/share/vm/asm/codeBuffer.hpp b/hotspot/src/share/vm/asm/codeBuffer.hpp index 8751fb6494d..6880fc59d5f 100644 --- a/hotspot/src/share/vm/asm/codeBuffer.hpp +++ b/hotspot/src/share/vm/asm/codeBuffer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -39,7 +39,6 @@ public: Dtrace_trap = OSR_Entry, // dtrace probes can never have an OSR entry so reuse it Exceptions, // Offset where exception handler lives Deopt, // Offset where deopt handler lives - DeoptMH, // Offset where MethodHandle deopt handler lives max_Entries }; // special value to note codeBlobs where profile (forte) stack walking is @@ -52,13 +51,12 @@ private: public: CodeOffsets() { - _values[Entry ] = 0; + _values[Entry] = 0; _values[Verified_Entry] = 0; _values[Frame_Complete] = frame_never_safe; - _values[OSR_Entry ] = 0; - _values[Exceptions ] = -1; - _values[Deopt ] = -1; - _values[DeoptMH ] = -1; + _values[OSR_Entry] = 0; + _values[Exceptions] = -1; + _values[Deopt] = -1; } int value(Entries e) { return _values[e]; } diff --git a/hotspot/src/share/vm/c1/c1_Compilation.cpp b/hotspot/src/share/vm/c1/c1_Compilation.cpp index e1df739770f..d89ef4e7b1a 100644 --- a/hotspot/src/share/vm/c1/c1_Compilation.cpp +++ b/hotspot/src/share/vm/c1/c1_Compilation.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 @@ -205,8 +205,6 @@ void Compilation::emit_lir() { void Compilation::emit_code_epilog(LIR_Assembler* assembler) { CHECK_BAILOUT(); - CodeOffsets* code_offsets = assembler->offsets(); - // generate code or slow cases assembler->emit_slow_case_stubs(); CHECK_BAILOUT(); @@ -215,18 +213,10 @@ void Compilation::emit_code_epilog(LIR_Assembler* assembler) { assembler->emit_exception_entries(exception_info_list()); CHECK_BAILOUT(); - // Generate code for exception handler. - code_offsets->set_value(CodeOffsets::Exceptions, assembler->emit_exception_handler()); + // generate code for exception handler + assembler->emit_exception_handler(); CHECK_BAILOUT(); - - // Generate code for deopt handler. - code_offsets->set_value(CodeOffsets::Deopt, assembler->emit_deopt_handler()); - CHECK_BAILOUT(); - - // Generate code for MethodHandle deopt handler. We can use the - // same code as for the normal deopt handler, we just need a - // different entry point address. - code_offsets->set_value(CodeOffsets::DeoptMH, assembler->emit_deopt_handler()); + assembler->emit_deopt_handler(); CHECK_BAILOUT(); // done diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp index 8219b534eb0..f5de2c73479 100644 --- a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-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 @@ -133,9 +133,9 @@ class LIR_Assembler: public CompilationResourceObj { void add_call_info_here(CodeEmitInfo* info) { add_call_info(code_offset(), info); } // code patterns - int emit_exception_handler(); + void emit_exception_handler(); void emit_exception_entries(ExceptionInfoList* info_list); - int emit_deopt_handler(); + void emit_deopt_handler(); void emit_code(BlockList* hir); void emit_block(BlockBegin* block); diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index 09aae4fa6a0..82cfc7631d1 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -592,7 +592,6 @@ nmethod::nmethod( // values something that will never match a pc like the nmethod vtable entry _exception_offset = 0; _deoptimize_offset = 0; - _deoptimize_mh_offset = 0; _orig_pc_offset = 0; #ifdef HAVE_DTRACE_H _trap_offset = 0; @@ -683,7 +682,6 @@ nmethod::nmethod( // values something that will never match a pc like the nmethod vtable entry _exception_offset = 0; _deoptimize_offset = 0; - _deoptimize_mh_offset = 0; _trap_offset = offsets->value(CodeOffsets::Dtrace_trap); _orig_pc_offset = 0; _stub_offset = data_offset(); @@ -796,7 +794,6 @@ nmethod::nmethod( // Exception handler and deopt handler are in the stub section _exception_offset = _stub_offset + offsets->value(CodeOffsets::Exceptions); _deoptimize_offset = _stub_offset + offsets->value(CodeOffsets::Deopt); - _deoptimize_mh_offset = _stub_offset + offsets->value(CodeOffsets::DeoptMH); _consts_offset = instructions_offset() + code_buffer->total_offset_of(code_buffer->consts()->start()); _scopes_data_offset = data_offset(); _scopes_pcs_offset = _scopes_data_offset + round_to(debug_info->data_size (), oopSize); @@ -2034,21 +2031,9 @@ void nmethodLocker::unlock_nmethod(nmethod* nm) { guarantee(nm->_lock_count >= 0, "unmatched nmethod lock/unlock"); } - -// ----------------------------------------------------------------------------- -// nmethod::get_deopt_original_pc -// -// Return the original PC for the given PC if: -// (a) the given PC belongs to a nmethod and -// (b) it is a deopt PC -address nmethod::get_deopt_original_pc(const frame* fr) { - if (fr->cb() == NULL) return NULL; - - nmethod* nm = fr->cb()->as_nmethod_or_null(); - if (nm != NULL && nm->is_deopt_pc(fr->pc())) - return nm->get_original_pc(fr); - - return NULL; +bool nmethod::is_deopt_pc(address pc) { + bool ret = pc == deopt_handler_begin(); + return ret; } @@ -2419,8 +2404,6 @@ void nmethod::print_nmethod_labels(outputStream* stream, address block_begin) { if (block_begin == verified_entry_point()) stream->print_cr("[Verified Entry Point]"); if (block_begin == exception_begin()) stream->print_cr("[Exception Handler]"); if (block_begin == stub_begin()) stream->print_cr("[Stub Code]"); - if (block_begin == deopt_handler_begin()) stream->print_cr("[Deopt Handler Code]"); - if (block_begin == deopt_mh_handler_begin()) stream->print_cr("[Deopt MH Handler Code]"); if (block_begin == consts_begin()) stream->print_cr("[Constants]"); if (block_begin == entry_point()) { methodHandle m = method(); diff --git a/hotspot/src/share/vm/code/nmethod.hpp b/hotspot/src/share/vm/code/nmethod.hpp index 5837c6b82e9..26a7edaac81 100644 --- a/hotspot/src/share/vm/code/nmethod.hpp +++ b/hotspot/src/share/vm/code/nmethod.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -145,12 +145,8 @@ class nmethod : public CodeBlob { // Offsets for different nmethod parts int _exception_offset; - // All deoptee's will resume execution at this location described by - // this offset. + // All deoptee's will resume execution at this location described by this offset int _deoptimize_offset; - // All deoptee's at a MethodHandle call site will resume execution - // at this location described by this offset. - int _deoptimize_mh_offset; #ifdef HAVE_DTRACE_H int _trap_offset; #endif // def HAVE_DTRACE_H @@ -333,25 +329,24 @@ class nmethod : public CodeBlob { bool is_compiled_by_c2() const; // boundaries for different parts - address code_begin () const { return _entry_point; } - address code_end () const { return header_begin() + _stub_offset ; } - address exception_begin () const { return header_begin() + _exception_offset ; } - address deopt_handler_begin () const { return header_begin() + _deoptimize_offset ; } - address deopt_mh_handler_begin() const { return header_begin() + _deoptimize_mh_offset ; } - address stub_begin () const { return header_begin() + _stub_offset ; } - address stub_end () const { return header_begin() + _consts_offset ; } - address consts_begin () const { return header_begin() + _consts_offset ; } - address consts_end () const { return header_begin() + _scopes_data_offset ; } - address scopes_data_begin () const { return header_begin() + _scopes_data_offset ; } - address scopes_data_end () const { return header_begin() + _scopes_pcs_offset ; } - PcDesc* scopes_pcs_begin () const { return (PcDesc*)(header_begin() + _scopes_pcs_offset ); } - PcDesc* scopes_pcs_end () const { return (PcDesc*)(header_begin() + _dependencies_offset) ; } - address dependencies_begin () const { return header_begin() + _dependencies_offset ; } - address dependencies_end () const { return header_begin() + _handler_table_offset ; } - address handler_table_begin () const { return header_begin() + _handler_table_offset ; } - address handler_table_end () const { return header_begin() + _nul_chk_table_offset ; } - address nul_chk_table_begin () const { return header_begin() + _nul_chk_table_offset ; } - address nul_chk_table_end () const { return header_begin() + _nmethod_end_offset ; } + address code_begin () const { return _entry_point; } + address code_end () const { return header_begin() + _stub_offset ; } + address exception_begin () const { return header_begin() + _exception_offset ; } + address deopt_handler_begin() const { return header_begin() + _deoptimize_offset ; } + address stub_begin () const { return header_begin() + _stub_offset ; } + address stub_end () const { return header_begin() + _consts_offset ; } + address consts_begin () const { return header_begin() + _consts_offset ; } + address consts_end () const { return header_begin() + _scopes_data_offset ; } + address scopes_data_begin () const { return header_begin() + _scopes_data_offset ; } + address scopes_data_end () const { return header_begin() + _scopes_pcs_offset ; } + PcDesc* scopes_pcs_begin () const { return (PcDesc*)(header_begin() + _scopes_pcs_offset ); } + PcDesc* scopes_pcs_end () const { return (PcDesc*)(header_begin() + _dependencies_offset); } + address dependencies_begin () const { return header_begin() + _dependencies_offset ; } + address dependencies_end () const { return header_begin() + _handler_table_offset ; } + address handler_table_begin() const { return header_begin() + _handler_table_offset ; } + address handler_table_end () const { return header_begin() + _nul_chk_table_offset ; } + address nul_chk_table_begin() const { return header_begin() + _nul_chk_table_offset ; } + address nul_chk_table_end () const { return header_begin() + _nmethod_end_offset ; } int code_size () const { return code_end () - code_begin (); } int stub_size () const { return stub_end () - stub_begin (); } @@ -520,7 +515,7 @@ class nmethod : public CodeBlob { private: ScopeDesc* scope_desc_in(address begin, address end); - address* orig_pc_addr(const frame* fr) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); } + address* orig_pc_addr(const frame* fr ) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); } PcDesc* find_pc_desc_internal(address pc, bool approximate); @@ -543,17 +538,13 @@ class nmethod : public CodeBlob { void copy_scopes_pcs(PcDesc* pcs, int count); void copy_scopes_data(address buffer, int size); - // Deopt - // Return true is the PC is one would expect if the frame is being deopted. - bool is_deopt_pc (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); } - bool is_deopt_entry (address pc) { return pc == deopt_handler_begin(); } - bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); } + // deopt + // return true is the pc is one would expect if the frame is being deopted. + bool is_deopt_pc(address pc); // Accessor/mutator for the original pc of a frame before a frame was deopted. address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); } void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; } - static address get_deopt_original_pc(const frame* fr); - // MethodHandle bool is_method_handle_return(address return_pc); diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp index 4cacb2f8445..c762808b63c 100644 --- a/hotspot/src/share/vm/opto/output.cpp +++ b/hotspot/src/share/vm/opto/output.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 @@ -1430,10 +1430,6 @@ void Compile::Fill_buffer() { _code_offsets.set_value(CodeOffsets::Exceptions, emit_exception_handler(*cb)); // Emit the deopt handler code. _code_offsets.set_value(CodeOffsets::Deopt, emit_deopt_handler(*cb)); - // Emit the MethodHandle deopt handler code. We can use the same - // code as for the normal deopt handler, we just need a different - // entry point address. - _code_offsets.set_value(CodeOffsets::DeoptMH, emit_deopt_handler(*cb)); } // One last check for failed CodeBuffer::expand: diff --git a/hotspot/src/share/vm/runtime/deoptimization.cpp b/hotspot/src/share/vm/runtime/deoptimization.cpp index e40e052a582..b5800824b59 100644 --- a/hotspot/src/share/vm/runtime/deoptimization.cpp +++ b/hotspot/src/share/vm/runtime/deoptimization.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -235,12 +235,6 @@ Deoptimization::UnrollBlock* Deoptimization::fetch_unroll_info_helper(JavaThread assert(cb->frame_size() >= 0, "Unexpected frame size"); intptr_t* unpack_sp = stub_frame.sp() + cb->frame_size(); - // If the deopt call site is a MethodHandle invoke call site we have - // to adjust the unpack_sp. - nmethod* deoptee_nm = deoptee.cb()->as_nmethod_or_null(); - if (deoptee_nm != NULL && deoptee_nm->is_method_handle_return(deoptee.pc())) - unpack_sp = deoptee.unextended_sp(); - #ifdef ASSERT assert(cb->is_deoptimization_stub() || cb->is_uncommon_trap_stub(), "just checking"); Events::log("fetch unroll sp " INTPTR_FORMAT, unpack_sp); diff --git a/hotspot/src/share/vm/runtime/frame.cpp b/hotspot/src/share/vm/runtime/frame.cpp index 9d4b95ecd9a..f82ef99735f 100644 --- a/hotspot/src/share/vm/runtime/frame.cpp +++ b/hotspot/src/share/vm/runtime/frame.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -107,11 +107,7 @@ void RegisterMap::print() const { address frame::raw_pc() const { if (is_deoptimized_frame()) { - nmethod* nm = cb()->as_nmethod_or_null(); - if (nm->is_method_handle_return(pc())) - return nm->deopt_mh_handler_begin() - pc_return_offset; - else - return nm->deopt_handler_begin() - pc_return_offset; + return ((nmethod*) cb())->deopt_handler_begin() - pc_return_offset; } else { return (pc() - pc_return_offset); } @@ -273,16 +269,10 @@ void frame::deoptimize(JavaThread* thread, bool thread_is_known_safe) { } // NeedsDeoptSuspend - // If the call site is a MethodHandle call site use the MH deopt - // handler. - address deopt = nm->is_method_handle_return(pc()) ? - nm->deopt_mh_handler_begin() : - nm->deopt_handler_begin(); - + address deopt = nm->deopt_handler_begin(); // Save the original pc before we patch in the new one nm->set_original_pc(this, pc()); patch_pc(thread, deopt); - #ifdef ASSERT { RegisterMap map(thread, false); @@ -311,29 +301,6 @@ frame frame::real_sender(RegisterMap* map) const { return result; } - -//------------------------------------------------------------------------------ -// frame::verify_deopt_original_pc -// -// Verifies the calculated original PC of a deoptimization PC for the -// given unextended SP. The unextended SP might also be the saved SP -// for MethodHandle call sites. -#if ASSERT -void frame::verify_deopt_original_pc(nmethod* nm, intptr_t* unextended_sp, bool is_method_handle_return) { - frame fr; - - // This is ugly but it's better than to change {get,set}_original_pc - // to take an SP value as argument. And it's only a debugging - // method anyway. - fr._unextended_sp = unextended_sp; - - address original_pc = nm->get_original_pc(&fr); - assert(nm->code_contains(original_pc), "original PC must be in nmethod"); - assert(nm->is_method_handle_return(original_pc) == is_method_handle_return, "must be"); -} -#endif - - // Note: called by profiler - NOT for current thread frame frame::profile_find_Java_sender_frame(JavaThread *thread) { // If we don't recognize this frame, walk back up the stack until we do diff --git a/hotspot/src/share/vm/runtime/frame.hpp b/hotspot/src/share/vm/runtime/frame.hpp index 434d2d11c4e..92df6b353d5 100644 --- a/hotspot/src/share/vm/runtime/frame.hpp +++ b/hotspot/src/share/vm/runtime/frame.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 @@ -141,14 +141,6 @@ class frame VALUE_OBJ_CLASS_SPEC { frame sender_for_interpreter_frame(RegisterMap* map) const; frame sender_for_native_frame(RegisterMap* map) const; -#if ASSERT - // Used in frame::sender_for_{interpreter,compiled}_frame - static void verify_deopt_original_pc( nmethod* nm, intptr_t* unextended_sp, bool is_method_handle_return = false); - static void verify_deopt_mh_original_pc(nmethod* nm, intptr_t* unextended_sp) { - verify_deopt_original_pc(nm, unextended_sp, true); - } -#endif - // All frames: // A low-level interface for vframes: diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index cfe9e45fc33..bf100e71407 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -1033,20 +1033,10 @@ JRT_BLOCK_ENTRY(address, SharedRuntime::handle_wrong_method(JavaThread* thread)) address sender_pc = caller_frame.pc(); CodeBlob* sender_cb = caller_frame.cb(); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); - bool is_mh_invoke_via_adapter = false; // Direct c2c call or via adapter? - if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { - // If the callee_target is set, then we have come here via an i2c - // adapter. - methodOop callee = thread->callee_target(); - if (callee != NULL) { - assert(callee->is_method(), "sanity"); - is_mh_invoke_via_adapter = true; - } - } if (caller_frame.is_interpreted_frame() || - caller_frame.is_entry_frame() || - is_mh_invoke_via_adapter) { + caller_frame.is_entry_frame() || + (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc))) { methodOop callee = thread->callee_target(); guarantee(callee != NULL && callee->is_method(), "bad handshake"); thread->set_vm_result(callee); @@ -1427,7 +1417,7 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr if (callee == cb || callee->is_adapter_blob()) { // static call or optimized virtual if (TraceCallFixup) { - tty->print("fixup callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); + tty->print("fixup callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); moop->print_short_name(tty); tty->print_cr(" to " INTPTR_FORMAT, entry_point); } @@ -1443,7 +1433,7 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr } } else { if (TraceCallFixup) { - tty->print("already patched callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); + tty->print("already patched callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); moop->print_short_name(tty); tty->print_cr(" to " INTPTR_FORMAT, entry_point); } From a57d68e35b2cccd5f509555ec1b9ad06ec4da367 Mon Sep 17 00:00:00 2001 From: Eric Caspole Date: Fri, 29 Jan 2010 09:27:22 -0800 Subject: [PATCH 048/109] 4360113: Evict nmethods when code cache gets full Speculatively unload the oldest nmethods when code cache gets full. Reviewed-by: never, kvn --- hotspot/src/share/vm/ci/ciEnv.cpp | 16 +- hotspot/src/share/vm/code/codeCache.cpp | 80 +++++++ hotspot/src/share/vm/code/codeCache.hpp | 6 + hotspot/src/share/vm/code/nmethod.cpp | 12 +- hotspot/src/share/vm/code/nmethod.hpp | 9 + .../src/share/vm/compiler/compileBroker.cpp | 75 +++++-- .../src/share/vm/compiler/compileBroker.hpp | 18 ++ hotspot/src/share/vm/includeDB_compiler2 | 1 + hotspot/src/share/vm/includeDB_core | 7 + hotspot/src/share/vm/oops/methodOop.cpp | 14 +- hotspot/src/share/vm/oops/methodOop.hpp | 2 +- hotspot/src/share/vm/opto/output.cpp | 6 +- .../share/vm/runtime/compilationPolicy.cpp | 10 +- hotspot/src/share/vm/runtime/globals.hpp | 9 + .../src/share/vm/runtime/sharedRuntime.cpp | 30 +-- hotspot/src/share/vm/runtime/sweeper.cpp | 207 +++++++++++++++++- hotspot/src/share/vm/runtime/sweeper.hpp | 11 + .../src/share/vm/runtime/vm_operations.cpp | 4 + .../src/share/vm/runtime/vm_operations.hpp | 11 + 19 files changed, 452 insertions(+), 76 deletions(-) diff --git a/hotspot/src/share/vm/ci/ciEnv.cpp b/hotspot/src/share/vm/ci/ciEnv.cpp index e09c66a74dd..02c8cb78269 100644 --- a/hotspot/src/share/vm/ci/ciEnv.cpp +++ b/hotspot/src/share/vm/ci/ciEnv.cpp @@ -962,18 +962,10 @@ void ciEnv::register_method(ciMethod* target, if (nm == NULL) { // The CodeCache is full. Print out warning and disable compilation. record_failure("code cache is full"); - UseInterpreter = true; - if (UseCompiler || AlwaysCompileLoopMethods ) { -#ifndef PRODUCT - warning("CodeCache is full. Compiler has been disabled"); - if (CompileTheWorld || ExitOnFullCodeCache) { - before_exit(JavaThread::current()); - exit_globals(); // will delete tty - vm_direct_exit(CompileTheWorld ? 0 : 1); - } -#endif - UseCompiler = false; - AlwaysCompileLoopMethods = false; + { + MutexUnlocker ml(Compile_lock); + MutexUnlocker locker(MethodCompileQueue_lock); + CompileBroker::handle_full_code_cache(); } } else { NOT_PRODUCT(nm->set_has_debug_info(has_debug_info); ) diff --git a/hotspot/src/share/vm/code/codeCache.cpp b/hotspot/src/share/vm/code/codeCache.cpp index 0300957cca2..65ee62241fe 100644 --- a/hotspot/src/share/vm/code/codeCache.cpp +++ b/hotspot/src/share/vm/code/codeCache.cpp @@ -96,6 +96,7 @@ int CodeCache::_number_of_blobs = 0; int CodeCache::_number_of_nmethods_with_dependencies = 0; bool CodeCache::_needs_cache_clean = false; nmethod* CodeCache::_scavenge_root_nmethods = NULL; +nmethod* CodeCache::_saved_nmethods = NULL; CodeBlob* CodeCache::first() { @@ -395,6 +396,85 @@ void CodeCache::verify_perm_nmethods(CodeBlobClosure* f_or_null) { } #endif //PRODUCT + +nmethod* CodeCache::find_and_remove_saved_code(methodOop m) { + MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); + nmethod* saved = _saved_nmethods; + nmethod* prev = NULL; + while (saved != NULL) { + if (saved->is_in_use() && saved->method() == m) { + if (prev != NULL) { + prev->set_saved_nmethod_link(saved->saved_nmethod_link()); + } else { + _saved_nmethods = saved->saved_nmethod_link(); + } + assert(saved->is_speculatively_disconnected(), "shouldn't call for other nmethods"); + saved->set_speculatively_disconnected(false); + saved->set_saved_nmethod_link(NULL); + if (PrintMethodFlushing) { + saved->print_on(tty, " ### nmethod is reconnected"); + } + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("nmethod_reconnected compile_id='%3d'", saved->compile_id()); + xtty->method(methodOop(m)); + xtty->stamp(); + xtty->end_elem(); + } + return saved; + } + prev = saved; + saved = saved->saved_nmethod_link(); + } + return NULL; +} + +void CodeCache::remove_saved_code(nmethod* nm) { + MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); + assert(nm->is_speculatively_disconnected(), "shouldn't call for other nmethods"); + nmethod* saved = _saved_nmethods; + nmethod* prev = NULL; + while (saved != NULL) { + if (saved == nm) { + if (prev != NULL) { + prev->set_saved_nmethod_link(saved->saved_nmethod_link()); + } else { + _saved_nmethods = saved->saved_nmethod_link(); + } + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("nmethod_removed compile_id='%3d'", nm->compile_id()); + xtty->stamp(); + xtty->end_elem(); + } + return; + } + prev = saved; + saved = saved->saved_nmethod_link(); + } + ShouldNotReachHere(); +} + +void CodeCache::speculatively_disconnect(nmethod* nm) { + assert_locked_or_safepoint(CodeCache_lock); + assert(nm->is_in_use() && !nm->is_speculatively_disconnected(), "should only disconnect live nmethods"); + nm->set_saved_nmethod_link(_saved_nmethods); + _saved_nmethods = nm; + if (PrintMethodFlushing) { + nm->print_on(tty, " ### nmethod is speculatively disconnected"); + } + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("nmethod_disconnected compile_id='%3d'", nm->compile_id()); + xtty->method(methodOop(nm->method())); + xtty->stamp(); + xtty->end_elem(); + } + nm->method()->clear_code(); + nm->set_speculatively_disconnected(true); +} + + void CodeCache::gc_prologue() { assert(!nmethod::oops_do_marking_is_active(), "oops_do_marking_epilogue must be called"); } diff --git a/hotspot/src/share/vm/code/codeCache.hpp b/hotspot/src/share/vm/code/codeCache.hpp index da5149c6eb4..9eacd5d4cd2 100644 --- a/hotspot/src/share/vm/code/codeCache.hpp +++ b/hotspot/src/share/vm/code/codeCache.hpp @@ -46,6 +46,7 @@ class CodeCache : AllStatic { static int _number_of_nmethods_with_dependencies; static bool _needs_cache_clean; static nmethod* _scavenge_root_nmethods; // linked via nm->scavenge_root_link() + static nmethod* _saved_nmethods; // linked via nm->saved_nmethod_look() static void verify_if_often() PRODUCT_RETURN; @@ -141,11 +142,16 @@ class CodeCache : AllStatic { static size_t capacity() { return _heap->capacity(); } static size_t max_capacity() { return _heap->max_capacity(); } static size_t unallocated_capacity() { return _heap->unallocated_capacity(); } + static bool needs_flushing() { return unallocated_capacity() < CodeCacheFlushingMinimumFreeSpace; } static bool needs_cache_clean() { return _needs_cache_clean; } static void set_needs_cache_clean(bool v) { _needs_cache_clean = v; } static void clear_inline_caches(); // clear all inline caches + static nmethod* find_and_remove_saved_code(methodOop m); + static void remove_saved_code(nmethod* nm); + static void speculatively_disconnect(nmethod* nm); + // Deoptimization static int mark_for_deoptimization(DepChange& changes); #ifdef HOTSWAP diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index 82cfc7631d1..f86211982bc 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -587,6 +587,7 @@ nmethod::nmethod( _osr_link = NULL; _scavenge_root_link = NULL; _scavenge_root_state = 0; + _saved_nmethod_link = NULL; _compiler = NULL; // We have no exception handler or deopt handler make the // values something that will never match a pc like the nmethod vtable entry @@ -1033,7 +1034,7 @@ void nmethod::cleanup_inline_caches() { if( cb != NULL && cb->is_nmethod() ) { nmethod* nm = (nmethod*)cb; // Clean inline caches pointing to both zombie and not_entrant methods - if (!nm->is_in_use()) ic->set_to_clean(); + if (!nm->is_in_use() || (nm->method()->code() != nm)) ic->set_to_clean(); } break; } @@ -1043,7 +1044,7 @@ void nmethod::cleanup_inline_caches() { if( cb != NULL && cb->is_nmethod() ) { nmethod* nm = (nmethod*)cb; // Clean inline caches pointing to both zombie and not_entrant methods - if (!nm->is_in_use()) csc->set_to_clean(); + if (!nm->is_in_use() || (nm->method()->code() != nm)) csc->set_to_clean(); } break; } @@ -1312,7 +1313,8 @@ void nmethod::flush() { // completely deallocate this method EventMark m("flushing nmethod " INTPTR_FORMAT " %s", this, ""); if (PrintMethodFlushing) { - tty->print_cr("*flushing nmethod " INTPTR_FORMAT ". Live blobs: %d", this, CodeCache::nof_blobs()); + tty->print_cr("*flushing nmethod %3d/" INTPTR_FORMAT ". Live blobs:" UINT32_FORMAT "/Free CodeCache:" SIZE_FORMAT "Kb", + _compile_id, this, CodeCache::nof_blobs(), CodeCache::unallocated_capacity()/1024); } // We need to deallocate any ExceptionCache data. @@ -1330,6 +1332,10 @@ void nmethod::flush() { CodeCache::drop_scavenge_root_nmethod(this); } + if (is_speculatively_disconnected()) { + CodeCache::remove_saved_code(this); + } + ((CodeBlob*)(this))->flush(); CodeCache::free(this); diff --git a/hotspot/src/share/vm/code/nmethod.hpp b/hotspot/src/share/vm/code/nmethod.hpp index 26a7edaac81..7ca0bc86838 100644 --- a/hotspot/src/share/vm/code/nmethod.hpp +++ b/hotspot/src/share/vm/code/nmethod.hpp @@ -95,6 +95,8 @@ struct nmFlags { unsigned int has_unsafe_access:1; // May fault due to unsafe access. unsigned int has_method_handle_invokes:1; // Has this method MethodHandle invokes? + unsigned int speculatively_disconnected:1; // Marked for potential unload + void clear(); }; @@ -137,6 +139,7 @@ class nmethod : public CodeBlob { // To support simple linked-list chaining of nmethods: nmethod* _osr_link; // from instanceKlass::osr_nmethods_head nmethod* _scavenge_root_link; // from CodeCache::scavenge_root_nmethods + nmethod* _saved_nmethod_link; // from CodeCache::speculatively_disconnect static nmethod* volatile _oops_do_mark_nmethods; nmethod* volatile _oops_do_mark_link; @@ -413,6 +416,9 @@ class nmethod : public CodeBlob { bool has_method_handle_invokes() const { return flags.has_method_handle_invokes; } void set_has_method_handle_invokes(bool z) { flags.has_method_handle_invokes = z; } + bool is_speculatively_disconnected() const { return flags.speculatively_disconnected; } + void set_speculatively_disconnected(bool z) { flags.speculatively_disconnected = z; } + int level() const { return flags.level; } void set_level(int newLevel) { check_safepoint(); flags.level = newLevel; } @@ -437,6 +443,9 @@ class nmethod : public CodeBlob { nmethod* scavenge_root_link() const { return _scavenge_root_link; } void set_scavenge_root_link(nmethod *n) { _scavenge_root_link = n; } + nmethod* saved_nmethod_link() const { return _saved_nmethod_link; } + void set_saved_nmethod_link(nmethod *n) { _saved_nmethod_link = n; } + public: // Sweeper support diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 41d963a253e..0d4776d2cc0 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -69,6 +69,7 @@ HS_DTRACE_PROBE_DECL9(hotspot, method__compile__end, bool CompileBroker::_initialized = false; volatile bool CompileBroker::_should_block = false; +volatile jint CompileBroker::_should_compile_new_jobs = run_compilation; // The installed compiler(s) AbstractCompiler* CompileBroker::_compilers[2]; @@ -986,6 +987,13 @@ nmethod* CompileBroker::compile_method(methodHandle method, int osr_bci, return method_code; } if (method->is_not_compilable(comp_level)) return NULL; + + nmethod* saved = CodeCache::find_and_remove_saved_code(method()); + if (saved != NULL) { + method->set_code(method, saved); + return saved; + } + } else { // osr compilation #ifndef TIERED @@ -1037,6 +1045,14 @@ nmethod* CompileBroker::compile_method(methodHandle method, int osr_bci, method->jmethod_id(); } + // If the compiler is shut off due to code cache flushing or otherwise, + // fail out now so blocking compiles dont hang the java thread + if (!should_compile_new_jobs() || (UseCodeCacheFlushing && CodeCache::needs_flushing())) { + method->invocation_counter()->decay(); + method->backedge_counter()->decay(); + return NULL; + } + // do the compilation if (method->is_native()) { if (!PreferInterpreterNativeStubs) { @@ -1325,26 +1341,13 @@ void CompileBroker::compiler_thread_loop() { { // We need this HandleMark to avoid leaking VM handles. HandleMark hm(thread); + if (CodeCache::unallocated_capacity() < CodeCacheMinimumFreeSpace) { - // The CodeCache is full. Print out warning and disable compilation. - UseInterpreter = true; - if (UseCompiler || AlwaysCompileLoopMethods ) { - if (log != NULL) { - log->begin_elem("code_cache_full"); - log->stamp(); - log->end_elem(); - } -#ifndef PRODUCT - warning("CodeCache is full. Compiler has been disabled"); - if (CompileTheWorld || ExitOnFullCodeCache) { - before_exit(thread); - exit_globals(); // will delete tty - vm_direct_exit(CompileTheWorld ? 0 : 1); - } -#endif - UseCompiler = false; - AlwaysCompileLoopMethods = false; - } + // the code cache is really full + handle_full_code_cache(); + } else if (UseCodeCacheFlushing && CodeCache::needs_flushing()) { + // Attempt to start cleaning the code cache while there is still a little headroom + NMethodSweeper::handle_full_code_cache(false); } CompileTask* task = queue->get(); @@ -1369,7 +1372,7 @@ void CompileBroker::compiler_thread_loop() { // Never compile a method if breakpoints are present in it if (method()->number_of_breakpoints() == 0) { // Compile the method. - if (UseCompiler || AlwaysCompileLoopMethods) { + if ((UseCompiler || AlwaysCompileLoopMethods) && CompileBroker::should_compile_new_jobs()) { #ifdef COMPILER1 // Allow repeating compilations for the purpose of benchmarking // compile speed. This is not useful for customers. @@ -1613,6 +1616,38 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) { } +// ------------------------------------------------------------------ +// CompileBroker::handle_full_code_cache +// +// The CodeCache is full. Print out warning and disable compilation or +// try code cache cleaning so compilation can continue later. +void CompileBroker::handle_full_code_cache() { + UseInterpreter = true; + if (UseCompiler || AlwaysCompileLoopMethods ) { + CompilerThread* thread = CompilerThread::current(); + CompileLog* log = thread->log(); + if (log != NULL) { + log->begin_elem("code_cache_full"); + log->stamp(); + log->end_elem(); + } + #ifndef PRODUCT + warning("CodeCache is full. Compiler has been disabled"); + if (CompileTheWorld || ExitOnFullCodeCache) { + before_exit(JavaThread::current()); + exit_globals(); // will delete tty + vm_direct_exit(CompileTheWorld ? 0 : 1); + } + #endif + if (UseCodeCacheFlushing) { + NMethodSweeper::handle_full_code_cache(true); + } else { + UseCompiler = false; + AlwaysCompileLoopMethods = false; + } + } +} + // ------------------------------------------------------------------ // CompileBroker::set_last_compile // diff --git a/hotspot/src/share/vm/compiler/compileBroker.hpp b/hotspot/src/share/vm/compiler/compileBroker.hpp index d976be14f26..83383378fa6 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.hpp +++ b/hotspot/src/share/vm/compiler/compileBroker.hpp @@ -193,6 +193,9 @@ class CompileBroker: AllStatic { static bool _initialized; static volatile bool _should_block; + // This flag can be used to stop compilation or turn it back on + static volatile jint _should_compile_new_jobs; + // The installed compiler(s) static AbstractCompiler* _compilers[2]; @@ -319,6 +322,7 @@ class CompileBroker: AllStatic { static void compiler_thread_loop(); + static uint get_compilation_id() { return _compilation_id; } static bool is_idle(); // Set _should_block. @@ -328,6 +332,20 @@ class CompileBroker: AllStatic { // Call this from the compiler at convenient points, to poll for _should_block. static void maybe_block(); + enum { + // Flags for toggling compiler activity + stop_compilation = 0, + run_compilation = 1 + }; + + static bool should_compile_new_jobs() { return UseCompiler && (_should_compile_new_jobs == run_compilation); } + static bool set_should_compile_new_jobs(jint new_state) { + // Return success if the current caller set it + jint old = Atomic::cmpxchg(new_state, &_should_compile_new_jobs, 1-new_state); + return (old == (1-new_state)); + } + static void handle_full_code_cache(); + // Return total compilation ticks static jlong total_compilation_ticks() { return _perf_total_compilation != NULL ? _perf_total_compilation->get_value() : 0; diff --git a/hotspot/src/share/vm/includeDB_compiler2 b/hotspot/src/share/vm/includeDB_compiler2 index 34c84d72200..5c2f1c5c9fe 100644 --- a/hotspot/src/share/vm/includeDB_compiler2 +++ b/hotspot/src/share/vm/includeDB_compiler2 @@ -775,6 +775,7 @@ output.cpp allocation.inline.hpp output.cpp assembler.inline.hpp output.cpp callnode.hpp output.cpp cfgnode.hpp +output.cpp compileBroker.hpp output.cpp debugInfo.hpp output.cpp debugInfoRec.hpp output.cpp handles.inline.hpp diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core index a4e809b52ab..1d60e4de8c5 100644 --- a/hotspot/src/share/vm/includeDB_core +++ b/hotspot/src/share/vm/includeDB_core @@ -1032,6 +1032,7 @@ codeCache.cpp objArrayOop.hpp codeCache.cpp oop.inline.hpp codeCache.cpp pcDesc.hpp codeCache.cpp resourceArea.hpp +codeCache.cpp xmlstream.hpp codeCache.hpp allocation.hpp codeCache.hpp codeBlob.hpp @@ -1120,6 +1121,7 @@ compileBroker.cpp nativeLookup.hpp compileBroker.cpp oop.inline.hpp compileBroker.cpp os.hpp compileBroker.cpp sharedRuntime.hpp +compileBroker.cpp sweeper.hpp compileBroker.cpp systemDictionary.hpp compileBroker.cpp vmSymbols.hpp @@ -3719,6 +3721,7 @@ sharedHeap.hpp permGen.hpp sharedRuntime.cpp abstractCompiler.hpp sharedRuntime.cpp arguments.hpp sharedRuntime.cpp biasedLocking.hpp +sharedRuntime.cpp compileBroker.hpp sharedRuntime.cpp compiledIC.hpp sharedRuntime.cpp compilerOracle.hpp sharedRuntime.cpp copy.hpp @@ -3973,6 +3976,7 @@ stubs.hpp os_.inline.hpp sweeper.cpp atomic.hpp sweeper.cpp codeCache.hpp +sweeper.cpp compileBroker.hpp sweeper.cpp events.hpp sweeper.cpp methodOop.hpp sweeper.cpp mutexLocker.hpp @@ -3980,6 +3984,8 @@ sweeper.cpp nmethod.hpp sweeper.cpp os.hpp sweeper.cpp resourceArea.hpp sweeper.cpp sweeper.hpp +sweeper.cpp vm_operations.hpp +sweeper.cpp xmlstream.hpp symbolKlass.cpp gcLocker.hpp symbolKlass.cpp handles.inline.hpp @@ -4633,6 +4639,7 @@ vm_operations.cpp deoptimization.hpp vm_operations.cpp interfaceSupport.hpp vm_operations.cpp isGCActiveMark.hpp vm_operations.cpp resourceArea.hpp +vm_operations.cpp sweeper.hpp vm_operations.cpp threadService.hpp vm_operations.cpp thread_.inline.hpp vm_operations.cpp vmSymbols.hpp diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp index 12e998287e0..36790abad7a 100644 --- a/hotspot/src/share/vm/oops/methodOop.cpp +++ b/hotspot/src/share/vm/oops/methodOop.cpp @@ -705,6 +705,16 @@ address methodOopDesc::make_adapters(methodHandle mh, TRAPS) { // This function must not hit a safepoint! address methodOopDesc::verified_code_entry() { debug_only(No_Safepoint_Verifier nsv;) + nmethod *code = (nmethod *)OrderAccess::load_ptr_acquire(&_code); + if (code == NULL && UseCodeCacheFlushing) { + nmethod *saved_code = CodeCache::find_and_remove_saved_code(this); + if (saved_code != NULL) { + methodHandle method(this); + assert( ! saved_code->is_osr_method(), "should not get here for osr" ); + set_code( method, saved_code ); + } + } + assert(_from_compiled_entry != NULL, "must be set"); return _from_compiled_entry; } @@ -733,8 +743,8 @@ void methodOopDesc::set_code(methodHandle mh, nmethod *code) { int comp_level = code->comp_level(); // In theory there could be a race here. In practice it is unlikely // and not worth worrying about. - if (comp_level > highest_tier_compile()) { - set_highest_tier_compile(comp_level); + if (comp_level > mh->highest_tier_compile()) { + mh->set_highest_tier_compile(comp_level); } OrderAccess::storestore(); diff --git a/hotspot/src/share/vm/oops/methodOop.hpp b/hotspot/src/share/vm/oops/methodOop.hpp index 4c9a6f05172..fbb514539bc 100644 --- a/hotspot/src/share/vm/oops/methodOop.hpp +++ b/hotspot/src/share/vm/oops/methodOop.hpp @@ -303,7 +303,7 @@ class methodOopDesc : public oopDesc { bool check_code() const; // Not inline to avoid circular ref nmethod* volatile code() const { assert( check_code(), "" ); return (nmethod *)OrderAccess::load_ptr_acquire(&_code); } void clear_code(); // Clear out any compiled code - void set_code(methodHandle mh, nmethod* code); + static void set_code(methodHandle mh, nmethod* code); void set_adapter_entry(AdapterHandlerEntry* adapter) { _adapter = adapter; } address get_i2c_entry(); address get_c2i_entry(); diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp index c762808b63c..3403ba71072 100644 --- a/hotspot/src/share/vm/opto/output.cpp +++ b/hotspot/src/share/vm/opto/output.cpp @@ -1093,7 +1093,7 @@ void Compile::Fill_buffer() { cb->initialize(total_req, locs_req); // Have we run out of code space? - if (cb->blob() == NULL) { + if ((cb->blob() == NULL) || (!CompileBroker::should_compile_new_jobs())) { turn_off_compiler(this); return; } @@ -1314,7 +1314,7 @@ void Compile::Fill_buffer() { // Verify that there is sufficient space remaining cb->insts()->maybe_expand_to_ensure_remaining(MAX_inst_size); - if (cb->blob() == NULL) { + if ((cb->blob() == NULL) || (!CompileBroker::should_compile_new_jobs())) { turn_off_compiler(this); return; } @@ -1433,7 +1433,7 @@ void Compile::Fill_buffer() { } // One last check for failed CodeBuffer::expand: - if (cb->blob() == NULL) { + if ((cb->blob() == NULL) || (!CompileBroker::should_compile_new_jobs())) { turn_off_compiler(this); return; } diff --git a/hotspot/src/share/vm/runtime/compilationPolicy.cpp b/hotspot/src/share/vm/runtime/compilationPolicy.cpp index 2892ef123ed..a11a2822ae2 100644 --- a/hotspot/src/share/vm/runtime/compilationPolicy.cpp +++ b/hotspot/src/share/vm/runtime/compilationPolicy.cpp @@ -66,7 +66,7 @@ bool CompilationPolicy::mustBeCompiled(methodHandle m) { if (!canBeCompiled(m)) return false; return !UseInterpreter || // must compile all methods - (UseCompiler && AlwaysCompileLoopMethods && m->has_loops()); // eagerly compile loop methods + (UseCompiler && AlwaysCompileLoopMethods && m->has_loops() && CompileBroker::should_compile_new_jobs()); // eagerly compile loop methods } // Returns true if m is allowed to be compiled @@ -137,7 +137,7 @@ void SimpleCompPolicy::method_invocation_event( methodHandle m, TRAPS) { reset_counter_for_invocation_event(m); const char* comment = "count"; - if (!delayCompilationDuringStartup() && canBeCompiled(m) && UseCompiler) { + if (!delayCompilationDuringStartup() && canBeCompiled(m) && UseCompiler && CompileBroker::should_compile_new_jobs()) { nmethod* nm = m->code(); if (nm == NULL ) { const char* comment = "count"; @@ -162,7 +162,7 @@ void SimpleCompPolicy::method_back_branch_event(methodHandle m, int branch_bci, int hot_count = m->backedge_count(); const char* comment = "backedge_count"; - if (!m->is_not_osr_compilable() && !delayCompilationDuringStartup() && canBeCompiled(m)) { + if (!m->is_not_osr_compilable() && !delayCompilationDuringStartup() && canBeCompiled(m) && CompileBroker::should_compile_new_jobs()) { CompileBroker::compile_method(m, loop_top_bci, m, hot_count, comment, CHECK); NOT_PRODUCT(trace_osr_completion(m->lookup_osr_nmethod_for(loop_top_bci));) @@ -204,7 +204,7 @@ void StackWalkCompPolicy::method_invocation_event(methodHandle m, TRAPS) { reset_counter_for_invocation_event(m); const char* comment = "count"; - if (m->code() == NULL && !delayCompilationDuringStartup() && canBeCompiled(m) && UseCompiler) { + if (m->code() == NULL && !delayCompilationDuringStartup() && canBeCompiled(m) && UseCompiler && CompileBroker::should_compile_new_jobs()) { ResourceMark rm(THREAD); JavaThread *thread = (JavaThread*)THREAD; frame fr = thread->last_frame(); @@ -248,7 +248,7 @@ void StackWalkCompPolicy::method_back_branch_event(methodHandle m, int branch_bc int hot_count = m->backedge_count(); const char* comment = "backedge_count"; - if (!m->is_not_osr_compilable() && !delayCompilationDuringStartup() && canBeCompiled(m)) { + if (!m->is_not_osr_compilable() && !delayCompilationDuringStartup() && canBeCompiled(m) && CompileBroker::should_compile_new_jobs()) { CompileBroker::compile_method(m, loop_top_bci, m, hot_count, comment, CHECK); NOT_PRODUCT(trace_osr_completion(m->lookup_osr_nmethod_for(loop_top_bci));) diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 01ebb49f935..777fb94ea80 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -3117,6 +3117,15 @@ class CommandLineFlags { notproduct(bool, ExitOnFullCodeCache, false, \ "Exit the VM if we fill the code cache.") \ \ + product(bool, UseCodeCacheFlushing, false, \ + "Attempt to clean the code cache before shutting off compiler") \ + \ + product(intx, MinCodeCacheFlushingInterval, 30, \ + "Min number of seconds between code cache cleaning sessions") \ + \ + product(uintx, CodeCacheFlushingMinimumFreeSpace, 1500*K, \ + "When less than X space left, start code cache cleaning") \ + \ /* interpreter debugging */ \ develop(intx, BinarySwitchThreshold, 5, \ "Minimal number of lookupswitch entries for rewriting to binary " \ diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index bf100e71407..7fb17382ce5 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -2146,19 +2146,8 @@ AdapterHandlerEntry* AdapterHandlerLibrary::get_adapter(methodHandle method) { // CodeCache is full, disable compilation // Ought to log this but compile log is only per compile thread // and we're some non descript Java thread. - UseInterpreter = true; - if (UseCompiler || AlwaysCompileLoopMethods ) { -#ifndef PRODUCT - warning("CodeCache is full. Compiler has been disabled"); - if (CompileTheWorld || ExitOnFullCodeCache) { - before_exit(JavaThread::current()); - exit_globals(); // will delete tty - vm_direct_exit(CompileTheWorld ? 0 : 1); - } -#endif - UseCompiler = false; - AlwaysCompileLoopMethods = false; - } + MutexUnlocker mu(AdapterHandlerLibrary_lock); + CompileBroker::handle_full_code_cache(); return NULL; // Out of CodeCache space } entry->relocate(B->instructions_begin()); @@ -2282,19 +2271,8 @@ nmethod *AdapterHandlerLibrary::create_native_wrapper(methodHandle method) { // CodeCache is full, disable compilation // Ought to log this but compile log is only per compile thread // and we're some non descript Java thread. - UseInterpreter = true; - if (UseCompiler || AlwaysCompileLoopMethods ) { -#ifndef PRODUCT - warning("CodeCache is full. Compiler has been disabled"); - if (CompileTheWorld || ExitOnFullCodeCache) { - before_exit(JavaThread::current()); - exit_globals(); // will delete tty - vm_direct_exit(CompileTheWorld ? 0 : 1); - } -#endif - UseCompiler = false; - AlwaysCompileLoopMethods = false; - } + MutexUnlocker mu(AdapterHandlerLibrary_lock); + CompileBroker::handle_full_code_cache(); } return nm; } diff --git a/hotspot/src/share/vm/runtime/sweeper.cpp b/hotspot/src/share/vm/runtime/sweeper.cpp index 70417c3d49c..9b319ef3839 100644 --- a/hotspot/src/share/vm/runtime/sweeper.cpp +++ b/hotspot/src/share/vm/runtime/sweeper.cpp @@ -33,6 +33,11 @@ int NMethodSweeper::_invocations = 0; // No. of invocations left until we jint NMethodSweeper::_locked_seen = 0; jint NMethodSweeper::_not_entrant_seen_on_stack = 0; bool NMethodSweeper::_rescan = false; +bool NMethodSweeper::_was_full = false; +jint NMethodSweeper::_advise_to_sweep = 0; +jlong NMethodSweeper::_last_was_full = 0; +uint NMethodSweeper::_highest_marked = 0; +long NMethodSweeper::_was_full_traversal = 0; class MarkActivationClosure: public CodeBlobClosure { public: @@ -114,6 +119,40 @@ void NMethodSweeper::sweep() { tty->print_cr("### Couldn't make progress on some nmethods so stopping sweep"); } } + + if (UseCodeCacheFlushing) { + if (!CodeCache::needs_flushing()) { + // In a safepoint, no race with setters + _advise_to_sweep = 0; + } + + if (was_full()) { + // There was some progress so attempt to restart the compiler + jlong now = os::javaTimeMillis(); + jlong max_interval = (jlong)MinCodeCacheFlushingInterval * (jlong)1000; + jlong curr_interval = now - _last_was_full; + if ((!CodeCache::needs_flushing()) && (curr_interval > max_interval)) { + CompileBroker::set_should_compile_new_jobs(CompileBroker::run_compilation); + set_was_full(false); + + // Update the _last_was_full time so we can tell how fast the + // code cache is filling up + _last_was_full = os::javaTimeMillis(); + + if (PrintMethodFlushing) { + tty->print_cr("### sweeper: Live blobs:" UINT32_FORMAT "/Free code cache:" SIZE_FORMAT " bytes, restarting compiler", + CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + } + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("restart_compiler live_blobs='" UINT32_FORMAT "' free_code_cache='" SIZE_FORMAT "'", + CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + xtty->stamp(); + xtty->end_elem(); + } + } + } + } } @@ -137,12 +176,12 @@ void NMethodSweeper::process_nmethod(nmethod *nm) { if (nm->is_marked_for_reclamation()) { assert(!nm->is_locked_by_vm(), "must not flush locked nmethods"); if (PrintMethodFlushing && Verbose) { - tty->print_cr("### Nmethod 0x%x (marked for reclamation) being flushed", nm); + tty->print_cr("### Nmethod %3d/" PTR_FORMAT " (marked for reclamation) being flushed", nm->compile_id(), nm); } nm->flush(); } else { if (PrintMethodFlushing && Verbose) { - tty->print_cr("### Nmethod 0x%x (zombie) being marked for reclamation", nm); + tty->print_cr("### Nmethod %3d/" PTR_FORMAT " (zombie) being marked for reclamation", nm->compile_id(), nm); } nm->mark_for_reclamation(); _rescan = true; @@ -152,7 +191,7 @@ void NMethodSweeper::process_nmethod(nmethod *nm) { // stack we can safely convert it to a zombie method if (nm->can_not_entrant_be_converted()) { if (PrintMethodFlushing && Verbose) { - tty->print_cr("### Nmethod 0x%x (not entrant) being made zombie", nm); + tty->print_cr("### Nmethod %3d/" PTR_FORMAT " (not entrant) being made zombie", nm->compile_id(), nm); } nm->make_zombie(); _rescan = true; @@ -167,7 +206,7 @@ void NMethodSweeper::process_nmethod(nmethod *nm) { } else if (nm->is_unloaded()) { // Unloaded code, just make it a zombie if (PrintMethodFlushing && Verbose) - tty->print_cr("### Nmethod 0x%x (unloaded) being made zombie", nm); + tty->print_cr("### Nmethod %3d/" PTR_FORMAT " (unloaded) being made zombie", nm->compile_id(), nm); if (nm->is_osr_method()) { // No inline caches will ever point to osr methods, so we can just remove it nm->flush(); @@ -177,7 +216,167 @@ void NMethodSweeper::process_nmethod(nmethod *nm) { } } else { assert(nm->is_alive(), "should be alive"); + + if (UseCodeCacheFlushing) { + if ((nm->method()->code() != nm) && !(nm->is_locked_by_vm()) && !(nm->is_osr_method()) && + (_traversals > _was_full_traversal+2) && (((uint)nm->compile_id()) < _highest_marked) && + CodeCache::needs_flushing()) { + // This method has not been called since the forced cleanup happened + nm->make_not_entrant(); + } + } + // Clean-up all inline caches that points to zombie/non-reentrant methods nm->cleanup_inline_caches(); } } + +// Code cache unloading: when compilers notice the code cache is getting full, +// they will call a vm op that comes here. This code attempts to speculatively +// unload the oldest half of the nmethods (based on the compile job id) by +// saving the old code in a list in the CodeCache. Then +// execution resumes. If a method so marked is not called by the second +// safepoint from the current one, the nmethod will be marked non-entrant and +// got rid of by normal sweeping. If the method is called, the methodOop's +// _code field is restored and the methodOop/nmethod +// go back to their normal state. +void NMethodSweeper::handle_full_code_cache(bool is_full) { + // Only the first one to notice can advise us to start early cleaning + if (!is_full){ + jint old = Atomic::cmpxchg( 1, &_advise_to_sweep, 0 ); + if (old != 0) { + return; + } + } + + if (is_full) { + // Since code cache is full, immediately stop new compiles + bool did_set = CompileBroker::set_should_compile_new_jobs(CompileBroker::stop_compilation); + if (!did_set) { + // only the first to notice can start the cleaning, + // others will go back and block + return; + } + set_was_full(true); + + // If we run out within MinCodeCacheFlushingInterval of the last unload time, give up + jlong now = os::javaTimeMillis(); + jlong max_interval = (jlong)MinCodeCacheFlushingInterval * (jlong)1000; + jlong curr_interval = now - _last_was_full; + if (curr_interval < max_interval) { + _rescan = true; + if (PrintMethodFlushing) { + tty->print_cr("### handle full too often, turning off compiler"); + } + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("disable_compiler flushing_interval='" UINT64_FORMAT "' live_blobs='" UINT32_FORMAT "' free_code_cache='" SIZE_FORMAT "'", + curr_interval/1000, CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + xtty->stamp(); + xtty->end_elem(); + } + return; + } + } + + VM_HandleFullCodeCache op(is_full); + VMThread::execute(&op); + + // rescan again as soon as possible + _rescan = true; +} + +void NMethodSweeper::speculative_disconnect_nmethods(bool is_full) { + // If there was a race in detecting full code cache, only run + // one vm op for it or keep the compiler shut off + + debug_only(jlong start = os::javaTimeMillis();) + + if ((!was_full()) && (is_full)) { + if (!CodeCache::needs_flushing()) { + if (PrintMethodFlushing) { + tty->print_cr("### sweeper: Live blobs:" UINT32_FORMAT "/Free code cache:" SIZE_FORMAT " bytes, restarting compiler", + CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + } + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("restart_compiler live_blobs='" UINT32_FORMAT "' free_code_cache='" SIZE_FORMAT "'", + CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + xtty->stamp(); + xtty->end_elem(); + } + CompileBroker::set_should_compile_new_jobs(CompileBroker::run_compilation); + return; + } + } + + // Traverse the code cache trying to dump the oldest nmethods + uint curr_max_comp_id = CompileBroker::get_compilation_id(); + uint flush_target = ((curr_max_comp_id - _highest_marked) >> 1) + _highest_marked; + if (PrintMethodFlushing && Verbose) { + tty->print_cr("### Cleaning code cache: Live blobs:" UINT32_FORMAT "/Free code cache:" SIZE_FORMAT " bytes", + CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + } + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("start_cleaning_code_cache live_blobs='" UINT32_FORMAT "' free_code_cache='" SIZE_FORMAT "'", + CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + xtty->stamp(); + xtty->end_elem(); + } + + nmethod* nm = CodeCache::alive_nmethod(CodeCache::first()); + jint disconnected = 0; + jint made_not_entrant = 0; + while ((nm != NULL)){ + uint curr_comp_id = nm->compile_id(); + + // OSR methods cannot be flushed like this. Also, don't flush native methods + // since they are part of the JDK in most cases + if (nm->is_in_use() && (!nm->is_osr_method()) && (!nm->is_locked_by_vm()) && + (!nm->is_native_method()) && ((curr_comp_id < flush_target))) { + + if ((nm->method()->code() == nm)) { + // This method has not been previously considered for + // unloading or it was restored already + CodeCache::speculatively_disconnect(nm); + disconnected++; + } else if (nm->is_speculatively_disconnected()) { + // This method was previously considered for preemptive unloading and was not called since then + nm->method()->invocation_counter()->decay(); + nm->method()->backedge_counter()->decay(); + nm->make_not_entrant(); + made_not_entrant++; + } + + if (curr_comp_id > _highest_marked) { + _highest_marked = curr_comp_id; + } + } + nm = CodeCache::alive_nmethod(CodeCache::next(nm)); + } + + if (LogCompilation && (xtty != NULL)) { + ttyLocker ttyl; + xtty->begin_elem("stop_cleaning_code_cache disconnected='" UINT32_FORMAT "' made_not_entrant='" UINT32_FORMAT "' live_blobs='" UINT32_FORMAT "' free_code_cache='" SIZE_FORMAT "'", + disconnected, made_not_entrant, CodeCache::nof_blobs(), CodeCache::unallocated_capacity()); + xtty->stamp(); + xtty->end_elem(); + } + + // Shut off compiler. Sweeper will run exiting from this safepoint + // and turn it back on if it clears enough space + if (was_full()) { + _last_was_full = os::javaTimeMillis(); + CompileBroker::set_should_compile_new_jobs(CompileBroker::stop_compilation); + } + + // After two more traversals the sweeper will get rid of unrestored nmethods + _was_full_traversal = _traversals; +#ifdef ASSERT + jlong end = os::javaTimeMillis(); + if(PrintMethodFlushing && Verbose) { + tty->print_cr("### sweeper: unload time: " INT64_FORMAT, end-start); + } +#endif +} diff --git a/hotspot/src/share/vm/runtime/sweeper.hpp b/hotspot/src/share/vm/runtime/sweeper.hpp index 1f7260cac00..69b2e205652 100644 --- a/hotspot/src/share/vm/runtime/sweeper.hpp +++ b/hotspot/src/share/vm/runtime/sweeper.hpp @@ -38,6 +38,11 @@ class NMethodSweeper : public AllStatic { static int _locked_seen; // Number of locked nmethods encountered during the scan static int _not_entrant_seen_on_stack; // Number of not entrant nmethod were are still on stack + static bool _was_full; // remember if we did emergency unloading + static jint _advise_to_sweep; // flag to indicate code cache getting full + static jlong _last_was_full; // timestamp of last emergency unloading + static uint _highest_marked; // highest compile id dumped at last emergency unloading + static long _was_full_traversal; // trav number at last emergency unloading static void process_nmethod(nmethod *nm); public: @@ -51,4 +56,10 @@ class NMethodSweeper : public AllStatic { // changes to false at safepoint so we can never overwrite it with false. _rescan = true; } + + static void handle_full_code_cache(bool is_full); // Called by compilers who fail to allocate + static void speculative_disconnect_nmethods(bool was_full); // Called by vm op to deal with alloc failure + + static void set_was_full(bool state) { _was_full = state; } + static bool was_full() { return _was_full; } }; diff --git a/hotspot/src/share/vm/runtime/vm_operations.cpp b/hotspot/src/share/vm/runtime/vm_operations.cpp index 9733aed03cc..95a28b3ddef 100644 --- a/hotspot/src/share/vm/runtime/vm_operations.cpp +++ b/hotspot/src/share/vm/runtime/vm_operations.cpp @@ -151,6 +151,10 @@ void VM_ZombieAll::doit() { #endif // !PRODUCT +void VM_HandleFullCodeCache::doit() { + NMethodSweeper::speculative_disconnect_nmethods(_is_full); +} + void VM_Verify::doit() { Universe::verify(); } diff --git a/hotspot/src/share/vm/runtime/vm_operations.hpp b/hotspot/src/share/vm/runtime/vm_operations.hpp index 09fc2eee914..711b3022aa5 100644 --- a/hotspot/src/share/vm/runtime/vm_operations.hpp +++ b/hotspot/src/share/vm/runtime/vm_operations.hpp @@ -41,6 +41,7 @@ template(DeoptimizeFrame) \ template(DeoptimizeAll) \ template(ZombieAll) \ + template(HandleFullCodeCache) \ template(Verify) \ template(PrintJNI) \ template(HeapDumper) \ @@ -241,6 +242,16 @@ class VM_DeoptimizeFrame: public VM_Operation { bool allow_nested_vm_operations() const { return true; } }; +class VM_HandleFullCodeCache: public VM_Operation { + private: + bool _is_full; + public: + VM_HandleFullCodeCache(bool is_full) { _is_full = is_full; } + VMOp_Type type() const { return VMOp_HandleFullCodeCache; } + void doit(); + bool allow_nested_vm_operations() const { return true; } +}; + #ifndef PRODUCT class VM_DeoptimizeAll: public VM_Operation { private: From 8cc63249e909e44d58703301dd74ad36c92c7927 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Fri, 29 Jan 2010 22:51:41 -0800 Subject: [PATCH 049/109] 6916644: C2 compiler crash on x86 Reviewed-by: kvn, twisti --- hotspot/src/share/vm/adlc/output_c.cpp | 29 ++++++----- hotspot/src/share/vm/adlc/output_h.cpp | 4 +- hotspot/src/share/vm/opto/machnode.hpp | 4 +- hotspot/src/share/vm/opto/matcher.cpp | 4 +- .../test/compiler/6916644/Test6916644.java | 50 +++++++++++++++++++ 5 files changed, 72 insertions(+), 19 deletions(-) create mode 100644 hotspot/test/compiler/6916644/Test6916644.java diff --git a/hotspot/src/share/vm/adlc/output_c.cpp b/hotspot/src/share/vm/adlc/output_c.cpp index e32af7ea4e2..1e9fd56ff3a 100644 --- a/hotspot/src/share/vm/adlc/output_c.cpp +++ b/hotspot/src/share/vm/adlc/output_c.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -1496,7 +1496,7 @@ void ArchDesc::defineExpand(FILE *fp, InstructForm *node) { unsigned i; // Generate Expand function header - fprintf(fp,"MachNode *%sNode::Expand(State *state, Node_List &proj_list) {\n", node->_ident); + fprintf(fp,"MachNode *%sNode::Expand(State *state, Node_List &proj_list, Node* mem) {\n", node->_ident); fprintf(fp,"Compile* C = Compile::current();\n"); // Generate expand code if( node->expands() ) { @@ -1546,15 +1546,16 @@ void ArchDesc::defineExpand(FILE *fp, InstructForm *node) { // Build a mapping from operand index to input edges fprintf(fp," unsigned idx0 = oper_input_base();\n"); - // The order in which inputs are added to a node is very + // The order in which the memory input is added to a node is very // strange. Store nodes get a memory input before Expand is - // called and all other nodes get it afterwards so - // oper_input_base is wrong during expansion. This code adjusts - // is so that expansion will work correctly. - bool missing_memory_edge = node->_matrule->needs_ideal_memory_edge(_globalNames) && - node->is_ideal_store() == Form::none; - if (missing_memory_edge) { - fprintf(fp," idx0--; // Adjust base because memory edge hasn't been inserted yet\n"); + // called and other nodes get it afterwards or before depending on + // match order so oper_input_base is wrong during expansion. This + // code adjusts it so that expansion will work correctly. + int has_memory_edge = node->_matrule->needs_ideal_memory_edge(_globalNames); + if (has_memory_edge) { + fprintf(fp," if (mem == (Node*)1) {\n"); + fprintf(fp," idx0--; // Adjust base because memory edge hasn't been inserted yet\n"); + fprintf(fp," }\n"); } for( i = 0; i < node->num_opnds(); i++ ) { @@ -1611,9 +1612,11 @@ void ArchDesc::defineExpand(FILE *fp, InstructForm *node) { int node_mem_op = node->memory_operand(_globalNames); assert( node_mem_op != InstructForm::NO_MEMORY_OPERAND, "expand rule member needs memory but top-level inst doesn't have any" ); - if (!missing_memory_edge) { + if (has_memory_edge) { // Copy memory edge - fprintf(fp," n%d->add_req(_in[1]);\t// Add memory edge\n", cnt); + fprintf(fp," if (mem != (Node*)1) {\n"); + fprintf(fp," n%d->add_req(_in[1]);\t// Add memory edge\n", cnt); + fprintf(fp," }\n"); } } @@ -1689,7 +1692,7 @@ void ArchDesc::defineExpand(FILE *fp, InstructForm *node) { } // done iterating over a new instruction's operands // Invoke Expand() for the newly created instruction. - fprintf(fp," result = n%d->Expand( state, proj_list );\n", cnt); + fprintf(fp," result = n%d->Expand( state, proj_list, mem );\n", cnt); assert( !new_inst->expands(), "Do not have complete support for recursive expansion"); } // done iterating over new instructions fprintf(fp,"\n"); diff --git a/hotspot/src/share/vm/adlc/output_h.cpp b/hotspot/src/share/vm/adlc/output_h.cpp index 23f0827b2e8..2e27f706c93 100644 --- a/hotspot/src/share/vm/adlc/output_h.cpp +++ b/hotspot/src/share/vm/adlc/output_h.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -1754,7 +1754,7 @@ void ArchDesc::declareClasses(FILE *fp) { instr->has_temps() || instr->_matrule != NULL && instr->num_opnds() != instr->num_unique_opnds() ) { - fprintf(fp," virtual MachNode *Expand(State *state, Node_List &proj_list);\n"); + fprintf(fp," virtual MachNode *Expand(State *state, Node_List &proj_list, Node* mem);\n"); } if (instr->is_pinned(_globalNames)) { diff --git a/hotspot/src/share/vm/opto/machnode.hpp b/hotspot/src/share/vm/opto/machnode.hpp index 67d6965b628..128b55fdde1 100644 --- a/hotspot/src/share/vm/opto/machnode.hpp +++ b/hotspot/src/share/vm/opto/machnode.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -232,7 +232,7 @@ public: // Expand method for MachNode, replaces nodes representing pseudo // instructions with a set of nodes which represent real machine // instructions and compute the same value. - virtual MachNode *Expand( State *, Node_List &proj_list ) { return this; } + virtual MachNode *Expand( State *, Node_List &proj_list, Node* mem ) { return this; } // Bottom_type call; value comes from operand0 virtual const class Type *bottom_type() const { return _opnds[0]->type(); } diff --git a/hotspot/src/share/vm/opto/matcher.cpp b/hotspot/src/share/vm/opto/matcher.cpp index d535df05c76..c1e6e70657a 100644 --- a/hotspot/src/share/vm/opto/matcher.cpp +++ b/hotspot/src/share/vm/opto/matcher.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -1580,7 +1580,7 @@ MachNode *Matcher::ReduceInst( State *s, int rule, Node *&mem ) { uint num_proj = _proj_list.size(); // Perform any 1-to-many expansions required - MachNode *ex = mach->Expand(s,_proj_list); + MachNode *ex = mach->Expand(s,_proj_list, mem); if( ex != mach ) { assert(ex->ideal_reg() == mach->ideal_reg(), "ideal types should match"); if( ex->in(1)->is_Con() ) diff --git a/hotspot/test/compiler/6916644/Test6916644.java b/hotspot/test/compiler/6916644/Test6916644.java new file mode 100644 index 00000000000..793ccd697f9 --- /dev/null +++ b/hotspot/test/compiler/6916644/Test6916644.java @@ -0,0 +1,50 @@ +/* + * Copyright 2010 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 6916644 + * @summary C2 compiler crash on x86 + * + * @run main/othervm -Xcomp -XX:CompileOnly=Test6916644.test Test6916644 + */ + +public class Test6916644 { + static int result; + static int i1; + static int i2; + + static public void test(double d) { + result = (d <= 0.0D) ? i1 : i2; + } + + public static void main(String[] args) { + for (int i = 0; i < 100000; i++) { + // use an alternating value so the test doesn't always go + // the same direction. Otherwise we won't transform it + // into a cmove. + test(i & 1); + } + } +} From 918c7a2e338bf25da9fbf4a2baa43236d41bfd68 Mon Sep 17 00:00:00 2001 From: Christian Thalinger Date: Mon, 1 Feb 2010 19:29:46 +0100 Subject: [PATCH 050/109] 6921352: JSR 292 needs its own deopt handler We need to introduce a new MH deopt handler so we can easily determine if the deopt happened at a MH call site or not. Reviewed-by: never, jrose --- .../cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 30 ++--- hotspot/src/cpu/sparc/vm/frame_sparc.cpp | 13 ++- .../src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 32 ++--- hotspot/src/cpu/x86/vm/frame_x86.cpp | 110 +++++++++++++----- hotspot/src/cpu/x86/vm/frame_x86.hpp | 8 ++ hotspot/src/cpu/x86/vm/frame_x86.inline.hpp | 27 +++-- hotspot/src/share/vm/asm/codeBuffer.hpp | 12 +- hotspot/src/share/vm/c1/c1_Compilation.cpp | 18 ++- hotspot/src/share/vm/c1/c1_LIRAssembler.hpp | 6 +- hotspot/src/share/vm/code/nmethod.cpp | 25 +++- hotspot/src/share/vm/code/nmethod.hpp | 57 +++++---- hotspot/src/share/vm/opto/output.cpp | 6 +- .../src/share/vm/runtime/deoptimization.cpp | 8 +- hotspot/src/share/vm/runtime/frame.cpp | 16 ++- .../src/share/vm/runtime/sharedRuntime.cpp | 18 ++- 15 files changed, 253 insertions(+), 133 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index 2b054b43e65..a4c9ce59d39 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -357,7 +357,7 @@ void LIR_Assembler::monitorexit(LIR_Opr obj_opr, LIR_Opr lock_opr, Register hdr, } -void LIR_Assembler::emit_exception_handler() { +int LIR_Assembler::emit_exception_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion @@ -373,13 +373,10 @@ void LIR_Assembler::emit_exception_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("exception handler overflow"); - return; + return -1; } -#ifdef ASSERT - int offset = code_offset(); -#endif // ASSERT - compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); + int offset = code_offset(); if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_exceptions()) { __ call(Runtime1::entry_for(Runtime1::handle_exception_id), relocInfo::runtime_call_type); @@ -390,11 +387,13 @@ void LIR_Assembler::emit_exception_handler() { __ delayed()->nop(); debug_only(__ stop("should have gone to the caller");) assert(code_offset() - offset <= exception_handler_size, "overflow"); - __ end_a_stub(); + + return offset; } -void LIR_Assembler::emit_deopt_handler() { + +int LIR_Assembler::emit_deopt_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion @@ -408,23 +407,18 @@ void LIR_Assembler::emit_deopt_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("deopt handler overflow"); - return; + return -1; } -#ifdef ASSERT + int offset = code_offset(); -#endif // ASSERT - compilation()->offsets()->set_value(CodeOffsets::Deopt, code_offset()); - AddressLiteral deopt_blob(SharedRuntime::deopt_blob()->unpack()); - __ JUMP(deopt_blob, G3_scratch, 0); // sethi;jmp __ delayed()->nop(); - assert(code_offset() - offset <= deopt_handler_size, "overflow"); - debug_only(__ stop("should have gone to the caller");) - __ end_a_stub(); + + return offset; } diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp index 13626f0700e..64b652376eb 100644 --- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -366,8 +366,9 @@ frame::frame(intptr_t* sp, intptr_t* younger_sp, bool younger_frame_adjusted_sta // as get_original_pc() needs correct value for unextended_sp() if (_pc != NULL) { _cb = CodeCache::find_blob(_pc); - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = ((nmethod*)_cb)->get_original_pc(this); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; @@ -519,9 +520,9 @@ void frame::patch_pc(Thread* thread, address pc) { _cb = CodeCache::find_blob(pc); *O7_addr() = pc - pc_return_offset; _cb = CodeCache::find_blob(_pc); - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - address orig = ((nmethod*)_cb)->get_original_pc(this); - assert(orig == _pc, "expected original to be stored before patching"); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + assert(original_pc == _pc, "expected original to be stored before patching"); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index 2fae5406861..d481137da3f 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -418,13 +418,12 @@ int LIR_Assembler::initial_frame_size_in_bytes() { } -void LIR_Assembler::emit_exception_handler() { +int LIR_Assembler::emit_exception_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion // failures when searching for the corresponding bci => add a nop // (was bug 5/14/1999 - gri) - __ nop(); // generate code for exception handler @@ -432,13 +431,10 @@ void LIR_Assembler::emit_exception_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("exception handler overflow"); - return; + return -1; } -#ifdef ASSERT - int offset = code_offset(); -#endif // ASSERT - compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); + int offset = code_offset(); // if the method does not have an exception handler, then there is // no reason to search for one @@ -474,19 +470,19 @@ void LIR_Assembler::emit_exception_handler() { // unwind activation and forward exception to caller // rax,: exception __ jump(RuntimeAddress(Runtime1::entry_for(Runtime1::unwind_exception_id))); - assert(code_offset() - offset <= exception_handler_size, "overflow"); - __ end_a_stub(); + + return offset; } -void LIR_Assembler::emit_deopt_handler() { + +int LIR_Assembler::emit_deopt_handler() { // if the last instruction is a call (typically to do a throw which // is coming at the end after block reordering) the return address // must still point into the code area in order to avoid assertion // failures when searching for the corresponding bci => add a nop // (was bug 5/14/1999 - gri) - __ nop(); // generate code for exception handler @@ -494,23 +490,17 @@ void LIR_Assembler::emit_deopt_handler() { if (handler_base == NULL) { // not enough space left for the handler bailout("deopt handler overflow"); - return; + return -1; } -#ifdef ASSERT + int offset = code_offset(); -#endif // ASSERT - - compilation()->offsets()->set_value(CodeOffsets::Deopt, code_offset()); - InternalAddress here(__ pc()); __ pushptr(here.addr()); - __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); - assert(code_offset() - offset <= deopt_handler_size, "overflow"); - __ end_a_stub(); + return offset; } diff --git a/hotspot/src/cpu/x86/vm/frame_x86.cpp b/hotspot/src/cpu/x86/vm/frame_x86.cpp index 7bbd7311dfa..01f49e3dba8 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.cpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -222,9 +222,9 @@ void frame::patch_pc(Thread* thread, address pc) { } ((address *)sp())[-1] = pc; _cb = CodeCache::find_blob(pc); - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - address orig = (((nmethod*)_cb)->get_original_pc(this)); - assert(orig == _pc, "expected original to be stored before patching"); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + assert(original_pc == _pc, "expected original PC to be stored before patching"); _deopt_state = is_deoptimized; // leave _pc as is } else { @@ -323,19 +323,61 @@ frame frame::sender_for_entry_frame(RegisterMap* map) const { return fr; } + +//------------------------------------------------------------------------------ +// frame::verify_deopt_original_pc +// +// Verifies the calculated original PC of a deoptimization PC for the +// given unextended SP. The unextended SP might also be the saved SP +// for MethodHandle call sites. +#if ASSERT +void frame::verify_deopt_original_pc(nmethod* nm, intptr_t* unextended_sp, bool is_method_handle_return) { + frame fr; + + // This is ugly but it's better than to change {get,set}_original_pc + // to take an SP value as argument. And it's only a debugging + // method anyway. + fr._unextended_sp = unextended_sp; + + address original_pc = nm->get_original_pc(&fr); + assert(nm->code_contains(original_pc), "original PC must be in nmethod"); + assert(nm->is_method_handle_return(original_pc) == is_method_handle_return, "must be"); +} +#endif + + +//------------------------------------------------------------------------------ +// frame::sender_for_interpreter_frame frame frame::sender_for_interpreter_frame(RegisterMap* map) const { - // sp is the raw sp from the sender after adapter or interpreter extension - intptr_t* sp = (intptr_t*) addr_at(sender_sp_offset); + // SP is the raw SP from the sender after adapter or interpreter + // extension. + intptr_t* sender_sp = this->sender_sp(); // This is the sp before any possible extension (adapter/locals). intptr_t* unextended_sp = interpreter_frame_sender_sp(); + // Stored FP. + intptr_t* saved_fp = link(); + address sender_pc = this->sender_pc(); CodeBlob* sender_cb = CodeCache::find_blob_unsafe(sender_pc); assert(sender_cb, "sanity"); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); - if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { - unextended_sp = (intptr_t*) at(link_offset); + + if (sender_nm != NULL) { + // If the sender PC is a deoptimization point, get the original + // PC. For MethodHandle call site the unextended_sp is stored in + // saved_fp. + if (sender_nm->is_deopt_mh_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_mh_original_pc(sender_nm, saved_fp)); + unextended_sp = saved_fp; + } + else if (sender_nm->is_deopt_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_original_pc(sender_nm, unextended_sp)); + } + else if (sender_nm->is_method_handle_return(sender_pc)) { + unextended_sp = saved_fp; + } } // The interpreter and compiler(s) always save EBP/RBP in a known @@ -359,40 +401,51 @@ frame frame::sender_for_interpreter_frame(RegisterMap* map) const { } #endif // AMD64 } -#endif /* COMPILER2 */ - return frame(sp, unextended_sp, link(), sender_pc); +#endif // COMPILER2 + + return frame(sender_sp, unextended_sp, saved_fp, sender_pc); } -//------------------------------sender_for_compiled_frame----------------------- +//------------------------------------------------------------------------------ +// frame::sender_for_compiled_frame frame frame::sender_for_compiled_frame(RegisterMap* map) const { assert(map != NULL, "map must be set"); - const bool c1_compiled = _cb->is_compiled_by_c1(); // frame owned by optimizing compiler - intptr_t* sender_sp = NULL; - assert(_cb->frame_size() >= 0, "must have non-zero frame size"); - sender_sp = unextended_sp() + _cb->frame_size(); + intptr_t* sender_sp = unextended_sp() + _cb->frame_size(); + intptr_t* unextended_sp = sender_sp; // On Intel the return_address is always the word on the stack address sender_pc = (address) *(sender_sp-1); - // This is the saved value of ebp which may or may not really be an fp. - // it is only an fp if the sender is an interpreter frame (or c1?) + // This is the saved value of EBP which may or may not really be an FP. + // It is only an FP if the sender is an interpreter frame (or C1?). + intptr_t* saved_fp = (intptr_t*) *(sender_sp - frame::sender_sp_offset); - intptr_t *saved_fp = (intptr_t*)*(sender_sp - frame::sender_sp_offset); - - intptr_t* unextended_sp = sender_sp; - // If we are returning to a compiled method handle call site, - // the saved_fp will in fact be a saved value of the unextended SP. - // The simplest way to tell whether we are returning to such a call - // site is as follows: + // If we are returning to a compiled MethodHandle call site, the + // saved_fp will in fact be a saved value of the unextended SP. The + // simplest way to tell whether we are returning to such a call site + // is as follows: CodeBlob* sender_cb = CodeCache::find_blob_unsafe(sender_pc); assert(sender_cb, "sanity"); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); - if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { - unextended_sp = saved_fp; + + if (sender_nm != NULL) { + // If the sender PC is a deoptimization point, get the original + // PC. For MethodHandle call site the unextended_sp is stored in + // saved_fp. + if (sender_nm->is_deopt_mh_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_mh_original_pc(sender_nm, saved_fp)); + unextended_sp = saved_fp; + } + else if (sender_nm->is_deopt_entry(sender_pc)) { + DEBUG_ONLY(verify_deopt_original_pc(sender_nm, unextended_sp)); + } + else if (sender_nm->is_method_handle_return(sender_pc)) { + unextended_sp = saved_fp; + } } if (map->update_map()) { @@ -403,7 +456,7 @@ frame frame::sender_for_compiled_frame(RegisterMap* map) const { if (_cb->oop_maps() != NULL) { OopMapSet::update_register_map(this, map); } - // Since the prolog does the save and restore of epb there is no oopmap + // Since the prolog does the save and restore of EBP there is no oopmap // for it so we must fill in its location as if there was an oopmap entry // since if our caller was compiled code there could be live jvm state in it. map->set_location(rbp->as_VMReg(), (address) (sender_sp - frame::sender_sp_offset)); @@ -422,6 +475,9 @@ frame frame::sender_for_compiled_frame(RegisterMap* map) const { return frame(sender_sp, unextended_sp, saved_fp, sender_pc); } + +//------------------------------------------------------------------------------ +// frame::sender frame frame::sender(RegisterMap* map) const { // Default is we done have to follow them. The sender_for_xxx will // update it accordingly diff --git a/hotspot/src/cpu/x86/vm/frame_x86.hpp b/hotspot/src/cpu/x86/vm/frame_x86.hpp index 3668f2da295..b21449f8475 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.hpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.hpp @@ -163,6 +163,14 @@ return (intptr_t*) addr_at(offset); } +#if ASSERT + // Used in frame::sender_for_{interpreter,compiled}_frame + static void verify_deopt_original_pc( nmethod* nm, intptr_t* unextended_sp, bool is_method_handle_return = false); + static void verify_deopt_mh_original_pc(nmethod* nm, intptr_t* unextended_sp) { + verify_deopt_original_pc(nm, unextended_sp, true); + } +#endif + public: // Constructors diff --git a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp index 1f2065ba449..809e26cfaa1 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -35,32 +35,35 @@ inline frame::frame() { _deopt_state = unknown; } -inline frame:: frame(intptr_t* sp, intptr_t* fp, address pc) { +inline frame::frame(intptr_t* sp, intptr_t* fp, address pc) { _sp = sp; _unextended_sp = sp; _fp = fp; _pc = pc; assert(pc != NULL, "no pc?"); _cb = CodeCache::find_blob(pc); - _deopt_state = not_deoptimized; - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = (((nmethod*)_cb)->get_original_pc(this)); + + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; } } -inline frame:: frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) { +inline frame::frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) { _sp = sp; _unextended_sp = unextended_sp; _fp = fp; _pc = pc; assert(pc != NULL, "no pc?"); _cb = CodeCache::find_blob(pc); - _deopt_state = not_deoptimized; - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = (((nmethod*)_cb)->get_original_pc(this)); + + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; + assert(((nmethod*)_cb)->code_contains(_pc), "original PC must be in nmethod"); _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; @@ -86,9 +89,9 @@ inline frame::frame(intptr_t* sp, intptr_t* fp) { _cb = CodeCache::find_blob(_pc); - _deopt_state = not_deoptimized; - if (_cb != NULL && _cb->is_nmethod() && ((nmethod*)_cb)->is_deopt_pc(_pc)) { - _pc = (((nmethod*)_cb)->get_original_pc(this)); + address original_pc = nmethod::get_deopt_original_pc(this); + if (original_pc != NULL) { + _pc = original_pc; _deopt_state = is_deoptimized; } else { _deopt_state = not_deoptimized; diff --git a/hotspot/src/share/vm/asm/codeBuffer.hpp b/hotspot/src/share/vm/asm/codeBuffer.hpp index 6880fc59d5f..8751fb6494d 100644 --- a/hotspot/src/share/vm/asm/codeBuffer.hpp +++ b/hotspot/src/share/vm/asm/codeBuffer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -39,6 +39,7 @@ public: Dtrace_trap = OSR_Entry, // dtrace probes can never have an OSR entry so reuse it Exceptions, // Offset where exception handler lives Deopt, // Offset where deopt handler lives + DeoptMH, // Offset where MethodHandle deopt handler lives max_Entries }; // special value to note codeBlobs where profile (forte) stack walking is @@ -51,12 +52,13 @@ private: public: CodeOffsets() { - _values[Entry] = 0; + _values[Entry ] = 0; _values[Verified_Entry] = 0; _values[Frame_Complete] = frame_never_safe; - _values[OSR_Entry] = 0; - _values[Exceptions] = -1; - _values[Deopt] = -1; + _values[OSR_Entry ] = 0; + _values[Exceptions ] = -1; + _values[Deopt ] = -1; + _values[DeoptMH ] = -1; } int value(Entries e) { return _values[e]; } diff --git a/hotspot/src/share/vm/c1/c1_Compilation.cpp b/hotspot/src/share/vm/c1/c1_Compilation.cpp index d89ef4e7b1a..e1df739770f 100644 --- a/hotspot/src/share/vm/c1/c1_Compilation.cpp +++ b/hotspot/src/share/vm/c1/c1_Compilation.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2010 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 @@ -205,6 +205,8 @@ void Compilation::emit_lir() { void Compilation::emit_code_epilog(LIR_Assembler* assembler) { CHECK_BAILOUT(); + CodeOffsets* code_offsets = assembler->offsets(); + // generate code or slow cases assembler->emit_slow_case_stubs(); CHECK_BAILOUT(); @@ -213,10 +215,18 @@ void Compilation::emit_code_epilog(LIR_Assembler* assembler) { assembler->emit_exception_entries(exception_info_list()); CHECK_BAILOUT(); - // generate code for exception handler - assembler->emit_exception_handler(); + // Generate code for exception handler. + code_offsets->set_value(CodeOffsets::Exceptions, assembler->emit_exception_handler()); CHECK_BAILOUT(); - assembler->emit_deopt_handler(); + + // Generate code for deopt handler. + code_offsets->set_value(CodeOffsets::Deopt, assembler->emit_deopt_handler()); + CHECK_BAILOUT(); + + // Generate code for MethodHandle deopt handler. We can use the + // same code as for the normal deopt handler, we just need a + // different entry point address. + code_offsets->set_value(CodeOffsets::DeoptMH, assembler->emit_deopt_handler()); CHECK_BAILOUT(); // done diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp index f5de2c73479..8219b534eb0 100644 --- a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -133,9 +133,9 @@ class LIR_Assembler: public CompilationResourceObj { void add_call_info_here(CodeEmitInfo* info) { add_call_info(code_offset(), info); } // code patterns - void emit_exception_handler(); + int emit_exception_handler(); void emit_exception_entries(ExceptionInfoList* info_list); - void emit_deopt_handler(); + int emit_deopt_handler(); void emit_code(BlockList* hir); void emit_block(BlockBegin* block); diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index f86211982bc..5b21439b1c3 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -593,6 +593,7 @@ nmethod::nmethod( // values something that will never match a pc like the nmethod vtable entry _exception_offset = 0; _deoptimize_offset = 0; + _deoptimize_mh_offset = 0; _orig_pc_offset = 0; #ifdef HAVE_DTRACE_H _trap_offset = 0; @@ -683,6 +684,7 @@ nmethod::nmethod( // values something that will never match a pc like the nmethod vtable entry _exception_offset = 0; _deoptimize_offset = 0; + _deoptimize_mh_offset = 0; _trap_offset = offsets->value(CodeOffsets::Dtrace_trap); _orig_pc_offset = 0; _stub_offset = data_offset(); @@ -795,6 +797,7 @@ nmethod::nmethod( // Exception handler and deopt handler are in the stub section _exception_offset = _stub_offset + offsets->value(CodeOffsets::Exceptions); _deoptimize_offset = _stub_offset + offsets->value(CodeOffsets::Deopt); + _deoptimize_mh_offset = _stub_offset + offsets->value(CodeOffsets::DeoptMH); _consts_offset = instructions_offset() + code_buffer->total_offset_of(code_buffer->consts()->start()); _scopes_data_offset = data_offset(); _scopes_pcs_offset = _scopes_data_offset + round_to(debug_info->data_size (), oopSize); @@ -2037,9 +2040,21 @@ void nmethodLocker::unlock_nmethod(nmethod* nm) { guarantee(nm->_lock_count >= 0, "unmatched nmethod lock/unlock"); } -bool nmethod::is_deopt_pc(address pc) { - bool ret = pc == deopt_handler_begin(); - return ret; + +// ----------------------------------------------------------------------------- +// nmethod::get_deopt_original_pc +// +// Return the original PC for the given PC if: +// (a) the given PC belongs to a nmethod and +// (b) it is a deopt PC +address nmethod::get_deopt_original_pc(const frame* fr) { + if (fr->cb() == NULL) return NULL; + + nmethod* nm = fr->cb()->as_nmethod_or_null(); + if (nm != NULL && nm->is_deopt_pc(fr->pc())) + return nm->get_original_pc(fr); + + return NULL; } @@ -2410,6 +2425,8 @@ void nmethod::print_nmethod_labels(outputStream* stream, address block_begin) { if (block_begin == verified_entry_point()) stream->print_cr("[Verified Entry Point]"); if (block_begin == exception_begin()) stream->print_cr("[Exception Handler]"); if (block_begin == stub_begin()) stream->print_cr("[Stub Code]"); + if (block_begin == deopt_handler_begin()) stream->print_cr("[Deopt Handler Code]"); + if (block_begin == deopt_mh_handler_begin()) stream->print_cr("[Deopt MH Handler Code]"); if (block_begin == consts_begin()) stream->print_cr("[Constants]"); if (block_begin == entry_point()) { methodHandle m = method(); diff --git a/hotspot/src/share/vm/code/nmethod.hpp b/hotspot/src/share/vm/code/nmethod.hpp index 7ca0bc86838..f910efbd224 100644 --- a/hotspot/src/share/vm/code/nmethod.hpp +++ b/hotspot/src/share/vm/code/nmethod.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -148,8 +148,12 @@ class nmethod : public CodeBlob { // Offsets for different nmethod parts int _exception_offset; - // All deoptee's will resume execution at this location described by this offset + // All deoptee's will resume execution at this location described by + // this offset. int _deoptimize_offset; + // All deoptee's at a MethodHandle call site will resume execution + // at this location described by this offset. + int _deoptimize_mh_offset; #ifdef HAVE_DTRACE_H int _trap_offset; #endif // def HAVE_DTRACE_H @@ -332,24 +336,25 @@ class nmethod : public CodeBlob { bool is_compiled_by_c2() const; // boundaries for different parts - address code_begin () const { return _entry_point; } - address code_end () const { return header_begin() + _stub_offset ; } - address exception_begin () const { return header_begin() + _exception_offset ; } - address deopt_handler_begin() const { return header_begin() + _deoptimize_offset ; } - address stub_begin () const { return header_begin() + _stub_offset ; } - address stub_end () const { return header_begin() + _consts_offset ; } - address consts_begin () const { return header_begin() + _consts_offset ; } - address consts_end () const { return header_begin() + _scopes_data_offset ; } - address scopes_data_begin () const { return header_begin() + _scopes_data_offset ; } - address scopes_data_end () const { return header_begin() + _scopes_pcs_offset ; } - PcDesc* scopes_pcs_begin () const { return (PcDesc*)(header_begin() + _scopes_pcs_offset ); } - PcDesc* scopes_pcs_end () const { return (PcDesc*)(header_begin() + _dependencies_offset); } - address dependencies_begin () const { return header_begin() + _dependencies_offset ; } - address dependencies_end () const { return header_begin() + _handler_table_offset ; } - address handler_table_begin() const { return header_begin() + _handler_table_offset ; } - address handler_table_end () const { return header_begin() + _nul_chk_table_offset ; } - address nul_chk_table_begin() const { return header_begin() + _nul_chk_table_offset ; } - address nul_chk_table_end () const { return header_begin() + _nmethod_end_offset ; } + address code_begin () const { return _entry_point; } + address code_end () const { return header_begin() + _stub_offset ; } + address exception_begin () const { return header_begin() + _exception_offset ; } + address deopt_handler_begin () const { return header_begin() + _deoptimize_offset ; } + address deopt_mh_handler_begin() const { return header_begin() + _deoptimize_mh_offset ; } + address stub_begin () const { return header_begin() + _stub_offset ; } + address stub_end () const { return header_begin() + _consts_offset ; } + address consts_begin () const { return header_begin() + _consts_offset ; } + address consts_end () const { return header_begin() + _scopes_data_offset ; } + address scopes_data_begin () const { return header_begin() + _scopes_data_offset ; } + address scopes_data_end () const { return header_begin() + _scopes_pcs_offset ; } + PcDesc* scopes_pcs_begin () const { return (PcDesc*)(header_begin() + _scopes_pcs_offset ); } + PcDesc* scopes_pcs_end () const { return (PcDesc*)(header_begin() + _dependencies_offset) ; } + address dependencies_begin () const { return header_begin() + _dependencies_offset ; } + address dependencies_end () const { return header_begin() + _handler_table_offset ; } + address handler_table_begin () const { return header_begin() + _handler_table_offset ; } + address handler_table_end () const { return header_begin() + _nul_chk_table_offset ; } + address nul_chk_table_begin () const { return header_begin() + _nul_chk_table_offset ; } + address nul_chk_table_end () const { return header_begin() + _nmethod_end_offset ; } int code_size () const { return code_end () - code_begin (); } int stub_size () const { return stub_end () - stub_begin (); } @@ -524,7 +529,7 @@ class nmethod : public CodeBlob { private: ScopeDesc* scope_desc_in(address begin, address end); - address* orig_pc_addr(const frame* fr ) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); } + address* orig_pc_addr(const frame* fr) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); } PcDesc* find_pc_desc_internal(address pc, bool approximate); @@ -547,13 +552,17 @@ class nmethod : public CodeBlob { void copy_scopes_pcs(PcDesc* pcs, int count); void copy_scopes_data(address buffer, int size); - // deopt - // return true is the pc is one would expect if the frame is being deopted. - bool is_deopt_pc(address pc); + // Deopt + // Return true is the PC is one would expect if the frame is being deopted. + bool is_deopt_pc (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); } + bool is_deopt_entry (address pc) { return pc == deopt_handler_begin(); } + bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); } // Accessor/mutator for the original pc of a frame before a frame was deopted. address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); } void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; } + static address get_deopt_original_pc(const frame* fr); + // MethodHandle bool is_method_handle_return(address return_pc); diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp index 3403ba71072..65cc41b18a2 100644 --- a/hotspot/src/share/vm/opto/output.cpp +++ b/hotspot/src/share/vm/opto/output.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -1430,6 +1430,10 @@ void Compile::Fill_buffer() { _code_offsets.set_value(CodeOffsets::Exceptions, emit_exception_handler(*cb)); // Emit the deopt handler code. _code_offsets.set_value(CodeOffsets::Deopt, emit_deopt_handler(*cb)); + // Emit the MethodHandle deopt handler code. We can use the same + // code as for the normal deopt handler, we just need a different + // entry point address. + _code_offsets.set_value(CodeOffsets::DeoptMH, emit_deopt_handler(*cb)); } // One last check for failed CodeBuffer::expand: diff --git a/hotspot/src/share/vm/runtime/deoptimization.cpp b/hotspot/src/share/vm/runtime/deoptimization.cpp index b5800824b59..e40e052a582 100644 --- a/hotspot/src/share/vm/runtime/deoptimization.cpp +++ b/hotspot/src/share/vm/runtime/deoptimization.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -235,6 +235,12 @@ Deoptimization::UnrollBlock* Deoptimization::fetch_unroll_info_helper(JavaThread assert(cb->frame_size() >= 0, "Unexpected frame size"); intptr_t* unpack_sp = stub_frame.sp() + cb->frame_size(); + // If the deopt call site is a MethodHandle invoke call site we have + // to adjust the unpack_sp. + nmethod* deoptee_nm = deoptee.cb()->as_nmethod_or_null(); + if (deoptee_nm != NULL && deoptee_nm->is_method_handle_return(deoptee.pc())) + unpack_sp = deoptee.unextended_sp(); + #ifdef ASSERT assert(cb->is_deoptimization_stub() || cb->is_uncommon_trap_stub(), "just checking"); Events::log("fetch unroll sp " INTPTR_FORMAT, unpack_sp); diff --git a/hotspot/src/share/vm/runtime/frame.cpp b/hotspot/src/share/vm/runtime/frame.cpp index f82ef99735f..5844107c5c0 100644 --- a/hotspot/src/share/vm/runtime/frame.cpp +++ b/hotspot/src/share/vm/runtime/frame.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -107,7 +107,11 @@ void RegisterMap::print() const { address frame::raw_pc() const { if (is_deoptimized_frame()) { - return ((nmethod*) cb())->deopt_handler_begin() - pc_return_offset; + nmethod* nm = cb()->as_nmethod_or_null(); + if (nm->is_method_handle_return(pc())) + return nm->deopt_mh_handler_begin() - pc_return_offset; + else + return nm->deopt_handler_begin() - pc_return_offset; } else { return (pc() - pc_return_offset); } @@ -269,10 +273,16 @@ void frame::deoptimize(JavaThread* thread, bool thread_is_known_safe) { } // NeedsDeoptSuspend - address deopt = nm->deopt_handler_begin(); + // If the call site is a MethodHandle call site use the MH deopt + // handler. + address deopt = nm->is_method_handle_return(pc()) ? + nm->deopt_mh_handler_begin() : + nm->deopt_handler_begin(); + // Save the original pc before we patch in the new one nm->set_original_pc(this, pc()); patch_pc(thread, deopt); + #ifdef ASSERT { RegisterMap map(thread, false); diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index 7fb17382ce5..f9fcda97e11 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -1033,10 +1033,20 @@ JRT_BLOCK_ENTRY(address, SharedRuntime::handle_wrong_method(JavaThread* thread)) address sender_pc = caller_frame.pc(); CodeBlob* sender_cb = caller_frame.cb(); nmethod* sender_nm = sender_cb->as_nmethod_or_null(); + bool is_mh_invoke_via_adapter = false; // Direct c2c call or via adapter? + if (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc)) { + // If the callee_target is set, then we have come here via an i2c + // adapter. + methodOop callee = thread->callee_target(); + if (callee != NULL) { + assert(callee->is_method(), "sanity"); + is_mh_invoke_via_adapter = true; + } + } if (caller_frame.is_interpreted_frame() || - caller_frame.is_entry_frame() || - (sender_nm != NULL && sender_nm->is_method_handle_return(sender_pc))) { + caller_frame.is_entry_frame() || + is_mh_invoke_via_adapter) { methodOop callee = thread->callee_target(); guarantee(callee != NULL && callee->is_method(), "bad handshake"); thread->set_vm_result(callee); @@ -1417,7 +1427,7 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr if (callee == cb || callee->is_adapter_blob()) { // static call or optimized virtual if (TraceCallFixup) { - tty->print("fixup callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); + tty->print("fixup callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); moop->print_short_name(tty); tty->print_cr(" to " INTPTR_FORMAT, entry_point); } @@ -1433,7 +1443,7 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr } } else { if (TraceCallFixup) { - tty->print("already patched callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); + tty->print("already patched callsite at " INTPTR_FORMAT " to compiled code for", caller_pc); moop->print_short_name(tty); tty->print_cr(" to " INTPTR_FORMAT, entry_point); } From 4e8608a1246dd86608fab27a2609b933f13c182b Mon Sep 17 00:00:00 2001 From: Christian Thalinger Date: Mon, 1 Feb 2010 23:18:47 +0100 Subject: [PATCH 051/109] 6921799: JSR 292 call sites should not be fixed-up MethodHandle invoke call sites should not be fixed-up by SharedRuntime::fixup_callers_callsite as c2i/i2c adapters are used to implement MethodHandle actions. Reviewed-by: kvn, never --- hotspot/src/share/vm/runtime/sharedRuntime.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index f9fcda97e11..97529e1e948 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -1361,7 +1361,7 @@ methodHandle SharedRuntime::reresolve_call_site(JavaThread *thread, TRAPS) { // We are calling the interpreter via a c2i. Normally this would mean that // we were called by a compiled method. However we could have lost a race // where we went int -> i2c -> c2i and so the caller could in fact be -// interpreted. If the caller is compiled we attampt to patch the caller +// interpreted. If the caller is compiled we attempt to patch the caller // so he no longer calls into the interpreter. IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, address caller_pc)) methodOop moop(method); @@ -1377,10 +1377,19 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr // we did we'd leap into space because the callsite needs to use // "to interpreter" stub in order to load up the methodOop. Don't // ask me how I know this... - // CodeBlob* cb = CodeCache::find_blob(caller_pc); - if ( !cb->is_nmethod() || entry_point == moop->get_c2i_entry()) { + if (!cb->is_nmethod() || entry_point == moop->get_c2i_entry()) { + return; + } + + // The check above makes sure this is a nmethod. + nmethod* nm = cb->as_nmethod_or_null(); + assert(nm, "must be"); + + // Don't fixup MethodHandle call sites as c2i/i2c adapters are used + // to implement MethodHandle actions. + if (nm->is_method_handle_return(caller_pc)) { return; } @@ -1395,7 +1404,7 @@ IRT_LEAF(void, SharedRuntime::fixup_callers_callsite(methodOopDesc* method, addr if (moop->code() == NULL) return; - if (((nmethod*)cb)->is_in_use()) { + if (nm->is_in_use()) { // Expect to find a native call there (unless it was no-inline cache vtable dispatch) MutexLockerEx ml_patch(Patching_lock, Mutex::_no_safepoint_check_flag); From f23b68b36735ba6cde573c9a73b90e42afaf9803 Mon Sep 17 00:00:00 2001 From: Tom Deneau Date: Mon, 1 Feb 2010 17:35:05 -0700 Subject: [PATCH 052/109] 6902182: 4/4 Starting with jdwp agent should not incur performance penalty Rename can_post_exceptions support to can_post_on_exceptions. Add support for should_post_on_exceptions flag to permit per JavaThread optimizations. Reviewed-by: never, kvn, dcubed --- .../cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 4 +- .../src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 4 +- hotspot/src/share/vm/c1/c1_LIRGenerator.cpp | 4 +- hotspot/src/share/vm/c1/c1_Runtime1.cpp | 10 ++--- hotspot/src/share/vm/ci/ciEnv.cpp | 8 ++-- hotspot/src/share/vm/ci/ciEnv.hpp | 6 +-- .../vm/interpreter/interpreterRuntime.cpp | 6 +-- hotspot/src/share/vm/opto/graphKit.cpp | 42 +++++++++++++++---- hotspot/src/share/vm/opto/graphKit.hpp | 7 +++- hotspot/src/share/vm/opto/parse2.cpp | 14 +++---- hotspot/src/share/vm/opto/runtime.cpp | 8 ++-- .../share/vm/prims/jvmtiEventController.cpp | 13 +++++- hotspot/src/share/vm/prims/jvmtiExport.cpp | 3 +- hotspot/src/share/vm/prims/jvmtiExport.hpp | 5 ++- .../vm/prims/jvmtiManageCapabilities.cpp | 4 +- .../src/share/vm/prims/jvmtiThreadState.hpp | 5 ++- .../src/share/vm/runtime/sharedRuntime.cpp | 2 +- hotspot/src/share/vm/runtime/thread.cpp | 3 +- hotspot/src/share/vm/runtime/thread.hpp | 15 ++++++- 19 files changed, 111 insertions(+), 52 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index 2b054b43e65..b9a92c1d152 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -381,7 +381,7 @@ void LIR_Assembler::emit_exception_handler() { compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); - if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_exceptions()) { + if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_on_exceptions()) { __ call(Runtime1::entry_for(Runtime1::handle_exception_id), relocInfo::runtime_call_type); __ delayed()->nop(); } diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index 2fae5406861..7aba2b59bb5 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2010 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 @@ -442,7 +442,7 @@ void LIR_Assembler::emit_exception_handler() { // if the method does not have an exception handler, then there is // no reason to search for one - if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_exceptions()) { + if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_on_exceptions()) { // the exception oop and pc are in rax, and rdx // no other registers need to be preserved, so invalidate them __ invalidate_registers(false, true, true, false, true, true); diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index a393028792d..05e479f26bf 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2010 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 @@ -1765,7 +1765,7 @@ void LIRGenerator::do_Throw(Throw* x) { __ null_check(exception_opr, new CodeEmitInfo(info, true)); } - if (compilation()->env()->jvmti_can_post_exceptions() && + if (compilation()->env()->jvmti_can_post_on_exceptions() && !block()->is_set(BlockBegin::default_exception_handler_flag)) { // we need to go through the exception lookup path to get JVMTI // notification done diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.cpp b/hotspot/src/share/vm/c1/c1_Runtime1.cpp index 9093885ce45..6c618cb8f86 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.cpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2010 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 @@ -110,8 +110,8 @@ static void deopt_caller() { RegisterMap reg_map(thread, false); frame runtime_frame = thread->last_frame(); frame caller_frame = runtime_frame.sender(®_map); - VM_DeoptimizeFrame deopt(thread, caller_frame.id()); - VMThread::execute(&deopt); + // bypass VM_DeoptimizeFrame and deoptimize the frame directly + Deoptimization::deoptimize_frame(thread, caller_frame.id()); assert(caller_is_deopted(), "Must be deoptimized"); } } @@ -354,7 +354,7 @@ JRT_END JRT_ENTRY(void, Runtime1::post_jvmti_exception_throw(JavaThread* thread)) - if (JvmtiExport::can_post_exceptions()) { + if (JvmtiExport::can_post_on_exceptions()) { vframeStream vfst(thread, true); address bcp = vfst.method()->bcp_from(vfst.bci()); JvmtiExport::post_exception_throw(thread, vfst.method(), bcp, thread->exception_oop()); @@ -437,7 +437,7 @@ JRT_ENTRY_NO_ASYNC(static address, exception_handler_for_pc_helper(JavaThread* t bool guard_pages_enabled = thread->stack_yellow_zone_enabled(); if (!guard_pages_enabled) guard_pages_enabled = thread->reguard_stack(); - if (JvmtiExport::can_post_exceptions()) { + if (JvmtiExport::can_post_on_exceptions()) { // To ensure correct notification of exception catches and throws // we have to deoptimize here. If we attempted to notify the // catches and throws during this exception lookup it's possible diff --git a/hotspot/src/share/vm/ci/ciEnv.cpp b/hotspot/src/share/vm/ci/ciEnv.cpp index e09c66a74dd..964ed249b55 100644 --- a/hotspot/src/share/vm/ci/ciEnv.cpp +++ b/hotspot/src/share/vm/ci/ciEnv.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2010 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 @@ -178,7 +178,7 @@ void ciEnv::cache_jvmti_state() { _jvmti_can_hotswap_or_post_breakpoint = JvmtiExport::can_hotswap_or_post_breakpoint(); _jvmti_can_examine_or_deopt_anywhere = JvmtiExport::can_examine_or_deopt_anywhere(); _jvmti_can_access_local_variables = JvmtiExport::can_access_local_variables(); - _jvmti_can_post_exceptions = JvmtiExport::can_post_exceptions(); + _jvmti_can_post_on_exceptions = JvmtiExport::can_post_on_exceptions(); } // ------------------------------------------------------------------ @@ -891,8 +891,8 @@ void ciEnv::register_method(ciMethod* target, JvmtiExport::can_examine_or_deopt_anywhere()) || (!jvmti_can_access_local_variables() && JvmtiExport::can_access_local_variables()) || - (!jvmti_can_post_exceptions() && - JvmtiExport::can_post_exceptions()) )) { + (!jvmti_can_post_on_exceptions() && + JvmtiExport::can_post_on_exceptions()) )) { record_failure("Jvmti state change invalidated dependencies"); } diff --git a/hotspot/src/share/vm/ci/ciEnv.hpp b/hotspot/src/share/vm/ci/ciEnv.hpp index 63b5ffe57bf..d20c1d1a380 100644 --- a/hotspot/src/share/vm/ci/ciEnv.hpp +++ b/hotspot/src/share/vm/ci/ciEnv.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2010 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 @@ -57,7 +57,7 @@ private: bool _jvmti_can_hotswap_or_post_breakpoint; bool _jvmti_can_examine_or_deopt_anywhere; bool _jvmti_can_access_local_variables; - bool _jvmti_can_post_exceptions; + bool _jvmti_can_post_on_exceptions; // Cache DTrace flags bool _dtrace_extended_probes; @@ -259,7 +259,7 @@ public: bool jvmti_can_hotswap_or_post_breakpoint() const { return _jvmti_can_hotswap_or_post_breakpoint; } bool jvmti_can_examine_or_deopt_anywhere() const { return _jvmti_can_examine_or_deopt_anywhere; } bool jvmti_can_access_local_variables() const { return _jvmti_can_access_local_variables; } - bool jvmti_can_post_exceptions() const { return _jvmti_can_post_exceptions; } + bool jvmti_can_post_on_exceptions() const { return _jvmti_can_post_on_exceptions; } // Cache DTrace flags void cache_dtrace_flags(); diff --git a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp index bd9fc8d7c98..78a6af5549e 100644 --- a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp +++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -397,7 +397,7 @@ IRT_ENTRY(address, InterpreterRuntime::exception_handler_for_exception(JavaThrea // notify JVMTI of an exception throw; JVMTI will detect if this is a first // time throw or a stack unwinding throw and accordingly notify the debugger - if (JvmtiExport::can_post_exceptions()) { + if (JvmtiExport::can_post_on_exceptions()) { JvmtiExport::post_exception_throw(thread, h_method(), bcp(thread), h_exception()); } @@ -426,7 +426,7 @@ IRT_ENTRY(address, InterpreterRuntime::exception_handler_for_exception(JavaThrea } // notify debugger of an exception catch // (this is good for exceptions caught in native methods as well) - if (JvmtiExport::can_post_exceptions()) { + if (JvmtiExport::can_post_on_exceptions()) { JvmtiExport::notice_unwind_due_to_exception(thread, h_method(), handler_pc, h_exception(), (handler_pc != NULL)); } diff --git a/hotspot/src/share/vm/opto/graphKit.cpp b/hotspot/src/share/vm/opto/graphKit.cpp index 57fea648024..d70fe1eef49 100644 --- a/hotspot/src/share/vm/opto/graphKit.cpp +++ b/hotspot/src/share/vm/opto/graphKit.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2010 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 @@ -455,16 +455,44 @@ Bytecodes::Code GraphKit::java_bc() const { return Bytecodes::_illegal; } +void GraphKit::uncommon_trap_if_should_post_on_exceptions(Deoptimization::DeoptReason reason, + bool must_throw) { + // if the exception capability is set, then we will generate code + // to check the JavaThread.should_post_on_exceptions flag to see + // if we actually need to report exception events (for this + // thread). If we don't need to report exception events, we will + // take the normal fast path provided by add_exception_events. If + // exception event reporting is enabled for this thread, we will + // take the uncommon_trap in the BuildCutout below. + + // first must access the should_post_on_exceptions_flag in this thread's JavaThread + Node* jthread = _gvn.transform(new (C, 1) ThreadLocalNode()); + Node* adr = basic_plus_adr(top(), jthread, in_bytes(JavaThread::should_post_on_exceptions_flag_offset())); + Node* should_post_flag = make_load(control(), adr, TypeInt::INT, T_INT, Compile::AliasIdxRaw, false); + + // Test the should_post_on_exceptions_flag vs. 0 + Node* chk = _gvn.transform( new (C, 3) CmpINode(should_post_flag, intcon(0)) ); + Node* tst = _gvn.transform( new (C, 2) BoolNode(chk, BoolTest::eq) ); + + // Branch to slow_path if should_post_on_exceptions_flag was true + { BuildCutout unless(this, tst, PROB_MAX); + // Do not try anything fancy if we're notifying the VM on every throw. + // Cf. case Bytecodes::_athrow in parse2.cpp. + uncommon_trap(reason, Deoptimization::Action_none, + (ciKlass*)NULL, (char*)NULL, must_throw); + } + +} + //------------------------------builtin_throw---------------------------------- void GraphKit::builtin_throw(Deoptimization::DeoptReason reason, Node* arg) { bool must_throw = true; - if (env()->jvmti_can_post_exceptions()) { - // Do not try anything fancy if we're notifying the VM on every throw. - // Cf. case Bytecodes::_athrow in parse2.cpp. - uncommon_trap(reason, Deoptimization::Action_none, - (ciKlass*)NULL, (char*)NULL, must_throw); - return; + if (env()->jvmti_can_post_on_exceptions()) { + // check if we must post exception events, take uncommon trap if so + uncommon_trap_if_should_post_on_exceptions(reason, must_throw); + // here if should_post_on_exceptions is false + // continue on with the normal codegen } // If this particular condition has not yet happened at this diff --git a/hotspot/src/share/vm/opto/graphKit.hpp b/hotspot/src/share/vm/opto/graphKit.hpp index 8135aca2d39..b08c5859d1a 100644 --- a/hotspot/src/share/vm/opto/graphKit.hpp +++ b/hotspot/src/share/vm/opto/graphKit.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2010 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 @@ -251,6 +251,11 @@ class GraphKit : public Phase { // via an uncommon trap. void builtin_throw(Deoptimization::DeoptReason reason, Node* arg = NULL); + // Helper to check the JavaThread::_should_post_on_exceptions flag + // and branch to an uncommon_trap if it is true (with the specified reason and must_throw) + void uncommon_trap_if_should_post_on_exceptions(Deoptimization::DeoptReason reason, + bool must_throw) ; + // Helper Functions for adding debug information void kill_dead_locals(); #ifdef ASSERT diff --git a/hotspot/src/share/vm/opto/parse2.cpp b/hotspot/src/share/vm/opto/parse2.cpp index 869266c1769..e0012681a2e 100644 --- a/hotspot/src/share/vm/opto/parse2.cpp +++ b/hotspot/src/share/vm/opto/parse2.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -2079,13 +2079,6 @@ void Parse::do_one_bytecode() { // null exception oop throws NULL pointer exception do_null_check(peek(), T_OBJECT); if (stopped()) return; - if (env()->jvmti_can_post_exceptions()) { - // "Full-speed throwing" is not necessary here, - // since we're notifying the VM on every throw. - uncommon_trap(Deoptimization::Reason_unhandled, - Deoptimization::Action_none); - return; - } // Hook the thrown exception directly to subsequent handlers. if (BailoutToInterpreterForThrows) { // Keep method interpreted from now on. @@ -2093,6 +2086,11 @@ void Parse::do_one_bytecode() { Deoptimization::Action_make_not_compilable); return; } + if (env()->jvmti_can_post_on_exceptions()) { + // check if we must post exception events, take uncommon trap if so (with must_throw = false) + uncommon_trap_if_should_post_on_exceptions(Deoptimization::Reason_unhandled, false); + } + // Here if either can_post_on_exceptions or should_post_on_exceptions is false add_exception_state(make_exception_state(peek())); break; diff --git a/hotspot/src/share/vm/opto/runtime.cpp b/hotspot/src/share/vm/opto/runtime.cpp index f0d0c217088..2f39cfeb075 100644 --- a/hotspot/src/share/vm/opto/runtime.cpp +++ b/hotspot/src/share/vm/opto/runtime.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -810,7 +810,7 @@ JRT_ENTRY_NO_ASYNC(address, OptoRuntime::handle_exception_C_helper(JavaThread* t // we are switching to old paradigm: search for exception handler in caller_frame // instead in exception handler of caller_frame.sender() - if (JvmtiExport::can_post_exceptions()) { + if (JvmtiExport::can_post_on_exceptions()) { // "Full-speed catching" is not necessary here, // since we're notifying the VM on every catch. // Force deoptimization and the rest of the lookup @@ -975,8 +975,8 @@ void OptoRuntime::deoptimize_caller_frame(JavaThread *thread, bool doit) { assert(stub_frame.is_runtime_frame() || exception_blob()->contains(stub_frame.pc()), "sanity check"); frame caller_frame = stub_frame.sender(®_map); - VM_DeoptimizeFrame deopt(thread, caller_frame.id()); - VMThread::execute(&deopt); + // bypass VM_DeoptimizeFrame and deoptimize the frame directly + Deoptimization::deoptimize_frame(thread, caller_frame.id()); } } diff --git a/hotspot/src/share/vm/prims/jvmtiEventController.cpp b/hotspot/src/share/vm/prims/jvmtiEventController.cpp index 4e07d6f84c2..4eb2d587084 100644 --- a/hotspot/src/share/vm/prims/jvmtiEventController.cpp +++ b/hotspot/src/share/vm/prims/jvmtiEventController.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2010 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 @@ -82,7 +82,7 @@ static const jlong EARLY_EVENT_BITS = CLASS_FILE_LOAD_HOOK_BIT | THREAD_START_BIT | THREAD_END_BIT | DYNAMIC_CODE_GENERATED_BIT; static const jlong GLOBAL_EVENT_BITS = ~THREAD_FILTERED_EVENT_BITS; - +static const jlong SHOULD_POST_ON_EXCEPTIONS_BITS = EXCEPTION_BITS | METHOD_EXIT_BIT | FRAME_POP_BIT; /////////////////////////////////////////////////////////////// // @@ -511,7 +511,12 @@ JvmtiEventControllerPrivate::recompute_thread_enabled(JvmtiThreadState *state) { leave_interp_only_mode(state); } } + + // update the JavaThread cached value for thread-specific should_post_on_exceptions value + bool should_post_on_exceptions = (any_env_enabled & SHOULD_POST_ON_EXCEPTIONS_BITS) != 0; + state->set_should_post_on_exceptions(should_post_on_exceptions); } + return any_env_enabled; } @@ -615,6 +620,10 @@ JvmtiEventControllerPrivate::recompute_enabled() { // set global truly enabled, that is, any thread in any environment JvmtiEventController::_universal_global_event_enabled.set_bits(any_env_thread_enabled); + + // set global should_post_on_exceptions + JvmtiExport::set_should_post_on_exceptions((any_env_thread_enabled & SHOULD_POST_ON_EXCEPTIONS_BITS) != 0); + } EC_TRACE(("JVMTI [-] # recompute enabled - after %llx", any_env_thread_enabled)); diff --git a/hotspot/src/share/vm/prims/jvmtiExport.cpp b/hotspot/src/share/vm/prims/jvmtiExport.cpp index 7b2fffdbdf6..7d189e5beee 100644 --- a/hotspot/src/share/vm/prims/jvmtiExport.cpp +++ b/hotspot/src/share/vm/prims/jvmtiExport.cpp @@ -877,7 +877,7 @@ void JvmtiExport::post_raw_breakpoint(JavaThread *thread, methodOop method, addr bool JvmtiExport::_can_get_source_debug_extension = false; bool JvmtiExport::_can_maintain_original_method_order = false; bool JvmtiExport::_can_post_interpreter_events = false; -bool JvmtiExport::_can_post_exceptions = false; +bool JvmtiExport::_can_post_on_exceptions = false; bool JvmtiExport::_can_post_breakpoint = false; bool JvmtiExport::_can_post_field_access = false; bool JvmtiExport::_can_post_field_modification = false; @@ -908,6 +908,7 @@ bool JvmtiExport::_should_post_garbage_collection_finish = fals bool JvmtiExport::_should_post_object_free = false; bool JvmtiExport::_should_post_resource_exhausted = false; bool JvmtiExport::_should_post_vm_object_alloc = false; +bool JvmtiExport::_should_post_on_exceptions = false; //////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/hotspot/src/share/vm/prims/jvmtiExport.hpp b/hotspot/src/share/vm/prims/jvmtiExport.hpp index 20214aecf9c..a7e264ba78f 100644 --- a/hotspot/src/share/vm/prims/jvmtiExport.hpp +++ b/hotspot/src/share/vm/prims/jvmtiExport.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2010 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 @@ -66,7 +66,7 @@ class JvmtiExport : public AllStatic { JVMTI_SUPPORT_FLAG(can_get_source_debug_extension) JVMTI_SUPPORT_FLAG(can_maintain_original_method_order) JVMTI_SUPPORT_FLAG(can_post_interpreter_events) - JVMTI_SUPPORT_FLAG(can_post_exceptions) + JVMTI_SUPPORT_FLAG(can_post_on_exceptions) JVMTI_SUPPORT_FLAG(can_post_breakpoint) JVMTI_SUPPORT_FLAG(can_post_field_access) JVMTI_SUPPORT_FLAG(can_post_field_modification) @@ -93,6 +93,7 @@ class JvmtiExport : public AllStatic { JVMTI_SUPPORT_FLAG(should_post_data_dump) JVMTI_SUPPORT_FLAG(should_post_garbage_collection_start) JVMTI_SUPPORT_FLAG(should_post_garbage_collection_finish) + JVMTI_SUPPORT_FLAG(should_post_on_exceptions) // ------ the below maybe don't have to be (but are for now) // fixed conditions here ------------ diff --git a/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp b/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp index 82ddb4adf0d..195607346c5 100644 --- a/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp +++ b/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2010 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 @@ -357,7 +357,7 @@ void JvmtiManageCapabilities::update() { avail.can_access_local_variables || avail.can_redefine_classes || avail.can_retransform_classes); - JvmtiExport::set_can_post_exceptions( + JvmtiExport::set_can_post_on_exceptions( avail.can_generate_exception_events || avail.can_generate_frame_pop_events || avail.can_generate_method_exit_events); diff --git a/hotspot/src/share/vm/prims/jvmtiThreadState.hpp b/hotspot/src/share/vm/prims/jvmtiThreadState.hpp index d77d2a8a428..8103aa22ac9 100644 --- a/hotspot/src/share/vm/prims/jvmtiThreadState.hpp +++ b/hotspot/src/share/vm/prims/jvmtiThreadState.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2010 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 @@ -381,6 +381,9 @@ class JvmtiThreadState : public CHeapObj { static ByteSize earlyret_value_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_value); } void oops_do(OopClosure* f); // GC support + +public: + void set_should_post_on_exceptions(bool val) { _thread->set_should_post_on_exceptions_flag(val ? JNI_TRUE : JNI_FALSE); } }; class RedefineVerifyMark : public StackObj { diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index bf100e71407..a8b34a24b1b 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -364,7 +364,7 @@ oop SharedRuntime::retrieve_receiver( symbolHandle sig, frame caller ) { void SharedRuntime::throw_and_post_jvmti_exception(JavaThread *thread, Handle h_exception) { - if (JvmtiExport::can_post_exceptions()) { + if (JvmtiExport::can_post_on_exceptions()) { vframeStream vfst(thread, true); methodHandle method = methodHandle(thread, vfst.method()); address bcp = method()->bcp_from(vfst.bci()); diff --git a/hotspot/src/share/vm/runtime/thread.cpp b/hotspot/src/share/vm/runtime/thread.cpp index db90e0ef5e3..3bdf8dad0f1 100644 --- a/hotspot/src/share/vm/runtime/thread.cpp +++ b/hotspot/src/share/vm/runtime/thread.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -1173,6 +1173,7 @@ void JavaThread::initialize() { _exception_handler_pc = 0; _exception_stack_size = 0; _jvmti_thread_state= NULL; + _should_post_on_exceptions_flag = JNI_FALSE; _jvmti_get_loaded_classes_closure = NULL; _interp_only_mode = 0; _special_runtime_exit_condition = _no_async_condition; diff --git a/hotspot/src/share/vm/runtime/thread.hpp b/hotspot/src/share/vm/runtime/thread.hpp index a06477bd207..49112fe23b7 100644 --- a/hotspot/src/share/vm/runtime/thread.hpp +++ b/hotspot/src/share/vm/runtime/thread.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -1193,6 +1193,9 @@ class JavaThread: public Thread { static ByteSize suspend_flags_offset() { return byte_offset_of(JavaThread, _suspend_flags ); } static ByteSize do_not_unlock_if_synchronized_offset() { return byte_offset_of(JavaThread, _do_not_unlock_if_synchronized); } + static ByteSize should_post_on_exceptions_flag_offset() { + return byte_offset_of(JavaThread, _should_post_on_exceptions_flag); + } #ifndef SERIALGC static ByteSize satb_mark_queue_offset() { return byte_offset_of(JavaThread, _satb_mark_queue); } @@ -1432,6 +1435,16 @@ public: void increment_interp_only_mode() { ++_interp_only_mode; } void decrement_interp_only_mode() { --_interp_only_mode; } + // support for cached flag that indicates whether exceptions need to be posted for this thread + // if this is false, we can avoid deoptimizing when events are thrown + // this gets set to reflect whether jvmtiExport::post_exception_throw would actually do anything + private: + int _should_post_on_exceptions_flag; + + public: + int should_post_on_exceptions_flag() { return _should_post_on_exceptions_flag; } + void set_should_post_on_exceptions_flag(int val) { _should_post_on_exceptions_flag = val; } + private: ThreadStatistics *_thread_stat; From 0c27c5537e2722af528e6dfd026a975807cce0e6 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Mon, 1 Feb 2010 16:49:49 -0800 Subject: [PATCH 053/109] 6614597: Performance variability in jvm2008 xml.validation Fix incorrect marking of methods as not compilable. Reviewed-by: never --- .../src/cpu/sparc/vm/interp_masm_sparc.cpp | 45 ++++++++++----- .../src/cpu/sparc/vm/interp_masm_sparc.hpp | 4 +- .../src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 11 ++-- hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp | 49 ++++++++++------ hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp | 6 +- hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp | 52 +++++++++++------ hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp | 6 +- hotspot/src/share/vm/ci/ciMethod.cpp | 29 +++++----- hotspot/src/share/vm/code/dependencies.cpp | 4 +- hotspot/src/share/vm/code/nmethod.cpp | 20 ++++--- hotspot/src/share/vm/oops/methodDataOop.hpp | 3 + hotspot/src/share/vm/oops/methodOop.cpp | 15 +++-- hotspot/src/share/vm/opto/doCall.cpp | 20 ++----- hotspot/src/share/vm/opto/parseHelper.cpp | 12 ++-- hotspot/src/share/vm/opto/runtime.cpp | 5 ++ .../src/share/vm/runtime/deoptimization.cpp | 56 +++++++++++-------- .../src/share/vm/runtime/deoptimization.hpp | 7 ++- hotspot/src/share/vm/runtime/globals.hpp | 2 +- 18 files changed, 213 insertions(+), 133 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp index 1db51a19cb7..01702ee2b2f 100644 --- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp @@ -1681,11 +1681,8 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver, // If no method data exists, go to profile_continue. test_method_data_pointer(profile_continue); - // We are making a call. Increment the count. - increment_mdp_data_at(in_bytes(CounterData::count_offset()), scratch); - // Record the receiver type. - record_klass_in_profile(receiver, scratch); + record_klass_in_profile(receiver, scratch, true); // The method data pointer needs to be updated to reflect the new target. update_mdp_by_constant(in_bytes(VirtualCallData::virtual_call_data_size())); @@ -1695,9 +1692,13 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver, void InterpreterMacroAssembler::record_klass_in_profile_helper( Register receiver, Register scratch, - int start_row, Label& done) { - if (TypeProfileWidth == 0) + int start_row, Label& done, bool is_virtual_call) { + if (TypeProfileWidth == 0) { + if (is_virtual_call) { + increment_mdp_data_at(in_bytes(CounterData::count_offset()), scratch); + } return; + } int last_row = VirtualCallData::row_limit() - 1; assert(start_row <= last_row, "must be work left to do"); @@ -1714,6 +1715,7 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( // See if the receiver is receiver[n]. int recvr_offset = in_bytes(VirtualCallData::receiver_offset(row)); test_mdp_data_at(recvr_offset, receiver, next_test, scratch); + // delayed()->tst(scratch); // The receiver is receiver[n]. Increment count[n]. int count_offset = in_bytes(VirtualCallData::receiver_count_offset(row)); @@ -1723,20 +1725,31 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( bind(next_test); if (test_for_null_also) { + Label found_null; // Failed the equality check on receiver[n]... Test for null. if (start_row == last_row) { // The only thing left to do is handle the null case. - brx(Assembler::notZero, false, Assembler::pt, done); - delayed()->nop(); + if (is_virtual_call) { + brx(Assembler::zero, false, Assembler::pn, found_null); + delayed()->nop(); + // Receiver did not match any saved receiver and there is no empty row for it. + // Increment total counter to indicate polimorphic case. + increment_mdp_data_at(in_bytes(CounterData::count_offset()), scratch); + ba(false, done); + delayed()->nop(); + bind(found_null); + } else { + brx(Assembler::notZero, false, Assembler::pt, done); + delayed()->nop(); + } break; } // Since null is rare, make it be the branch-taken case. - Label found_null; brx(Assembler::zero, false, Assembler::pn, found_null); delayed()->nop(); // Put all the "Case 3" tests here. - record_klass_in_profile_helper(receiver, scratch, start_row + 1, done); + record_klass_in_profile_helper(receiver, scratch, start_row + 1, done, is_virtual_call); // Found a null. Keep searching for a matching receiver, // but remember that this is an empty (unused) slot. @@ -1753,16 +1766,18 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( int count_offset = in_bytes(VirtualCallData::receiver_count_offset(start_row)); mov(DataLayout::counter_increment, scratch); set_mdp_data_at(count_offset, scratch); - ba(false, done); - delayed()->nop(); + if (start_row > 0) { + ba(false, done); + delayed()->nop(); + } } void InterpreterMacroAssembler::record_klass_in_profile(Register receiver, - Register scratch) { + Register scratch, bool is_virtual_call) { assert(ProfileInterpreter, "must be profiling"); Label done; - record_klass_in_profile_helper(receiver, scratch, 0, done); + record_klass_in_profile_helper(receiver, scratch, 0, done, is_virtual_call); bind (done); } @@ -1840,7 +1855,7 @@ void InterpreterMacroAssembler::profile_typecheck(Register klass, mdp_delta = in_bytes(VirtualCallData::virtual_call_data_size()); // Record the object type. - record_klass_in_profile(klass, scratch); + record_klass_in_profile(klass, scratch, false); } // The method data pointer needs to be updated. diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp index 674611dad60..61d6a528d7c 100644 --- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp @@ -290,9 +290,9 @@ class InterpreterMacroAssembler: public MacroAssembler { void test_mdp_data_at(int offset, Register value, Label& not_equal_continue, Register scratch); - void record_klass_in_profile(Register receiver, Register scratch); + void record_klass_in_profile(Register receiver, Register scratch, bool is_virtual_call); void record_klass_in_profile_helper(Register receiver, Register scratch, - int start_row, Label& done); + int start_row, Label& done, bool is_virtual_call); void update_mdp_by_offset(int offset_of_disp, Register scratch); void update_mdp_by_offset(Register reg, int offset_of_disp, diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index d481137da3f..056b8a82d03 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -3209,7 +3209,6 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) { Register mdo = op->mdo()->as_register(); __ movoop(mdo, md->constant_encoding()); Address counter_addr(mdo, md->byte_offset_of_slot(data, CounterData::count_offset())); - __ addl(counter_addr, DataLayout::counter_increment); Bytecodes::Code bc = method->java_code_at_bci(bci); // Perform additional virtual call profiling for invokevirtual and // invokeinterface bytecodes @@ -3276,14 +3275,18 @@ void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) { __ jcc(Assembler::notEqual, next_test); __ movptr(recv_addr, recv); __ movl(Address(mdo, md->byte_offset_of_slot(data, VirtualCallData::receiver_count_offset(i))), DataLayout::counter_increment); - if (i < (VirtualCallData::row_limit() - 1)) { - __ jmp(update_done); - } + __ jmp(update_done); __ bind(next_test); } + // Receiver did not match any saved receiver and there is no empty row for it. + // Increment total counter to indicate polimorphic case. + __ addl(counter_addr, DataLayout::counter_increment); __ bind(update_done); } + } else { + // Static call + __ addl(counter_addr, DataLayout::counter_increment); } } diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp index a30092523a8..bf1e36648d7 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp @@ -1239,17 +1239,19 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver, Register // If no method data exists, go to profile_continue. test_method_data_pointer(mdp, profile_continue); - // We are making a call. Increment the count. - increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); - Label skip_receiver_profile; if (receiver_can_be_null) { + Label not_null; testptr(receiver, receiver); - jcc(Assembler::zero, skip_receiver_profile); + jccb(Assembler::notZero, not_null); + // We are making a call. Increment the count for null receiver. + increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); + jmp(skip_receiver_profile); + bind(not_null); } // Record the receiver type. - record_klass_in_profile(receiver, mdp, reg2); + record_klass_in_profile(receiver, mdp, reg2, true); bind(skip_receiver_profile); // The method data pointer needs to be updated to reflect the new target. @@ -1263,10 +1265,14 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver, Register void InterpreterMacroAssembler::record_klass_in_profile_helper( Register receiver, Register mdp, - Register reg2, - int start_row, Label& done) { - if (TypeProfileWidth == 0) + Register reg2, int start_row, + Label& done, bool is_virtual_call) { + if (TypeProfileWidth == 0) { + if (is_virtual_call) { + increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); + } return; + } int last_row = VirtualCallData::row_limit() - 1; assert(start_row <= last_row, "must be work left to do"); @@ -1294,19 +1300,28 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( bind(next_test); if (row == start_row) { + Label found_null; // Failed the equality check on receiver[n]... Test for null. testptr(reg2, reg2); if (start_row == last_row) { // The only thing left to do is handle the null case. - jcc(Assembler::notZero, done); + if (is_virtual_call) { + jccb(Assembler::zero, found_null); + // Receiver did not match any saved receiver and there is no empty row for it. + // Increment total counter to indicate polimorphic case. + increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); + jmp(done); + bind(found_null); + } else { + jcc(Assembler::notZero, done); + } break; } // Since null is rare, make it be the branch-taken case. - Label found_null; jcc(Assembler::zero, found_null); // Put all the "Case 3" tests here. - record_klass_in_profile_helper(receiver, mdp, reg2, start_row + 1, done); + record_klass_in_profile_helper(receiver, mdp, reg2, start_row + 1, done, is_virtual_call); // Found a null. Keep searching for a matching receiver, // but remember that this is an empty (unused) slot. @@ -1323,16 +1338,18 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( int count_offset = in_bytes(VirtualCallData::receiver_count_offset(start_row)); movptr(reg2, (int32_t)DataLayout::counter_increment); set_mdp_data_at(mdp, count_offset, reg2); - jmp(done); + if (start_row > 0) { + jmp(done); + } } void InterpreterMacroAssembler::record_klass_in_profile(Register receiver, - Register mdp, - Register reg2) { + Register mdp, Register reg2, + bool is_virtual_call) { assert(ProfileInterpreter, "must be profiling"); Label done; - record_klass_in_profile_helper(receiver, mdp, reg2, 0, done); + record_klass_in_profile_helper(receiver, mdp, reg2, 0, done, is_virtual_call); bind (done); } @@ -1425,7 +1442,7 @@ void InterpreterMacroAssembler::profile_typecheck(Register mdp, Register klass, mdp_delta = in_bytes(VirtualCallData::virtual_call_data_size()); // Record the object type. - record_klass_in_profile(klass, mdp, reg2); + record_klass_in_profile(klass, mdp, reg2, false); assert(reg2 == rdi, "we know how to fix this blown reg"); restore_locals(); // Restore EDI } diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp index 23bca4108fa..f7d17a9fd80 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp @@ -213,10 +213,10 @@ class InterpreterMacroAssembler: public MacroAssembler { Label& not_equal_continue); void record_klass_in_profile(Register receiver, Register mdp, - Register reg2); + Register reg2, bool is_virtual_call); void record_klass_in_profile_helper(Register receiver, Register mdp, - Register reg2, - int start_row, Label& done); + Register reg2, int start_row, + Label& done, bool is_virtual_call); void update_mdp_by_offset(Register mdp_in, int offset_of_offset); void update_mdp_by_offset(Register mdp_in, Register reg, int offset_of_disp); diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp index 9418540dc09..7e6b71fa147 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp @@ -1262,17 +1262,19 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver, // If no method data exists, go to profile_continue. test_method_data_pointer(mdp, profile_continue); - // We are making a call. Increment the count. - increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); - Label skip_receiver_profile; if (receiver_can_be_null) { + Label not_null; testptr(receiver, receiver); - jcc(Assembler::zero, skip_receiver_profile); + jccb(Assembler::notZero, not_null); + // We are making a call. Increment the count for null receiver. + increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); + jmp(skip_receiver_profile); + bind(not_null); } // Record the receiver type. - record_klass_in_profile(receiver, mdp, reg2); + record_klass_in_profile(receiver, mdp, reg2, true); bind(skip_receiver_profile); // The method data pointer needs to be updated to reflect the new target. @@ -1296,10 +1298,14 @@ void InterpreterMacroAssembler::profile_virtual_call(Register receiver, // See below for example code. void InterpreterMacroAssembler::record_klass_in_profile_helper( Register receiver, Register mdp, - Register reg2, - int start_row, Label& done) { - if (TypeProfileWidth == 0) + Register reg2, int start_row, + Label& done, bool is_virtual_call) { + if (TypeProfileWidth == 0) { + if (is_virtual_call) { + increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); + } return; + } int last_row = VirtualCallData::row_limit() - 1; assert(start_row <= last_row, "must be work left to do"); @@ -1327,19 +1333,28 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( bind(next_test); if (test_for_null_also) { + Label found_null; // Failed the equality check on receiver[n]... Test for null. testptr(reg2, reg2); if (start_row == last_row) { // The only thing left to do is handle the null case. - jcc(Assembler::notZero, done); + if (is_virtual_call) { + jccb(Assembler::zero, found_null); + // Receiver did not match any saved receiver and there is no empty row for it. + // Increment total counter to indicate polimorphic case. + increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset())); + jmp(done); + bind(found_null); + } else { + jcc(Assembler::notZero, done); + } break; } // Since null is rare, make it be the branch-taken case. - Label found_null; jcc(Assembler::zero, found_null); // Put all the "Case 3" tests here. - record_klass_in_profile_helper(receiver, mdp, reg2, start_row + 1, done); + record_klass_in_profile_helper(receiver, mdp, reg2, start_row + 1, done, is_virtual_call); // Found a null. Keep searching for a matching receiver, // but remember that this is an empty (unused) slot. @@ -1356,7 +1371,9 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( int count_offset = in_bytes(VirtualCallData::receiver_count_offset(start_row)); movl(reg2, DataLayout::counter_increment); set_mdp_data_at(mdp, count_offset, reg2); - jmp(done); + if (start_row > 0) { + jmp(done); + } } // Example state machine code for three profile rows: @@ -1368,7 +1385,7 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( // if (row[1].rec != NULL) { // // degenerate decision tree, rooted at row[2] // if (row[2].rec == rec) { row[2].incr(); goto done; } -// if (row[2].rec != NULL) { goto done; } // overflow +// if (row[2].rec != NULL) { count.incr(); goto done; } // overflow // row[2].init(rec); goto done; // } else { // // remember row[1] is empty @@ -1381,14 +1398,15 @@ void InterpreterMacroAssembler::record_klass_in_profile_helper( // if (row[2].rec == rec) { row[2].incr(); goto done; } // row[0].init(rec); goto done; // } +// done: void InterpreterMacroAssembler::record_klass_in_profile(Register receiver, - Register mdp, - Register reg2) { + Register mdp, Register reg2, + bool is_virtual_call) { assert(ProfileInterpreter, "must be profiling"); Label done; - record_klass_in_profile_helper(receiver, mdp, reg2, 0, done); + record_klass_in_profile_helper(receiver, mdp, reg2, 0, done, is_virtual_call); bind (done); } @@ -1484,7 +1502,7 @@ void InterpreterMacroAssembler::profile_typecheck(Register mdp, Register klass, mdp_delta = in_bytes(VirtualCallData::virtual_call_data_size()); // Record the object type. - record_klass_in_profile(klass, mdp, reg2); + record_klass_in_profile(klass, mdp, reg2, false); } update_mdp_by_constant(mdp, mdp_delta); diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp index 0cfc9bf7fb8..fd935f1ed8b 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp @@ -222,10 +222,10 @@ class InterpreterMacroAssembler: public MacroAssembler { Label& not_equal_continue); void record_klass_in_profile(Register receiver, Register mdp, - Register reg2); + Register reg2, bool is_virtual_call); void record_klass_in_profile_helper(Register receiver, Register mdp, - Register reg2, - int start_row, Label& done); + Register reg2, int start_row, + Label& done, bool is_virtual_call); void update_mdp_by_offset(Register mdp_in, int offset_of_offset); void update_mdp_by_offset(Register mdp_in, Register reg, int offset_of_disp); diff --git a/hotspot/src/share/vm/ci/ciMethod.cpp b/hotspot/src/share/vm/ci/ciMethod.cpp index 3a271b3f226..3d9b04a8e3d 100644 --- a/hotspot/src/share/vm/ci/ciMethod.cpp +++ b/hotspot/src/share/vm/ci/ciMethod.cpp @@ -436,15 +436,20 @@ ciCallProfile ciMethod::call_profile_at_bci(int bci) { // we will set result._method also. } // Determine call site's morphism. - // The call site count could be == (receivers_count_total + 1) - // not only in the case of a polymorphic call but also in the case - // when a method data snapshot is taken after the site count was updated - // but before receivers counters were updated. - if (morphism == result._limit) { - // There were no array klasses and morphism <= MorphismLimit. - if (morphism < ciCallProfile::MorphismLimit || - morphism == ciCallProfile::MorphismLimit && - (receivers_count_total+1) >= count) { + // The call site count is 0 with known morphism (onlt 1 or 2 receivers) + // or < 0 in the case of a type check failured for checkcast, aastore, instanceof. + // The call site count is > 0 in the case of a polymorphic virtual call. + if (morphism > 0 && morphism == result._limit) { + // The morphism <= MorphismLimit. + if ((morphism < ciCallProfile::MorphismLimit) || + (morphism == ciCallProfile::MorphismLimit && count == 0)) { +#ifdef ASSERT + if (count > 0) { + tty->print_cr("bci: %d", bci); + this->print_codes(); + assert(false, "this call site should not be polymorphic"); + } +#endif result._morphism = morphism; } } @@ -452,10 +457,8 @@ ciCallProfile ciMethod::call_profile_at_bci(int bci) { // zero or less, presume that this is a typecheck profile and // do nothing. Otherwise, increase count to be the sum of all // receiver's counts. - if (count > 0) { - if (count < receivers_count_total) { - count = receivers_count_total; - } + if (count >= 0) { + count += receivers_count_total; } } result._count = count; diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp index aa476fd7c4e..07e7ed9b2ce 100644 --- a/hotspot/src/share/vm/code/dependencies.cpp +++ b/hotspot/src/share/vm/code/dependencies.cpp @@ -843,13 +843,15 @@ static bool count_find_witness_calls() { if (occasional_print || final_stats) { // Every now and then dump a little info about dependency searching. if (xtty != NULL) { - xtty->elem("deps_find_witness calls='%d' steps='%d' recursions='%d' singles='%d'", + ttyLocker ttyl; + xtty->elem("deps_find_witness calls='%d' steps='%d' recursions='%d' singles='%d'", deps_find_witness_calls, deps_find_witness_steps, deps_find_witness_recursions, deps_find_witness_singles); } if (final_stats || (TraceDependencies && WizardMode)) { + ttyLocker ttyl; tty->print_cr("Dependency check (find_witness) " "calls=%d, steps=%d (avg=%.1f), recursions=%d, singles=%d", deps_find_witness_calls, diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index 5b21439b1c3..814a4069f37 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -1117,7 +1117,6 @@ void nmethod::make_unloaded(BoolObjectClosure* is_alive, oop cause) { if (_method->code() == this) { _method->clear_code(); // Break a cycle } - inc_decompile_count(); // Last chance to make a mark on the MDO _method = NULL; // Clear the method of this dead nmethod } // Make the class unloaded - i.e., change state and notify sweeper @@ -1177,15 +1176,17 @@ void nmethod::log_state_change() const { bool nmethod::make_not_entrant_or_zombie(unsigned int state) { assert(state == zombie || state == not_entrant, "must be zombie or not_entrant"); - // If the method is already zombie there is nothing to do - if (is_zombie()) { - return false; - } + bool was_alive = false; // Make sure the nmethod is not flushed in case of a safepoint in code below. nmethodLocker nml(this); { + // If the method is already zombie there is nothing to do + if (is_zombie()) { + return false; + } + // invalidate osr nmethod before acquiring the patching lock since // they both acquire leaf locks and we don't want a deadlock. // This logic is equivalent to the logic below for patching the @@ -1223,6 +1224,8 @@ bool nmethod::make_not_entrant_or_zombie(unsigned int state) { assert(state == not_entrant, "other cases may need to be handled differently"); } + was_alive = is_in_use(); // Read state under lock + // Change state flags.state = state; @@ -1249,8 +1252,11 @@ bool nmethod::make_not_entrant_or_zombie(unsigned int state) { mark_as_seen_on_stack(); } - // It's a true state change, so mark the method as decompiled. - inc_decompile_count(); + if (was_alive) { + // It's a true state change, so mark the method as decompiled. + // Do it only for transition from alive. + inc_decompile_count(); + } // zombie only - if a JVMTI agent has enabled the CompiledMethodUnload event // and it hasn't already been reported for this nmethod then report it now. diff --git a/hotspot/src/share/vm/oops/methodDataOop.hpp b/hotspot/src/share/vm/oops/methodDataOop.hpp index 80361d9f9ac..e1c8eaf10af 100644 --- a/hotspot/src/share/vm/oops/methodDataOop.hpp +++ b/hotspot/src/share/vm/oops/methodDataOop.hpp @@ -1391,6 +1391,9 @@ public: } void inc_decompile_count() { _nof_decompiles += 1; + if (decompile_count() > (uint)PerMethodRecompilationCutoff) { + method()->set_not_compilable(); + } } // Support for code generation diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp index 36790abad7a..221a50edd65 100644 --- a/hotspot/src/share/vm/oops/methodOop.cpp +++ b/hotspot/src/share/vm/oops/methodOop.cpp @@ -575,12 +575,6 @@ bool methodOopDesc::is_not_compilable(int comp_level) const { return true; } - methodDataOop mdo = method_data(); - if (mdo != NULL - && (uint)mdo->decompile_count() > (uint)PerMethodRecompilationCutoff) { - // Since (uint)-1 is large, -1 really means 'no cutoff'. - return true; - } #ifdef COMPILER2 if (is_tier1_compile(comp_level)) { if (is_not_tier1_compilable()) { @@ -594,6 +588,15 @@ bool methodOopDesc::is_not_compilable(int comp_level) const { // call this when compiler finds that this method is not compilable void methodOopDesc::set_not_compilable(int comp_level) { + if (PrintCompilation) { + ttyLocker ttyl; + tty->print("made not compilable "); + this->print_short_name(tty); + int size = this->code_size(); + if (size > 0) + tty->print(" (%d bytes)", size); + tty->cr(); + } if ((TraceDeoptimization || LogCompilation) && (xtty != NULL)) { ttyLocker ttyl; xtty->begin_elem("make_not_compilable thread='%d'", (int) os::current_thread_id()); diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp index c000a7e80fb..d9c1a23bd39 100644 --- a/hotspot/src/share/vm/opto/doCall.cpp +++ b/hotspot/src/share/vm/opto/doCall.cpp @@ -182,26 +182,16 @@ CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, } } CallGenerator* miss_cg; + Deoptimization::DeoptReason reason = (profile.morphism() == 2) ? + Deoptimization::Reason_bimorphic : + Deoptimization::Reason_class_check; if (( profile.morphism() == 1 || (profile.morphism() == 2 && next_hit_cg != NULL) ) && - - !too_many_traps(Deoptimization::Reason_class_check) - - // Check only total number of traps per method to allow - // the transition from monomorphic to bimorphic case between - // compilations without falling into virtual call. - // A monomorphic case may have the class_check trap flag is set - // due to the time gap between the uncommon trap processing - // when flags are set in MDO and the call site bytecode execution - // in Interpreter when MDO counters are updated. - // There was also class_check trap in monomorphic case due to - // the bug 6225440. - + !too_many_traps(jvms->method(), jvms->bci(), reason) ) { // Generate uncommon trap for class check failure path // in case of monomorphic or bimorphic virtual call site. - miss_cg = CallGenerator::for_uncommon_trap(call_method, - Deoptimization::Reason_class_check, + miss_cg = CallGenerator::for_uncommon_trap(call_method, reason, Deoptimization::Action_maybe_recompile); } else { // Generate virtual call for class check failure path diff --git a/hotspot/src/share/vm/opto/parseHelper.cpp b/hotspot/src/share/vm/opto/parseHelper.cpp index ab7883fd8ff..196c77f1f1a 100644 --- a/hotspot/src/share/vm/opto/parseHelper.cpp +++ b/hotspot/src/share/vm/opto/parseHelper.cpp @@ -414,8 +414,6 @@ void Parse::profile_not_taken_branch(bool force_update) { void Parse::profile_call(Node* receiver) { if (!method_data_update()) return; - profile_generic_call(); - switch (bc()) { case Bytecodes::_invokevirtual: case Bytecodes::_invokeinterface: @@ -424,6 +422,7 @@ void Parse::profile_call(Node* receiver) { case Bytecodes::_invokestatic: case Bytecodes::_invokedynamic: case Bytecodes::_invokespecial: + profile_generic_call(); break; default: fatal("unexpected call bytecode"); } @@ -444,13 +443,16 @@ void Parse::profile_generic_call() { void Parse::profile_receiver_type(Node* receiver) { assert(method_data_update(), "must be generating profile code"); - // Skip if we aren't tracking receivers - if (TypeProfileWidth < 1) return; - ciMethodData* md = method()->method_data(); assert(md != NULL, "expected valid ciMethodData"); ciProfileData* data = md->bci_to_data(bci()); assert(data->is_ReceiverTypeData(), "need ReceiverTypeData here"); + + // Skip if we aren't tracking receivers + if (TypeProfileWidth < 1) { + increment_md_counter_at(md, data, CounterData::count_offset()); + return; + } ciReceiverTypeData* rdata = (ciReceiverTypeData*)data->as_ReceiverTypeData(); Node* method_data = method_data_addressing(md, rdata, in_ByteSize(0)); diff --git a/hotspot/src/share/vm/opto/runtime.cpp b/hotspot/src/share/vm/opto/runtime.cpp index f0d0c217088..3bf145b0d17 100644 --- a/hotspot/src/share/vm/opto/runtime.cpp +++ b/hotspot/src/share/vm/opto/runtime.cpp @@ -706,6 +706,11 @@ JRT_LEAF(void, OptoRuntime::profile_receiver_type_C(DataLayout* data, oopDesc* r // vc->set_receiver_count(empty_row, DataLayout::counter_increment); int count_off = ReceiverTypeData::receiver_count_cell_index(empty_row); *(mdp + count_off) = DataLayout::counter_increment; + } else { + // Receiver did not match any saved receiver and there is no empty row for it. + // Increment total counter to indicate polimorphic case. + intptr_t* count_p = (intptr_t*)(((byte*)(data)) + in_bytes(CounterData::count_offset())); + *count_p += DataLayout::counter_increment; } JRT_END diff --git a/hotspot/src/share/vm/runtime/deoptimization.cpp b/hotspot/src/share/vm/runtime/deoptimization.cpp index e40e052a582..6a8f8e1224e 100644 --- a/hotspot/src/share/vm/runtime/deoptimization.cpp +++ b/hotspot/src/share/vm/runtime/deoptimization.cpp @@ -1338,13 +1338,14 @@ JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint tra // Whether the interpreter is producing MDO data or not, we also need // to use the MDO to detect hot deoptimization points and control // aggressive optimization. + bool inc_recompile_count = false; + ProfileData* pdata = NULL; if (ProfileTraps && update_trap_state && trap_mdo.not_null()) { assert(trap_mdo() == get_method_data(thread, trap_method, false), "sanity"); uint this_trap_count = 0; bool maybe_prior_trap = false; bool maybe_prior_recompile = false; - ProfileData* pdata - = query_update_method_data(trap_mdo, trap_bci, reason, + pdata = query_update_method_data(trap_mdo, trap_bci, reason, //outputs: this_trap_count, maybe_prior_trap, @@ -1380,18 +1381,7 @@ JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint tra // Detect repeated recompilation at the same BCI, and enforce a limit. if (make_not_entrant && maybe_prior_recompile) { // More than one recompile at this point. - trap_mdo->inc_overflow_recompile_count(); - if (maybe_prior_trap - && ((uint)trap_mdo->overflow_recompile_count() - > (uint)PerBytecodeRecompilationCutoff)) { - // Give up on the method containing the bad BCI. - if (trap_method() == nm->method()) { - make_not_compilable = true; - } else { - trap_method->set_not_compilable(); - // But give grace to the enclosing nm->method(). - } - } + inc_recompile_count = maybe_prior_trap; } } else { // For reasons which are not recorded per-bytecode, we simply @@ -1418,7 +1408,17 @@ JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint tra reset_counters = true; } - if (make_not_entrant && pdata != NULL) { + } + + // Take requested actions on the method: + + // Recompile + if (make_not_entrant) { + if (!nm->make_not_entrant()) { + return; // the call did not change nmethod's state + } + + if (pdata != NULL) { // Record the recompilation event, if any. int tstate0 = pdata->trap_state(); int tstate1 = trap_state_set_recompiled(tstate0, true); @@ -1427,7 +1427,19 @@ JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint tra } } - // Take requested actions on the method: + if (inc_recompile_count) { + trap_mdo->inc_overflow_recompile_count(); + if ((uint)trap_mdo->overflow_recompile_count() > + (uint)PerBytecodeRecompilationCutoff) { + // Give up on the method containing the bad BCI. + if (trap_method() == nm->method()) { + make_not_compilable = true; + } else { + trap_method->set_not_compilable(); + // But give grace to the enclosing nm->method(). + } + } + } // Reset invocation counters if (reset_counters) { @@ -1437,13 +1449,8 @@ JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint tra reset_invocation_counter(trap_scope); } - // Recompile - if (make_not_entrant) { - nm->make_not_entrant(); - } - // Give up compiling - if (make_not_compilable) { + if (make_not_compilable && !nm->method()->is_not_compilable()) { assert(make_not_entrant, "consistent"); nm->method()->set_not_compilable(); } @@ -1516,9 +1523,11 @@ Deoptimization::query_update_method_data(methodDataHandle trap_mdo, if (tstate1 != tstate0) pdata->set_trap_state(tstate1); } else { - if (LogCompilation && xtty != NULL) + if (LogCompilation && xtty != NULL) { + ttyLocker ttyl; // Missing MDP? Leave a small complaint in the log. xtty->elem("missing_mdp bci='%d'", trap_bci); + } } } @@ -1672,6 +1681,7 @@ const char* Deoptimization::_trap_reason_name[Reason_LIMIT] = { "class_check", "array_check", "intrinsic", + "bimorphic", "unloaded", "uninitialized", "unreached", diff --git a/hotspot/src/share/vm/runtime/deoptimization.hpp b/hotspot/src/share/vm/runtime/deoptimization.hpp index ff25cfd3b3a..6d3686cb568 100644 --- a/hotspot/src/share/vm/runtime/deoptimization.hpp +++ b/hotspot/src/share/vm/runtime/deoptimization.hpp @@ -33,12 +33,15 @@ class Deoptimization : AllStatic { enum DeoptReason { Reason_many = -1, // indicates presence of several reasons Reason_none = 0, // indicates absence of a relevant deopt. + // Next 7 reasons are recorded per bytecode in DataLayout::trap_bits Reason_null_check, // saw unexpected null or zero divisor (@bci) Reason_null_assert, // saw unexpected non-null or non-zero (@bci) Reason_range_check, // saw unexpected array index (@bci) Reason_class_check, // saw unexpected object class (@bci) Reason_array_check, // saw unexpected array class (aastore @bci) Reason_intrinsic, // saw unexpected operand to intrinsic (@bci) + Reason_bimorphic, // saw unexpected object class in bimorphic inlining (@bci) + Reason_unloaded, // unloaded class or constant pool entry Reason_uninitialized, // bad class state (uninitialized) Reason_unreached, // code is not reached, compiler @@ -49,7 +52,7 @@ class Deoptimization : AllStatic { Reason_predicate, // compiler generated predicate failed Reason_LIMIT, // Note: Keep this enum in sync. with _trap_reason_name. - Reason_RECORDED_LIMIT = Reason_unloaded // some are not recorded per bc + Reason_RECORDED_LIMIT = Reason_bimorphic // some are not recorded per bc // Note: Reason_RECORDED_LIMIT should be < 8 to fit into 3 bits of // DataLayout::trap_bits. This dependency is enforced indirectly // via asserts, to avoid excessive direct header-to-header dependencies. @@ -279,7 +282,7 @@ class Deoptimization : AllStatic { int trap_state); static bool reason_is_recorded_per_bytecode(DeoptReason reason) { - return reason > Reason_none && reason < Reason_RECORDED_LIMIT; + return reason > Reason_none && reason <= Reason_RECORDED_LIMIT; } static DeoptReason reason_recorded_per_bytecode_if_any(DeoptReason reason) { diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 777fb94ea80..3a6ac193304 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -2864,7 +2864,7 @@ class CommandLineFlags { product(intx, PerMethodRecompilationCutoff, 400, \ "After recompiling N times, stay in the interpreter (-1=>'Inf')") \ \ - product(intx, PerBytecodeRecompilationCutoff, 100, \ + product(intx, PerBytecodeRecompilationCutoff, 200, \ "Per-BCI limit on repeated recompilation (-1=>'Inf')") \ \ product(intx, PerMethodTrapLimit, 100, \ From d7c18f0617f2ca7797785676b09327c7fd5d309f Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Tue, 2 Feb 2010 10:55:07 +0000 Subject: [PATCH 054/109] 6921740: Eliminate warnings from sun.io converters and allow compiling with JAVAC_MAX_WARNINGS=true Fix sun.io converters unchecked and cast warnings produced by -Xlint:all Reviewed-by: alanb, sherman --- jdk/make/java/sun_nio/Makefile | 2 +- .../share/classes/sun/io/ByteToCharUTF8.java | 16 +++--- .../classes/sun/io/CharToByteUnicode.java | 2 +- .../classes/sun/io/CharacterEncoding.java | 22 ++++---- jdk/src/share/classes/sun/io/Converters.java | 51 ++++++++++--------- .../sun/nio/cs/AbstractCharsetProvider.java | 48 ++++++++--------- 6 files changed, 71 insertions(+), 70 deletions(-) diff --git a/jdk/make/java/sun_nio/Makefile b/jdk/make/java/sun_nio/Makefile index bf316dfb3e2..23f07f13102 100644 --- a/jdk/make/java/sun_nio/Makefile +++ b/jdk/make/java/sun_nio/Makefile @@ -31,7 +31,7 @@ BUILDDIR = ../.. PACKAGE = sun.nio PRODUCT = sun -OTHER_JAVACFLAGS += -Xlint:serial -Werror +OTHER_JAVACFLAGS += -Xlint:serial,-deprecation -Werror include $(BUILDDIR)/common/Defs.gmk # diff --git a/jdk/src/share/classes/sun/io/ByteToCharUTF8.java b/jdk/src/share/classes/sun/io/ByteToCharUTF8.java index 47da36bb4c9..bff6935a16d 100644 --- a/jdk/src/share/classes/sun/io/ByteToCharUTF8.java +++ b/jdk/src/share/classes/sun/io/ByteToCharUTF8.java @@ -113,7 +113,7 @@ public class ByteToCharUTF8 extends ByteToCharConverter { savedSize = 1; } else { savedSize = 2; - savedBytes[1] = (byte)input[byteOff++]; + savedBytes[1] = input[byteOff++]; } break; } @@ -135,11 +135,11 @@ public class ByteToCharUTF8 extends ByteToCharConverter { savedSize = 1; } else if (byteOff + 1 >= inEnd) { savedSize = 2; - savedBytes[1] = (byte)input[byteOff++]; + savedBytes[1] = input[byteOff++]; } else { savedSize = 3; - savedBytes[1] = (byte)input[byteOff++]; - savedBytes[2] = (byte)input[byteOff++]; + savedBytes[1] = input[byteOff++]; + savedBytes[2] = input[byteOff++]; } break; } @@ -154,10 +154,10 @@ public class ByteToCharUTF8 extends ByteToCharConverter { throw new MalformedInputException(); } // this byte sequence is UTF16 character - int ucs4 = (int)(0x07 & byte1) << 18 | - (int)(0x3f & byte2) << 12 | - (int)(0x3f & byte3) << 6 | - (int)(0x3f & byte4); + int ucs4 = (0x07 & byte1) << 18 | + (0x3f & byte2) << 12 | + (0x3f & byte3) << 6 | + (0x3f & byte4); outputChar[0] = (char)((ucs4 - 0x10000) / 0x400 + 0xd800); outputChar[1] = (char)((ucs4 - 0x10000) % 0x400 + 0xdc00); outputSize = 2; diff --git a/jdk/src/share/classes/sun/io/CharToByteUnicode.java b/jdk/src/share/classes/sun/io/CharToByteUnicode.java index 6409a7177cb..598cd026930 100644 --- a/jdk/src/share/classes/sun/io/CharToByteUnicode.java +++ b/jdk/src/share/classes/sun/io/CharToByteUnicode.java @@ -46,7 +46,7 @@ public class CharToByteUnicode extends CharToByteConverter { protected int byteOrder = UNKNOWN; public CharToByteUnicode() { - String enc = (String) java.security.AccessController.doPrivileged( + String enc = java.security.AccessController.doPrivileged( new sun.security.action.GetPropertyAction("sun.io.unicode.encoding", "UnicodeBig")); if (enc.equals("UnicodeBig")) diff --git a/jdk/src/share/classes/sun/io/CharacterEncoding.java b/jdk/src/share/classes/sun/io/CharacterEncoding.java index 73099d9acff..2a5ebefd0bd 100644 --- a/jdk/src/share/classes/sun/io/CharacterEncoding.java +++ b/jdk/src/share/classes/sun/io/CharacterEncoding.java @@ -50,11 +50,11 @@ public class CharacterEncoding { private static boolean sjisIsMS932; - private static Map aliasTable; + private static Map aliasTable; private static volatile boolean installedAll; static { - aliasTable = new HashMap(460, 1.0f); /* MDA */ + aliasTable = new HashMap<>(460, 1.0f); /* MDA */ aliasTable.put("us-ascii", "ASCII"); aliasTable.put("ascii", "ASCII"); @@ -119,11 +119,11 @@ public class CharacterEncoding { } // need to use Locale.US so we can load ISO converters in tr_TR locale String lower = name.toLowerCase(Locale.US); - String val = (String) aliasTable.get(lower); + String val = aliasTable.get(lower); if (val == null && !installedAll) { installAll(); - val = (String) aliasTable.get(lower); + val = aliasTable.get(lower); } return val; } @@ -131,7 +131,7 @@ public class CharacterEncoding { private static synchronized void installAll() { if (!installedAll) { GetPropertyAction a = new GetPropertyAction("sun.nio.cs.map"); - String map = ((String)AccessController.doPrivileged(a)); + String map = AccessController.doPrivileged(a); if (map != null) { sjisIsMS932 = map.equalsIgnoreCase("Windows-31J/Shift_JIS"); } else { @@ -857,9 +857,9 @@ public class CharacterEncoding { * Auto Detect converter. */ static String getSJISName() { - String encodeName = (String) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + String encodeName = AccessController.doPrivileged( + new PrivilegedAction() { + public String run() { String osName = System.getProperty("os.name"); if (osName.equals("Solaris") || osName.equals("SunOS")){ return "PCK"; @@ -880,9 +880,9 @@ public class CharacterEncoding { static String getEUCJPName() { - String encodeName = (String) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + String encodeName = AccessController.doPrivileged( + new PrivilegedAction() { + public String run() { String osName = System.getProperty("os.name"); if (osName.equals("Solaris") || osName.equals("SunOS")) return "eucJP-open"; diff --git a/jdk/src/share/classes/sun/io/Converters.java b/jdk/src/share/classes/sun/io/Converters.java index 9b6959b5d61..377ca8f9d3e 100644 --- a/jdk/src/share/classes/sun/io/Converters.java +++ b/jdk/src/share/classes/sun/io/Converters.java @@ -85,10 +85,11 @@ public class Converters { * this code can be involved in the startup sequence it's important to keep * the footprint down. */ - private static SoftReference[][] classCache - = new SoftReference[][] { - new SoftReference[CACHE_SIZE], - new SoftReference[CACHE_SIZE] + @SuppressWarnings("unchecked") + private static SoftReference[][] classCache + = (SoftReference[][]) new SoftReference[][] { + new SoftReference[CACHE_SIZE], + new SoftReference[CACHE_SIZE] }; private static void moveToFront(Object[] oa, int i) { @@ -98,28 +99,28 @@ public class Converters { oa[0] = ob; } - private static Class cache(int type, Object encoding) { - SoftReference[] srs = classCache[type]; + private static Class cache(int type, Object encoding) { + SoftReference[] srs = classCache[type]; for (int i = 0; i < CACHE_SIZE; i++) { - SoftReference sr = srs[i]; + SoftReference sr = srs[i]; if (sr == null) continue; - Object[] oa = (Object[])sr.get(); + Object[] oa = sr.get(); if (oa == null) { srs[i] = null; continue; } if (oa[1].equals(encoding)) { moveToFront(srs, i); - return (Class)oa[0]; + return (Class)oa[0]; } } return null; } - private static Class cache(int type, Object encoding, Class c) { - SoftReference[] srs = classCache[type]; - srs[CACHE_SIZE - 1] = new SoftReference(new Object[] { c, encoding }); + private static Class cache(int type, Object encoding, Class c) { + SoftReference[] srs = classCache[type]; + srs[CACHE_SIZE - 1] = new SoftReference(new Object[] { c, encoding }); moveToFront(srs, CACHE_SIZE - 1); return c; } @@ -129,12 +130,12 @@ public class Converters { */ public static boolean isCached(int type, String encoding) { synchronized (lock) { - SoftReference[] srs = classCache[type]; + SoftReference[] srs = classCache[type]; for (int i = 0; i < CACHE_SIZE; i++) { - SoftReference sr = srs[i]; + SoftReference sr = srs[i]; if (sr == null) continue; - Object[] oa = (Object[])sr.get(); + Object[] oa = sr.get(); if (oa == null) { srs[i] = null; continue; @@ -152,9 +153,9 @@ public class Converters { private static String getConverterPackageName() { String cp = converterPackageName; if (cp != null) return cp; - java.security.PrivilegedAction pa = + java.security.PrivilegedAction pa = new sun.security.action.GetPropertyAction("file.encoding.pkg"); - cp = (String)java.security.AccessController.doPrivileged(pa); + cp = java.security.AccessController.doPrivileged(pa); if (cp != null) { /* Property is set, so take it as the true converter package */ converterPackageName = cp; @@ -168,9 +169,9 @@ public class Converters { public static String getDefaultEncodingName() { synchronized (lock) { if (defaultEncoding == null) { - java.security.PrivilegedAction pa = + java.security.PrivilegedAction pa = new sun.security.action.GetPropertyAction("file.encoding"); - defaultEncoding = (String)java.security.AccessController.doPrivileged(pa); + defaultEncoding = java.security.AccessController.doPrivileged(pa); } } return defaultEncoding; @@ -194,7 +195,7 @@ public class Converters { * encoding, or throw an UnsupportedEncodingException if no such class can * be found */ - private static Class getConverterClass(int type, String encoding) + private static Class getConverterClass(int type, String encoding) throws UnsupportedEncodingException { String enc = null; @@ -241,7 +242,7 @@ public class Converters { * Instantiate the given converter class, or throw an * UnsupportedEncodingException if it cannot be instantiated */ - private static Object newConverter(String enc, Class c) + private static Object newConverter(String enc, Class c) throws UnsupportedEncodingException { try { @@ -261,7 +262,7 @@ public class Converters { static Object newConverter(int type, String enc) throws UnsupportedEncodingException { - Class c; + Class c; synchronized (lock) { c = cache(type, enc); if (c == null) { @@ -279,9 +280,9 @@ public class Converters { * not yet defined, return a class that implements the fallback default * encoding, which is just ISO 8859-1. */ - private static Class getDefaultConverterClass(int type) { + private static Class getDefaultConverterClass(int type) { boolean fillCache = false; - Class c; + Class c; /* First check the class cache */ c = cache(type, DEFAULT_NAME); @@ -325,7 +326,7 @@ public class Converters { * encoding cannot be determined. */ static Object newDefaultConverter(int type) { - Class c; + Class c; synchronized (lock) { c = getDefaultConverterClass(type); } diff --git a/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java b/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java index e3d03e078fc..5e86d64cc42 100644 --- a/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java +++ b/jdk/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java @@ -48,23 +48,23 @@ public class AbstractCharsetProvider /* Maps canonical names to class names */ - private Map classMap - = new TreeMap(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + private Map classMap + = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); /* Maps alias names to canonical names */ - private Map aliasMap - = new TreeMap(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + private Map aliasMap + = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); /* Maps canonical names to alias-name arrays */ - private Map aliasNameMap - = new TreeMap(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + private Map aliasNameMap + = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); /* Maps canonical names to soft references that hold cached instances */ - private Map cache - = new TreeMap(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); + private Map> cache + = new TreeMap<>(ASCIICaseInsensitiveComparator.CASE_INSENSITIVE_ORDER); private String packagePrefix; @@ -79,13 +79,13 @@ public class AbstractCharsetProvider /* Add an entry to the given map, but only if no mapping yet exists * for the given name. */ - private static void put(Map m, String name, Object value) { + private static void put(Map m, K name, V value) { if (!m.containsKey(name)) m.put(name, value); } - private static void remove(Map m, String name) { - Object x = m.remove(name); + private static void remove(Map m, K name) { + V x = m.remove(name); assert (x != null); } @@ -116,22 +116,22 @@ public class AbstractCharsetProvider protected void init() { } private String canonicalize(String charsetName) { - String acn = (String)aliasMap.get(charsetName); + String acn = aliasMap.get(charsetName); return (acn != null) ? acn : charsetName; } private Charset lookup(String csn) { // Check cache first - SoftReference sr = (SoftReference)cache.get(csn); + SoftReference sr = cache.get(csn); if (sr != null) { - Charset cs = (Charset)sr.get(); + Charset cs = sr.get(); if (cs != null) return cs; } // Do we even support this charset? - String cln = (String)classMap.get(csn); + String cln = classMap.get(csn); if (cln == null) return null; @@ -139,12 +139,12 @@ public class AbstractCharsetProvider // Instantiate the charset and cache it try { - Class c = Class.forName(packagePrefix + "." + cln, - true, - this.getClass().getClassLoader()); + Class c = Class.forName(packagePrefix + "." + cln, + true, + this.getClass().getClassLoader()); Charset cs = (Charset)c.newInstance(); - cache.put(csn, new SoftReference(cs)); + cache.put(csn, new SoftReference(cs)); return cs; } catch (ClassNotFoundException x) { return null; @@ -164,21 +164,21 @@ public class AbstractCharsetProvider public final Iterator charsets() { - final ArrayList ks; + final ArrayList ks; synchronized (this) { init(); - ks = new ArrayList(classMap.keySet()); + ks = new ArrayList<>(classMap.keySet()); } return new Iterator() { - Iterator i = ks.iterator(); + Iterator i = ks.iterator(); public boolean hasNext() { return i.hasNext(); } public Charset next() { - String csn = (String)i.next(); + String csn = i.next(); return lookup(csn); } @@ -191,7 +191,7 @@ public class AbstractCharsetProvider public final String[] aliases(String charsetName) { synchronized (this) { init(); - return (String[])aliasNameMap.get(charsetName); + return aliasNameMap.get(charsetName); } } From d5280868a3ee35da56e67b502062a7e9846040fa Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Tue, 2 Feb 2010 16:38:26 +0100 Subject: [PATCH 055/109] 6888734: PIT: regression test fails when java.security.manager is enabled Load FontManager instance in privileged block to avoid AccessControlException Reviewed-by: igor, tdv --- .../classes/sun/font/FontManagerFactory.java | 54 +++++---- .../PrintJob/Security/SecurityDialogTest.java | 105 ++++++++++++++++++ jdk/test/java/awt/PrintJob/Security/policy | 32 ++++++ 3 files changed, 162 insertions(+), 29 deletions(-) create mode 100644 jdk/test/java/awt/PrintJob/Security/SecurityDialogTest.java create mode 100644 jdk/test/java/awt/PrintJob/Security/policy diff --git a/jdk/src/share/classes/sun/font/FontManagerFactory.java b/jdk/src/share/classes/sun/font/FontManagerFactory.java index 44bfe68c541..a85fe3c007c 100644 --- a/jdk/src/share/classes/sun/font/FontManagerFactory.java +++ b/jdk/src/share/classes/sun/font/FontManagerFactory.java @@ -68,38 +68,34 @@ public final class FontManagerFactory { return instance; } - String fmClassName = AccessController.doPrivileged( - new GetPropertyAction("sun.font.fontmanager", - DEFAULT_CLASS)); + AccessController.doPrivileged(new PrivilegedAction() { - try { - @SuppressWarnings("unchecked") - ClassLoader cl = (ClassLoader) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return ClassLoader.getSystemClassLoader(); - } - }); + public Object run() { + try { + String fmClassName = + System.getProperty("sun.font.fontmanager", + DEFAULT_CLASS); + ClassLoader cl = ClassLoader.getSystemClassLoader(); + Class fmClass = Class.forName(fmClassName, true, cl); + instance = (FontManager) fmClass.newInstance(); + } catch (ClassNotFoundException ex) { + InternalError err = new InternalError(); + err.initCause(ex); + throw err; - @SuppressWarnings("unchecked") - Class fmClass = Class.forName(fmClassName, true, cl); - instance = (FontManager) fmClass.newInstance(); + } catch (InstantiationException ex) { + InternalError err = new InternalError(); + err.initCause(ex); + throw err; - } 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; - } + } catch (IllegalAccessException ex) { + InternalError err = new InternalError(); + err.initCause(ex); + throw err; + } + return null; + } + }); return instance; } diff --git a/jdk/test/java/awt/PrintJob/Security/SecurityDialogTest.java b/jdk/test/java/awt/PrintJob/Security/SecurityDialogTest.java new file mode 100644 index 00000000000..bf8c86f3106 --- /dev/null +++ b/jdk/test/java/awt/PrintJob/Security/SecurityDialogTest.java @@ -0,0 +1,105 @@ +/* + * Copyright 2010 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 6195901 6195923 6195928 6195933 6491273 6888734 + * @summary No SecurityException should be thrown when printing to a file + using the given policy. + Print to file option should be selected. + * @run main/othervm/policy=policy SecurityDialogTest + */ +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import java.io.*; + + +public class SecurityDialogTest extends Frame implements ActionListener { + // Declare things used in the test, like buttons and labels here + + Button nativeDlg, setSecurity; + boolean isNative = true; + + public SecurityDialogTest() { + + nativeDlg = new Button("Print Dialog"); + nativeDlg.addActionListener(this); + setSecurity = new Button("Toggle Dialog"); + setSecurity.addActionListener(this); + add("South", nativeDlg); + add("North", setSecurity); + setSize(300, 300); + setVisible(true); + } + + public static void main(String args[]) { + System.out.println("Native dialog is the default"); + SecurityDialogTest test = new SecurityDialogTest(); + } + + public void actionPerformed(ActionEvent e) { + + if (e.getSource() == setSecurity) { + if (isNative) { + isNative = false; + System.out.println("Common dialog is the default"); + + } else { + isNative = true; + System.out.println("Native dialog is the default"); + } + return; + } + + JobAttributes ja = new JobAttributes(); + PageAttributes pa = new PageAttributes(); + + if (isNative) { + ja.setDialog(JobAttributes.DialogType.NATIVE); + } else { + ja.setDialog(JobAttributes.DialogType.COMMON); + } + ja.setDestination(JobAttributes.DestinationType.FILE); + ja.setFileName("mohan.ps"); + + + PrintJob pjob = getToolkit().getPrintJob(this, null, ja, pa); + + if (pjob != null) { + Graphics pg = pjob.getGraphics(); + System.out.println("PJOB: " + pjob); + if (pg != null) { + System.out.println("Printer Graphics: " + pg); + this.printAll(pg); + pg.dispose(); + } else { + System.out.println("Printer Graphics is null"); + } + pjob.end(); + System.out.println("DONE"); + } else { + System.out.println("PJOB is null"); + } + } +} diff --git a/jdk/test/java/awt/PrintJob/Security/policy b/jdk/test/java/awt/PrintJob/Security/policy new file mode 100644 index 00000000000..da2ab38ed31 --- /dev/null +++ b/jdk/test/java/awt/PrintJob/Security/policy @@ -0,0 +1,32 @@ +/* + * Copyright 2010 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. + */ + +/* AUTOMATICALLY GENERATED ON Thu Jan 03 15:48:39 PST 2002*/ +/* DO NOT EDIT */ + +grant { + permission java.io.FilePermission "<>", "read,write"; + permission java.lang.RuntimePermission "queuePrintJob"; + permission java.lang.RuntimePermission "setSecurityManager"; +}; + From 54c04bca938192fb9e2a7e6d31c3fe4aab38e83b Mon Sep 17 00:00:00 2001 From: "Daniel D. Daugherty" Date: Tue, 2 Feb 2010 10:37:32 -0700 Subject: [PATCH 056/109] 6918421: 1/1 in-process JVM now ignores preset Windows unhandled exception filter Add support for chaining Windows UnhandledExceptionFilter handlers Reviewed-by: kamg, dholmes, never, acorn, ikrylov --- hotspot/src/os/windows/vm/os_windows.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp index d674d434b90..5aa81deb9c5 100644 --- a/hotspot/src/os/windows/vm/os_windows.cpp +++ b/hotspot/src/os/windows/vm/os_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -142,6 +142,9 @@ void os::run_periodic_checks() { } #ifndef _WIN64 +// previous UnhandledExceptionFilter, if there is one +static LPTOP_LEVEL_EXCEPTION_FILTER prev_uef_handler = NULL; + LONG WINAPI Handle_FLT_Exception(struct _EXCEPTION_POINTERS* exceptionInfo); #endif void os::init_system_properties_values() { @@ -260,7 +263,8 @@ void os::init_system_properties_values() { } #ifndef _WIN64 - SetUnhandledExceptionFilter(Handle_FLT_Exception); + // set our UnhandledExceptionFilter and save any previous one + prev_uef_handler = SetUnhandledExceptionFilter(Handle_FLT_Exception); #endif // Done @@ -1909,7 +1913,7 @@ LONG Handle_IDiv_Exception(struct _EXCEPTION_POINTERS* exceptionInfo) { #ifndef _WIN64 //----------------------------------------------------------------------------- LONG WINAPI Handle_FLT_Exception(struct _EXCEPTION_POINTERS* exceptionInfo) { - // handle exception caused by native mothod modifying control word + // handle exception caused by native method modifying control word PCONTEXT ctx = exceptionInfo->ContextRecord; DWORD exception_code = exceptionInfo->ExceptionRecord->ExceptionCode; @@ -1930,6 +1934,13 @@ LONG WINAPI Handle_FLT_Exception(struct _EXCEPTION_POINTERS* exceptionInfo) { return EXCEPTION_CONTINUE_EXECUTION; } } + + if (prev_uef_handler != NULL) { + // We didn't handle this exception so pass it to the previous + // UnhandledExceptionFilter. + return (prev_uef_handler)(exceptionInfo); + } + return EXCEPTION_CONTINUE_SEARCH; } #else //_WIN64 From aafe7d739828aec046812d78778d8689f30983a6 Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Wed, 3 Feb 2010 10:02:33 +0100 Subject: [PATCH 057/109] 6896335: GraphicsEnvironment.getDefaultScreenDevice() throws UnsatisfiedLinkError in headless mode Use local ge variable instead of localEnv field in GE. Reviewed-by: igor, prr --- .../classes/java/awt/GraphicsEnvironment.java | 2 +- .../TestGetDefScreenDevice.java | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 jdk/test/java/awt/GraphicsEnvironment/TestGetDefScreenDevice.java diff --git a/jdk/src/share/classes/java/awt/GraphicsEnvironment.java b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java index 392a4478140..860be245ec3 100644 --- a/jdk/src/share/classes/java/awt/GraphicsEnvironment.java +++ b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java @@ -110,7 +110,7 @@ public abstract class GraphicsEnvironment { // long t1 = System.currentTimeMillis(); // System.out.println("GE creation took " + (t1-t0)+ "ms."); if (isHeadless()) { - localEnv = new HeadlessGraphicsEnvironment(localEnv); + ge = new HeadlessGraphicsEnvironment(ge); } } catch (ClassNotFoundException e) { throw new Error("Could not find class: "+nm); diff --git a/jdk/test/java/awt/GraphicsEnvironment/TestGetDefScreenDevice.java b/jdk/test/java/awt/GraphicsEnvironment/TestGetDefScreenDevice.java new file mode 100644 index 00000000000..33c7eb92ce7 --- /dev/null +++ b/jdk/test/java/awt/GraphicsEnvironment/TestGetDefScreenDevice.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2010 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 6896335 + * @summary Test GraphicsEnvironment.getDefaultScreenDevice() in headless mode + * @run main/othervm -Djava.awt.headless=true TestGetDefScreenDevice + */ + +import java.awt.*; +public class TestGetDefScreenDevice { + + public static void main(String[] args) throws Exception { + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + try { + ge.getDefaultScreenDevice(); + throw new Exception("Failed. HeadlessException not thrown"); + } catch (HeadlessException he) { + // OK, test passed. + } + } +} From 913e14a4632a3038c8f7721389f8befcae899c0c Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Wed, 3 Feb 2010 17:04:52 +0800 Subject: [PATCH 058/109] 6922482: keytool's help on -file always shows 'output file' Reviewed-by: wetmore --- .../classes/sun/security/tools/KeyTool.java | 233 +++++++++--------- .../security/tools/keytool/file-in-help.sh | 53 ++++ 2 files changed, 171 insertions(+), 115 deletions(-) create mode 100644 jdk/test/sun/security/tools/keytool/file-in-help.sh diff --git a/jdk/src/share/classes/sun/security/tools/KeyTool.java b/jdk/src/share/classes/sun/security/tools/KeyTool.java index cacdbe83496..9cd0775cb1f 100644 --- a/jdk/src/share/classes/sun/security/tools/KeyTool.java +++ b/jdk/src/share/classes/sun/security/tools/KeyTool.java @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 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 @@ -77,6 +77,7 @@ import sun.security.x509.*; import static java.security.KeyStore.*; import static sun.security.tools.KeyTool.Command.*; +import static sun.security.tools.KeyTool.Option.*; /** * This tool manages keystores. @@ -150,77 +151,77 @@ public final class KeyTool { enum Command { CERTREQ("Generates a certificate request", - "-alias", "-sigalg", "-file", "-keypass", "-keystore", - "-storepass", "-storetype", "-providername", "-providerclass", - "-providerarg", "-providerpath", "-v", "-protected"), + ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE, + STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS, + PROVIDERARG, PROVIDERPATH, V, PROTECTED), CHANGEALIAS("Changes an entry's alias", - "-alias", "-destalias", "-keypass", "-keystore", "-storepass", - "-storetype", "-providername", "-providerclass", "-providerarg", - "-providerpath", "-v", "-protected"), + ALIAS, DESTALIAS, KEYPASS, KEYSTORE, STOREPASS, + STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG, + PROVIDERPATH, V, PROTECTED), DELETE("Deletes an entry", - "-alias", "-keystore", "-storepass", "-storetype", - "-providername", "-providerclass", "-providerarg", - "-providerpath", "-v", "-protected"), + ALIAS, KEYSTORE, STOREPASS, STORETYPE, + PROVIDERNAME, PROVIDERCLASS, PROVIDERARG, + PROVIDERPATH, V, PROTECTED), EXPORTCERT("Exports certificate", - "-rfc", "-alias", "-file", "-keystore", "-storepass", - "-storetype", "-providername", "-providerclass", "-providerarg", - "-providerpath", "-v", "-protected"), + RFC, ALIAS, FILEOUT, KEYSTORE, STOREPASS, + STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG, + PROVIDERPATH, V, PROTECTED), GENKEYPAIR("Generates a key pair", - "-alias", "-keyalg", "-keysize", "-sigalg", "-destalias", - "-startdate", "-ext", "-validity", "-keypass", "-keystore", - "-storepass", "-storetype", "-providername", "-providerclass", - "-providerarg", "-providerpath", "-v", "-protected"), + ALIAS, KEYALG, KEYSIZE, SIGALG, DESTALIAS, + STARTDATE, EXT, VALIDITY, KEYPASS, KEYSTORE, + STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS, + PROVIDERARG, PROVIDERPATH, V, PROTECTED), GENSECKEY("Generates a secret key", - "-alias", "-keypass", "-keyalg", "-keysize", "-keystore", - "-storepass", "-storetype", "-providername", "-providerclass", - "-providerarg", "-providerpath", "-v", "-protected"), + ALIAS, KEYPASS, KEYALG, KEYSIZE, KEYSTORE, + STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS, + PROVIDERARG, PROVIDERPATH, V, PROTECTED), GENCERT("Generates certificate from a certificate request", - "-rfc", "-infile", "-outfile", "-alias", "-sigalg", - "-startdate", "-ext", "-validity", "-keypass", "-keystore", - "-storepass", "-storetype", "-providername", "-providerclass", - "-providerarg", "-providerpath", "-v", "-protected"), + RFC, INFILE, OUTFILE, ALIAS, SIGALG, + STARTDATE, EXT, VALIDITY, KEYPASS, KEYSTORE, + STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS, + PROVIDERARG, PROVIDERPATH, V, PROTECTED), IDENTITYDB("Imports entries from a JDK 1.1.x-style identity database", - "-file", "-storetype", "-keystore", "-storepass", "-providername", - "-providerclass", "-providerarg", "-providerpath", "-v"), + FILEIN, STORETYPE, KEYSTORE, STOREPASS, PROVIDERNAME, + PROVIDERCLASS, PROVIDERARG, PROVIDERPATH, V), IMPORTCERT("Imports a certificate or a certificate chain", - "-noprompt", "-trustcacerts", "-protected", "-alias", "-file", - "-keypass", "-keystore", "-storepass", "-storetype", - "-providername", "-providerclass", "-providerarg", - "-providerpath", "-v"), + NOPROMPT, TRUSTCACERTS, PROTECTED, ALIAS, FILEIN, + KEYPASS, KEYSTORE, STOREPASS, STORETYPE, + PROVIDERNAME, PROVIDERCLASS, PROVIDERARG, + PROVIDERPATH, V), IMPORTKEYSTORE("Imports one or all entries from another keystore", - "-srckeystore", "-destkeystore", "-srcstoretype", - "-deststoretype", "-srcstorepass", "-deststorepass", - "-srcprotected", "-srcprovidername", "-destprovidername", - "-srcalias", "-destalias", "-srckeypass", "-destkeypass", - "-noprompt", "-providerclass", "-providerarg", "-providerpath", - "-v"), + SRCKEYSTORE, DESTKEYSTORE, SRCSTORETYPE, + DESTSTORETYPE, SRCSTOREPASS, DESTSTOREPASS, + SRCPROTECTED, SRCPROVIDERNAME, DESTPROVIDERNAME, + SRCALIAS, DESTALIAS, SRCKEYPASS, DESTKEYPASS, + NOPROMPT, PROVIDERCLASS, PROVIDERARG, PROVIDERPATH, + V), KEYCLONE("Clones a key entry", - "-alias", "-destalias", "-keypass", "-new", "-storetype", - "-keystore", "-storepass", "-providername", "-providerclass", - "-providerarg", "-providerpath", "-v"), + ALIAS, DESTALIAS, KEYPASS, NEW, STORETYPE, + KEYSTORE, STOREPASS, PROVIDERNAME, PROVIDERCLASS, + PROVIDERARG, PROVIDERPATH, V), KEYPASSWD("Changes the key password of an entry", - "-alias", "-keypass", "-new", "-keystore", "-storepass", - "-storetype", "-providername", "-providerclass", "-providerarg", - "-providerpath", "-v"), + ALIAS, KEYPASS, NEW, KEYSTORE, STOREPASS, + STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG, + PROVIDERPATH, V), LIST("Lists entries in a keystore", - "-rfc", "-alias", "-keystore", "-storepass", "-storetype", - "-providername", "-providerclass", "-providerarg", - "-providerpath", "-v", "-protected"), + RFC, ALIAS, KEYSTORE, STOREPASS, STORETYPE, + PROVIDERNAME, PROVIDERCLASS, PROVIDERARG, + PROVIDERPATH, V, PROTECTED), PRINTCERT("Prints the content of a certificate", - "-rfc", "-file", "-sslserver", "-jarfile", "-v"), + RFC, FILEIN, SSLSERVER, JARFILE, V), PRINTCERTREQ("Prints the content of a certificate request", - "-file", "-v"), + FILEIN, V), SELFCERT("Generates a self-signed certificate", - "-alias", "-sigalg", "-dname", "-startdate", "-validity", "-keypass", - "-storetype", "-keystore", "-storepass", "-providername", - "-providerclass", "-providerarg", "-providerpath", "-v"), + ALIAS, SIGALG, DNAME, STARTDATE, VALIDITY, KEYPASS, + STORETYPE, KEYSTORE, STOREPASS, PROVIDERNAME, + PROVIDERCLASS, PROVIDERARG, PROVIDERPATH, V), STOREPASSWD("Changes the store password of a keystore", - "-new", "-keystore", "-storepass", "-storetype", "-providername", - "-providerclass", "-providerarg", "-providerpath", "-v"); + NEW, KEYSTORE, STOREPASS, STORETYPE, PROVIDERNAME, + PROVIDERCLASS, PROVIDERARG, PROVIDERPATH, V); final String description; - final String[] options; - Command(String d, String... o) { + final Option[] options; + Command(String d, Option... o) { description = d; options = o; } @@ -230,50 +231,60 @@ public final class KeyTool { } }; - private static String[][] options = { - // name, arg, description - {"-alias", "", "alias name of the entry to process"}, - {"-destalias", "", "destination alias"}, - {"-destkeypass", "", "destination key password"}, - {"-destkeystore", "", "destination keystore name"}, - {"-destprotected", null, "destination keystore password protected"}, - {"-destprovidername", "", "destination keystore provider name"}, - {"-deststorepass", "", "destination keystore password"}, - {"-deststoretype", "", "destination keystore type"}, - {"-dname", "", "distinguished name"}, - {"-ext", "", "X.509 extension"}, - {"-file", "", "output file name"}, - {"-file", "", "input file name"}, - {"-infile", "", "input file name"}, - {"-keyalg", "", "key algorithm name"}, - {"-keypass", "", "key password"}, - {"-keysize", "", "key bit size"}, - {"-keystore", "", "keystore name"}, - {"-new", "", "new password"}, - {"-noprompt", null, "do not prompt"}, - {"-outfile", "", "output file name"}, - {"-protected", null, "password through protected mechanism"}, - {"-providerarg", "", "provider argument"}, - {"-providerclass", "", "provider class name"}, - {"-providername", "", "provider name"}, - {"-providerpath", "", "provider classpath"}, - {"-rfc", null, "output in RFC style"}, - {"-sigalg", "", "signature algorithm name"}, - {"-srcalias", "", "source alias"}, - {"-srckeypass", "", "source keystore password"}, - {"-srckeystore", "", "source keystore name"}, - {"-srcprotected", null, "source keystore password protected"}, - {"-srcprovidername", "", "source keystore provider name"}, - {"-srcstorepass", "", "source keystore password"}, - {"-srcstoretype", "", "source keystore type"}, - {"-sslserver", "", "SSL server host and port"}, - {"-jarfile", "", "signed jar file"}, - {"-startdate", "", "certificate validity start date/time"}, - {"-storepass", "", "keystore password"}, - {"-storetype", "", "keystore type"}, - {"-trustcacerts", null, "trust certificates from cacerts"}, - {"-v", null, "verbose output"}, - {"-validity", "", "validity number of days"}, + enum Option { + ALIAS("alias", "", "alias name of the entry to process"), + DESTALIAS("destalias", "", "destination alias"), + DESTKEYPASS("destkeypass", "", "destination key password"), + DESTKEYSTORE("destkeystore", "", "destination keystore name"), + DESTPROTECTED("destprotected", null, "destination keystore password protected"), + DESTPROVIDERNAME("destprovidername", "", "destination keystore provider name"), + DESTSTOREPASS("deststorepass", "", "destination keystore password"), + DESTSTORETYPE("deststoretype", "", "destination keystore type"), + DNAME("dname", "", "distinguished name"), + EXT("ext", "", "X.509 extension"), + FILEOUT("file", "", "output file name"), + FILEIN("file", "", "input file name"), + INFILE("infile", "", "input file name"), + KEYALG("keyalg", "", "key algorithm name"), + KEYPASS("keypass", "", "key password"), + KEYSIZE("keysize", "", "key bit size"), + KEYSTORE("keystore", "", "keystore name"), + NEW("new", "", "new password"), + NOPROMPT("noprompt", null, "do not prompt"), + OUTFILE("outfile", "", "output file name"), + PROTECTED("protected", null, "password through protected mechanism"), + PROVIDERARG("providerarg", "", "provider argument"), + PROVIDERCLASS("providerclass", "", "provider class name"), + PROVIDERNAME("providername", "", "provider name"), + PROVIDERPATH("providerpath", "", "provider classpath"), + RFC("rfc", null, "output in RFC style"), + SIGALG("sigalg", "", "signature algorithm name"), + SRCALIAS("srcalias", "", "source alias"), + SRCKEYPASS("srckeypass", "", "source keystore password"), + SRCKEYSTORE("srckeystore", "", "source keystore name"), + SRCPROTECTED("srcprotected", null, "source keystore password protected"), + SRCPROVIDERNAME("srcprovidername", "", "source keystore provider name"), + SRCSTOREPASS("srcstorepass", "", "source keystore password"), + SRCSTORETYPE("srcstoretype", "", "source keystore type"), + SSLSERVER("sslserver", "", "SSL server host and port"), + JARFILE("jarfile", "", "signed jar file"), + STARTDATE("startdate", "", "certificate validity start date/time"), + STOREPASS("storepass", "", "keystore password"), + STORETYPE("storetype", "", "keystore type"), + TRUSTCACERTS("trustcacerts", null, "trust certificates from cacerts"), + V("v", null, "verbose output"), + VALIDITY("validity", "", "validity number of days"); + + final String name, arg, description; + Option(String name, String arg, String description) { + this.name = name; + this.arg = arg; + this.description = description; + } + @Override + public String toString() { + return "-" + name; + } }; private static final Class[] PARAM_STRING = { String.class }; @@ -344,10 +355,10 @@ public final class KeyTool { // Check if the last option needs an arg if (i == args.length - 1) { - for (String[] option: options) { + for (Option option: Option.values()) { // Only options with an arg need to be checked - if (collator.compare(flags, option[0]) == 0) { - if (option[1] != null) errorNeedArgument(flags); + if (collator.compare(flags, option.toString()) == 0) { + if (option.arg != null) errorNeedArgument(flags); break; } } @@ -3792,21 +3803,13 @@ public final class KeyTool { // Length of left side of options list int lenLeft = 0; for (int j=0; j lenLeft) { - lenLeft = left[j].length(); - } - right[j] = rb.getString(opt[2]); - found = true; - break; - } - } - if (!found) { - throw new RuntimeException("ERROR: CANNOT FIND " + command.options[j]); + Option opt = command.options[j]; + left[j] = opt.toString(); + if (opt.arg != null) left[j] += " " + opt.arg; + if (left[j].length() > lenLeft) { + lenLeft = left[j].length(); } + right[j] = rb.getString(opt.description); } for (int j=0; j h1 || exit 1 +$TESTJAVA${FS}bin${FS}keytool -exportcert -help 2> h2 || exit 2 + +grep "input file" h1 || exit 3 +grep "output file" h2 || exit 4 + +exit 0 + From aecc4f4081e3804e98a3df0e15f995581ed71b55 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Wed, 3 Feb 2010 12:28:30 -0800 Subject: [PATCH 059/109] 6921922: fix for 6911204 breaks tagged stack interpreter Reviewed-by: kvn --- hotspot/src/share/vm/runtime/globals.hpp | 3 + .../src/share/vm/runtime/sharedRuntime.cpp | 205 +++++++++++++----- .../src/share/vm/runtime/sharedRuntime.hpp | 23 ++ 3 files changed, 171 insertions(+), 60 deletions(-) diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 3a6ac193304..e321463101d 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -742,6 +742,9 @@ class CommandLineFlags { diagnostic(bool, PrintAdapterHandlers, false, \ "Print code generated for i2c/c2i adapters") \ \ + develop(bool, VerifyAdapterSharing, false, \ + "Verify that the code for shared adapters is the equivalent") \ + \ diagnostic(bool, PrintAssembly, false, \ "Print assembly code (using external disassembler.so)") \ \ diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index 97529e1e948..1b49095ddc1 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -1806,55 +1806,78 @@ void SharedRuntime::print_call_statistics(int comp_total) { class AdapterFingerPrint : public CHeapObj { private: union { - signed char _compact[12]; - int _compact_int[3]; - intptr_t* _fingerprint; + int _compact[3]; + int* _fingerprint; } _value; - int _length; // A negative length indicates that _value._fingerprint is the array. - // Otherwise it's in the compact form. + int _length; // A negative length indicates the fingerprint is in the compact form, + // Otherwise _value._fingerprint is the array. - public: - AdapterFingerPrint(int total_args_passed, VMRegPair* regs) { - assert(sizeof(_value._compact) == sizeof(_value._compact_int), "must match"); - _length = total_args_passed * 2; - if (_length < (int)sizeof(_value._compact)) { - _value._compact_int[0] = _value._compact_int[1] = _value._compact_int[2] = 0; - // Storing the signature encoded as signed chars hits about 98% - // of the time. - signed char* ptr = _value._compact; - int o = 0; - for (int i = 0; i < total_args_passed; i++) { - VMRegPair pair = regs[i]; - intptr_t v1 = pair.first()->value(); - intptr_t v2 = pair.second()->value(); - if (v1 == (signed char) v1 && - v2 == (signed char) v2) { - _value._compact[o++] = v1; - _value._compact[o++] = v2; - } else { - goto big; + // Remap BasicTypes that are handled equivalently by the adapters. + // These are correct for the current system but someday it might be + // necessary to make this mapping platform dependent. + static BasicType adapter_encoding(BasicType in) { + assert((~0xf & in) == 0, "must fit in 4 bits"); + switch(in) { + case T_BOOLEAN: + case T_BYTE: + case T_SHORT: + case T_CHAR: + // There are all promoted to T_INT in the calling convention + return T_INT; + + case T_OBJECT: + case T_ARRAY: + if (!TaggedStackInterpreter) { +#ifdef _LP64 + return T_LONG; +#else + return T_INT; +#endif } - } - _length = -_length; - return; - } - big: - _value._fingerprint = NEW_C_HEAP_ARRAY(intptr_t, _length); - int o = 0; - for (int i = 0; i < total_args_passed; i++) { - VMRegPair pair = regs[i]; - intptr_t v1 = pair.first()->value(); - intptr_t v2 = pair.second()->value(); - _value._fingerprint[o++] = v1; - _value._fingerprint[o++] = v2; + return T_OBJECT; + + case T_INT: + case T_LONG: + case T_FLOAT: + case T_DOUBLE: + case T_VOID: + return in; + + default: + ShouldNotReachHere(); + return T_CONFLICT; } } - AdapterFingerPrint(AdapterFingerPrint* orig) { - _length = orig->_length; - _value = orig->_value; - // take ownership of any storage by destroying the length - orig->_length = 0; + public: + AdapterFingerPrint(int total_args_passed, BasicType* sig_bt) { + // The fingerprint is based on the BasicType signature encoded + // into an array of ints with four entries per int. + int* ptr; + int len = (total_args_passed + 3) >> 2; + if (len <= (int)(sizeof(_value._compact) / sizeof(int))) { + _value._compact[0] = _value._compact[1] = _value._compact[2] = 0; + // Storing the signature encoded as signed chars hits about 98% + // of the time. + _length = -len; + ptr = _value._compact; + } else { + _length = len; + _value._fingerprint = NEW_C_HEAP_ARRAY(int, _length); + ptr = _value._fingerprint; + } + + // Now pack the BasicTypes with 4 per int + int sig_index = 0; + for (int index = 0; index < len; index++) { + int value = 0; + for (int byte = 0; byte < 4; byte++) { + if (sig_index < total_args_passed) { + value = (value << 4) | adapter_encoding(sig_bt[sig_index++]); + } + } + ptr[index] = value; + } } ~AdapterFingerPrint() { @@ -1863,11 +1886,7 @@ class AdapterFingerPrint : public CHeapObj { } } - AdapterFingerPrint* allocate() { - return new AdapterFingerPrint(this); - } - - intptr_t value(int index) { + int value(int index) { if (_length < 0) { return _value._compact[index]; } @@ -1883,9 +1902,9 @@ class AdapterFingerPrint : public CHeapObj { } unsigned int compute_hash() { - intptr_t hash = 0; + int hash = 0; for (int i = 0; i < length(); i++) { - intptr_t v = value(i); + int v = value(i); hash = (hash << 8) ^ v ^ (hash >> 5); } return (unsigned int)hash; @@ -1904,9 +1923,9 @@ class AdapterFingerPrint : public CHeapObj { return false; } if (_length < 0) { - return _value._compact_int[0] == other->_value._compact_int[0] && - _value._compact_int[1] == other->_value._compact_int[1] && - _value._compact_int[2] == other->_value._compact_int[2]; + return _value._compact[0] == other->_value._compact[0] && + _value._compact[1] == other->_value._compact[1] && + _value._compact[2] == other->_value._compact[2]; } else { for (int i = 0; i < _length; i++) { if (_value._fingerprint[i] != other->_value._fingerprint[i]) { @@ -1954,10 +1973,15 @@ class AdapterHandlerTable : public BasicHashtable { add_entry(index, entry); } + void free_entry(AdapterHandlerEntry* entry) { + entry->deallocate(); + BasicHashtable::free_entry(entry); + } + // Find a entry with the same fingerprint if it exists - AdapterHandlerEntry* lookup(int total_args_passed, VMRegPair* regs) { + AdapterHandlerEntry* lookup(int total_args_passed, BasicType* sig_bt) { debug_only(_lookups++); - AdapterFingerPrint fp(total_args_passed, regs); + AdapterFingerPrint fp(total_args_passed, sig_bt); unsigned int hash = fp.compute_hash(); int index = hash_to_index(hash); for (AdapterHandlerEntry* e = bucket(index); e != NULL; e = e->next()) { @@ -2129,17 +2153,26 @@ AdapterHandlerEntry* AdapterHandlerLibrary::get_adapter(methodHandle method) { } assert(i == total_args_passed, ""); - // Get a description of the compiled java calling convention and the largest used (VMReg) stack slot usage - int comp_args_on_stack = SharedRuntime::java_calling_convention(sig_bt, regs, total_args_passed, false); - // Lookup method signature's fingerprint - entry = _adapters->lookup(total_args_passed, regs); + entry = _adapters->lookup(total_args_passed, sig_bt); + +#ifdef ASSERT + AdapterHandlerEntry* shared_entry = NULL; + if (VerifyAdapterSharing && entry != NULL) { + shared_entry = entry; + entry = NULL; + } +#endif + if (entry != NULL) { return entry; } + // Get a description of the compiled java calling convention and the largest used (VMReg) stack slot usage + int comp_args_on_stack = SharedRuntime::java_calling_convention(sig_bt, regs, total_args_passed, false); + // Make a C heap allocated version of the fingerprint to store in the adapter - fingerprint = new AdapterFingerPrint(total_args_passed, regs); + fingerprint = new AdapterFingerPrint(total_args_passed, sig_bt); // Create I2C & C2I handlers @@ -2158,6 +2191,20 @@ AdapterHandlerEntry* AdapterHandlerLibrary::get_adapter(methodHandle method) { regs, fingerprint); +#ifdef ASSERT + if (VerifyAdapterSharing) { + if (shared_entry != NULL) { + assert(shared_entry->compare_code(buf->instructions_begin(), buffer.code_size(), total_args_passed, sig_bt), + "code must match"); + // Release the one just created and return the original + _adapters->free_entry(entry); + return shared_entry; + } else { + entry->save_code(buf->instructions_begin(), buffer.code_size(), total_args_passed, sig_bt); + } + } +#endif + B = BufferBlob::create(AdapterHandlerEntry::name, &buffer); NOT_PRODUCT(code_size = buffer.code_size()); } @@ -2212,6 +2259,44 @@ void AdapterHandlerEntry::relocate(address new_base) { _c2i_unverified_entry += delta; } + +void AdapterHandlerEntry::deallocate() { + delete _fingerprint; +#ifdef ASSERT + if (_saved_code) FREE_C_HEAP_ARRAY(unsigned char, _saved_code); + if (_saved_sig) FREE_C_HEAP_ARRAY(Basictype, _saved_sig); +#endif +} + + +#ifdef ASSERT +// Capture the code before relocation so that it can be compared +// against other versions. If the code is captured after relocation +// then relative instructions won't be equivalent. +void AdapterHandlerEntry::save_code(unsigned char* buffer, int length, int total_args_passed, BasicType* sig_bt) { + _saved_code = NEW_C_HEAP_ARRAY(unsigned char, length); + _code_length = length; + memcpy(_saved_code, buffer, length); + _total_args_passed = total_args_passed; + _saved_sig = NEW_C_HEAP_ARRAY(BasicType, _total_args_passed); + memcpy(_saved_sig, sig_bt, _total_args_passed * sizeof(BasicType)); +} + + +bool AdapterHandlerEntry::compare_code(unsigned char* buffer, int length, int total_args_passed, BasicType* sig_bt) { + if (length != _code_length) { + return false; + } + for (int i = 0; i < length; i++) { + if (buffer[i] != _saved_code[i]) { + return false; + } + } + return true; +} +#endif + + // Create a native wrapper for this native method. The wrapper converts the // java compiled calling convention to the native convention, handlizes // arguments, and transitions to native. On return from the native we transition diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.hpp b/hotspot/src/share/vm/runtime/sharedRuntime.hpp index b1de935222f..26aee620846 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.hpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.hpp @@ -540,13 +540,30 @@ class AdapterHandlerEntry : public BasicHashtableEntry { address _c2i_entry; address _c2i_unverified_entry; +#ifdef ASSERT + // Captures code and signature used to generate this adapter when + // verifing adapter equivalence. + unsigned char* _saved_code; + int _code_length; + BasicType* _saved_sig; + int _total_args_passed; +#endif + void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) { _fingerprint = fingerprint; _i2c_entry = i2c_entry; _c2i_entry = c2i_entry; _c2i_unverified_entry = c2i_unverified_entry; +#ifdef ASSERT + _saved_code = NULL; + _code_length = 0; + _saved_sig = NULL; + _total_args_passed = 0; +#endif } + void deallocate(); + // should never be used AdapterHandlerEntry(); @@ -566,6 +583,12 @@ class AdapterHandlerEntry : public BasicHashtableEntry { return (AdapterHandlerEntry*)BasicHashtableEntry::next(); } +#ifdef ASSERT + // Used to verify that code generated for shared adapters is equivalent + void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); + bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); +#endif + #ifndef PRODUCT void print(); #endif /* PRODUCT */ From d4878296c500c12cc203e90a90999d0e02fb6ec2 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Wed, 3 Feb 2010 15:03:22 -0800 Subject: [PATCH 060/109] 6923043: failed nightly tests which use -XX:+PrintCompilation -Xcomp -XX:CompileOnly Print "made not compilable" line only for deoptimizations. Reviewed-by: never --- hotspot/src/share/vm/compiler/compileBroker.cpp | 12 ++++++------ hotspot/src/share/vm/oops/methodOop.cpp | 4 ++-- hotspot/src/share/vm/oops/methodOop.hpp | 5 ++++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 0d4776d2cc0..c3173c9290c 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2010 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 @@ -1132,7 +1132,7 @@ bool CompileBroker::compilation_is_prohibited(methodHandle method, int osr_bci, // the specified level if (is_native && (!CICompileNatives || !compiler(comp_level)->supports_native())) { - method->set_not_compilable(); + method->set_not_compilable_quietly(); return true; } @@ -1156,7 +1156,7 @@ bool CompileBroker::compilation_is_prohibited(methodHandle method, int osr_bci, method->print_short_name(tty); tty->cr(); } - method->set_not_compilable(); + method->set_not_compilable_quietly(); } return false; @@ -1189,7 +1189,7 @@ uint CompileBroker::assign_compile_id(methodHandle method, int osr_bci) { } // Method was not in the appropriate compilation range. - method->set_not_compilable(); + method->set_not_compilable_quietly(); return 0; } @@ -1590,10 +1590,10 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) { if (is_osr) { method->set_not_osr_compilable(); } else { - method->set_not_compilable(); + method->set_not_compilable_quietly(); } } else if (compilable == ciEnv::MethodCompilable_not_at_tier) { - method->set_not_compilable(task->comp_level()); + method->set_not_compilable_quietly(task->comp_level()); } // Note that the queued_for_compilation bits are cleared without diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp index 221a50edd65..07ef9a8b9a5 100644 --- a/hotspot/src/share/vm/oops/methodOop.cpp +++ b/hotspot/src/share/vm/oops/methodOop.cpp @@ -587,8 +587,8 @@ bool methodOopDesc::is_not_compilable(int comp_level) const { } // call this when compiler finds that this method is not compilable -void methodOopDesc::set_not_compilable(int comp_level) { - if (PrintCompilation) { +void methodOopDesc::set_not_compilable(int comp_level, bool report) { + if (PrintCompilation && report) { ttyLocker ttyl; tty->print("made not compilable "); this->print_short_name(tty); diff --git a/hotspot/src/share/vm/oops/methodOop.hpp b/hotspot/src/share/vm/oops/methodOop.hpp index fbb514539bc..61dc3f1bc39 100644 --- a/hotspot/src/share/vm/oops/methodOop.hpp +++ b/hotspot/src/share/vm/oops/methodOop.hpp @@ -596,7 +596,10 @@ class methodOopDesc : public oopDesc { // whether it is not compilable for another reason like having a // breakpoint set in it. bool is_not_compilable(int comp_level = CompLevel_highest_tier) const; - void set_not_compilable(int comp_level = CompLevel_highest_tier); + void set_not_compilable(int comp_level = CompLevel_highest_tier, bool report = true); + void set_not_compilable_quietly(int comp_level = CompLevel_highest_tier) { + set_not_compilable(comp_level, false); + } bool is_not_osr_compilable() const { return is_not_compilable() || access_flags().is_not_osr_compilable(); } void set_not_osr_compilable() { _access_flags.set_not_osr_compilable(); } From 688398edefae34fe3d36482062dc83723205cc8b Mon Sep 17 00:00:00 2001 From: Hiroshi Yamauchi Date: Wed, 3 Feb 2010 15:56:37 -0800 Subject: [PATCH 061/109] 6921969: optimize 64 long multiply for case with high bits zero Reviewed-by: never, twisti, kvn, rasbold --- hotspot/src/cpu/x86/vm/x86_32.ad | 77 ++++++++++ .../6921969/TestMultiplyLongHiZero.java | 138 ++++++++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 hotspot/test/compiler/6921969/TestMultiplyLongHiZero.java diff --git a/hotspot/src/cpu/x86/vm/x86_32.ad b/hotspot/src/cpu/x86/vm/x86_32.ad index 72cb4175ab2..4fe1fd22df3 100644 --- a/hotspot/src/cpu/x86/vm/x86_32.ad +++ b/hotspot/src/cpu/x86/vm/x86_32.ad @@ -235,6 +235,11 @@ reg_class xdb_reg7( XMM7a,XMM7b ); //----------SOURCE BLOCK------------------------------------------------------- // This is a block of C++ code which provides values, functions, and // definitions necessary in the rest of the architecture description +source_hpp %{ +// Must be visible to the DFA in dfa_x86_32.cpp +extern bool is_operand_hi32_zero(Node* n); +%} + source %{ #define RELOC_IMM32 Assembler::imm_operand #define RELOC_DISP32 Assembler::disp32_operand @@ -1485,6 +1490,21 @@ const RegMask Matcher::method_handle_invoke_SP_save_mask() { return EBP_REG_mask; } +// Returns true if the high 32 bits of the value is known to be zero. +bool is_operand_hi32_zero(Node* n) { + int opc = n->Opcode(); + if (opc == Op_LoadUI2L) { + return true; + } + if (opc == Op_AndL) { + Node* o2 = n->in(2); + if (o2->is_Con() && (o2->get_long() & 0xFFFFFFFF00000000LL) == 0LL) { + return true; + } + } + return false; +} + %} //----------ENCODING BLOCK----------------------------------------------------- @@ -8599,6 +8619,63 @@ instruct mulL_eReg(eADXRegL dst, eRegL src, eRegI tmp, eFlagsReg cr) %{ ins_pipe( pipe_slow ); %} +// Multiply Register Long where the left operand's high 32 bits are zero +instruct mulL_eReg_lhi0(eADXRegL dst, eRegL src, eRegI tmp, eFlagsReg cr) %{ + predicate(is_operand_hi32_zero(n->in(1))); + match(Set dst (MulL dst src)); + effect(KILL cr, TEMP tmp); + ins_cost(2*100+2*400); +// Basic idea: lo(result) = lo(x_lo * y_lo) +// hi(result) = hi(x_lo * y_lo) + lo(x_lo * y_hi) where lo(x_hi * y_lo) = 0 because x_hi = 0 + format %{ "MOV $tmp,$src.hi\n\t" + "IMUL $tmp,EAX\n\t" + "MUL EDX:EAX,$src.lo\n\t" + "ADD EDX,$tmp" %} + ins_encode %{ + __ movl($tmp$$Register, HIGH_FROM_LOW($src$$Register)); + __ imull($tmp$$Register, rax); + __ mull($src$$Register); + __ addl(rdx, $tmp$$Register); + %} + ins_pipe( pipe_slow ); +%} + +// Multiply Register Long where the right operand's high 32 bits are zero +instruct mulL_eReg_rhi0(eADXRegL dst, eRegL src, eRegI tmp, eFlagsReg cr) %{ + predicate(is_operand_hi32_zero(n->in(2))); + match(Set dst (MulL dst src)); + effect(KILL cr, TEMP tmp); + ins_cost(2*100+2*400); +// Basic idea: lo(result) = lo(x_lo * y_lo) +// hi(result) = hi(x_lo * y_lo) + lo(x_hi * y_lo) where lo(x_lo * y_hi) = 0 because y_hi = 0 + format %{ "MOV $tmp,$src.lo\n\t" + "IMUL $tmp,EDX\n\t" + "MUL EDX:EAX,$src.lo\n\t" + "ADD EDX,$tmp" %} + ins_encode %{ + __ movl($tmp$$Register, $src$$Register); + __ imull($tmp$$Register, rdx); + __ mull($src$$Register); + __ addl(rdx, $tmp$$Register); + %} + ins_pipe( pipe_slow ); +%} + +// Multiply Register Long where the left and the right operands' high 32 bits are zero +instruct mulL_eReg_hi0(eADXRegL dst, eRegL src, eFlagsReg cr) %{ + predicate(is_operand_hi32_zero(n->in(1)) && is_operand_hi32_zero(n->in(2))); + match(Set dst (MulL dst src)); + effect(KILL cr); + ins_cost(1*400); +// Basic idea: lo(result) = lo(x_lo * y_lo) +// hi(result) = hi(x_lo * y_lo) where lo(x_hi * y_lo) = 0 and lo(x_lo * y_hi) = 0 because x_hi = 0 and y_hi = 0 + format %{ "MUL EDX:EAX,$src.lo\n\t" %} + ins_encode %{ + __ mull($src$$Register); + %} + ins_pipe( pipe_slow ); +%} + // Multiply Register Long by small constant instruct mulL_eReg_con(eADXRegL dst, immL_127 src, eRegI tmp, eFlagsReg cr) %{ match(Set dst (MulL dst src)); diff --git a/hotspot/test/compiler/6921969/TestMultiplyLongHiZero.java b/hotspot/test/compiler/6921969/TestMultiplyLongHiZero.java new file mode 100644 index 00000000000..606c313c918 --- /dev/null +++ b/hotspot/test/compiler/6921969/TestMultiplyLongHiZero.java @@ -0,0 +1,138 @@ +/* + * Copyright 2010 Google, 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 6921969 + * @summary Tests shorter long multiply sequences when the high 32 bits of long operands are known to be zero on x86_32 + * @run main/othervm -Xbatch -XX:-Inline -XX:CompileOnly=.testNormal,.testLeftOptimized,.testRightOptimized,.testOptimized,.testLeftOptimized_LoadUI2L,.testRightOptimized_LoadUI2L,.testOptimized_LoadUI2L TestMultiplyLongHiZero + */ + +// This test must run without any command line arguments. + +public class TestMultiplyLongHiZero { + + private static void check(long leftFactor, long rightFactor, long optimizedProduct, long constantProduct) { + long normalProduct = leftFactor * rightFactor; // unaffected by the new optimization + if (optimizedProduct != constantProduct || normalProduct != constantProduct) { + throw new RuntimeException("Not all three products are equal: " + + Long.toHexString(normalProduct) + ", " + + Long.toHexString(optimizedProduct) + ", " + + Long.toHexString(constantProduct)); + } + } + + private static int initInt(String[] args, int v) { + if (args.length > 0) { + try { + return Integer.valueOf(args[0]); + } catch (NumberFormatException e) { } + } + return v; + } + + private static final long mask32 = 0x00000000FFFFFFFFL; + + private static void testNormal(int leftFactor, int rightFactor, long constantProduct) { + check((long) leftFactor, + (long) rightFactor, + (long) leftFactor * (long) rightFactor, // unaffected by the new optimization + constantProduct); + } + + private static void testLeftOptimized(int leftFactor, int rightFactor, long constantProduct) { + check((leftFactor & mask32), + (long) rightFactor, + (leftFactor & mask32) * (long) rightFactor, // left factor optimized + constantProduct); + } + + private static void testRightOptimized(int leftFactor, int rightFactor, long constantProduct) { + check((long) leftFactor, + (rightFactor & mask32), + (long) leftFactor * (rightFactor & mask32), // right factor optimized + constantProduct); + } + + private static void testOptimized(int leftFactor, int rightFactor, long constantProduct) { + check((leftFactor & mask32), + (rightFactor & mask32), + (leftFactor & mask32) * (rightFactor & mask32), // both factors optimized + constantProduct); + } + + private static void testLeftOptimized_LoadUI2L(int leftFactor, int rightFactor, long constantProduct, int[] factors) { + check((leftFactor & mask32), + (long) rightFactor, + (factors[0] & mask32) * (long) rightFactor, // left factor optimized + constantProduct); + } + + private static void testRightOptimized_LoadUI2L(int leftFactor, int rightFactor, long constantProduct, int[] factors) { + check((long) leftFactor, + (rightFactor & mask32), + (long) leftFactor * (factors[1] & mask32), // right factor optimized + constantProduct); + } + + private static void testOptimized_LoadUI2L(int leftFactor, int rightFactor, long constantProduct, int[] factors) { + check((leftFactor & mask32), + (rightFactor & mask32), + (factors[0] & mask32) * (factors[1] & mask32), // both factors optimized + constantProduct); + } + + private static void test(int leftFactor, int rightFactor, + long normalConstantProduct, + long leftOptimizedConstantProduct, + long rightOptimizedConstantProduct, + long optimizedConstantProduct) { + int[] factors = new int[2]; + factors[0] = leftFactor; + factors[1] = rightFactor; + testNormal(leftFactor, rightFactor, normalConstantProduct); + testLeftOptimized(leftFactor, rightFactor, leftOptimizedConstantProduct); + testRightOptimized(leftFactor, rightFactor, rightOptimizedConstantProduct); + testOptimized(leftFactor, rightFactor, optimizedConstantProduct); + testLeftOptimized_LoadUI2L(leftFactor, rightFactor, leftOptimizedConstantProduct, factors); + testRightOptimized_LoadUI2L(leftFactor, rightFactor, rightOptimizedConstantProduct, factors); + testOptimized_LoadUI2L(leftFactor, rightFactor, optimizedConstantProduct, factors); + } + + public static void main(String[] args) { + for (int i = 0; i < 100000; ++i) { // Trigger compilation + int i0 = initInt(args, 1); + int i1 = initInt(args, 3); + int i2 = initInt(args, -1); + int i3 = initInt(args, 0x7FFFFFFF); + test(i0, i1, 3L, 3L, 3L, 3L); + test(i0, i2, -1L, -1L, 0xFFFFFFFFL, 0xFFFFFFFFL); + test(i0, i3, 0x7FFFFFFFL, 0x7FFFFFFFL, 0x7FFFFFFFL, 0x7FFFFFFFL); + test(i1, i2, -3L, -3L, 0x2FFFFFFFDL, 0x2FFFFFFFDL); + test(i1, i3, 0x17FFFFFFDL, 0x17FFFFFFDL, 0x17FFFFFFDL, 0x17FFFFFFDL); + test(i2, i3, 0xFFFFFFFF80000001L, 0x7FFFFFFE80000001L, + 0xFFFFFFFF80000001L, 0x7FFFFFFE80000001L); + } + } +} From d647d7dfb4e767dbf7ccdc9e0240d64a46696da3 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair Date: Wed, 3 Feb 2010 16:44:51 -0800 Subject: [PATCH 062/109] 6923146: Upgrade to JAXP 1.4.3 Reviewed-by: darcy --- jaxp/jaxp.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jaxp/jaxp.properties b/jaxp/jaxp.properties index 64689b73ab8..60cf24595ae 100644 --- a/jaxp/jaxp.properties +++ b/jaxp/jaxp.properties @@ -24,10 +24,10 @@ # drops.master.copy.base=${drops.dir} -drops.master.url.base=https://jaxp.dev.java.net/files/documents/913/144160 +drops.master.url.base=https://jaxp.dev.java.net/files/documents/913/147490 -jaxp_src.bundle.name=jdk7-jaxp-m5.zip -jaxp_src.bundle.md5.checksum=8b58ce7919cda8e32a9afc5cb4b58bb1 +jaxp_src.bundle.name=jdk7-jaxp-m6.zip +jaxp_src.bundle.md5.checksum=080827d779c114365f8504bd79b34604 jaxp_src.master.bundle.dir=${drops.master.copy.base} jaxp_src.master.bundle.url.base=${drops.master.url.base} From 22ce62f2d16eb6ae9be85e3ad6ad668ed67ba7ea Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Thu, 4 Feb 2010 11:16:23 -0800 Subject: [PATCH 063/109] 6921992: failure in verify scheduling after 6792161 Reviewed-by: kvn --- hotspot/src/share/vm/opto/ifg.cpp | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/hotspot/src/share/vm/opto/ifg.cpp b/hotspot/src/share/vm/opto/ifg.cpp index bd10efdc478..224abe2365c 100644 --- a/hotspot/src/share/vm/opto/ifg.cpp +++ b/hotspot/src/share/vm/opto/ifg.cpp @@ -736,28 +736,7 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) { // the flags and assumes it's dead. This keeps the (useless) // flag-setting behavior alive while also keeping the (useful) // memory update effect. - uint begin = 1; - uint end = n->req(); - if (n->Opcode() == Op_SCMemProj) { - begin = 0; - } else if (n->is_Mach()) { - switch (n->as_Mach()->ideal_Opcode()) { - case Op_MemBarAcquire: - case Op_MemBarVolatile: - if (n->len() >= MemBarNode::Precedent + 1 && - n->in(MemBarNode::Precedent) != NULL && - n->in(MemBarNode::Precedent)->outcnt() == 1) { - // This membar node is the single user of it's input - // so the input won't be considered live and this node - // would get deleted during copy elimination so force - // it to be live. - end = MemBarNode::Precedent + 1; - } - break; - } - } - - for( uint k = begin; k < end; k++ ) { + for( uint k = ((n->Opcode() == Op_SCMemProj) ? 0:1); k < n->req(); k++ ) { Node *def = n->in(k); uint x = n2lidx(def); if( !x ) continue; From 3ac46d640c31a84a53888e014cdfc12d0cb2fb67 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 4 Feb 2010 11:19:18 -0800 Subject: [PATCH 064/109] Added tag jdk7-b82 for changeset 5560473b9cbe --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index e89dd0a443a..5716d77aa40 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -56,3 +56,4 @@ ab4ae8f4514693a9fe17ca2fec0239d8f8450d2c jdk7-b78 20aeeb51713990dbea6929a2e100a8bbf5df70d4 jdk7-b79 a3242906c7747b5d9bcc3d118c7c3c69aa40f4b7 jdk7-b80 8403096d1fe7ff5318df9708cfec84a3fd3e1cf9 jdk7-b81 +e1176f86805fe07fd9fb9da065dc51b47712ce76 jdk7-b82 From eeed92dab3441627364a3f49392c6da86788cb29 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 4 Feb 2010 11:19:20 -0800 Subject: [PATCH 065/109] Added tag jdk7-b82 for changeset 5960e50c8713 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 3d89f1fffed..1a4aad319dd 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -56,3 +56,4 @@ a7f7276b48cd74d8eb1baa83fbf3d1ef4a2603c8 jdk7-b78 ec0421b5703b677e2226cf4bf7ae4eaafd8061c5 jdk7-b79 0336e70ca0aeabc783cc01658f36cb6e27ea7934 jdk7-b80 e08a42a2a94d97ea8eedb187a94dbff822c8fbba jdk7-b81 +1e8c1bfad1abb4b81407a0f2645e0fb85764ca48 jdk7-b82 From 06f98d7a767bc593f7eaaafdaa5b76fd355abdbc Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 4 Feb 2010 11:19:23 -0800 Subject: [PATCH 066/109] Added tag jdk7-b82 for changeset a84303f7ca26 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 687370f73b9..0cf570ca7b7 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -56,3 +56,4 @@ e703499b4b51e3af756ae77c3d5e8b3058a14e4e jdk7-b78 a5a6adfca6ecefb5894a848debabfe442ff50e25 jdk7-b79 3003ddd1d4330b06cb4691ae74d600d3685899eb jdk7-b80 1f9b07674480c224828852ffe137beea36b3cab5 jdk7-b81 +1999f5b12482d66c8b0daf6709daea4f51893a04 jdk7-b82 From 0bd596e2d2aca905917f451bb6b281a7e8624bbb Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 4 Feb 2010 11:19:27 -0800 Subject: [PATCH 067/109] Added tag jdk7-b82 for changeset 735cf3731da4 --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 2dbd5bd8e68..14ec24c5f11 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -56,3 +56,4 @@ bfadab8c7b1bf806a49d3e1bc19ec919717f057a jdk7-b77 b1005c504358c18694c84e95fec16b28cdce7ae1 jdk7-b79 9219574db5936367114b0f31469837f27d5a375a jdk7-b80 204e59d488cdaa9eafa8cb7164ea955b5a9d4a51 jdk7-b81 +c876ad22e4bf9d3c6460080db7ace478e29a3ff9 jdk7-b82 From d78f930c164ebadedf97f636cb6372ca6a89204a Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 4 Feb 2010 11:19:28 -0800 Subject: [PATCH 068/109] Added tag jdk7-b82 for changeset d512637fe883 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 397b72859f7..fa91947524a 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -56,3 +56,4 @@ fc1c72d1dfbb17db7d46bba8db9afc39cbbb9299 jdk7-b78 c08894f5b6e594b9b12993e256b96c1b38099632 jdk7-b79 447767dee56a0f8cb89acc8bf7be5f9be7d84e8b jdk7-b80 f051045fe94a48fae1097f90cbd9227e6aae6b7e jdk7-b81 +31573ae8eed15a6c170f3f0d1abd0b9109c0e086 jdk7-b82 From a74b9f4e319db17698b2b3e41c2af351bee46410 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 4 Feb 2010 11:19:33 -0800 Subject: [PATCH 069/109] Added tag jdk7-b82 for changeset ca4ba6dd55c0 --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index 388b247aace..c718faf37ec 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -56,3 +56,4 @@ e6a5d095c356a547cf5b3c8885885aca5e91e09b jdk7-b77 918920710d65432a2d54fdf407c1524a5571c4ad jdk7-b79 049cfaaa9a7374e3768a79969a799e8b59ad52fa jdk7-b80 10b993d417fcdb40480dad7032ac241f4b87f1af jdk7-b81 +69ef657320ad5c35cfa12e4d8322d877e778f8b3 jdk7-b82 From 297505b256a62ae65f1ab1a372a5c2c77d14272d Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Thu, 4 Feb 2010 11:19:44 -0800 Subject: [PATCH 070/109] Added tag jdk7-b82 for changeset 737d10f28a89 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 00e80a25c55..46e59d75baa 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -56,3 +56,4 @@ acc1e40a5874ebf32bebcb6ada565b3b40b7461c jdk7-b78 ac5b4c5644ce54585e5287563dde2b006fa664f4 jdk7-b79 f0074aa48d4e2a4c03c92b9c4f880679fea0306c jdk7-b80 cfabfcf9f110ef896cbdd382903d20eefbceefe0 jdk7-b81 +47003a3622f6a17756ab0338bfa8a43e36549e99 jdk7-b82 From 81397ffe98b5db97e1c7ec050ea779a47116c1d2 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 5 Feb 2010 10:36:12 +0300 Subject: [PATCH 071/109] 6921057: REGRESSION: persistence delegate issue on Windows and Linux against 5.u23b03/6u17b11 Reviewed-by: peterz, art --- .../classes/java/beans/Introspector.java | 22 +++++++++++-------- .../Introspector/6380849/TestBeanInfo.java | 8 ++++--- .../java/beans/Introspector/Test5102804.java | 4 ++-- .../java/beans/XMLEncoder/Test4646747.java | 14 +++++++----- 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/jdk/src/share/classes/java/beans/Introspector.java b/jdk/src/share/classes/java/beans/Introspector.java index 9001d3516cc..edf09d7afe5 100644 --- a/jdk/src/share/classes/java/beans/Introspector.java +++ b/jdk/src/share/classes/java/beans/Introspector.java @@ -1,5 +1,5 @@ /* - * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-2010 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 @@ -29,6 +29,8 @@ import com.sun.beans.WeakCache; import com.sun.beans.finder.BeanInfoFinder; import com.sun.beans.finder.ClassFinder; +import java.lang.ref.Reference; +import java.lang.ref.SoftReference; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -39,6 +41,7 @@ import java.util.Iterator; import java.util.EventListener; import java.util.List; import java.util.TreeMap; +import java.util.WeakHashMap; import sun.awt.AppContext; import sun.reflect.misc.ReflectUtil; @@ -155,11 +158,11 @@ public class Introspector { return (new Introspector(beanClass, null, USE_ALL_BEANINFO)).getBeanInfo(); } synchronized (BEANINFO_CACHE) { - WeakCache, BeanInfo> beanInfoCache = - (WeakCache, BeanInfo>) AppContext.getAppContext().get(BEANINFO_CACHE); + Map, BeanInfo> beanInfoCache = + (Map, BeanInfo>) AppContext.getAppContext().get(BEANINFO_CACHE); if (beanInfoCache == null) { - beanInfoCache = new WeakCache, BeanInfo>(); + beanInfoCache = new WeakHashMap, BeanInfo>(); AppContext.getAppContext().put(BEANINFO_CACHE, beanInfoCache); } BeanInfo beanInfo = beanInfoCache.get(beanClass); @@ -341,7 +344,7 @@ public class Introspector { public static void flushCaches() { synchronized (BEANINFO_CACHE) { - WeakCache beanInfoCache = (WeakCache) AppContext.getAppContext().get(BEANINFO_CACHE); + Map beanInfoCache = (Map) AppContext.getAppContext().get(BEANINFO_CACHE); if (beanInfoCache != null) { beanInfoCache.clear(); } @@ -369,7 +372,7 @@ public class Introspector { throw new NullPointerException(); } synchronized (BEANINFO_CACHE) { - WeakCache beanInfoCache = (WeakCache) AppContext.getAppContext().get(BEANINFO_CACHE); + Map beanInfoCache = (Map) AppContext.getAppContext().get(BEANINFO_CACHE); if (beanInfoCache != null) { beanInfoCache.put(clz, null); } @@ -1458,7 +1461,7 @@ class GenericBeanInfo extends SimpleBeanInfo { private PropertyDescriptor[] properties; private int defaultProperty; private MethodDescriptor[] methods; - private BeanInfo targetBeanInfo; + private final Reference targetBeanInfoRef; public GenericBeanInfo(BeanDescriptor beanDescriptor, EventSetDescriptor[] events, int defaultEvent, @@ -1470,7 +1473,7 @@ class GenericBeanInfo extends SimpleBeanInfo { this.properties = properties; this.defaultProperty = defaultProperty; this.methods = methods; - this.targetBeanInfo = targetBeanInfo; + this.targetBeanInfoRef = new SoftReference(targetBeanInfo); } /** @@ -1509,7 +1512,7 @@ class GenericBeanInfo extends SimpleBeanInfo { methods[i] = new MethodDescriptor(old.methods[i]); } } - targetBeanInfo = old.targetBeanInfo; + this.targetBeanInfoRef = old.targetBeanInfoRef; } public PropertyDescriptor[] getPropertyDescriptors() { @@ -1537,6 +1540,7 @@ class GenericBeanInfo extends SimpleBeanInfo { } public java.awt.Image getIcon(int iconKind) { + BeanInfo targetBeanInfo = this.targetBeanInfoRef.get(); if (targetBeanInfo != null) { return targetBeanInfo.getIcon(iconKind); } diff --git a/jdk/test/java/beans/Introspector/6380849/TestBeanInfo.java b/jdk/test/java/beans/Introspector/6380849/TestBeanInfo.java index b149bffb820..a4414bd415f 100644 --- a/jdk/test/java/beans/Introspector/6380849/TestBeanInfo.java +++ b/jdk/test/java/beans/Introspector/6380849/TestBeanInfo.java @@ -1,5 +1,5 @@ /** - * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2010 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 @@ -38,6 +38,7 @@ import infos.ThirdBeanBeanInfo; import java.beans.BeanInfo; import java.beans.Introspector; +import java.lang.ref.Reference; import java.lang.reflect.Field; import sun.awt.SunToolkit; @@ -61,9 +62,10 @@ public class TestBeanInfo implements Runnable { try { actual = Introspector.getBeanInfo(type); type = actual.getClass(); - Field field = type.getDeclaredField("targetBeanInfo"); // NON-NLS: field name + Field field = type.getDeclaredField("targetBeanInfoRef"); // NON-NLS: field name field.setAccessible(true); - actual = (BeanInfo) field.get(actual); + Reference ref = (Reference) field.get(actual); + actual = (BeanInfo) ref.get(); } catch (Exception exception) { throw new Error("unexpected error", exception); diff --git a/jdk/test/java/beans/Introspector/Test5102804.java b/jdk/test/java/beans/Introspector/Test5102804.java index cc207bdc80b..72de1b76e97 100644 --- a/jdk/test/java/beans/Introspector/Test5102804.java +++ b/jdk/test/java/beans/Introspector/Test5102804.java @@ -1,5 +1,5 @@ /* - * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2010 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 @@ -24,9 +24,9 @@ /* * @test * @bug 5102804 - * @ignore This test is not predictable with regards to GC * @summary Tests memory leak * @author Sergey Malenkov + * @run main/othervm -ms16m -mx16m Test5102804 */ import java.beans.BeanInfo; diff --git a/jdk/test/java/beans/XMLEncoder/Test4646747.java b/jdk/test/java/beans/XMLEncoder/Test4646747.java index 025ddeb1b10..b0ec2d7d7f4 100644 --- a/jdk/test/java/beans/XMLEncoder/Test4646747.java +++ b/jdk/test/java/beans/XMLEncoder/Test4646747.java @@ -1,5 +1,5 @@ /* - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2010 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 @@ -26,6 +26,7 @@ * @bug 4646747 * @summary Tests that persistence delegate is correct after memory stress * @author Mark Davidson + * @run main/othervm -ms16m -mx16m Test4646747 */ import java.beans.DefaultPersistenceDelegate; @@ -41,11 +42,14 @@ public class Test4646747 { encoder.setPersistenceDelegate(Test4646747.class, new MyPersistenceDelegate()); // WARNING: This can eat up a lot of memory Object[] obs = new Object[10000]; - for (int i = 0; i < obs.length; i++) { - obs[i] = new int[1000]; + while (obs != null) { + try { + obs = new Object[obs.length + obs.length / 3]; + } + catch (OutOfMemoryError error) { + obs = null; + } } - System.gc(); - System.gc(); PersistenceDelegate pd = encoder.getPersistenceDelegate(Test4646747.class); if (!(pd instanceof MyPersistenceDelegate)) throw new Error("persistence delegate has been lost"); From 9ff3b18578aea6b421ed2d829b52590fa8459ed0 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Fri, 5 Feb 2010 00:10:42 -0800 Subject: [PATCH 072/109] 6919132: Regex \P{Lu} selects half of a surrogate pari To use StartS for complement category/block class Reviewed-by: martin, okutsu --- .../classes/java/util/regex/Pattern.java | 104 ++++++++++-------- jdk/test/java/util/regex/RegExTest.java | 29 ++++- 2 files changed, 88 insertions(+), 45 deletions(-) diff --git a/jdk/src/share/classes/java/util/regex/Pattern.java b/jdk/src/share/classes/java/util/regex/Pattern.java index a69c8da669f..7bf6a1d7890 100644 --- a/jdk/src/share/classes/java/util/regex/Pattern.java +++ b/jdk/src/share/classes/java/util/regex/Pattern.java @@ -860,6 +860,14 @@ public final class Pattern */ private transient int patternLength; + /** + * If the Start node might possibly match supplementary characters. + * It is set to true during compiling if + * (1) There is supplementary char in pattern, or + * (2) There is complement node of Category or Block + */ + private transient boolean hasSupplementary; + /** * Compiles the given regular expression into a pattern.

    * @@ -1481,7 +1489,7 @@ loop: for(int x=0, offset=0; x= Character.MIN_SUPPLEMENTARY_CODE_POINT || isSurrogate(ch); + return ch >= Character.MIN_SUPPLEMENTARY_CODE_POINT || + Character.isSurrogate((char)ch); } /** @@ -1885,7 +1894,7 @@ loop: for(int x=0, offset=0; x= Character.MIN_HIGH_SURROGATE && c <= Character.MAX_LOW_SURROGATE; - } - private static final int countChars(CharSequence seq, int index, int lengthInCodePoints) { // optimization @@ -3174,20 +3183,17 @@ loop: for(int x=0, offset=0; x Date: Fri, 5 Feb 2010 12:27:12 -0800 Subject: [PATCH 073/109] 6921473: Bump the HS17 build number to 09 Update the HS17 build number to 09 Reviewed-by: jcoomes --- hotspot/make/hotspot_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index 4dfc3baf752..88a4e7e30ff 100644 --- a/hotspot/make/hotspot_version +++ b/hotspot/make/hotspot_version @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2009 HS_MAJOR_VER=17 HS_MINOR_VER=0 -HS_BUILD_NUMBER=08 +HS_BUILD_NUMBER=09 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 From 9b4ec210a04177e4dfb5b608b85f9aebfdb68ec8 Mon Sep 17 00:00:00 2001 From: Bradford Wetmore Date: Fri, 5 Feb 2010 17:05:53 -0800 Subject: [PATCH 074/109] 6923976: TestProviderLeak.java is using too small of an initial heap under newer Hotspot (b79+) Reviewed-by: ohair --- .../sun/crypto/provider/KeyFactory/TestProviderLeak.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/jdk/test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java b/jdk/test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java index 369947fc510..08a15113c22 100644 --- a/jdk/test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java +++ b/jdk/test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java @@ -28,7 +28,12 @@ * LoginContext * @author Brad Wetmore * - * @run main/othervm -Xmx2m TestProviderLeak + * @run main/othervm -Xmx2m -XX:OldSize=1m -XX:NewSize=512k TestProviderLeak + * + * The original test invocation is below, but had to use the above + * workaround for bug 6923123. + * + * run main/othervm -Xmx2m TestProviderLeak */ /* From ff1e82994befd1babc7cb39bfbc9da72b3ba1170 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Sat, 6 Feb 2010 09:26:57 -0800 Subject: [PATCH 075/109] 6923692: java/classes_util TEST_BUG:ReadZip.java fails when To create the test file at test.dir Reviewed-by: alanb --- jdk/test/java/util/zip/ZipFile/ReadZip.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/test/java/util/zip/ZipFile/ReadZip.java b/jdk/test/java/util/zip/ZipFile/ReadZip.java index 99fb7baaf39..78f202cd302 100644 --- a/jdk/test/java/util/zip/ZipFile/ReadZip.java +++ b/jdk/test/java/util/zip/ZipFile/ReadZip.java @@ -22,7 +22,7 @@ */ /* @test - @bug 4241361 4842702 4985614 6646605 5032358 + @bug 4241361 4842702 4985614 6646605 5032358 6923692 @summary Make sure we can read a zip file. */ @@ -59,7 +59,7 @@ public class ReadZip { FileInputStream fis = new FileInputStream( new File(System.getProperty("test.src", "."), "input.zip")); - File newZip = new File(System.getProperty("test.src", "."), + File newZip = new File(System.getProperty("test.dir", "."), "input2.zip"); FileOutputStream fos = new FileOutputStream(newZip); From c73000ad8f2b505d493ef080d9a06eb1ae3e23af Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Sun, 7 Feb 2010 11:07:50 +0100 Subject: [PATCH 076/109] 6904882: java.awt.Font.createFont() causes AccessControlException if executed with "-Djava.security.manager" Perform FontUtilities initialization in privileged block Reviewed-by: igor, prr --- .../share/classes/sun/font/FontUtilities.java | 113 +++++++++--------- .../java/awt/FontClass/FontPrivilege.java | 39 ++++++ 2 files changed, 97 insertions(+), 55 deletions(-) create mode 100644 jdk/test/java/awt/FontClass/FontPrivilege.java diff --git a/jdk/src/share/classes/sun/font/FontUtilities.java b/jdk/src/share/classes/sun/font/FontUtilities.java index 0c492b4c732..6d10874deef 100644 --- a/jdk/src/share/classes/sun/font/FontUtilities.java +++ b/jdk/src/share/classes/sun/font/FontUtilities.java @@ -32,9 +32,9 @@ import java.io.FileInputStream; import java.io.InputStreamReader; import java.security.AccessController; +import java.security.PrivilegedAction; import javax.swing.plaf.FontUIResource; -import sun.security.action.GetPropertyAction; import sun.util.logging.PlatformLogger; /** @@ -42,79 +42,82 @@ import sun.util.logging.PlatformLogger; */ public final class FontUtilities { - public static final boolean isSolaris; + public static boolean isSolaris; - public static final boolean isLinux; + public static boolean isLinux; - public static final boolean isSolaris8; + public static boolean isSolaris8; - public static final boolean isSolaris9; + public static boolean isSolaris9; - public static final boolean isOpenSolaris; + public static boolean isOpenSolaris; - public static final boolean useT2K; + public static boolean useT2K; - public static final boolean isWindows; + public static boolean isWindows; - public static final boolean isOpenJDK; + public static 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"); + AccessController.doPrivileged(new PrivilegedAction () { + public Object run() { + String osName = System.getProperty("os.name", "unknownOS"); + isSolaris = osName.startsWith("SunOS"); - isLinux = osName.startsWith("Linux"); + 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; + String t2kStr = System.getProperty("sun.java2d.font.scaler"); + if (t2kStr != null) { + useT2K = "t2k".equals(t2kStr); } else { + useT2K = false; + } + if (isSolaris) { + String version = System.getProperty("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; } - } else { - isOpenSolaris= false; + isWindows = osName.startsWith("Windows"); + String jreLibDirName = System.getProperty("java.home", "") + + File.separator + "lib"; + String jreFontDirName = + jreLibDirName + File.separator + "fonts"; + File lucidaFile = new File(jreFontDirName + File.separator + + LUCIDA_FILE_NAME); + isOpenJDK = !lucidaFile.exists(); + return null; } - } 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(); + }); } /** diff --git a/jdk/test/java/awt/FontClass/FontPrivilege.java b/jdk/test/java/awt/FontClass/FontPrivilege.java new file mode 100644 index 00000000000..c0442874509 --- /dev/null +++ b/jdk/test/java/awt/FontClass/FontPrivilege.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2010 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 5010310 6319835 6904882 + * @summary test fonts can be created in the presence of a security manager + * @run main/othervm/secure=java.lang.SecurityManager FontPrivilege + */ + +import java.awt.Font; + +public class FontPrivilege { + + public static void main(String[] args) throws Exception { + new Font("Helvetica", Font.PLAIN, 12).getFamily(); + new Font("foo bar", Font.PLAIN, 12).getFamily(); + } +} From cb926f8d9e9e93c27c0b2130de6728a9941b1442 Mon Sep 17 00:00:00 2001 From: Yuri Nesterenko Date: Mon, 8 Feb 2010 17:02:43 +0300 Subject: [PATCH 077/109] 6882912: Strange behaviours when typing @ or ' Eliminate stray lines without a proper unicode->regularKeyID pair (e.g. as there is no "arrow left" unicode, should be no pair) Reviewed-by: rupashka --- .../classes/sun/awt/ExtendedKeyCodes.java | 107 ++++++------------ 1 file changed, 33 insertions(+), 74 deletions(-) diff --git a/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java b/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java index 37dfafb72ed..d6d72ac4ad7 100644 --- a/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java +++ b/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java @@ -13,7 +13,7 @@ public class ExtendedKeyCodes { */ // Keycodes declared in KeyEvent.java with corresponding Unicode values. private final static HashMap regularKeyCodesMap = - new HashMap(122, 1.0f); + new HashMap(83, 1.0f); // Keycodes derived from Unicode values. Here should be collected codes // for characters appearing on the primary layer of at least one @@ -22,7 +22,6 @@ public class ExtendedKeyCodes { private final static HashSet extendedKeyCodesSet = new HashSet(501, 1.0f); final public static int getExtendedKeyCodeForChar( int c ) { - int rc = KeyEvent.VK_UNDEFINED; int uc = Character.toUpperCase( c ); int lc = Character.toLowerCase( c ); if (regularKeyCodesMap.containsKey( c )) { @@ -38,22 +37,25 @@ public class ExtendedKeyCodes { }else if (extendedKeyCodesSet.contains( lc )) { return lc; } - return rc; + return KeyEvent.VK_UNDEFINED; } static { - regularKeyCodesMap.put(0x0a, KeyEvent.VK_ENTER); regularKeyCodesMap.put(0x08, KeyEvent.VK_BACK_SPACE); regularKeyCodesMap.put(0x09, KeyEvent.VK_TAB); + regularKeyCodesMap.put(0x0a, KeyEvent.VK_ENTER); regularKeyCodesMap.put(0x1B, KeyEvent.VK_ESCAPE); + regularKeyCodesMap.put(0x20AC, KeyEvent.VK_EURO_SIGN); regularKeyCodesMap.put(0x20, KeyEvent.VK_SPACE); - regularKeyCodesMap.put(0x21, KeyEvent.VK_PAGE_UP); - regularKeyCodesMap.put(0x22, KeyEvent.VK_PAGE_DOWN); - regularKeyCodesMap.put(0x23, KeyEvent.VK_END); - regularKeyCodesMap.put(0x24, KeyEvent.VK_HOME); - regularKeyCodesMap.put(0x25, KeyEvent.VK_LEFT); - regularKeyCodesMap.put(0x26, KeyEvent.VK_UP); - regularKeyCodesMap.put(0x27, KeyEvent.VK_RIGHT); - regularKeyCodesMap.put(0x28, KeyEvent.VK_DOWN); + regularKeyCodesMap.put(0x21, KeyEvent.VK_EXCLAMATION_MARK); + regularKeyCodesMap.put(0x22, KeyEvent.VK_QUOTEDBL); + regularKeyCodesMap.put(0x23, KeyEvent.VK_NUMBER_SIGN); + regularKeyCodesMap.put(0x24, KeyEvent.VK_DOLLAR); + regularKeyCodesMap.put(0x26, KeyEvent.VK_AMPERSAND); + regularKeyCodesMap.put(0x27, KeyEvent.VK_QUOTE); + regularKeyCodesMap.put(0x28, KeyEvent.VK_LEFT_PARENTHESIS); + regularKeyCodesMap.put(0x29, KeyEvent.VK_RIGHT_PARENTHESIS); + regularKeyCodesMap.put(0x2A, KeyEvent.VK_ASTERISK); + regularKeyCodesMap.put(0x2B, KeyEvent.VK_PLUS); regularKeyCodesMap.put(0x2C, KeyEvent.VK_COMMA); regularKeyCodesMap.put(0x2D, KeyEvent.VK_MINUS); regularKeyCodesMap.put(0x2E, KeyEvent.VK_PERIOD); @@ -68,102 +70,59 @@ public class ExtendedKeyCodes { regularKeyCodesMap.put(0x37, KeyEvent.VK_7); regularKeyCodesMap.put(0x38, KeyEvent.VK_8); regularKeyCodesMap.put(0x39, KeyEvent.VK_9); + regularKeyCodesMap.put(0x3A, KeyEvent.VK_COLON); regularKeyCodesMap.put(0x3B, KeyEvent.VK_SEMICOLON); + regularKeyCodesMap.put(0x3C, KeyEvent.VK_LESS); regularKeyCodesMap.put(0x3D, KeyEvent.VK_EQUALS); + regularKeyCodesMap.put(0x3E, KeyEvent.VK_GREATER); + regularKeyCodesMap.put(0x40, KeyEvent.VK_AT); regularKeyCodesMap.put(0x41, KeyEvent.VK_A); - regularKeyCodesMap.put(0x61, KeyEvent.VK_A); regularKeyCodesMap.put(0x42, KeyEvent.VK_B); - regularKeyCodesMap.put(0x62, KeyEvent.VK_B); regularKeyCodesMap.put(0x43, KeyEvent.VK_C); - regularKeyCodesMap.put(0x63, KeyEvent.VK_C); regularKeyCodesMap.put(0x44, KeyEvent.VK_D); - regularKeyCodesMap.put(0x64, KeyEvent.VK_D); regularKeyCodesMap.put(0x45, KeyEvent.VK_E); - regularKeyCodesMap.put(0x65, KeyEvent.VK_E); regularKeyCodesMap.put(0x46, KeyEvent.VK_F); - regularKeyCodesMap.put(0x66, KeyEvent.VK_F); regularKeyCodesMap.put(0x47, KeyEvent.VK_G); - regularKeyCodesMap.put(0x67, KeyEvent.VK_G); regularKeyCodesMap.put(0x48, KeyEvent.VK_H); - regularKeyCodesMap.put(0x68, KeyEvent.VK_H); regularKeyCodesMap.put(0x49, KeyEvent.VK_I); - regularKeyCodesMap.put(0x69, KeyEvent.VK_I); regularKeyCodesMap.put(0x4A, KeyEvent.VK_J); - regularKeyCodesMap.put(0x6A, KeyEvent.VK_J); regularKeyCodesMap.put(0x4B, KeyEvent.VK_K); - regularKeyCodesMap.put(0x6B, KeyEvent.VK_K); regularKeyCodesMap.put(0x4C, KeyEvent.VK_L); - regularKeyCodesMap.put(0x6C, KeyEvent.VK_L); regularKeyCodesMap.put(0x4D, KeyEvent.VK_M); - regularKeyCodesMap.put(0x6D, KeyEvent.VK_M); regularKeyCodesMap.put(0x4E, KeyEvent.VK_N); - regularKeyCodesMap.put(0x6E, KeyEvent.VK_N); regularKeyCodesMap.put(0x4F, KeyEvent.VK_O); - regularKeyCodesMap.put(0x6F, KeyEvent.VK_O); regularKeyCodesMap.put(0x50, KeyEvent.VK_P); - regularKeyCodesMap.put(0x70, KeyEvent.VK_P); regularKeyCodesMap.put(0x51, KeyEvent.VK_Q); - regularKeyCodesMap.put(0x71, KeyEvent.VK_Q); regularKeyCodesMap.put(0x52, KeyEvent.VK_R); - regularKeyCodesMap.put(0x72, KeyEvent.VK_R); regularKeyCodesMap.put(0x53, KeyEvent.VK_S); - regularKeyCodesMap.put(0x73, KeyEvent.VK_S); regularKeyCodesMap.put(0x54, KeyEvent.VK_T); - regularKeyCodesMap.put(0x74, KeyEvent.VK_T); regularKeyCodesMap.put(0x55, KeyEvent.VK_U); - regularKeyCodesMap.put(0x75, KeyEvent.VK_U); regularKeyCodesMap.put(0x56, KeyEvent.VK_V); - regularKeyCodesMap.put(0x76, KeyEvent.VK_V); regularKeyCodesMap.put(0x57, KeyEvent.VK_W); - regularKeyCodesMap.put(0x77, KeyEvent.VK_W); regularKeyCodesMap.put(0x58, KeyEvent.VK_X); - regularKeyCodesMap.put(0x78, KeyEvent.VK_X); regularKeyCodesMap.put(0x59, KeyEvent.VK_Y); - regularKeyCodesMap.put(0x79, KeyEvent.VK_Y); regularKeyCodesMap.put(0x5A, KeyEvent.VK_Z); - regularKeyCodesMap.put(0x7A, KeyEvent.VK_Z); regularKeyCodesMap.put(0x5B, KeyEvent.VK_OPEN_BRACKET); regularKeyCodesMap.put(0x5C, KeyEvent.VK_BACK_SLASH); regularKeyCodesMap.put(0x5D, KeyEvent.VK_CLOSE_BRACKET); -// regularKeyCodesMap.put(0x60, KeyEvent.VK_NUMPAD0); -// regularKeyCodesMap.put(0x61, KeyEvent.VK_NUMPAD1); -// regularKeyCodesMap.put(0x62, KeyEvent.VK_NUMPAD2); -// regularKeyCodesMap.put(0x63, KeyEvent.VK_NUMPAD3); -// regularKeyCodesMap.put(0x64, KeyEvent.VK_NUMPAD4); -// regularKeyCodesMap.put(0x65, KeyEvent.VK_NUMPAD5); -// regularKeyCodesMap.put(0x66, KeyEvent.VK_NUMPAD6); -// regularKeyCodesMap.put(0x67, KeyEvent.VK_NUMPAD7); -// regularKeyCodesMap.put(0x68, KeyEvent.VK_NUMPAD8); -// regularKeyCodesMap.put(0x69, KeyEvent.VK_NUMPAD9); - regularKeyCodesMap.put(0x6A, KeyEvent.VK_MULTIPLY); - regularKeyCodesMap.put(0x6B, KeyEvent.VK_ADD); - regularKeyCodesMap.put(0x6C, KeyEvent.VK_SEPARATER); - regularKeyCodesMap.put(0x6D, KeyEvent.VK_SUBTRACT); - regularKeyCodesMap.put(0x6E, KeyEvent.VK_DECIMAL); - regularKeyCodesMap.put(0x6F, KeyEvent.VK_DIVIDE); - regularKeyCodesMap.put(0x7F, KeyEvent.VK_DELETE); - regularKeyCodesMap.put(0xC0, KeyEvent.VK_BACK_QUOTE); - regularKeyCodesMap.put(0xDE, KeyEvent.VK_QUOTE); - regularKeyCodesMap.put(0x26, KeyEvent.VK_AMPERSAND); - regularKeyCodesMap.put(0x2A, KeyEvent.VK_ASTERISK); - regularKeyCodesMap.put(0x22, KeyEvent.VK_QUOTEDBL); - regularKeyCodesMap.put(0x3C, KeyEvent.VK_LESS); - regularKeyCodesMap.put(0x3E, KeyEvent.VK_GREATER); + regularKeyCodesMap.put(0x5E, KeyEvent.VK_CIRCUMFLEX); + regularKeyCodesMap.put(0x5F, KeyEvent.VK_UNDERSCORE); + regularKeyCodesMap.put(0x60, KeyEvent.VK_BACK_QUOTE); + regularKeyCodesMap.put(0x70, KeyEvent.VK_P); + regularKeyCodesMap.put(0x71, KeyEvent.VK_Q); + regularKeyCodesMap.put(0x72, KeyEvent.VK_R); + regularKeyCodesMap.put(0x73, KeyEvent.VK_S); + regularKeyCodesMap.put(0x74, KeyEvent.VK_T); + regularKeyCodesMap.put(0x75, KeyEvent.VK_U); + regularKeyCodesMap.put(0x76, KeyEvent.VK_V); + regularKeyCodesMap.put(0x77, KeyEvent.VK_W); + regularKeyCodesMap.put(0x78, KeyEvent.VK_X); + regularKeyCodesMap.put(0x79, KeyEvent.VK_Y); + regularKeyCodesMap.put(0x7A, KeyEvent.VK_Z); regularKeyCodesMap.put(0x7B, KeyEvent.VK_BRACELEFT); regularKeyCodesMap.put(0x7D, KeyEvent.VK_BRACERIGHT); - regularKeyCodesMap.put(0x40, KeyEvent.VK_AT); - regularKeyCodesMap.put(0x3A, KeyEvent.VK_COLON); - regularKeyCodesMap.put(0x5E, KeyEvent.VK_CIRCUMFLEX); - regularKeyCodesMap.put(0x24, KeyEvent.VK_DOLLAR); - regularKeyCodesMap.put(0x20AC, KeyEvent.VK_EURO_SIGN); - regularKeyCodesMap.put(0x21, KeyEvent.VK_EXCLAMATION_MARK); + regularKeyCodesMap.put(0x7F, KeyEvent.VK_DELETE); regularKeyCodesMap.put(0xA1, KeyEvent.VK_INVERTED_EXCLAMATION_MARK); - regularKeyCodesMap.put(0x28, KeyEvent.VK_LEFT_PARENTHESIS); - regularKeyCodesMap.put(0x23, KeyEvent.VK_NUMBER_SIGN); - regularKeyCodesMap.put(0x2B, KeyEvent.VK_PLUS); - regularKeyCodesMap.put(0x29, KeyEvent.VK_RIGHT_PARENTHESIS); - regularKeyCodesMap.put(0x5F, KeyEvent.VK_UNDERSCORE); - extendedKeyCodesSet.add(0x01000000+0x0060); extendedKeyCodesSet.add(0x01000000+0x007C); From 0c7a5610f86e7063e0321d61bc9e66445a4f8fb8 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:52:39 -0800 Subject: [PATCH 078/109] Added tag hs17-b01 for changeset 0fa11a27fb57 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 0cf570ca7b7..5b122f0e0d3 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -57,3 +57,4 @@ a5a6adfca6ecefb5894a848debabfe442ff50e25 jdk7-b79 3003ddd1d4330b06cb4691ae74d600d3685899eb jdk7-b80 1f9b07674480c224828852ffe137beea36b3cab5 jdk7-b81 1999f5b12482d66c8b0daf6709daea4f51893a04 jdk7-b82 +a94714c550658fd6741793ef036cb9625dc2ab1a hs17-b01 From 222701d515c3762165398e7082210e84b5424f31 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:52:55 -0800 Subject: [PATCH 079/109] Added tag hs17-b02 for changeset 2248859f89d4 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 5b122f0e0d3..965b89a6eab 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -58,3 +58,4 @@ a5a6adfca6ecefb5894a848debabfe442ff50e25 jdk7-b79 1f9b07674480c224828852ffe137beea36b3cab5 jdk7-b81 1999f5b12482d66c8b0daf6709daea4f51893a04 jdk7-b82 a94714c550658fd6741793ef036cb9625dc2ab1a hs17-b01 +faf94d94786b621f8e13cbcc941ca69c6d967c3f hs17-b02 From e3d5b796ea4c21c8ccf76632a6e24c1097ff89a9 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:52:56 -0800 Subject: [PATCH 080/109] Added tag hs17-b03 for changeset b95ea007fe67 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 965b89a6eab..5c0e4133de7 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -59,3 +59,4 @@ a5a6adfca6ecefb5894a848debabfe442ff50e25 jdk7-b79 1999f5b12482d66c8b0daf6709daea4f51893a04 jdk7-b82 a94714c550658fd6741793ef036cb9625dc2ab1a hs17-b01 faf94d94786b621f8e13cbcc941ca69c6d967c3f hs17-b02 +f4b900403d6e4b0af51447bd13bbe23fe3a1dac7 hs17-b03 From 7eacf2d5f6ac083503fe786e4d76521fdab981c0 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:52:57 -0800 Subject: [PATCH 081/109] Added tag hs17-b04 for changeset ac997bc87110 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 5c0e4133de7..fc4c15b00c0 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -60,3 +60,4 @@ a5a6adfca6ecefb5894a848debabfe442ff50e25 jdk7-b79 a94714c550658fd6741793ef036cb9625dc2ab1a hs17-b01 faf94d94786b621f8e13cbcc941ca69c6d967c3f hs17-b02 f4b900403d6e4b0af51447bd13bbe23fe3a1dac7 hs17-b03 +d8dd291a362acb656026a9c0a9da48501505a1e7 hs17-b04 From e8b9c404778d41e71c9ac359225f1b05b91e4e2f Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:52:58 -0800 Subject: [PATCH 082/109] Added tag hs17-b05 for changeset 02d36709a16f --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index fc4c15b00c0..e83eaab1ff6 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -61,3 +61,4 @@ a94714c550658fd6741793ef036cb9625dc2ab1a hs17-b01 faf94d94786b621f8e13cbcc941ca69c6d967c3f hs17-b02 f4b900403d6e4b0af51447bd13bbe23fe3a1dac7 hs17-b03 d8dd291a362acb656026a9c0a9da48501505a1e7 hs17-b04 +9174bb32e934965288121f75394874eeb1fcb649 hs17-b05 From d4d720b74c87249039955b3403f0ef48b8dd9dbe Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:52:59 -0800 Subject: [PATCH 083/109] Added tag hs17-b06 for changeset 9b63533d5895 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index e83eaab1ff6..e9f9f6b6fa2 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -62,3 +62,4 @@ faf94d94786b621f8e13cbcc941ca69c6d967c3f hs17-b02 f4b900403d6e4b0af51447bd13bbe23fe3a1dac7 hs17-b03 d8dd291a362acb656026a9c0a9da48501505a1e7 hs17-b04 9174bb32e934965288121f75394874eeb1fcb649 hs17-b05 +a5a6adfca6ecefb5894a848debabfe442ff50e25 hs17-b06 From 4b3a1713bdfc28ecb0a3fccd1d98e9c6bf0ee64c Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:53:00 -0800 Subject: [PATCH 084/109] Added tag hs17-b07 for changeset 8f15a8afca28 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index e9f9f6b6fa2..b5123e09fba 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -63,3 +63,4 @@ f4b900403d6e4b0af51447bd13bbe23fe3a1dac7 hs17-b03 d8dd291a362acb656026a9c0a9da48501505a1e7 hs17-b04 9174bb32e934965288121f75394874eeb1fcb649 hs17-b05 a5a6adfca6ecefb5894a848debabfe442ff50e25 hs17-b06 +3003ddd1d4330b06cb4691ae74d600d3685899eb hs17-b07 From 7fc922d19fa7123021e3b4e414a91e57c5f19d43 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:53:01 -0800 Subject: [PATCH 085/109] Added tag hs17-b08 for changeset 4197a09e1259 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index b5123e09fba..0d85caff308 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -64,3 +64,4 @@ d8dd291a362acb656026a9c0a9da48501505a1e7 hs17-b04 9174bb32e934965288121f75394874eeb1fcb649 hs17-b05 a5a6adfca6ecefb5894a848debabfe442ff50e25 hs17-b06 3003ddd1d4330b06cb4691ae74d600d3685899eb hs17-b07 +1f9b07674480c224828852ffe137beea36b3cab5 hs17-b08 From db5d24ec8b7768c2f09b8700cfe0e8d77ca58135 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 19:53:02 -0800 Subject: [PATCH 086/109] Added tag hs17-b09 for changeset 246521c00249 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 0d85caff308..80311ba3602 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -65,3 +65,4 @@ d8dd291a362acb656026a9c0a9da48501505a1e7 hs17-b04 a5a6adfca6ecefb5894a848debabfe442ff50e25 hs17-b06 3003ddd1d4330b06cb4691ae74d600d3685899eb hs17-b07 1f9b07674480c224828852ffe137beea36b3cab5 hs17-b08 +ff3232b68fbb35185b338d7ff4695b52460243f3 hs17-b09 From 54083a72cb2e0b33804dde32f335528c8127ecec Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:35 -0800 Subject: [PATCH 087/109] Added tag hs16-b01 for changeset 1ecc4413e7e7 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 80311ba3602..214416ec341 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -66,3 +66,4 @@ a5a6adfca6ecefb5894a848debabfe442ff50e25 hs17-b06 3003ddd1d4330b06cb4691ae74d600d3685899eb hs17-b07 1f9b07674480c224828852ffe137beea36b3cab5 hs17-b08 ff3232b68fbb35185b338d7ff4695b52460243f3 hs17-b09 +981375ca07b7f0605f92f57aad95122e8c385a4d hs16-b01 From 86600223728b0534521ebee3f95f9f90b207b570 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:37 -0800 Subject: [PATCH 088/109] Added tag hs16-b02 for changeset 86c4409e49f6 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 214416ec341..006f607ba8a 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -67,3 +67,4 @@ a5a6adfca6ecefb5894a848debabfe442ff50e25 hs17-b06 1f9b07674480c224828852ffe137beea36b3cab5 hs17-b08 ff3232b68fbb35185b338d7ff4695b52460243f3 hs17-b09 981375ca07b7f0605f92f57aad95122e8c385a4d hs16-b01 +f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 From 59829da36c28f4f40ec70c4655cf3bf559b14d05 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:38 -0800 Subject: [PATCH 089/109] Added tag hs16-b03 for changeset 10154d4b4b4b --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 006f607ba8a..fa29ae7f3d6 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -68,3 +68,4 @@ a5a6adfca6ecefb5894a848debabfe442ff50e25 hs17-b06 ff3232b68fbb35185b338d7ff4695b52460243f3 hs17-b09 981375ca07b7f0605f92f57aad95122e8c385a4d hs16-b01 f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 +07c1c01e031513bfe6a7d17c6cf30d2752824ae9 hs16-b03 From f2daf5d1747247a2338576d78a6a67733a23334e Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:40 -0800 Subject: [PATCH 090/109] Added tag hs16-b04 for changeset 28ccf5edf0ec --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index fa29ae7f3d6..6303ba9b3f1 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -69,3 +69,4 @@ ff3232b68fbb35185b338d7ff4695b52460243f3 hs17-b09 981375ca07b7f0605f92f57aad95122e8c385a4d hs16-b01 f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 07c1c01e031513bfe6a7d17c6cf30d2752824ae9 hs16-b03 +08f86fa55a31113df626a75c8a626e66a543a1bd hs16-b04 From ea13d3eda966c357d3ce2249b824beb228a6ea9f Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:42 -0800 Subject: [PATCH 091/109] Added tag hs16-b05 for changeset 06171649948f --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 6303ba9b3f1..bb46961e188 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -70,3 +70,4 @@ ff3232b68fbb35185b338d7ff4695b52460243f3 hs17-b09 f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 07c1c01e031513bfe6a7d17c6cf30d2752824ae9 hs16-b03 08f86fa55a31113df626a75c8a626e66a543a1bd hs16-b04 +32c83fb84370a35344676991a48440378e6b6c8a hs16-b05 From 246dccdceab558e92963bf3ad0c05bc2e5d0c79e Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:44 -0800 Subject: [PATCH 092/109] Added tag hs16-b06 for changeset 60611616dba4 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index bb46961e188..b4d2e3127a0 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -71,3 +71,4 @@ f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 07c1c01e031513bfe6a7d17c6cf30d2752824ae9 hs16-b03 08f86fa55a31113df626a75c8a626e66a543a1bd hs16-b04 32c83fb84370a35344676991a48440378e6b6c8a hs16-b05 +ba313800759b678979434d6da8ed3bf49eb8bea4 hs16-b06 From 25c80d5c0c061258d2c1705f0887cb1f7a24bdc6 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:45 -0800 Subject: [PATCH 093/109] Added tag hs16-b07 for changeset 699915c095af --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index b4d2e3127a0..f80c8395d10 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -72,3 +72,4 @@ f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 08f86fa55a31113df626a75c8a626e66a543a1bd hs16-b04 32c83fb84370a35344676991a48440378e6b6c8a hs16-b05 ba313800759b678979434d6da8ed3bf49eb8bea4 hs16-b06 +3c0f729815607e1678bd0c41ae68494c700dcc71 hs16-b07 From 01e49c956d02287e19b284a8b713e7d79102bcec Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:11:47 -0800 Subject: [PATCH 094/109] Added tag hs16-b08 for changeset d716bbc29dcc --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index f80c8395d10..8d812ff3d46 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -73,3 +73,4 @@ f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 32c83fb84370a35344676991a48440378e6b6c8a hs16-b05 ba313800759b678979434d6da8ed3bf49eb8bea4 hs16-b06 3c0f729815607e1678bd0c41ae68494c700dcc71 hs16-b07 +ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08 From 7a355435d66d2d0316d365ab2196377341efdebf Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:36:57 -0800 Subject: [PATCH 095/109] Added tag hs15-b01 for changeset a128eac78670 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 8d812ff3d46..d8fd5838010 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -74,3 +74,4 @@ f4cbf78110c726919f46b59a3b054c54c7e889b4 hs16-b02 ba313800759b678979434d6da8ed3bf49eb8bea4 hs16-b06 3c0f729815607e1678bd0c41ae68494c700dcc71 hs16-b07 ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08 +3f844a28c5f4912bd04043b44f21b25b0805ffc2 hs15-b01 From a4ec1f8d33c9559420e98559d11df96664b69405 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:36:59 -0800 Subject: [PATCH 096/109] Added tag hs15-b02 for changeset ccfb5ba09cb6 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index d8fd5838010..6aed9d6420d 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -75,3 +75,4 @@ ba313800759b678979434d6da8ed3bf49eb8bea4 hs16-b06 3c0f729815607e1678bd0c41ae68494c700dcc71 hs16-b07 ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08 3f844a28c5f4912bd04043b44f21b25b0805ffc2 hs15-b01 +1605bb4eb5a7a1703b13d5b077a22cc665fe45f7 hs15-b02 From a4f8dd6290c39ac4ea1de02e64aa0e727dfe14c6 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:37:01 -0800 Subject: [PATCH 097/109] Added tag hs15-b03 for changeset c5c3e5f4accc --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 6aed9d6420d..877e2a9346f 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -76,3 +76,4 @@ ba313800759b678979434d6da8ed3bf49eb8bea4 hs16-b06 ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08 3f844a28c5f4912bd04043b44f21b25b0805ffc2 hs15-b01 1605bb4eb5a7a1703b13d5b077a22cc665fe45f7 hs15-b02 +2581d90c6c9b2012da930eb4742add94a03069a0 hs15-b03 From e2d51faf01a9f92cd9a14ab59200c4f72c284c87 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:37:03 -0800 Subject: [PATCH 098/109] Added tag hs15-b04 for changeset 0ea2576e714b --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 877e2a9346f..3e8f4dc1204 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -77,3 +77,4 @@ ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08 3f844a28c5f4912bd04043b44f21b25b0805ffc2 hs15-b01 1605bb4eb5a7a1703b13d5b077a22cc665fe45f7 hs15-b02 2581d90c6c9b2012da930eb4742add94a03069a0 hs15-b03 +9ab385cb0c42997e16a7761ebcd25c90560a2714 hs15-b04 From 394f79f57d0e2dc7cf8cf81f9f5ef61cba12f706 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 11 Feb 2010 20:37:05 -0800 Subject: [PATCH 099/109] Added tag hs15-b05 for changeset c77d20908054 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 3e8f4dc1204..16f8fab327d 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -78,3 +78,4 @@ ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08 1605bb4eb5a7a1703b13d5b077a22cc665fe45f7 hs15-b02 2581d90c6c9b2012da930eb4742add94a03069a0 hs15-b03 9ab385cb0c42997e16a7761ebcd25c90560a2714 hs15-b04 +fafab5d5349c7c066d677538db67a1ee0fb33bd2 hs15-b05 From c92f7732920cd5277d1fbd20e25360286a56705d Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Fri, 12 Feb 2010 13:25:03 -0800 Subject: [PATCH 100/109] Added tag jdk7-b83 for changeset 109f388bca57 --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 5716d77aa40..b7fa87f7cf1 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -57,3 +57,4 @@ ab4ae8f4514693a9fe17ca2fec0239d8f8450d2c jdk7-b78 a3242906c7747b5d9bcc3d118c7c3c69aa40f4b7 jdk7-b80 8403096d1fe7ff5318df9708cfec84a3fd3e1cf9 jdk7-b81 e1176f86805fe07fd9fb9da065dc51b47712ce76 jdk7-b82 +6880a3af9addb41541e80ebe8cde6f79ec402a58 jdk7-b83 From d7e74ca52074dd233feff49b2f1645f8effb9ad6 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Fri, 12 Feb 2010 13:25:05 -0800 Subject: [PATCH 101/109] Added tag jdk7-b83 for changeset 268bfb70324f --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 1a4aad319dd..fd2dbef6e7f 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -57,3 +57,4 @@ ec0421b5703b677e2226cf4bf7ae4eaafd8061c5 jdk7-b79 0336e70ca0aeabc783cc01658f36cb6e27ea7934 jdk7-b80 e08a42a2a94d97ea8eedb187a94dbff822c8fbba jdk7-b81 1e8c1bfad1abb4b81407a0f2645e0fb85764ca48 jdk7-b82 +fde0df7a2384f7fe33204a79678989807d9c2b98 jdk7-b83 From d3c21e471a9553c04e7a90544371f1b883d3525c Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Fri, 12 Feb 2010 13:25:08 -0800 Subject: [PATCH 102/109] Added tag jdk7-b83 for changeset 36d525db29a0 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 16f8fab327d..166e8acf79d 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -79,3 +79,4 @@ ac59d4e6dae51ac5fc31a9a4940d1857f91161b1 hs16-b08 2581d90c6c9b2012da930eb4742add94a03069a0 hs15-b03 9ab385cb0c42997e16a7761ebcd25c90560a2714 hs15-b04 fafab5d5349c7c066d677538db67a1ee0fb33bd2 hs15-b05 +3f370a32906eb5ba993fabd7b4279be7f31052b9 jdk7-b83 From e63e477ad4b4e9efad3a72dc53caf493b277b94b Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Fri, 12 Feb 2010 13:25:12 -0800 Subject: [PATCH 103/109] Added tag jdk7-b83 for changeset ab248239edc6 --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 14ec24c5f11..fba5353730c 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -57,3 +57,4 @@ b1005c504358c18694c84e95fec16b28cdce7ae1 jdk7-b79 9219574db5936367114b0f31469837f27d5a375a jdk7-b80 204e59d488cdaa9eafa8cb7164ea955b5a9d4a51 jdk7-b81 c876ad22e4bf9d3c6460080db7ace478e29a3ff9 jdk7-b82 +309a0a7fc6ceb1c9fc3a85b3608e97ef8f7b0dfd jdk7-b83 From add74b6402d17b66c78a1cd67f088f65353ec80b Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Fri, 12 Feb 2010 13:25:13 -0800 Subject: [PATCH 104/109] Added tag jdk7-b83 for changeset deb836072de4 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index fa91947524a..88fe8d70fa3 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -57,3 +57,4 @@ c08894f5b6e594b9b12993e256b96c1b38099632 jdk7-b79 447767dee56a0f8cb89acc8bf7be5f9be7d84e8b jdk7-b80 f051045fe94a48fae1097f90cbd9227e6aae6b7e jdk7-b81 31573ae8eed15a6c170f3f0d1abd0b9109c0e086 jdk7-b82 +371e3ded591d09112a9f231e37cb072781c486ac jdk7-b83 From 706d8fd039028050a7c74e18dbcba149c4a7ec65 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Fri, 12 Feb 2010 13:25:18 -0800 Subject: [PATCH 105/109] Added tag jdk7-b83 for changeset 063470ff633d --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index c718faf37ec..cf518808601 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -57,3 +57,4 @@ e6a5d095c356a547cf5b3c8885885aca5e91e09b jdk7-b77 049cfaaa9a7374e3768a79969a799e8b59ad52fa jdk7-b80 10b993d417fcdb40480dad7032ac241f4b87f1af jdk7-b81 69ef657320ad5c35cfa12e4d8322d877e778f8b3 jdk7-b82 +9027c6b9d7e2c9ca04a1add691b5b50d0f22b1aa jdk7-b83 From bad9881310c48b8a8c32c5879d1065896e448b43 Mon Sep 17 00:00:00 2001 From: Michael Wilkerson Date: Fri, 12 Feb 2010 13:25:27 -0800 Subject: [PATCH 106/109] Added tag jdk7-b83 for changeset 36fcedcbb231 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 46e59d75baa..66243126696 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -57,3 +57,4 @@ ac5b4c5644ce54585e5287563dde2b006fa664f4 jdk7-b79 f0074aa48d4e2a4c03c92b9c4f880679fea0306c jdk7-b80 cfabfcf9f110ef896cbdd382903d20eefbceefe0 jdk7-b81 47003a3622f6a17756ab0338bfa8a43e36549e99 jdk7-b82 +c9f4ae1f1480e89aaf7e72173184089d9cea397a jdk7-b83 From 04d32968fee6ff1448c3763ab61dde50bd1c13ac Mon Sep 17 00:00:00 2001 From: "J. Duke" Date: Wed, 5 Jul 2017 17:06:08 +0200 Subject: [PATCH 107/109] Added tag jdk7-b81 for changeset dcc938ac40cc --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index fdf92c01ecc..32bc2071e9d 100644 --- a/.hgtags +++ b/.hgtags @@ -55,3 +55,4 @@ ce74bd35ce948d629a356e168797f44b593b1578 jdk7-b73 4061c66ba1af1a2e27c2c839ba887407dd3ce050 jdk7-b78 e9c98378f6b9256c0595ef2985ca5899f0c0e274 jdk7-b79 e6abd38682d237306d6c147c17538ec9e7f8e3a7 jdk7-b80 +dcc938ac40cc45f1ef454d76020b5db5d943001c jdk7-b81 From d7489b80de5f63b81bee96bccf11fe50e7dfeb81 Mon Sep 17 00:00:00 2001 From: "J. Duke" Date: Wed, 5 Jul 2017 17:06:29 +0200 Subject: [PATCH 108/109] Added tag jdk7-b82 for changeset a30062be6d9c --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 32bc2071e9d..7ec1f0f98f4 100644 --- a/.hgtags +++ b/.hgtags @@ -56,3 +56,4 @@ ce74bd35ce948d629a356e168797f44b593b1578 jdk7-b73 e9c98378f6b9256c0595ef2985ca5899f0c0e274 jdk7-b79 e6abd38682d237306d6c147c17538ec9e7f8e3a7 jdk7-b80 dcc938ac40cc45f1ef454d76020b5db5d943001c jdk7-b81 +a30062be6d9ca1d48579826f870f85974300004e jdk7-b82 From 47d4143feeab916496dd0533ca71617879a986ae Mon Sep 17 00:00:00 2001 From: "J. Duke" Date: Wed, 5 Jul 2017 17:06:56 +0200 Subject: [PATCH 109/109] Added tag jdk7-b83 for changeset 34c8199936a1 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 7ec1f0f98f4..f05da990489 100644 --- a/.hgtags +++ b/.hgtags @@ -57,3 +57,4 @@ e9c98378f6b9256c0595ef2985ca5899f0c0e274 jdk7-b79 e6abd38682d237306d6c147c17538ec9e7f8e3a7 jdk7-b80 dcc938ac40cc45f1ef454d76020b5db5d943001c jdk7-b81 a30062be6d9ca1d48579826f870f85974300004e jdk7-b82 +34c8199936a1682aa8587857f44cfaf37c2b6381 jdk7-b83