From 5deb15889c34ff52f3ec49a6f525de8c80615ede Mon Sep 17 00:00:00 2001 From: Yuka Kamiya Date: Tue, 15 Dec 2009 14:50:01 +0900 Subject: [PATCH 001/107] 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/107] 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/107] 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/107] 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/107] 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/107] 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/107] 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/107] 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/107] 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/107] 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/107] 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 a9131d080c45420ee889cab4ff6eb32395a84149 Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Tue, 19 Jan 2010 14:28:45 -0800 Subject: [PATCH 012/107] 6917067: refactor type annotations code from TransTypes into new TypeAnnotations class Co-authored-by: Michael Ernst Reviewed-by: jjg, darcy --- .../sun/tools/javac/code/TypeAnnotations.java | 411 ++++++++++++++++++ .../com/sun/tools/javac/comp/TransTypes.java | 363 +--------------- 2 files changed, 414 insertions(+), 360 deletions(-) create mode 100644 langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java new file mode 100644 index 00000000000..90943e9bb41 --- /dev/null +++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java @@ -0,0 +1,411 @@ +/* + * 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. + */ + +package com.sun.tools.javac.code; + +import javax.lang.model.element.ElementKind; + +import com.sun.tools.javac.code.Symbol.VarSymbol; +import com.sun.tools.javac.tree.JCTree; +import com.sun.tools.javac.tree.TreeInfo; +import com.sun.tools.javac.tree.TreeScanner; +import com.sun.tools.javac.tree.JCTree.*; +import com.sun.tools.javac.util.Context; +import com.sun.tools.javac.util.List; +import com.sun.tools.javac.util.ListBuffer; + +/** + * Contains operations specific to processing type annotations + */ +public class TypeAnnotations { + private static final Context.Key key + = new Context.Key(); + + public static TypeAnnotations instance(Context context) { + TypeAnnotations instance = context.get(key); + if (instance == null) + instance = new TypeAnnotations(context); + return instance; + } + + protected TypeAnnotations(Context context) { + context.put(key, this); + } + + public void taFillAndLift(JCClassDecl tree, boolean visitBodies) { + new TypeAnnotationPositions().scan(tree); + new TypeAnnotationLift().scan(tree); + } + + private static class TypeAnnotationPositions extends TreeScanner { + + private ListBuffer frames = ListBuffer.lb(); + private void push(JCTree t) { frames = frames.prepend(t); } + private JCTree pop() { return frames.next(); } + private JCTree peek2() { return frames.toList().tail.head; } + + @Override + public void scan(JCTree tree) { + push(tree); + super.scan(tree); + pop(); + } + + private boolean inClass = false; + + @Override + public void visitClassDef(JCClassDecl tree) { + if (!inClass) { + // Do not recurse into nested and inner classes since + // TransTypes.visitClassDef makes an invocation for each class + // separately. + inClass = true; + try { + super.visitClassDef(tree); + } finally { + inClass = false; + } + } + } + + private TypeAnnotationPosition resolveFrame(JCTree tree, JCTree frame, + List path, TypeAnnotationPosition p) { + switch (frame.getKind()) { + case TYPE_CAST: + p.type = TargetType.TYPECAST; + p.pos = frame.pos; + return p; + + case INSTANCE_OF: + p.type = TargetType.INSTANCEOF; + p.pos = frame.pos; + return p; + + case NEW_CLASS: + p.type = TargetType.NEW; + p.pos = frame.pos; + return p; + + case NEW_ARRAY: + p.type = TargetType.NEW; + p.pos = frame.pos; + return p; + + case CLASS: + p.pos = frame.pos; + if (((JCClassDecl)frame).extending == tree) { + p.type = TargetType.CLASS_EXTENDS; + p.type_index = -1; + } else if (((JCClassDecl)frame).implementing.contains(tree)) { + p.type = TargetType.CLASS_EXTENDS; + p.type_index = ((JCClassDecl)frame).implementing.indexOf(tree); + } else if (((JCClassDecl)frame).typarams.contains(tree)) { + p.type = TargetType.CLASS_TYPE_PARAMETER; + p.parameter_index = ((JCClassDecl)frame).typarams.indexOf(tree); + } else + throw new AssertionError(); + return p; + + case METHOD: { + JCMethodDecl frameMethod = (JCMethodDecl)frame; + p.pos = frame.pos; + if (frameMethod.receiverAnnotations.contains(tree)) + p.type = TargetType.METHOD_RECEIVER; + else if (frameMethod.thrown.contains(tree)) { + p.type = TargetType.THROWS; + p.type_index = frameMethod.thrown.indexOf(tree); + } else if (((JCMethodDecl)frame).restype == tree) { + p.type = TargetType.METHOD_RETURN_GENERIC_OR_ARRAY; + } else if (frameMethod.typarams.contains(tree)) { + p.type = TargetType.METHOD_TYPE_PARAMETER; + p.parameter_index = frameMethod.typarams.indexOf(tree); + } else + throw new AssertionError(); + return p; + } + case MEMBER_SELECT: { + JCFieldAccess fieldFrame = (JCFieldAccess)frame; + if ("class".contentEquals(fieldFrame.name)) { + p.type = TargetType.CLASS_LITERAL; + if (fieldFrame.selected instanceof JCAnnotatedType) { + p.pos = TreeInfo.typeIn(fieldFrame).pos; + } else if (fieldFrame.selected instanceof JCArrayTypeTree) { + p.pos = fieldFrame.selected.pos; + } + } else + throw new AssertionError(); + return p; + } + case PARAMETERIZED_TYPE: { + TypeAnnotationPosition nextP; + if (((JCTypeApply)frame).clazz == tree) + nextP = p; // generic: RAW; noop + else if (((JCTypeApply)frame).arguments.contains(tree)) + p.location = p.location.prepend( + ((JCTypeApply)frame).arguments.indexOf(tree)); + else + throw new AssertionError(); + + List newPath = path.tail; + return resolveFrame(newPath.head, newPath.tail.head, newPath, p); + } + + case ARRAY_TYPE: { + p.location = p.location.prepend(0); + List newPath = path.tail; + return resolveFrame(newPath.head, newPath.tail.head, newPath, p); + } + + case TYPE_PARAMETER: + if (path.tail.tail.head.getTag() == JCTree.CLASSDEF) { + JCClassDecl clazz = (JCClassDecl)path.tail.tail.head; + p.type = TargetType.CLASS_TYPE_PARAMETER_BOUND; + p.parameter_index = clazz.typarams.indexOf(path.tail.head); + p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree); + } else if (path.tail.tail.head.getTag() == JCTree.METHODDEF) { + JCMethodDecl method = (JCMethodDecl)path.tail.tail.head; + p.type = TargetType.METHOD_TYPE_PARAMETER_BOUND; + p.parameter_index = method.typarams.indexOf(path.tail.head); + p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree); + } else + throw new AssertionError(); + p.pos = frame.pos; + return p; + + case VARIABLE: + VarSymbol v = ((JCVariableDecl)frame).sym; + p.pos = frame.pos; + switch (v.getKind()) { + case LOCAL_VARIABLE: + p.type = TargetType.LOCAL_VARIABLE; break; + case FIELD: + p.type = TargetType.FIELD_GENERIC_OR_ARRAY; break; + case PARAMETER: + p.type = TargetType.METHOD_PARAMETER_GENERIC_OR_ARRAY; + p.parameter_index = methodParamIndex(path, frame); + break; + default: throw new AssertionError(); + } + return p; + + case ANNOTATED_TYPE: { + List newPath = path.tail; + return resolveFrame(newPath.head, newPath.tail.head, + newPath, p); + } + + case METHOD_INVOCATION: { + JCMethodInvocation invocation = (JCMethodInvocation)frame; + if (!invocation.typeargs.contains(tree)) + throw new AssertionError("{" + tree + "} is not an argument in the invocation: " + invocation); + p.type = TargetType.METHOD_TYPE_ARGUMENT; + p.pos = invocation.pos; + p.type_index = invocation.typeargs.indexOf(tree); + return p; + } + + case EXTENDS_WILDCARD: + case SUPER_WILDCARD: { + p.type = TargetType.WILDCARD_BOUND; + List newPath = path.tail; + + TypeAnnotationPosition wildcard = + resolveFrame(newPath.head, newPath.tail.head, newPath, + new TypeAnnotationPosition()); + if (!wildcard.location.isEmpty()) + wildcard.type = wildcard.type.getGenericComplement(); + p.wildcard_position = wildcard; + p.pos = frame.pos; + return p; + } + } + return p; + } + + @Override + public void visitApply(JCMethodInvocation tree) { + scan(tree.meth); + scan(tree.typeargs); + scan(tree.args); + } + + private void setTypeAnnotationPos(List annotations, TypeAnnotationPosition position) { + for (JCTypeAnnotation anno : annotations) { + anno.annotation_position = position; + anno.attribute_field.position = position; + } + } + + @Override + public void visitNewArray(JCNewArray tree) { + findPosition(tree, tree, tree.annotations); + int dimAnnosCount = tree.dimAnnotations.size(); + + // handle annotations associated with dimentions + for (int i = 0; i < dimAnnosCount; ++i) { + TypeAnnotationPosition p = new TypeAnnotationPosition(); + p.type = TargetType.NEW_GENERIC_OR_ARRAY; + p.pos = tree.pos; + p.location = p.location.append(i); + setTypeAnnotationPos(tree.dimAnnotations.get(i), p); + } + + // handle "free" annotations + int i = dimAnnosCount == 0 ? 0 : dimAnnosCount - 1; + JCExpression elemType = tree.elemtype; + while (elemType != null) { + if (elemType.getTag() == JCTree.ANNOTATED_TYPE) { + JCAnnotatedType at = (JCAnnotatedType)elemType; + TypeAnnotationPosition p = new TypeAnnotationPosition(); + p.type = TargetType.NEW_GENERIC_OR_ARRAY; + p.pos = tree.pos; + p.location = p.location.append(i); + setTypeAnnotationPos(at.annotations, p); + elemType = at.underlyingType; + } else if (elemType.getTag() == JCTree.TYPEARRAY) { + ++i; + elemType = ((JCArrayTypeTree)elemType).elemtype; + } else + break; + } + + // find annotations locations of initializer elements + scan(tree.elems); + } + + @Override + public void visitAnnotatedType(JCAnnotatedType tree) { + findPosition(tree, peek2(), tree.annotations); + super.visitAnnotatedType(tree); + } + + @Override + public void visitMethodDef(JCMethodDecl tree) { + TypeAnnotationPosition p = new TypeAnnotationPosition(); + p.type = TargetType.METHOD_RECEIVER; + setTypeAnnotationPos(tree.receiverAnnotations, p); + super.visitMethodDef(tree); + } + @Override + public void visitTypeParameter(JCTypeParameter tree) { + findPosition(tree, peek2(), tree.annotations); + super.visitTypeParameter(tree); + } + + void findPosition(JCTree tree, JCTree frame, List annotations) { + if (!annotations.isEmpty()) { + TypeAnnotationPosition p = + resolveFrame(tree, frame, frames.toList(), + new TypeAnnotationPosition()); + if (!p.location.isEmpty()) + p.type = p.type.getGenericComplement(); + setTypeAnnotationPos(annotations, p); + } + } + + private int methodParamIndex(List path, JCTree param) { + List curr = path; + if (curr.head != param) + curr = path.tail; + JCMethodDecl method = (JCMethodDecl)curr.tail.head; + return method.params.indexOf(param); + } + } + + private static class TypeAnnotationLift extends TreeScanner { + List recordedTypeAnnotations = List.nil(); + + boolean isInner = false; + @Override + public void visitClassDef(JCClassDecl tree) { + if (isInner) { + // tree is an inner class tree. stop now. + // TransTypes.visitClassDef makes an invocation for each class + // separately. + return; + } + isInner = true; + List prevTAs = recordedTypeAnnotations; + recordedTypeAnnotations = List.nil(); + try { + super.visitClassDef(tree); + } finally { + tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); + recordedTypeAnnotations = prevTAs; + } + } + + @Override + public void visitMethodDef(JCMethodDecl tree) { + List prevTAs = recordedTypeAnnotations; + recordedTypeAnnotations = List.nil(); + try { + super.visitMethodDef(tree); + } finally { + tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); + recordedTypeAnnotations = prevTAs; + } + } + + @Override + public void visitVarDef(JCVariableDecl tree) { + List prevTAs = recordedTypeAnnotations; + recordedTypeAnnotations = List.nil(); + ElementKind kind = tree.sym.getKind(); + if (kind == ElementKind.LOCAL_VARIABLE && tree.mods.annotations.nonEmpty()) { + // need to lift the annotations + TypeAnnotationPosition position = new TypeAnnotationPosition(); + position.pos = tree.pos; + position.type = TargetType.LOCAL_VARIABLE; + for (Attribute.Compound attribute : tree.sym.attributes_field) { + Attribute.TypeCompound tc = + new Attribute.TypeCompound(attribute.type, attribute.values, position); + recordedTypeAnnotations = recordedTypeAnnotations.append(tc); + } + } + try { + super.visitVarDef(tree); + } finally { + if (kind.isField() || kind == ElementKind.LOCAL_VARIABLE) + tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); + recordedTypeAnnotations = kind.isField() ? prevTAs : prevTAs.appendList(recordedTypeAnnotations); + } + } + + @Override + public void visitApply(JCMethodInvocation tree) { + scan(tree.meth); + scan(tree.typeargs); + scan(tree.args); + } + + public void visitAnnotation(JCAnnotation tree) { + if (tree instanceof JCTypeAnnotation) + recordedTypeAnnotations = recordedTypeAnnotations.append(((JCTypeAnnotation)tree).attribute_field); + super.visitAnnotation(tree); + } + } + +} diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java b/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java index f2d976ae9bb..aa5ceb173fc 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/TransTypes.java @@ -61,8 +61,6 @@ public class TransTypes extends TreeTranslator { return instance; } - private boolean debugJSR308; - private Names names; private Log log; private Symtab syms; @@ -71,6 +69,7 @@ public class TransTypes extends TreeTranslator { private boolean allowEnums; private Types types; private final Resolve resolve; + private final TypeAnnotations typeAnnotations; /** * Flag to indicate whether or not to generate bridge methods. @@ -92,7 +91,7 @@ public class TransTypes extends TreeTranslator { types = Types.instance(context); make = TreeMaker.instance(context); resolve = Resolve.instance(context); - debugJSR308 = Options.instance(context).get("TA:trans") != null; + typeAnnotations = TypeAnnotations.instance(context); } /** A hashtable mapping bridge methods to the methods they override after @@ -440,8 +439,7 @@ public class TransTypes extends TreeTranslator { } public void visitClassDef(JCClassDecl tree) { - new TypeAnnotationPositions().scan(tree); - new TypeAnnotationLift().scan(tree); + typeAnnotations.taFillAndLift(tree, true); translateClass(tree.sym); result = tree; } @@ -801,359 +799,4 @@ public class TransTypes extends TreeTranslator { pt = null; return translate(cdef, null); } - - private class TypeAnnotationPositions extends TreeScanner { - - private ListBuffer frames = ListBuffer.lb(); - private void push(JCTree t) { frames = frames.prepend(t); } - private JCTree pop() { return frames.next(); } - private JCTree peek() { return frames.first(); } - private JCTree peek2() { return frames.toList().tail.head; } - - @Override - public void scan(JCTree tree) { - push(tree); - super.scan(tree); - pop(); - } - - private boolean inClass = false; - - @Override - public void visitClassDef(JCClassDecl tree) { - if (!inClass) { - // Do not recurse into nested and inner classes since - // TransTypes.visitClassDef makes an invocation for each class - // separately. - inClass = true; - try { - super.visitClassDef(tree); - } finally { - inClass = false; - } - } - } - - private TypeAnnotationPosition resolveFrame(JCTree tree, JCTree frame, - List path, TypeAnnotationPosition p) { - switch (frame.getKind()) { - case TYPE_CAST: - p.type = TargetType.TYPECAST; - p.pos = frame.pos; - return p; - - case INSTANCE_OF: - p.type = TargetType.INSTANCEOF; - p.pos = frame.pos; - return p; - - case NEW_CLASS: - p.type = TargetType.NEW; - p.pos = frame.pos; - return p; - - case NEW_ARRAY: - p.type = TargetType.NEW; - p.pos = frame.pos; - return p; - - case CLASS: - p.pos = frame.pos; - if (((JCClassDecl)frame).extending == tree) { - p.type = TargetType.CLASS_EXTENDS; - p.type_index = -1; - } else if (((JCClassDecl)frame).implementing.contains(tree)) { - p.type = TargetType.CLASS_EXTENDS; - p.type_index = ((JCClassDecl)frame).implementing.indexOf(tree); - } else if (((JCClassDecl)frame).typarams.contains(tree)) { - p.type = TargetType.CLASS_TYPE_PARAMETER; - p.parameter_index = ((JCClassDecl)frame).typarams.indexOf(tree); - } else - throw new AssertionError(); - return p; - - case METHOD: { - JCMethodDecl frameMethod = (JCMethodDecl)frame; - p.pos = frame.pos; - if (frameMethod.receiverAnnotations.contains(tree)) - p.type = TargetType.METHOD_RECEIVER; - else if (frameMethod.thrown.contains(tree)) { - p.type = TargetType.THROWS; - p.type_index = frameMethod.thrown.indexOf(tree); - } else if (((JCMethodDecl)frame).restype == tree) { - p.type = TargetType.METHOD_RETURN_GENERIC_OR_ARRAY; - } else if (frameMethod.typarams.contains(tree)) { - p.type = TargetType.METHOD_TYPE_PARAMETER; - p.parameter_index = frameMethod.typarams.indexOf(tree); - } else - throw new AssertionError(); - return p; - } - case MEMBER_SELECT: { - JCFieldAccess fieldFrame = (JCFieldAccess)frame; - if (fieldFrame.name == names._class) { - p.type = TargetType.CLASS_LITERAL; - if (fieldFrame.selected instanceof JCAnnotatedType) { - p.pos = TreeInfo.typeIn(fieldFrame).pos; - } else if (fieldFrame.selected instanceof JCArrayTypeTree) { - p.pos = fieldFrame.selected.pos; - } - } else - throw new AssertionError(); - return p; - } - case PARAMETERIZED_TYPE: { - TypeAnnotationPosition nextP; - if (((JCTypeApply)frame).clazz == tree) - nextP = p; // generic: RAW; noop - else if (((JCTypeApply)frame).arguments.contains(tree)) - p.location = p.location.prepend( - ((JCTypeApply)frame).arguments.indexOf(tree)); - else - throw new AssertionError(); - - List newPath = path.tail; - return resolveFrame(newPath.head, newPath.tail.head, newPath, p); - } - - case ARRAY_TYPE: { - p.location = p.location.prepend(0); - List newPath = path.tail; - return resolveFrame(newPath.head, newPath.tail.head, newPath, p); - } - - case TYPE_PARAMETER: - if (path.tail.tail.head.getTag() == JCTree.CLASSDEF) { - JCClassDecl clazz = (JCClassDecl)path.tail.tail.head; - p.type = TargetType.CLASS_TYPE_PARAMETER_BOUND; - p.parameter_index = clazz.typarams.indexOf(path.tail.head); - p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree); - } else if (path.tail.tail.head.getTag() == JCTree.METHODDEF) { - JCMethodDecl method = (JCMethodDecl)path.tail.tail.head; - p.type = TargetType.METHOD_TYPE_PARAMETER_BOUND; - p.parameter_index = method.typarams.indexOf(path.tail.head); - p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree); - } else - throw new AssertionError(); - p.pos = frame.pos; - return p; - - case VARIABLE: - VarSymbol v = ((JCVariableDecl)frame).sym; - p.pos = frame.pos; - switch (v.getKind()) { - case LOCAL_VARIABLE: - p.type = TargetType.LOCAL_VARIABLE; break; - case FIELD: - p.type = TargetType.FIELD_GENERIC_OR_ARRAY; break; - case PARAMETER: - p.type = TargetType.METHOD_PARAMETER_GENERIC_OR_ARRAY; - p.parameter_index = methodParamIndex(path, frame); - break; - default: throw new AssertionError(); - } - return p; - - case ANNOTATED_TYPE: { - List newPath = path.tail; - return resolveFrame(newPath.head, newPath.tail.head, - newPath, p); - } - - case METHOD_INVOCATION: { - JCMethodInvocation invocation = (JCMethodInvocation)frame; - if (!invocation.typeargs.contains(tree)) - throw new AssertionError("{" + tree + "} is not an argument in the invocation: " + invocation); - p.type = TargetType.METHOD_TYPE_ARGUMENT; - p.pos = invocation.pos; - p.type_index = invocation.typeargs.indexOf(tree); - return p; - } - - case EXTENDS_WILDCARD: - case SUPER_WILDCARD: { - p.type = TargetType.WILDCARD_BOUND; - List newPath = path.tail; - - TypeAnnotationPosition wildcard = - resolveFrame(newPath.head, newPath.tail.head, newPath, - new TypeAnnotationPosition()); - if (!wildcard.location.isEmpty()) - wildcard.type = wildcard.type.getGenericComplement(); - p.wildcard_position = wildcard; - p.pos = frame.pos; - return p; - } - } - return p; - } - - @Override - public void visitApply(JCMethodInvocation tree) { - scan(tree.meth); - scan(tree.typeargs); - scan(tree.args); - } - - private void setTypeAnnotationPos(List annotations, TypeAnnotationPosition position) { - for (JCTypeAnnotation anno : annotations) { - anno.annotation_position = position; - anno.attribute_field.position = position; - } - } - - @Override - public void visitNewArray(JCNewArray tree) { - findPosition(tree, tree, tree.annotations); - int dimAnnosCount = tree.dimAnnotations.size(); - - // handle annotations associated with dimentions - for (int i = 0; i < dimAnnosCount; ++i) { - TypeAnnotationPosition p = new TypeAnnotationPosition(); - p.type = TargetType.NEW_GENERIC_OR_ARRAY; - p.pos = tree.pos; - p.location = p.location.append(i); - setTypeAnnotationPos(tree.dimAnnotations.get(i), p); - } - - // handle "free" annotations - int i = dimAnnosCount == 0 ? 0 : dimAnnosCount - 1; - JCExpression elemType = tree.elemtype; - while (elemType != null) { - if (elemType.getTag() == JCTree.ANNOTATED_TYPE) { - JCAnnotatedType at = (JCAnnotatedType)elemType; - TypeAnnotationPosition p = new TypeAnnotationPosition(); - p.type = TargetType.NEW_GENERIC_OR_ARRAY; - p.pos = tree.pos; - p.location = p.location.append(i); - setTypeAnnotationPos(at.annotations, p); - elemType = at.underlyingType; - } else if (elemType.getTag() == JCTree.TYPEARRAY) { - ++i; - elemType = ((JCArrayTypeTree)elemType).elemtype; - } else - break; - } - - // find annotations locations of initializer elements - scan(tree.elems); - } - - @Override - public void visitAnnotatedType(JCAnnotatedType tree) { - findPosition(tree, peek2(), tree.annotations); - super.visitAnnotatedType(tree); - } - - @Override - public void visitMethodDef(JCMethodDecl tree) { - TypeAnnotationPosition p = new TypeAnnotationPosition(); - p.type = TargetType.METHOD_RECEIVER; - setTypeAnnotationPos(tree.receiverAnnotations, p); - super.visitMethodDef(tree); - } - @Override - public void visitTypeParameter(JCTypeParameter tree) { - findPosition(tree, peek2(), tree.annotations); - super.visitTypeParameter(tree); - } - - void findPosition(JCTree tree, JCTree frame, List annotations) { - if (!annotations.isEmpty()) { - TypeAnnotationPosition p = - resolveFrame(tree, frame, frames.toList(), - new TypeAnnotationPosition()); - if (!p.location.isEmpty()) - p.type = p.type.getGenericComplement(); - setTypeAnnotationPos(annotations, p); - if (debugJSR308) { - System.out.println("trans: " + tree); - System.out.println(" target: " + p); - } - } - } - - private int methodParamIndex(List path, JCTree param) { - List curr = path; - if (curr.head != param) - curr = path.tail; - JCMethodDecl method = (JCMethodDecl)curr.tail.head; - return method.params.indexOf(param); - } - } - - private class TypeAnnotationLift extends TreeScanner { - List recordedTypeAnnotations = List.nil(); - - boolean isInner = false; - @Override - public void visitClassDef(JCClassDecl tree) { - if (isInner) { - // tree is an inner class tree. stop now. - // TransTypes.visitClassDef makes an invocation for each class - // seperately. - return; - } - isInner = true; - List prevTAs = recordedTypeAnnotations; - recordedTypeAnnotations = List.nil(); - try { - super.visitClassDef(tree); - } finally { - tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); - recordedTypeAnnotations = prevTAs; - } - } - - @Override - public void visitMethodDef(JCMethodDecl tree) { - List prevTAs = recordedTypeAnnotations; - recordedTypeAnnotations = List.nil(); - try { - super.visitMethodDef(tree); - } finally { - tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); - recordedTypeAnnotations = prevTAs; - } - } - - @Override - public void visitVarDef(JCVariableDecl tree) { - List prevTAs = recordedTypeAnnotations; - recordedTypeAnnotations = List.nil(); - ElementKind kind = tree.sym.getKind(); - if (kind == ElementKind.LOCAL_VARIABLE && tree.mods.annotations.nonEmpty()) { - // need to lift the annotations - TypeAnnotationPosition position = new TypeAnnotationPosition(); - position.pos = tree.pos; - position.type = TargetType.LOCAL_VARIABLE; - for (Attribute.Compound attribute : tree.sym.attributes_field) { - Attribute.TypeCompound tc = - new Attribute.TypeCompound(attribute.type, attribute.values, position); - recordedTypeAnnotations = recordedTypeAnnotations.append(tc); - } - } - try { - super.visitVarDef(tree); - } finally { - if (kind.isField() || kind == ElementKind.LOCAL_VARIABLE) - tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations); - recordedTypeAnnotations = kind.isField() ? prevTAs : prevTAs.appendList(recordedTypeAnnotations); - } - } - - @Override - public void visitApply(JCMethodInvocation tree) { - scan(tree.meth); - scan(tree.typeargs); - scan(tree.args); - } - - public void visitAnnotation(JCAnnotation tree) { - if (tree instanceof JCTypeAnnotation) - recordedTypeAnnotations = recordedTypeAnnotations.append(((JCTypeAnnotation)tree).attribute_field); - super.visitAnnotation(tree); - } - } - } From 90bf9a073fee52350bb2ea15f31395eceb4540ff Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov Date: Wed, 20 Jan 2010 01:33:49 +0300 Subject: [PATCH 013/107] 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 187a9d305c3f662c95aca87d65e77a84ad68a558 Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Wed, 20 Jan 2010 16:12:26 -0800 Subject: [PATCH 014/107] 6918127: improve handling of TypeAnnotationPosition fields Co-authored-by: Michael Ernst Reviewed-by: jjg, darcy --- .../com/sun/tools/classfile/ExtendedAnnotation.java | 12 ++++++------ .../sun/tools/javac/code/TypeAnnotationPosition.java | 12 ++++++------ .../share/classes/com/sun/tools/javac/jvm/Code.java | 6 +++--- .../share/classes/com/sun/tools/javac/jvm/Gen.java | 6 +++--- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java b/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java index bb7b017dfc2..756870e664f 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java @@ -264,18 +264,18 @@ public class ExtendedAnnotation { public int offset = -1; // For locals. - public int[] lvarOffset = new int[] { -1 }; - public int[] lvarLength = new int[] { -1 }; - public int[] lvarIndex = new int[] { -1 }; + public int[] lvarOffset = null; + public int[] lvarLength = null; + public int[] lvarIndex = null; // For type parameter bound - public int bound_index = -1; + public int bound_index = Integer.MIN_VALUE; // For type parameter and method parameter - public int parameter_index = -1; + public int parameter_index = Integer.MIN_VALUE; // For class extends, implements, and throws classes - public int type_index = -2; + public int type_index = Integer.MIN_VALUE; // For wildcards public Position wildcard_position = null; diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java index 988f6e028ad..70bb61e25ee 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java @@ -49,18 +49,18 @@ public class TypeAnnotationPosition { public int offset = -1; // For locals. arrays same length - public int[] lvarOffset = new int[] { -1 }; - public int[] lvarLength = new int[] { -1 }; - public int[] lvarIndex = new int[] { -1 }; + public int[] lvarOffset = null; + public int[] lvarLength = null; + public int[] lvarIndex = null; // For type parameter bound - public int bound_index = -1; + public int bound_index = Integer.MIN_VALUE; // For type parameter and method parameter - public int parameter_index = -1; + public int parameter_index = Integer.MIN_VALUE; // For class extends, implements, and throws classes - public int type_index = -2; + public int type_index = Integer.MIN_VALUE; // For wildcards public TypeAnnotationPosition wildcard_position = null; diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java index c0a8a3cf421..cc4bafe8b67 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java @@ -1926,9 +1926,9 @@ public class Code { for (Attribute.TypeCompound ta : lv.sym.typeAnnotations) { TypeAnnotationPosition p = ta.position; while (p != null) { - p.lvarOffset[0] = (int)lv.start_pc; - p.lvarLength[0] = (int)lv.length; - p.lvarIndex[0] = (int)lv.reg; + p.lvarOffset = new int[] { (int)lv.start_pc }; + p.lvarLength = new int[] { (int)lv.length }; + p.lvarIndex = new int[] { (int)lv.reg }; p.isValidOffset = true; p = p.wildcard_position; } diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java index d30d75279d6..be75ef5c8fe 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java @@ -1714,7 +1714,7 @@ public class Gen extends JCTree.Visitor { for (Attribute.TypeCompound ta : meth.typeAnnotations) { if (ta.position.pos == treePos) { ta.position.offset = code.cp; - ta.position.lvarOffset[0] = code.cp; + ta.position.lvarOffset = new int[] { code.cp }; ta.position.isValidOffset = true; } } @@ -1726,7 +1726,7 @@ public class Gen extends JCTree.Visitor { for (Attribute.TypeCompound ta : meth.owner.typeAnnotations) { if (ta.position.pos == treePos) { ta.position.offset = code.cp; - ta.position.lvarOffset[0] = code.cp; + ta.position.lvarOffset = new int[] { code.cp }; ta.position.isValidOffset = true; } } @@ -1738,7 +1738,7 @@ public class Gen extends JCTree.Visitor { for (Attribute.TypeCompound ta : s.typeAnnotations) { if (ta.position.pos == treePos) { ta.position.offset = code.cp; - ta.position.lvarOffset[0] = code.cp; + ta.position.lvarOffset = new int[] { code.cp }; ta.position.isValidOffset = true; } } From bac125984cb7528cfa6121d8055c0b6d57eaa8ad Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Wed, 20 Jan 2010 22:10:33 -0800 Subject: [PATCH 015/107] 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/107] 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/107] 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/107] 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 35324b7e7da049534766464e5e1b7766dbb16bd0 Mon Sep 17 00:00:00 2001 From: Andrey Petrusenko Date: Thu, 21 Jan 2010 18:51:10 -0800 Subject: [PATCH 019/107] 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 020/107] 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 e19600ac5d879071cde32862542bc461f331fd97 Mon Sep 17 00:00:00 2001 From: Antonios Printezis Date: Mon, 25 Jan 2010 18:03:29 -0500 Subject: [PATCH 021/107] 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 022/107] 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 f557cc8bd025fc6d05ee6725381e9da5e1c31d40 Mon Sep 17 00:00:00 2001 From: Eric Caspole Date: Tue, 26 Jan 2010 08:53:24 -0800 Subject: [PATCH 023/107] 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 1433e8c8174345bf8e7fd29f611c048ee4f44d58 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Tue, 26 Jan 2010 11:15:49 -0800 Subject: [PATCH 024/107] 6919944: incorrect position given for duplicate annotation value error Reviewed-by: darcy --- langtools/src/share/classes/com/sun/tools/javac/comp/Check.java | 2 +- .../failures/common/arrayclass/DuplicateAnnotationValue.java | 2 +- .../failures/common/arrayclass/DuplicateAnnotationValue.out | 2 +- .../failures/common/arrays/DuplicateAnnotationValue.java | 2 +- .../failures/common/arrays/DuplicateAnnotationValue.out | 2 +- .../common/innertypeparams/DuplicateAnnotationValue.java | 2 +- .../common/innertypeparams/DuplicateAnnotationValue.out | 2 +- .../failures/common/newarray/DuplicateAnnotationValue.java | 2 +- .../failures/common/newarray/DuplicateAnnotationValue.out | 2 +- .../failures/common/parambounds/DuplicateAnnotationValue.java | 2 +- .../failures/common/parambounds/DuplicateAnnotationValue.out | 2 +- .../failures/common/receiver/DuplicateAnnotationValue.java | 2 +- .../failures/common/receiver/DuplicateAnnotationValue.out | 2 +- .../failures/common/typeArgs/DuplicateAnnotationValue.java | 2 +- .../failures/common/typeArgs/DuplicateAnnotationValue.out | 2 +- .../failures/common/typeparams/DuplicateAnnotationValue.java | 2 +- .../failures/common/typeparams/DuplicateAnnotationValue.out | 2 +- .../failures/common/wildcards/DuplicateAnnotationValue.java | 2 +- .../failures/common/wildcards/DuplicateAnnotationValue.out | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java index 09cddea4e94..fcef6840316 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java @@ -2047,7 +2047,7 @@ public class Check { Symbol m = TreeInfo.symbol(assign.lhs); if (m == null || m.type.isErroneous()) continue; if (!members.remove(m)) - log.error(arg.pos(), "duplicate.annotation.member.value", + log.error(assign.lhs.pos(), "duplicate.annotation.member.value", m.name, a.type); if (assign.rhs.getTag() == ANNOTATION) validateAnnotation((JCAnnotation)assign.rhs); diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.java index 6f799a3bed9..129bf3f8f0e 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.out index 246db0dda0c..16493d988cc 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/arrayclass/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:10:45: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:10:37: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.java index 03fa35acf4c..9f67df1c3fe 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.out index dc869843a9f..240239e566b 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/arrays/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:10:34: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:10:26: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.java index b6986ec15d3..62ef4189d4b 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values for type parameter * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.out index 79609fbb2a0..d717c98c486 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/innertypeparams/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:10:39: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:10:31: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.java index bd43302b4fe..3574e79d8a1 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.out index e82b535e398..1852f279ef1 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/newarray/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:10:51: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:10:43: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.java index 90ca759bd87..83a064c416a 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values for type parameter * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.out index 659fff910f5..01a2f1603e7 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/parambounds/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:8:64: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:8:56: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.java index 6be2e07806a..27844e6eed0 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values in receiver * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.out index 94d59e5110f..c1df363dd2e 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/receiver/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:9:37: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:9:29: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.java index a923ec6f86e..e09ee4e2f00 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values for type parameter * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.out index a5d0e034e87..e2ecdfb4829 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/typeArgs/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:9:50: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:9:42: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.java index 2a9ebdab26f..2f40f713a7c 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values for type parameter * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.out index b9f0dc72144..a9846317257 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/typeparams/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:8:54: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:8:46: compiler.err.duplicate.annotation.member.value: value, A 1 error diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.java b/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.java index 387976bbc74..44321123cb5 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.java +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.java @@ -1,6 +1,6 @@ /* * @test /nodynamiccopyright/ - * @bug 6843077 + * @bug 6843077 6919944 * @summary check for duplicate annotation values for type parameter * @author Mahmood Ali * @compile/fail/ref=DuplicateAnnotationValue.out -XDrawDiagnostics -source 1.7 DuplicateAnnotationValue.java diff --git a/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.out b/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.out index a5d0e034e87..e2ecdfb4829 100644 --- a/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.out +++ b/langtools/test/tools/javac/typeAnnotations/failures/common/wildcards/DuplicateAnnotationValue.out @@ -1,2 +1,2 @@ -DuplicateAnnotationValue.java:9:50: compiler.err.duplicate.annotation.member.value: value, A +DuplicateAnnotationValue.java:9:42: compiler.err.duplicate.annotation.member.value: value, A 1 error From 7235cabd9f1ab64085cbd95b8393084750841c39 Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Tue, 26 Jan 2010 11:23:54 -0800 Subject: [PATCH 025/107] 6917130: should test that annotations that have been optimized away are not emitted to classfile Co-authored-by: Michael Ernst Reviewed-by: jjg, darcy --- .../typeAnnotations/classfile/DeadCode.java | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 langtools/test/tools/javac/typeAnnotations/classfile/DeadCode.java diff --git a/langtools/test/tools/javac/typeAnnotations/classfile/DeadCode.java b/langtools/test/tools/javac/typeAnnotations/classfile/DeadCode.java new file mode 100644 index 00000000000..ca334e81014 --- /dev/null +++ b/langtools/test/tools/javac/typeAnnotations/classfile/DeadCode.java @@ -0,0 +1,181 @@ +/* + * Copyright 2009-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.net.URL; +import java.util.List; + +import com.sun.tools.classfile.*; + +/* + * @test + * @bug 6917130 + * @summary test that optimized away annotations are not emited to classfile + */ + +public class DeadCode { + public static void main(String[] args) throws Exception { + new DeadCode().run(); + } + + public void run() throws Exception { + ClassFile cf = getClassFile("DeadCode$Test.class"); + test(cf); + for (Field f : cf.fields) { + test(cf, f); + } + for (Method m: cf.methods) { + test(cf, m); + } + + countAnnotations(); + + if (errors > 0) + throw new Exception(errors + " errors found"); + System.out.println("PASSED"); + } + + ClassFile getClassFile(String name) throws IOException, ConstantPoolException { + URL url = getClass().getResource(name); + InputStream in = url.openStream(); + try { + return ClassFile.read(in); + } finally { + in.close(); + } + } + + /************ Helper annotations counting methods ******************/ + void test(ClassFile cf) { + test(cf, Attribute.RuntimeVisibleTypeAnnotations, true); + test(cf, Attribute.RuntimeInvisibleTypeAnnotations, false); + } + + void test(ClassFile cf, Method m) { + test(cf, m, Attribute.RuntimeVisibleTypeAnnotations, true); + test(cf, m, Attribute.RuntimeInvisibleTypeAnnotations, false); + } + + void test(ClassFile cf, Field m) { + test(cf, m, Attribute.RuntimeVisibleTypeAnnotations, true); + test(cf, m, Attribute.RuntimeInvisibleTypeAnnotations, false); + } + + // test the result of Attributes.getIndex according to expectations + // encoded in the method's name + void test(ClassFile cf, String name, boolean visible) { + int index = cf.attributes.getIndex(cf.constant_pool, name); + if (index != -1) { + Attribute attr = cf.attributes.get(index); + assert attr instanceof RuntimeTypeAnnotations_attribute; + RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr; + all += tAttr.annotations.length; + if (visible) + visibles += tAttr.annotations.length; + else + invisibles += tAttr.annotations.length; + } + } + + // test the result of Attributes.getIndex according to expectations + // encoded in the method's name + void test(ClassFile cf, Method m, String name, boolean visible) { + int index = m.attributes.getIndex(cf.constant_pool, name); + if (index != -1) { + Attribute attr = m.attributes.get(index); + assert attr instanceof RuntimeTypeAnnotations_attribute; + RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr; + all += tAttr.annotations.length; + if (visible) + visibles += tAttr.annotations.length; + else + invisibles += tAttr.annotations.length; + } + } + + // test the result of Attributes.getIndex according to expectations + // encoded in the method's name + void test(ClassFile cf, Field m, String name, boolean visible) { + int index = m.attributes.getIndex(cf.constant_pool, name); + if (index != -1) { + Attribute attr = m.attributes.get(index); + assert attr instanceof RuntimeTypeAnnotations_attribute; + RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr; + all += tAttr.annotations.length; + if (visible) + visibles += tAttr.annotations.length; + else + invisibles += tAttr.annotations.length; + } + } + + void countAnnotations() { + int expected_all = expected_visibles + expected_invisibles; + + if (expected_all != all) { + errors++; + System.err.println("expected " + expected_all + + " annotations but found " + all); + } + + if (expected_visibles != visibles) { + errors++; + System.err.println("expected " + expected_visibles + + " visibles annotations but found " + visibles); + } + + if (expected_invisibles != invisibles) { + errors++; + System.err.println("expected " + expected_invisibles + + " invisibles annotations but found " + invisibles); + } + + } + + int errors; + int all; + int visibles; + int invisibles; + + /*********************** Test class *************************/ + static int expected_invisibles = 1; + static int expected_visibles = 0; + static class Test { + @interface A {} + + void test() { + List o = null; + o.toString(); + + @A String m; + if (false) { + @A String a; + @A String b = "m"; + b.toString(); + List c = null; + c.toString(); + } + } + } + +} From 342a620a7fcb8e35ea0d0f2bd2adfd943567dfe7 Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Tue, 26 Jan 2010 16:52:29 -0800 Subject: [PATCH 026/107] 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 3b48821acea19bece3ad134d9a10aed4978e7b8a Mon Sep 17 00:00:00 2001 From: Peter Zhelezniakov Date: Thu, 28 Jan 2010 17:06:54 +0300 Subject: [PATCH 027/107] 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 028/107] 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 029/107] 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 030/107] 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 031/107] 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 032/107] 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 033/107] 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 034/107] 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 035/107] 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 036/107] 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 037/107] 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 038/107] 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 039/107] 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 040/107] 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 041/107] 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 042/107] 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 043/107] 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 305d4bc5fc40c670c0de6879beeed691ae394f54 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Fri, 29 Jan 2010 16:06:51 -0800 Subject: [PATCH 044/107] 6919889: assorted position errors in compiler syntax trees Reviewed-by: darcy --- .../com/sun/tools/javac/code/Flags.java | 1 + .../sun/tools/javac/parser/JavacParser.java | 93 ++- .../com/sun/tools/javac/tree/TreeInfo.java | 16 +- .../com/sun/tools/javac/tree/TreeMaker.java | 2 +- langtools/test/tools/javac/T6654037.java | 76 ++ .../javac/generics/diamond/neg/Neg01.out | 14 +- .../javac/generics/diamond/neg/Neg02.out | 32 +- .../javac/generics/diamond/neg/Neg03.out | 48 +- .../javac/generics/diamond/neg/Neg04.out | 16 +- .../tools/javac/treepostests/TreePosTest.java | 752 ++++++++++++++++++ 10 files changed, 957 insertions(+), 93 deletions(-) create mode 100644 langtools/test/tools/javac/T6654037.java create mode 100644 langtools/test/tools/javac/treepostests/TreePosTest.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java b/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java index 40165699212..88f0bde43da 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java @@ -113,6 +113,7 @@ public class Flags { public static final int ENUM = 1<<14; public static final int StandardFlags = 0x0fff; + public static final int ModifierFlags = StandardFlags & ~INTERFACE; // Because the following access flags are overloaded with other // bit positions, we translate them when reading and writing class diff --git a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java index bf3aeb6ef6d..2a5468cae66 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java +++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java @@ -761,23 +761,28 @@ public class JavacParser implements Parser { JCExpression[] odStack = newOdStack(); List savedOp = opStackSupply.elems; Token[] opStack = newOpStack(); + List savedPos = posStackSupply.elems; + int[] posStack = newPosStack(); // optimization, was odStack = new Tree[...]; opStack = new Tree[...]; int top = 0; odStack[0] = t; int startPos = S.pos(); Token topOp = ERROR; + int topOpPos = Position.NOPOS; while (prec(S.token()) >= minprec) { + posStack[top] = topOpPos; opStack[top] = topOp; top++; topOp = S.token(); - int pos = S.pos(); + topOpPos = S.pos(); S.nextToken(); - odStack[top] = topOp == INSTANCEOF ? parseType() : term3(); + odStack[top] = (topOp == INSTANCEOF) ? parseType() : term3(); while (top > 0 && prec(topOp) >= prec(S.token())) { - odStack[top-1] = makeOp(pos, topOp, odStack[top-1], + odStack[top-1] = makeOp(topOpPos, topOp, odStack[top-1], odStack[top]); top--; topOp = opStack[top]; + topOpPos = posStack[top]; } } assert top == 0; @@ -792,6 +797,7 @@ public class JavacParser implements Parser { odStackSupply.elems = savedOd; // optimization opStackSupply.elems = savedOp; // optimization + posStackSupply.elems = savedPos; // optimization return t; } //where @@ -845,6 +851,7 @@ public class JavacParser implements Parser { */ ListBuffer odStackSupply = new ListBuffer(); ListBuffer opStackSupply = new ListBuffer(); + ListBuffer posStackSupply = new ListBuffer(); private JCExpression[] newOdStack() { if (odStackSupply.elems == odStackSupply.last) @@ -862,6 +869,14 @@ public class JavacParser implements Parser { return opStack; } + private int[] newPosStack() { + if (posStackSupply.elems == posStackSupply.last) + posStackSupply.append(new int[infixPrecedenceLevels + 1]); + int[] posStack = posStackSupply.elems.head; + posStackSupply.elems = posStackSupply.elems.tail; + return posStack; + } + /** Expression3 = PrefixOp Expression3 * | "(" Expr | TypeNoParams ")" Expression3 * | Primary {Selector} {PostfixOp} @@ -939,7 +954,7 @@ public class JavacParser implements Parser { args.append(typeArgument()); } accept(GT); - t = F.at(pos1).TypeApply(t, args.toList()); + t = toP(F.at(pos1).TypeApply(t, args.toList())); checkGenerics(); while (S.token() == DOT) { S.nextToken(); @@ -950,7 +965,8 @@ public class JavacParser implements Parser { t = bracketsOpt(toP(t)); } else if ((mode & EXPR) != 0) { mode = EXPR; - t = F.at(pos1).Binary(op, t, term2Rest(t1, TreeInfo.shiftPrec)); + JCExpression e = term2Rest(t1, TreeInfo.shiftPrec); + t = F.at(pos1).Binary(op, t, e); t = termRest(term1Rest(term2Rest(t, TreeInfo.orPrec))); } else { accept(GT); @@ -998,7 +1014,8 @@ public class JavacParser implements Parser { case SUPER: if ((mode & EXPR) != 0) { mode = EXPR; - t = to(superSuffix(typeArgs, F.at(pos).Ident(names._super))); + t = to(F.at(pos).Ident(names._super)); + t = superSuffix(typeArgs, t); typeArgs = null; } else return illegal(); break; @@ -1380,13 +1397,15 @@ public class JavacParser implements Parser { S.nextToken(); JCExpression result; if (S.token() == EXTENDS) { - TypeBoundKind t = to(F.at(S.pos()).TypeBoundKind(BoundKind.EXTENDS)); + TypeBoundKind t = to(F.at(pos).TypeBoundKind(BoundKind.EXTENDS)); S.nextToken(); - result = F.at(pos).Wildcard(t, parseType()); + JCExpression bound = parseType(); + result = F.at(pos).Wildcard(t, bound); } else if (S.token() == SUPER) { - TypeBoundKind t = to(F.at(S.pos()).TypeBoundKind(BoundKind.SUPER)); + TypeBoundKind t = to(F.at(pos).TypeBoundKind(BoundKind.SUPER)); S.nextToken(); - result = F.at(pos).Wildcard(t, parseType()); + JCExpression bound = parseType(); + result = F.at(pos).Wildcard(t, bound); } else if (S.token() == IDENTIFIER) { //error recovery reportSyntaxError(S.prevEndPos(), "expected3", @@ -1396,7 +1415,7 @@ public class JavacParser implements Parser { JCIdent id = toP(F.at(S.pos()).Ident(ident())); result = F.at(pos).Erroneous(List.of(wc, id)); } else { - TypeBoundKind t = F.at(Position.NOPOS).TypeBoundKind(BoundKind.UNBOUND); + TypeBoundKind t = toP(F.at(pos).TypeBoundKind(BoundKind.UNBOUND)); result = toP(F.at(pos).Wildcard(t, null)); } if (!annotations.isEmpty()) @@ -2117,14 +2136,21 @@ public class JavacParser implements Parser { return modifiersOpt(null); } JCModifiers modifiersOpt(JCModifiers partial) { - long flags = (partial == null) ? 0 : partial.flags; + long flags; + ListBuffer annotations = new ListBuffer(); + int pos; + if (partial == null) { + flags = 0; + pos = S.pos(); + } else { + flags = partial.flags; + annotations.appendList(partial.annotations); + pos = partial.pos; + } if (S.deprecatedFlag()) { flags |= Flags.DEPRECATED; S.resetDeprecatedFlag(); } - ListBuffer annotations = new ListBuffer(); - if (partial != null) annotations.appendList(partial.annotations); - int pos = S.pos(); int lastPos = Position.NOPOS; loop: while (true) { @@ -2150,12 +2176,12 @@ public class JavacParser implements Parser { if (flag == Flags.ANNOTATION) { checkAnnotations(); if (S.token() != INTERFACE) { - JCAnnotation ann = annotation(lastPos, AnnotationKind.DEFAULT_ANNO); - // if first modifier is an annotation, set pos to annotation's. - if (flags == 0 && annotations.isEmpty()) - pos = ann.pos; - annotations.append(ann); - lastPos = ann.pos; + JCAnnotation ann = annotation(lastPos, AnnotationKind.DEFAULT_ANNO); + // if first modifier is an annotation, set pos to annotation's. + if (flags == 0 && annotations.isEmpty()) + pos = ann.pos; + annotations.append(ann); + lastPos = ann.pos; flag = 0; } } @@ -2169,7 +2195,7 @@ public class JavacParser implements Parser { /* A modifiers tree with no modifier tokens or annotations * has no text position. */ - if (flags == 0 && annotations.isEmpty()) + if ((flags & Flags.ModifierFlags) == 0 && annotations.isEmpty()) pos = Position.NOPOS; JCModifiers mods = F.at(pos).Modifiers(flags, annotations.toList()); @@ -2226,7 +2252,8 @@ public class JavacParser implements Parser { if (t1.getTag() == JCTree.IDENT && S.token() == EQ) { int pos = S.pos(); accept(EQ); - return toP(F.at(pos).Assign(t1, annotationValue())); + JCExpression v = annotationValue(); + return toP(F.at(pos).Assign(t1, v)); } else { return t1; } @@ -2543,10 +2570,9 @@ public class JavacParser implements Parser { } List defs = enumBody(name); - JCModifiers newMods = - F.at(mods.pos).Modifiers(mods.flags|Flags.ENUM, mods.annotations); + mods.flags |= Flags.ENUM; JCClassDecl result = toP(F.at(pos). - ClassDef(newMods, name, List.nil(), + ClassDef(mods, name, List.nil(), null, implementing, defs)); attach(result, dc); return result; @@ -2695,16 +2721,8 @@ public class JavacParser implements Parser { } else { pos = S.pos(); List typarams = typeParametersOpt(); - // Hack alert: if there are type arguments but no Modifiers, the start - // position will be lost unless we set the Modifiers position. There - // should be an AST node for type parameters (BugId 5005090). - if (typarams.length() > 0 && mods.pos == Position.NOPOS) { - mods.pos = pos; - } - List annosAfterParams = annotationsOpt(AnnotationKind.DEFAULT_ANNO); - Token token = S.token(); Name name = S.name(); pos = S.pos(); JCExpression type; @@ -2715,7 +2733,11 @@ public class JavacParser implements Parser { type = to(F.at(pos).TypeIdent(TypeTags.VOID)); S.nextToken(); } else { - mods.annotations = mods.annotations.appendList(annosAfterParams); + if (annosAfterParams.nonEmpty()) { + mods.annotations = mods.annotations.appendList(annosAfterParams); + if (mods.pos == Position.NOPOS) + mods.pos = mods.annotations.head.pos; + } // method returns types are un-annotated types type = unannotatedType(); } @@ -2813,6 +2835,7 @@ public class JavacParser implements Parser { } } } + JCMethodDecl result = toP(F.at(pos).MethodDef(mods, name, type, typarams, params, receiverAnnotations, thrown, diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java index de1afecbbf4..12f25312e6e 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java @@ -307,8 +307,18 @@ public class TreeInfo { case(JCTree.POSTINC): case(JCTree.POSTDEC): return getStartPos(((JCUnary) tree).arg); - case(JCTree.ANNOTATED_TYPE): - return getStartPos(((JCAnnotatedType) tree).underlyingType); + case(JCTree.ANNOTATED_TYPE): { + JCAnnotatedType node = (JCAnnotatedType) tree; + if (node.annotations.nonEmpty()) + return getStartPos(node.annotations.head); + return getStartPos(node.underlyingType); + } + case(JCTree.NEWCLASS): { + JCNewClass node = (JCNewClass)tree; + if (node.encl != null) + return getStartPos(node.encl); + break; + } case(JCTree.VARDEF): { JCVariableDecl node = (JCVariableDecl)tree; if (node.mods.pos != Position.NOPOS) { @@ -406,6 +416,8 @@ public class TreeInfo { return getEndPos(((JCUnary) tree).arg, endPositions); case(JCTree.WHILELOOP): return getEndPos(((JCWhileLoop) tree).body, endPositions); + case(JCTree.ANNOTATED_TYPE): + return getEndPos(((JCAnnotatedType) tree).underlyingType, endPositions); case(JCTree.ERRONEOUS): { JCErroneous node = (JCErroneous)tree; if (node.errs != null && node.errs.nonEmpty()) diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java index b48841d9e62..84229f60fbb 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java @@ -480,7 +480,7 @@ public class TreeMaker implements JCTree.Factory { public JCModifiers Modifiers(long flags, List annotations) { JCModifiers tree = new JCModifiers(flags, annotations); - boolean noFlags = (flags & Flags.StandardFlags) == 0; + boolean noFlags = (flags & Flags.ModifierFlags) == 0; tree.pos = (noFlags && annotations.isEmpty()) ? Position.NOPOS : pos; return tree; } diff --git a/langtools/test/tools/javac/T6654037.java b/langtools/test/tools/javac/T6654037.java new file mode 100644 index 00000000000..3c4dabeb7fc --- /dev/null +++ b/langtools/test/tools/javac/T6654037.java @@ -0,0 +1,76 @@ +/* + * Copyright 2008-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 6654037 + * @summary JCTree.pos may be incorrect for BinaryTrees + */ + +import com.sun.source.tree.BinaryTree; +import com.sun.source.tree.ClassTree; +import com.sun.source.tree.CompilationUnitTree; +import com.sun.source.tree.MethodTree; +import com.sun.source.tree.VariableTree; +import com.sun.tools.javac.api.JavacTaskImpl; +import com.sun.tools.javac.tree.JCTree; +import java.net.URI; +import java.util.Arrays; +import javax.tools.JavaCompiler; +import javax.tools.JavaFileObject; +import javax.tools.SimpleJavaFileObject; +import javax.tools.ToolProvider; + +public class T6654037 { + + public static void main(String[] args) throws Exception { + final String bootPath = System.getProperty("sun.boot.class.path"); //NOI18N + final JavaCompiler tool = ToolProvider.getSystemJavaCompiler(); + assert tool != null; + + String code = "package test; public class Test {private void test() {Object o = null; boolean b = o != null && o instanceof String;} private Test() {}}"; + + JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, null, null, Arrays.asList("-bootclasspath", bootPath, "-Xjcov"), null, Arrays.asList(new MyFileObject(code))); + CompilationUnitTree cut = ct.parse().iterator().next(); + ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0); + MethodTree method = (MethodTree) clazz.getMembers().get(0); + VariableTree condSt = (VariableTree) method.getBody().getStatements().get(1); + BinaryTree cond = (BinaryTree) condSt.getInitializer(); + JCTree condJC = (JCTree) cond; + + if (condJC.pos != 93) + throw new IllegalStateException("Unexpected position=" + condJC.pos); + } + + static class MyFileObject extends SimpleJavaFileObject { + private String text; + public MyFileObject(String text) { + super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE); + this.text = text; + } + @Override + public CharSequence getCharContent(boolean ignoreEncodingErrors) { + return text; + } + } +} diff --git a/langtools/test/tools/javac/generics/diamond/neg/Neg01.out b/langtools/test/tools/javac/generics/diamond/neg/Neg01.out index f3beaa20181..83078458123 100644 --- a/langtools/test/tools/javac/generics/diamond/neg/Neg01.out +++ b/langtools/test/tools/javac/generics/diamond/neg/Neg01.out @@ -1,31 +1,31 @@ Neg01.java:18:15: compiler.err.not.within.bounds: java.lang.String Neg01.java:18:37: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg01, Neg01) -Neg01.java:19:25: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:19:15: compiler.err.not.within.bounds: ? extends java.lang.String Neg01.java:19:47: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg01.java:20:23: compiler.err.cant.resolve.location.args: kindname.constructor, Neg01, , java.lang.String, kindname.class, Neg01 -Neg01.java:21:23: compiler.err.not.within.bounds: ? super java.lang.String +Neg01.java:21:15: compiler.err.not.within.bounds: ? super java.lang.String Neg01.java:21:45: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg01, Neg01) Neg01.java:23:15: compiler.err.not.within.bounds: java.lang.String Neg01.java:23:37: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg01, Neg01) -Neg01.java:24:25: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:24:15: compiler.err.not.within.bounds: ? extends java.lang.String Neg01.java:24:47: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg01.java:25:23: compiler.err.cant.resolve.location.args: kindname.constructor, Neg01, , java.lang.String, kindname.class, Neg01 Neg01.java:25:38: compiler.err.cant.resolve.location.args: kindname.constructor, Neg01, , , kindname.class, Neg01 -Neg01.java:26:23: compiler.err.not.within.bounds: ? super java.lang.String +Neg01.java:26:15: compiler.err.not.within.bounds: ? super java.lang.String Neg01.java:26:45: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg01, Neg01) Neg01.java:28:15: compiler.err.not.within.bounds: java.lang.String Neg01.java:28:37: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg01, Neg01) -Neg01.java:29:25: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:29:15: compiler.err.not.within.bounds: ? extends java.lang.String Neg01.java:29:48: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg01.java:30:24: compiler.err.cant.resolve.location.args: kindname.constructor, Neg01, , java.lang.String,java.lang.String, kindname.class, Neg01 Neg01.java:31:9: compiler.err.cant.resolve.location: kindname.class, Foo, , , kindname.class, Neg01 Neg01.java:31:35: compiler.err.cant.resolve.location.args: kindname.constructor, Neg01, , java.lang.String,java.lang.String, kindname.class, Neg01 Neg01.java:33:15: compiler.err.not.within.bounds: java.lang.String Neg01.java:33:38: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg01, Neg01) -Neg01.java:34:25: compiler.err.not.within.bounds: ? extends java.lang.String +Neg01.java:34:15: compiler.err.not.within.bounds: ? extends java.lang.String Neg01.java:34:48: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg01.java:35:24: compiler.err.cant.resolve.location.args: kindname.constructor, Neg01, , java.lang.String,java.lang.String, kindname.class, Neg01 Neg01.java:35:43: compiler.err.cant.resolve.location.args: kindname.constructor, Neg01, , , kindname.class, Neg01 -Neg01.java:36:23: compiler.err.not.within.bounds: ? super java.lang.String +Neg01.java:36:15: compiler.err.not.within.bounds: ? super java.lang.String Neg01.java:36:46: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg01, Neg01) 30 errors diff --git a/langtools/test/tools/javac/generics/diamond/neg/Neg02.out b/langtools/test/tools/javac/generics/diamond/neg/Neg02.out index 9dc68ad86e0..27d7cb097f0 100644 --- a/langtools/test/tools/javac/generics/diamond/neg/Neg02.out +++ b/langtools/test/tools/javac/generics/diamond/neg/Neg02.out @@ -1,61 +1,61 @@ Neg02.java:19:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:19:33: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:20:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:20:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:20:43: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:21:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg02.Foo -Neg02.java:22:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:22:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:22:41: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) Neg02.java:24:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:24:33: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:25:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:25:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:25:43: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:26:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg02.Foo Neg02.java:26:34: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg02.Foo -Neg02.java:27:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:27:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:27:41: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) Neg02.java:29:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:29:33: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:30:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:30:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:30:44: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:31:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg02.Foo -Neg02.java:32:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:32:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:32:42: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) Neg02.java:34:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:34:34: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:35:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:35:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:35:44: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:36:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg02.Foo Neg02.java:36:39: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg02.Foo -Neg02.java:37:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:37:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:37:42: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) Neg02.java:41:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:41:39: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:42:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:42:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:42:49: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:43:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg02.Foo -Neg02.java:44:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:44:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:44:47: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) Neg02.java:46:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:46:39: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:47:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:47:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:47:49: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:48:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg02.Foo Neg02.java:48:40: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg02.Foo -Neg02.java:49:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:49:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:49:47: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) Neg02.java:51:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:51:39: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:52:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:52:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:52:50: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:53:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg02.Foo -Neg02.java:54:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:54:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:54:48: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) Neg02.java:56:13: compiler.err.not.within.bounds: java.lang.String Neg02.java:56:40: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) -Neg02.java:57:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg02.java:57:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg02.java:57:50: compiler.err.cant.apply.diamond: X, (compiler.misc.no.unique.maximal.instance.exists: X, java.lang.String,java.lang.Number) Neg02.java:58:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg02.Foo Neg02.java:58:45: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg02.Foo -Neg02.java:59:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg02.java:59:13: compiler.err.not.within.bounds: ? super java.lang.String Neg02.java:59:48: compiler.err.cant.apply.diamond: X, (compiler.misc.no.conforming.instance.exists: X, Neg02.Foo, Neg02.Foo) 60 errors diff --git a/langtools/test/tools/javac/generics/diamond/neg/Neg03.out b/langtools/test/tools/javac/generics/diamond/neg/Neg03.out index bf30c712d1f..287df896e0b 100644 --- a/langtools/test/tools/javac/generics/diamond/neg/Neg03.out +++ b/langtools/test/tools/javac/generics/diamond/neg/Neg03.out @@ -1,91 +1,91 @@ Neg03.java:19:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:19:33: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:20:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:20:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:20:43: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:21:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg03.Foo -Neg03.java:22:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:22:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:22:41: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:24:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:24:33: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:25:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:25:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:25:43: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:26:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg03.Foo Neg03.java:26:34: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg03.Foo -Neg03.java:27:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:27:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:27:41: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:29:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:29:33: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:30:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:30:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:30:44: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:31:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg03.Foo -Neg03.java:32:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:32:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:32:42: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:34:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:34:34: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:35:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:35:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:35:44: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:36:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg03.Foo Neg03.java:36:39: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg03.Foo -Neg03.java:37:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:37:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:37:42: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:41:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:41:42: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:42:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:42:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:42:52: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:43:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg03.Foo -Neg03.java:44:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:44:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:44:50: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:46:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:46:42: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:47:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:47:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:47:52: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:48:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg03.Foo Neg03.java:48:43: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg03.Foo -Neg03.java:49:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:49:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:49:50: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:51:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:51:42: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:52:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:52:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:52:53: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:53:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg03.Foo -Neg03.java:54:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:54:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:54:51: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:56:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:56:43: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:57:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:57:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:57:53: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:58:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg03.Foo Neg03.java:58:48: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg03.Foo -Neg03.java:59:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:59:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:59:51: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:63:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:63:28: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:64:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:64:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:64:38: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:65:23: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg03.Foo -Neg03.java:66:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:66:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:66:36: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:68:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:68:28: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:69:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:69:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:69:38: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:70:23: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Neg03.Foo Neg03.java:70:36: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg03.Foo -Neg03.java:71:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:71:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:71:36: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:73:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:73:28: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:74:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:74:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:74:39: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:75:24: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg03.Foo -Neg03.java:76:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:76:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:76:37: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) Neg03.java:78:13: compiler.err.not.within.bounds: java.lang.String Neg03.java:78:29: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) -Neg03.java:79:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg03.java:79:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg03.java:79:39: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg03.java:80:24: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Neg03.Foo Neg03.java:80:41: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Neg03.Foo -Neg03.java:81:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg03.java:81:13: compiler.err.not.within.bounds: ? super java.lang.String Neg03.java:81:37: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Neg03.Foo, Neg03.Foo) 90 errors diff --git a/langtools/test/tools/javac/generics/diamond/neg/Neg04.out b/langtools/test/tools/javac/generics/diamond/neg/Neg04.out index f9a0cbf1c39..f3bf0c79000 100644 --- a/langtools/test/tools/javac/generics/diamond/neg/Neg04.out +++ b/langtools/test/tools/javac/generics/diamond/neg/Neg04.out @@ -1,31 +1,31 @@ Neg04.java:18:13: compiler.err.not.within.bounds: java.lang.String Neg04.java:18:33: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) -Neg04.java:19:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:19:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg04.java:19:43: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg04.java:20:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Foo -Neg04.java:21:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:21:13: compiler.err.not.within.bounds: ? super java.lang.String Neg04.java:21:41: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) Neg04.java:23:13: compiler.err.not.within.bounds: java.lang.String Neg04.java:23:33: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) -Neg04.java:24:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:24:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg04.java:24:43: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg04.java:25:21: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String, kindname.class, Foo Neg04.java:25:34: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Foo -Neg04.java:26:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:26:13: compiler.err.not.within.bounds: ? super java.lang.String Neg04.java:26:41: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) Neg04.java:28:13: compiler.err.not.within.bounds: java.lang.String Neg04.java:28:33: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) -Neg04.java:29:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:29:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg04.java:29:44: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg04.java:30:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Foo -Neg04.java:31:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:31:13: compiler.err.not.within.bounds: ? super java.lang.String Neg04.java:31:42: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) Neg04.java:33:13: compiler.err.not.within.bounds: java.lang.String Neg04.java:33:34: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) -Neg04.java:34:23: compiler.err.not.within.bounds: ? extends java.lang.String +Neg04.java:34:13: compiler.err.not.within.bounds: ? extends java.lang.String Neg04.java:34:44: compiler.err.cant.apply.diamond: V, (compiler.misc.no.unique.maximal.instance.exists: V, java.lang.String,java.lang.Number) Neg04.java:35:22: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , java.lang.String,java.lang.String, kindname.class, Foo Neg04.java:35:39: compiler.err.cant.resolve.location.args: kindname.constructor, Foo, , , kindname.class, Foo -Neg04.java:36:21: compiler.err.not.within.bounds: ? super java.lang.String +Neg04.java:36:13: compiler.err.not.within.bounds: ? super java.lang.String Neg04.java:36:42: compiler.err.cant.apply.diamond: V, (compiler.misc.no.conforming.instance.exists: V, Foo, Foo) 30 errors diff --git a/langtools/test/tools/javac/treepostests/TreePosTest.java b/langtools/test/tools/javac/treepostests/TreePosTest.java new file mode 100644 index 00000000000..d5c71f3009f --- /dev/null +++ b/langtools/test/tools/javac/treepostests/TreePosTest.java @@ -0,0 +1,752 @@ +/* + * 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.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.EventQueue; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.File; +import java.io.IOException; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.SwingUtilities; +import javax.swing.event.CaretEvent; +import javax.swing.event.CaretListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.DefaultHighlighter; +import javax.swing.text.Highlighter; +import javax.tools.Diagnostic; +import javax.tools.DiagnosticListener; +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; + +import com.sun.source.tree.CompilationUnitTree; +import com.sun.source.util.JavacTask; +import com.sun.tools.javac.api.JavacTool; +import com.sun.tools.javac.code.Flags; +import com.sun.tools.javac.tree.JCTree; +import com.sun.tools.javac.tree.JCTree.JCCompilationUnit; +import com.sun.tools.javac.tree.JCTree.JCNewClass; +import com.sun.tools.javac.tree.JCTree.JCVariableDecl; +import com.sun.tools.javac.tree.TreeInfo; +import com.sun.tools.javac.tree.TreeScanner; + +import static com.sun.tools.javac.util.Position.NOPOS; + +/** + * Utility and test program to check validity of tree positions for tree nodes. + * The program can be run standalone, or as a jtreg test. In standalone mode, + * errors can be displayed in a gui viewer. For info on command line args, + * run program with no args. + * + *

+ * jtreg: Note that by using the -r switch in the test description below, this test + * will process all java files in the langtools/test directory, thus implicitly + * covering any new language features that may be tested in this test suite. + */ + +/* + * @test + * @bug 6919889 + * @summary assorted position errors in compiler syntax trees + * @run main TreePosTest -q -r -ef ./tools/javac/typeAnnotations . + */ +public class TreePosTest { + /** + * Main entry point. + * If test.src is set, program runs in jtreg mode, and will throw an Error + * if any errors arise, otherwise System.exit will be used, unless the gui + * viewer is being used. In jtreg mode, the default base directory for file + * args is the value of ${test.src}. In jtreg mode, the -r option can be + * given to change the default base directory to the root test directory. + */ + public static void main(String... args) { + String testSrc = System.getProperty("test.src"); + File baseDir = (testSrc == null) ? null : new File(testSrc); + boolean ok = new TreePosTest().run(baseDir, args); + if (!ok) { + if (testSrc != null) // jtreg mode + throw new Error("failed"); + else + System.exit(1); + } + } + + /** + * Run the program. A base directory can be provided for file arguments. + * In jtreg mode, the -r option can be given to change the default base + * directory to the test root directory. For other options, see usage(). + * @param baseDir base directory for any file arguments. + * @param args command line args + * @return true if successful or in gui mode + */ + boolean run(File baseDir, String... args) { + if (args.length == 0) { + usage(System.out); + return true; + } + + List files = new ArrayList(); + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.equals("-encoding") && i + 1 < args.length) + encoding = args[++i]; + else if (arg.equals("-gui")) + gui = true; + else if (arg.equals("-q")) + quiet = true; + else if (arg.equals("-v")) + verbose = true; + else if (arg.equals("-t") && i + 1 < args.length) + tags.add(args[++i]); + else if (arg.equals("-ef") && i + 1 < args.length) + excludeFiles.add(new File(baseDir, args[++i])); + else if (arg.equals("-r")) { + if (excludeFiles.size() > 0) + throw new Error("-r must be used before -ef"); + File d = baseDir; + while (!new File(d, "TEST.ROOT").exists()) { + d = d.getParentFile(); + if (d == null) + throw new Error("cannot find TEST.ROOT"); + } + baseDir = d; + } + else if (arg.startsWith("-")) + throw new Error("unknown option: " + arg); + else { + while (i < args.length) + files.add(new File(baseDir, args[i++])); + } + } + + for (File file: files) { + if (file.exists()) + test(file); + else + error("File not found: " + file); + } + + if (fileCount != 1) + System.err.println(fileCount + " files read"); + if (errors > 0) + System.err.println(errors + " errors"); + + return (gui || errors == 0); + } + + /** + * Print command line help. + * @param out output stream + */ + void usage(PrintStream out) { + out.println("Usage:"); + out.println(" java TreePosTest options... files..."); + out.println(""); + out.println("where options include:"); + out.println("-gui Display returns in a GUI viewer"); + out.println("-q Quiet: don't report on inapplicable files"); + out.println("-v Verbose: report on files as they are being read"); + out.println("-t tag Limit checks to tree nodes with this tag"); + out.println(" Can be repeated if desired"); + out.println("-ef file Exclude file or directory"); + out.println(""); + out.println("files may be directories or files"); + out.println("directories will be scanned recursively"); + out.println("non java files, or java files which cannot be parsed, will be ignored"); + out.println(""); + } + + /** + * Test a file. If the file is a directory, it will be recursively scanned + * for java files. + * @param file the file or directory to test + */ + void test(File file) { + if (excludeFiles.contains(file)) { + if (!quiet) + error("File " + file + " excluded"); + return; + } + + if (file.isDirectory()) { + for (File f: file.listFiles()) { + test(f); + } + return; + } + + if (file.isFile() && file.getName().endsWith(".java")) { + try { + if (verbose) + System.err.println(file); + fileCount++; + PosTester p = new PosTester(); + p.test(read(file)); + } catch (ParseException e) { + if (!quiet) { + error("Error parsing " + file + "\n" + e.getMessage()); + } + } catch (IOException e) { + error("Error reading " + file + ": " + e); + } + return; + } + + if (!quiet) + error("File " + file + " ignored"); + } + + /** + * Read a file. + * @param file the file to be read + * @return the tree for the content of the file + * @throws IOException if any IO errors occur + * @throws TreePosTest.ParseException if any errors occur while parsing the file + */ + JCCompilationUnit read(File file) throws IOException, ParseException { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + Reporter r = new Reporter(pw); + JavacTool tool = JavacTool.create(); + Charset cs = (encoding == null ? null : Charset.forName(encoding)); + StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + Iterable files = fm.getJavaFileObjects(file); + JavacTask task = tool.getTask(pw, fm, r, Collections.emptyList(), null, files); + Iterable trees = task.parse(); + pw.flush(); + if (r.errors > 0) + throw new ParseException(sw.toString()); + Iterator iter = trees.iterator(); + if (!iter.hasNext()) + throw new Error("no trees found"); + JCCompilationUnit t = (JCCompilationUnit) iter.next(); + if (iter.hasNext()) + throw new Error("too many trees found"); + return t; + } + + /** + * Report an error. When the program is complete, the program will either + * exit or throw an Error if any errors have been reported. + * @param msg the error message + */ + void error(String msg) { + System.err.println(msg); + errors++; + } + + /** Number of files that have been analyzed. */ + int fileCount; + /** Number of errors reported. */ + int errors; + /** Flag: don't report irrelevant files. */ + boolean quiet; + /** Flag: report files as they are processed. */ + boolean verbose; + /** Flag: show errors in GUI viewer. */ + boolean gui; + /** Option: encoding for test files. */ + String encoding; + /** The GUI viewer for errors. */ + Viewer viewer; + /** The set of tags for tree nodes to be analyzed; if empty, all tree nodes + * are analyzed. */ + Set tags = new HashSet(); + /** Set of files and directories to be excluded from analysis. */ + Set excludeFiles = new HashSet(); + /** Table of printable names for tree tag values. */ + TagNames tagNames = new TagNames(); + + /** + * Main class for testing assertions concerning tree positions for tree nodes. + */ + private class PosTester extends TreeScanner { + void test(JCCompilationUnit tree) { + sourcefile = tree.sourcefile; + endPosTable = tree.endPositions; + encl = new Info(); + tree.accept(this); + } + + @Override + public void scan(JCTree tree) { + if (tree == null) + return; + + Info self = new Info(tree, endPosTable); + if (check(self)) { + // Modifiers nodes are present throughout the tree even where + // there is no corresponding source text. + // Redundant semicolons in a class definition can cause empty + // initializer blocks with no positions. + if ((self.tag == JCTree.MODIFIERS || self.tag == JCTree.BLOCK) + && self.pos == NOPOS) { + // If pos is NOPOS, so should be the start and end positions + check("start == NOPOS", encl, self, self.start == NOPOS); + check("end == NOPOS", encl, self, self.end == NOPOS); + } else { + // For this node, start , pos, and endpos should be all defined + check("start != NOPOS", encl, self, self.start != NOPOS); + check("pos != NOPOS", encl, self, self.pos != NOPOS); + check("end != NOPOS", encl, self, self.end != NOPOS); + // The following should normally be ordered + // encl.start <= start <= pos <= end <= encl.end + // In addition, the position of the enclosing node should be + // within this node. + // The primary exceptions are for array type nodes, because of the + // need to support legacy syntax: + // e.g. int a[]; int[] b[]; int f()[] { return null; } + // and because of inconsistent nesting of left and right of + // array declarations: + // e.g. int[][] a = new int[2][]; + check("encl.start <= start", encl, self, encl.start <= self.start); + check("start <= pos", encl, self, self.start <= self.pos); + if (!(self.tag == JCTree.TYPEARRAY + && (encl.tag == JCTree.VARDEF || encl.tag == JCTree.TYPEARRAY))) { + check("encl.pos <= start || end <= encl.pos", + encl, self, encl.pos <= self.start || self.end <= encl.pos); + } + check("pos <= end", encl, self, self.pos <= self.end); + if (!(self.tag == JCTree.TYPEARRAY && encl.tag == JCTree.TYPEARRAY)) { + check("end <= encl.end", encl, self, self.end <= encl.end); + } + } + } + + Info prevEncl = encl; + encl = self; + tree.accept(this); + encl = prevEncl; + } + + @Override + public void visitVarDef(JCVariableDecl tree) { + // enum member declarations are desugared in the parser and have + // ill-defined semantics for tree positions, so for now, we + // skip the synthesized bits and just check parts which came from + // the original source text + if ((tree.mods.flags & Flags.ENUM) != 0) { + scan(tree.mods); + if (tree.init != null) { + if (tree.init.getTag() == JCTree.NEWCLASS) { + JCNewClass init = (JCNewClass) tree.init; + if (init.args != null && init.args.nonEmpty()) { + scan(init.args); + } + if (init.def != null && init.def.defs != null) { + scan(init.def.defs); + } + } + } + } else + super.visitVarDef(tree); + } + + boolean check(Info x) { + return tags.size() == 0 || tags.contains(tagNames.get(x.tag)); + } + + void check(String label, Info encl, Info self, boolean ok) { + if (!ok) { + if (gui) { + if (viewer == null) + viewer = new Viewer(); + viewer.addEntry(sourcefile, label, encl, self); + } + + String s = self.tree.toString(); + String msg = sourcefile.getName() + ": " + label + ": " + + "encl:" + encl + " this:" + self + "\n" + + s.substring(0, Math.min(80, s.length())).replaceAll("[\r\n]+", " "); + error(msg); + } + } + + JavaFileObject sourcefile; + Map endPosTable; + Info encl; + + } + + /** + * Utility class providing easy access to position and other info for a tree node. + */ + private class Info { + Info() { + tree = null; + tag = JCTree.ERRONEOUS; + start = 0; + pos = 0; + end = Integer.MAX_VALUE; + } + + Info(JCTree tree, Map endPosTable) { + this.tree = tree; + tag = tree.getTag(); + start = TreeInfo.getStartPos(tree); + pos = tree.pos; + end = TreeInfo.getEndPos(tree, endPosTable); + } + + @Override + public String toString() { + return tagNames.get(tree.getTag()) + "[start:" + start + ",pos:" + pos + ",end:" + end + "]"; + } + + final JCTree tree; + final int tag; + final int start; + final int pos; + final int end; + } + + /** + * Names for tree tags. + * javac does not provide an API to convert tag values to strings, so this class uses + * reflection to determine names of public static final int values in JCTree. + */ + private static class TagNames { + String get(int tag) { + if (map == null) { + map = new HashMap(); + Class c = JCTree.class; + for (Field f : c.getDeclaredFields()) { + if (f.getType().equals(int.class)) { + int mods = f.getModifiers(); + if (Modifier.isPublic(mods) && Modifier.isStatic(mods) && Modifier.isFinal(mods)) { + try { + map.put(f.getInt(null), f.getName()); + } catch (IllegalAccessException e) { + } + } + } + } + } + String name = map.get(tag); + return (name == null) ? "??" : name; + } + + private Map map; + } + + /** + * Thrown when errors are found parsing a java file. + */ + private static class ParseException extends Exception { + ParseException(String msg) { + super(msg); + } + } + + /** + * DiagnosticListener to report diagnostics and count any errors that occur. + */ + private static class Reporter implements DiagnosticListener { + Reporter(PrintWriter out) { + this.out = out; + } + + public void report(Diagnostic diagnostic) { + out.println(diagnostic); + switch (diagnostic.getKind()) { + case ERROR: + errors++; + } + } + int errors; + PrintWriter out; + } + + /** + * GUI viewer for issues found by TreePosTester. The viewer provides a drop + * down list for selecting error conditions, a header area providing details + * about an error, and a text area with the ranges of text highlighted as + * appropriate. + */ + private class Viewer extends JFrame { + /** + * Create a viewer. + */ + Viewer() { + initGUI(); + } + + /** + * Add another entry to the list of errors. + * @param file The file containing the error + * @param check The condition that was being tested, and which failed + * @param encl the enclosing tree node + * @param self the tree node containing the error + */ + void addEntry(JavaFileObject file, String check, Info encl, Info self) { + Entry e = new Entry(file, check, encl, self); + DefaultComboBoxModel m = (DefaultComboBoxModel) entries.getModel(); + m.addElement(e); + if (m.getSize() == 1) + entries.setSelectedItem(e); + } + + /** + * Initialize the GUI window. + */ + private void initGUI() { + JPanel head = new JPanel(new GridBagLayout()); + GridBagConstraints lc = new GridBagConstraints(); + GridBagConstraints fc = new GridBagConstraints(); + fc.anchor = GridBagConstraints.WEST; + fc.fill = GridBagConstraints.HORIZONTAL; + fc.gridwidth = GridBagConstraints.REMAINDER; + + entries = new JComboBox(); + entries.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + showEntry((Entry) entries.getSelectedItem()); + } + }); + fc.insets.bottom = 10; + head.add(entries, fc); + fc.insets.bottom = 0; + head.add(new JLabel("check:"), lc); + head.add(checkField = createTextField(80), fc); + fc.fill = GridBagConstraints.NONE; + head.add(setBackground(new JLabel("encl:"), enclColor), lc); + head.add(enclPanel = new InfoPanel(), fc); + head.add(setBackground(new JLabel("self:"), selfColor), lc); + head.add(selfPanel = new InfoPanel(), fc); + add(head, BorderLayout.NORTH); + + body = new JTextArea(); + body.setFont(Font.decode(Font.MONOSPACED)); + body.addCaretListener(new CaretListener() { + public void caretUpdate(CaretEvent e) { + int dot = e.getDot(); + int mark = e.getMark(); + if (dot == mark) + statusText.setText("dot: " + dot); + else + statusText.setText("dot: " + dot + ", mark:" + mark); + } + }); + JScrollPane p = new JScrollPane(body, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + p.setPreferredSize(new Dimension(640, 480)); + add(p, BorderLayout.CENTER); + + statusText = createTextField(80); + add(statusText, BorderLayout.SOUTH); + + pack(); + setLocationRelativeTo(null); // centered on screen + setVisible(true); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + + /** Show an entry that has been selected. */ + private void showEntry(Entry e) { + try { + // update simple fields + setTitle(e.file.getName()); + checkField.setText(e.check); + enclPanel.setInfo(e.encl); + selfPanel.setInfo(e.self); + // show file text with highlights + body.setText(e.file.getCharContent(true).toString()); + Highlighter highlighter = body.getHighlighter(); + highlighter.removeAllHighlights(); + addHighlight(highlighter, e.encl, enclColor); + addHighlight(highlighter, e.self, selfColor); + scroll(body, getMinPos(enclPanel.info, selfPanel.info)); + } catch (IOException ex) { + body.setText("Cannot read " + e.file.getName() + ": " + e); + } + } + + /** Create a test field. */ + private JTextField createTextField(int width) { + JTextField f = new JTextField(width); + f.setEditable(false); + f.setBorder(null); + return f; + } + + /** Add a highlighted region based on the positions in an Info object. */ + private void addHighlight(Highlighter h, Info info, Color c) { + int start = info.start; + int end = info.end; + if (start == -1 && end == -1) + return; + if (start == -1) + start = end; + if (end == -1) + end = start; + try { + h.addHighlight(info.start, info.end, + new DefaultHighlighter.DefaultHighlightPainter(c)); + if (info.pos != -1) { + Color c2 = new Color(c.getRed(), c.getGreen(), c.getBlue(), (int)(.4f * 255)); // 40% + h.addHighlight(info.pos, info.pos + 1, + new DefaultHighlighter.DefaultHighlightPainter(c2)); + } + } catch (BadLocationException e) { + e.printStackTrace(); + } + } + + /** Get the minimum valid position in a set of info objects. */ + private int getMinPos(Info... values) { + int i = Integer.MAX_VALUE; + for (Info info: values) { + if (info.start >= 0) i = Math.min(i, info.start); + if (info.pos >= 0) i = Math.min(i, info.pos); + if (info.end >= 0) i = Math.min(i, info.end); + } + return (i == Integer.MAX_VALUE) ? 0 : i; + } + + /** Set the background on a component. */ + private JComponent setBackground(JComponent comp, Color c) { + comp.setOpaque(true); + comp.setBackground(c); + return comp; + } + + /** Scroll a text area to display a given position near the middle of the visible area. */ + private void scroll(final JTextArea t, final int pos) { + // Using invokeLater appears to give text a chance to sort itself out + // before the scroll happens; otherwise scrollRectToVisible doesn't work. + // Maybe there's a better way to sync with the text... + EventQueue.invokeLater(new Runnable() { + public void run() { + try { + Rectangle r = t.modelToView(pos); + JScrollPane p = (JScrollPane) SwingUtilities.getAncestorOfClass(JScrollPane.class, t); + r.y = Math.max(0, r.y - p.getHeight() * 2 / 5); + r.height += p.getHeight() * 4 / 5; + t.scrollRectToVisible(r); + } catch (BadLocationException ignore) { + } + } + }); + } + + private JComboBox entries; + private JTextField checkField; + private InfoPanel enclPanel; + private InfoPanel selfPanel; + private JTextArea body; + private JTextField statusText; + + private Color selfColor = new Color(0.f, 1.f, 0.f, 0.2f); // 20% green + private Color enclColor = new Color(1.f, 0.f, 0.f, 0.2f); // 20% red + + /** Panel to display an Info object. */ + private class InfoPanel extends JPanel { + InfoPanel() { + add(tagName = createTextField(20)); + add(new JLabel("start:")); + add(addListener(start = createTextField(6))); + add(new JLabel("pos:")); + add(addListener(pos = createTextField(6))); + add(new JLabel("end:")); + add(addListener(end = createTextField(6))); + } + + void setInfo(Info info) { + this.info = info; + tagName.setText(tagNames.get(info.tag)); + start.setText(String.valueOf(info.start)); + pos.setText(String.valueOf(info.pos)); + end.setText(String.valueOf(info.end)); + } + + JTextField addListener(final JTextField f) { + f.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + body.setCaretPosition(Integer.valueOf(f.getText())); + body.getCaret().setVisible(true); + } + }); + return f; + } + + Info info; + JTextField tagName; + JTextField start; + JTextField pos; + JTextField end; + } + + /** Object to record information about an error to be displayed. */ + private class Entry { + Entry(JavaFileObject file, String check, Info encl, Info self) { + this.file = file; + this.check = check; + this.encl = encl; + this.self= self; + } + + @Override + public String toString() { + return file.getName() + " " + check + " " + getMinPos(encl, self); + } + + final JavaFileObject file; + final String check; + final Info encl; + final Info self; + } + } +} + From 0b2d026575da07e2258f27be944f85ef11578914 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Fri, 29 Jan 2010 16:54:52 -0800 Subject: [PATCH 045/107] 6499119: Created package-info class file modeled improperly 6920317: package-info.java file has to be specified on the javac cmdline, else it will not be avail Reviewed-by: darcy --- .../com/sun/tools/javac/code/Symbol.java | 5 + .../com/sun/tools/javac/comp/Enter.java | 13 + .../com/sun/tools/javac/comp/Lower.java | 9 +- .../JavacProcessingEnvironment.java | 67 ++- .../processing/6499119/ClassProcessor.java | 132 +++++ .../processing/6499119/package-info.java | 27 + .../test/tools/javac/processing/T6920317.java | 462 ++++++++++++++++++ 7 files changed, 696 insertions(+), 19 deletions(-) create mode 100644 langtools/test/tools/javac/processing/6499119/ClassProcessor.java create mode 100644 langtools/test/tools/javac/processing/6499119/package-info.java create mode 100644 langtools/test/tools/javac/processing/T6920317.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java index 6f30c6052d4..d5a3d871e0e 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java @@ -657,6 +657,11 @@ public abstract class Symbol implements Element { public List getAnnotationMirrors() { if (completer != null) complete(); + if (package_info != null && package_info.completer != null) { + package_info.complete(); + if (attributes_field.isEmpty()) + attributes_field = package_info.attributes_field; + } assert attributes_field != null; return attributes_field; } diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Enter.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Enter.java index f84ac75acb3..7e2884f6d89 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Enter.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Enter.java @@ -100,6 +100,7 @@ public class Enter extends JCTree.Visitor { MemberEnter memberEnter; Types types; Lint lint; + Names names; JavaFileManager fileManager; private final Todo todo; @@ -123,6 +124,7 @@ public class Enter extends JCTree.Visitor { types = Types.instance(context); annotate = Annotate.instance(context); lint = Lint.instance(context); + names = Names.instance(context); predefClassDef = make.ClassDef( make.Modifiers(PUBLIC), @@ -308,6 +310,17 @@ public class Enter extends JCTree.Visitor { } } } + + for (Symbol q = tree.packge; q != null && q.kind == PCK; q = q.owner) + q.flags_field |= EXISTS; + + Name name = names.package_info; + ClassSymbol c = reader.enterClass(name, tree.packge); + c.flatname = names.fromString(tree.packge + "." + name); + c.sourcefile = tree.sourcefile; + c.completer = null; + c.members_field = new Scope(c); + tree.packge.package_info = c; } classEnter(tree.defs, env); if (addEnv) { diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java index f2983724122..e03928e5d58 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java @@ -1994,19 +1994,14 @@ public class Lower extends TreeTranslator { tree.packageAnnotations), name, List.nil(), null, List.nil(), List.nil()); - ClassSymbol c = reader.enterClass(name, tree.packge); - c.flatname = names.fromString(tree.packge + "." + name); - c.sourcefile = tree.sourcefile; - c.completer = null; - c.members_field = new Scope(c); - c.flags_field = flags; + ClassSymbol c = tree.packge.package_info; + c.flags_field |= flags; c.attributes_field = tree.packge.attributes_field; ClassType ctype = (ClassType) c.type; ctype.supertype_field = syms.objectType; ctype.interfaces_field = List.nil(); packageAnnotationsClass.sym = c; - translated.append(packageAnnotationsClass); } } diff --git a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java index cb5ca870947..ae8c188bbbd 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java +++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java @@ -67,6 +67,7 @@ import com.sun.tools.javac.tree.*; import com.sun.tools.javac.tree.JCTree.*; import com.sun.tools.javac.util.Abort; import com.sun.tools.javac.util.Context; +import com.sun.tools.javac.util.Convert; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.ListBuffer; import com.sun.tools.javac.util.Log; @@ -893,14 +894,20 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea errorStatus = true; break runAround; } else { - ListBuffer classes = enterNewClassFiles(currentContext); + List newClasses = enterNewClassFiles(currentContext); compiler.enterTrees(roots); // annotationsPresentInSource = // collector.findAnnotations(parsedFiles); - classes.appendList(getTopLevelClasses(parsedFiles)); - topLevelClasses = classes.toList(); - packageInfoFiles = getPackageInfoFiles(parsedFiles); + ListBuffer tlc = new ListBuffer(); + tlc.appendList(getTopLevelClasses(parsedFiles)); + tlc.appendList(getTopLevelClassesFromClasses(newClasses)); + topLevelClasses = tlc.toList(); + + ListBuffer pif = new ListBuffer(); + pif.appendList(getPackageInfoFiles(parsedFiles)); + pif.appendList(getPackageInfoFilesFromClasses(newClasses)); + packageInfoFiles = pif.toList(); annotationsPresent = new LinkedHashSet(); for (ClassSymbol classSym : topLevelClasses) @@ -1026,20 +1033,30 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea } } - private ListBuffer enterNewClassFiles(Context currentContext) { + private List enterNewClassFiles(Context currentContext) { ClassReader reader = ClassReader.instance(currentContext); Names names = Names.instance(currentContext); - ListBuffer list = new ListBuffer(); + List list = List.nil(); for (Map.Entry entry : filer.getGeneratedClasses().entrySet()) { Name name = names.fromString(entry.getKey()); JavaFileObject file = entry.getValue(); if (file.getKind() != JavaFileObject.Kind.CLASS) throw new AssertionError(file); - ClassSymbol cs = reader.enterClass(name, file); - list.append(cs); + ClassSymbol cs; + if (isPkgInfo(file, JavaFileObject.Kind.CLASS)) { + Name packageName = Convert.packagePart(name); + PackageSymbol p = reader.enterPackage(packageName); + if (p.package_info == null) + p.package_info = reader.enterClass(Convert.shortName(name), p); + cs = p.package_info; + if (cs.classfile == null) + cs.classfile = file; + } else + cs = reader.enterClass(name, file); + list = list.prepend(cs); } - return list; + return list.reverse(); } /** @@ -1066,18 +1083,44 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea return classes.reverse(); } + private List getTopLevelClassesFromClasses(List syms) { + List classes = List.nil(); + for (ClassSymbol sym : syms) { + if (!isPkgInfo(sym)) { + classes = classes.prepend(sym); + } + } + return classes.reverse(); + } + private List getPackageInfoFiles(List units) { List packages = List.nil(); for (JCCompilationUnit unit : units) { - boolean isPkgInfo = unit.sourcefile.isNameCompatible("package-info", - JavaFileObject.Kind.SOURCE); - if (isPkgInfo) { + if (isPkgInfo(unit.sourcefile, JavaFileObject.Kind.SOURCE)) { packages = packages.prepend(unit.packge); } } return packages.reverse(); } + private List getPackageInfoFilesFromClasses(List syms) { + List packages = List.nil(); + for (ClassSymbol sym : syms) { + if (isPkgInfo(sym)) { + packages = packages.prepend((PackageSymbol) sym.owner); + } + } + return packages.reverse(); + } + + private boolean isPkgInfo(JavaFileObject fo, JavaFileObject.Kind kind) { + return fo.isNameCompatible("package-info", kind); + } + + private boolean isPkgInfo(ClassSymbol sym) { + return isPkgInfo(sym.classfile, JavaFileObject.Kind.CLASS) && (sym.packge().package_info == sym); + } + private Context contextForNextRound(Context context, boolean shareNames) throws IOException { diff --git a/langtools/test/tools/javac/processing/6499119/ClassProcessor.java b/langtools/test/tools/javac/processing/6499119/ClassProcessor.java new file mode 100644 index 00000000000..eb082bf93e6 --- /dev/null +++ b/langtools/test/tools/javac/processing/6499119/ClassProcessor.java @@ -0,0 +1,132 @@ +/* + * 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.util.*; +import javax.annotation.processing.*; +import javax.lang.model.element.*; +import javax.lang.model.SourceVersion; +import javax.tools.Diagnostic.Kind; + +/* + * @test + * @bug 6499119 + * @summary Created package-info class file modeled improperly + * @compile ClassProcessor.java package-info.java + * @compile/process -cp . -processor ClassProcessor -Akind=java java.lang.Object + * @compile/process -cp . -processor ClassProcessor -Akind=class java.lang.Object + */ + +@SupportedOptions({ "gen", "expect" }) +@SupportedAnnotationTypes({"*"}) +public class ClassProcessor extends AbstractProcessor { + int round = 1; + + public SourceVersion getSupportedSourceVersion() { + return SourceVersion.latest(); + } + + public boolean process(Set annotations, RoundEnvironment roundEnv) { + if (round == 1) { + System.out.println("-- Round 1 --"); + createPackageFile(); + } else if (round == 2) { + boolean found_foo_A = false; + System.out.println("-- Round 2 --"); + for(Element e: roundEnv.getRootElements()) { + System.out.println("ElementKind: " + e.getKind()); + System.out.println("Modifiers: " + e.getModifiers()); + System.out.println("Annotations: " + e.getAnnotationMirrors()); + if (e.getAnnotationMirrors().toString().equals("@foo.A")) { + found_foo_A = true; + checkEqual("ElementKind", e.getKind().toString(), "PACKAGE"); + checkEqual("Modifiers", e.getModifiers().toString(), "[]"); + } + } + if (!found_foo_A) + error("did not find @foo.A"); + } + round++; + return true; + } + + private void createPackageFile() { + Filer filer = processingEnv.getFiler(); + + String kind = processingEnv.getOptions().get("kind"); + + File pkgInfo; + if (kind.equals("java")) + pkgInfo = new File(System.getProperty("test.src"), "package-info.java"); + else + pkgInfo = new File(System.getProperty("test.classes"), "foo/package-info.class"); + + byte[] bytes = new byte[(int) pkgInfo.length()]; + DataInputStream in = null; + try { + in = new DataInputStream(new FileInputStream(pkgInfo)); + in.readFully(bytes); + } catch (IOException ioe) { + error("Couldn't read package info file: " + ioe); + } finally { + if(in != null) { + try { + in.close(); + } catch (IOException e) { + error("InputStream closing failed: " + e); + } + } + } + + OutputStream out = null; + try { + if (kind.equals("java")) + out = filer.createSourceFile("foo.package-info").openOutputStream(); + else + out = filer.createClassFile("foo.package-info").openOutputStream(); + out.write(bytes, 0, bytes.length); + } catch (IOException ioe) { + error("Couldn't create package info file: " + ioe); + } finally { + if(out != null) { + try { + out.close(); + } catch (IOException e) { + error("OutputStream closing failed: " + e); + } + } + } + } + + private void checkEqual(String label, String actual, String expect) { + if (!actual.equals(expect)) { + error("Unexpected value for " + label + "; actual=" + actual + ", expected=" + expect); + } + } + + private void error(String msg) { + Messager messager = processingEnv.getMessager(); + messager.printMessage(Kind.ERROR, msg); + } +} + diff --git a/langtools/test/tools/javac/processing/6499119/package-info.java b/langtools/test/tools/javac/processing/6499119/package-info.java new file mode 100644 index 00000000000..0eba1afd061 --- /dev/null +++ b/langtools/test/tools/javac/processing/6499119/package-info.java @@ -0,0 +1,27 @@ +/* + * 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. + */ + +@A package foo; + +@interface A {} + diff --git a/langtools/test/tools/javac/processing/T6920317.java b/langtools/test/tools/javac/processing/T6920317.java new file mode 100644 index 00000000000..fce6928e586 --- /dev/null +++ b/langtools/test/tools/javac/processing/T6920317.java @@ -0,0 +1,462 @@ +/* + * 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 6920317 + * @summary package-info.java file has to be specified on the javac cmdline, else it will not be avail + */ + +import java.io.*; +import java.util.*; +import javax.annotation.processing.*; +import javax.lang.model.*; +import javax.lang.model.element.*; +import javax.lang.model.util.*; +import javax.tools.*; + +/** + * The test exercises different ways of providing annotations for a package. + * Each way provides an annotation with a unique argument. For each test + * case, the test verifies that the annotation with the correct argument is + * found by the compiler. + */ +public class T6920317 { + public static void main(String... args) throws Exception { + new T6920317().run(args); + } + + // Used to describe properties of files to be put on command line, source path, class path + enum Kind { + /** File is not used. */ + NONE, + /** File is used. */ + OLD, + /** Only applies to files on classpath/sourcepath, when there is another file on the + * other path of type OLD, in which case, this file must be newer than the other one. */ + NEW, + /** Only applies to files on classpath/sourcepath, when there is no file in any other + * location, in which case, this file will be generated by the annotation processor. */ + GEN + } + + void run(String... args) throws Exception { + // if no args given, all test cases are run + // if args given, they indicate the test cases to be run + for (int i = 0; i < args.length; i++) { + tests.add(Integer.valueOf(args[i])); + } + + setup(); + + // Run tests for all combinations of files on command line, source path and class path. + // Invalid combinations are skipped in the test method + for (Kind cmdLine: EnumSet.of(Kind.NONE, Kind.OLD)) { + for (Kind srcPath: Kind.values()) { + for (Kind clsPath: Kind.values()) { + try { + test(cmdLine, srcPath, clsPath); + } catch (Exception e) { + e.printStackTrace(); + error("Exception " + e); + // uncomment to stop on first failed test case + // throw e; + } + } + } + } + + if (errors > 0) + throw new Exception(errors + " errors occurred"); + } + + /** One time setup for files and directories to be used in the various test cases. */ + void setup() throws Exception { + // Annotation used in test cases to annotate package. This file is + // given on the command line in test cases. + test_java = writeFile("Test.java", "package p; @interface Test { String value(); }"); + // Compile the annotation for use later in setup + File tmpClasses = new File("tmp.classes"); + compile(tmpClasses, new String[] { }, test_java); + + // package-info file to use on the command line when requied + cl_pkgInfo_java = writeFile("cl/p/package-info.java", "@Test(\"CL\") package p;"); + + // source path containing package-info + sp_old = new File("src.old"); + writeFile("src.old/p/package-info.java", "@Test(\"SP_OLD\") package p;"); + + // class path containing package-info + cp_old = new File("classes.old"); + compile(cp_old, new String[] { "-classpath", tmpClasses.getPath() }, + writeFile("tmp.old/p/package-info.java", "@Test(\"CP_OLD\") package p;")); + + // source path containing package-info which is newer than the one in cp-old + sp_new = new File("src.new"); + File old_class = new File(cp_old, "p/package-info.class"); + writeFile("src.new/p/package-info.java", "@Test(\"SP_NEW\") package p;", old_class); + + // class path containing package-info which is newer than the one in sp-old + cp_new = new File("classes.new"); + File old_java = new File(sp_old, "p/package-info.java"); + compile(cp_new, new String[] { "-classpath", tmpClasses.getPath() }, + writeFile("tmp.new/p/package-info.java", "@Test(\"CP_NEW\") package p;", old_java)); + + // directory containing package-info.java to be "generated" later by annotation processor + sp_gen = new File("src.gen"); + writeFile("src.gen/p/package-info.java", "@Test(\"SP_GEN\") package p;"); + + // directory containing package-info.class to be "generated" later by annotation processor + cp_gen = new File("classes.gen"); + compile(cp_gen, new String[] { "-classpath", tmpClasses.getPath() }, + writeFile("tmp.gen/p/package-info.java", "@Test(\"CP_GEN\") package p;")); + } + + void test(Kind cl, Kind sp, Kind cp) throws Exception { + if (skip(cl, sp, cp)) + return; + + ++count; + // if test cases specified, skip this test case if not selected + if (tests.size() > 0 && !tests.contains(count)) + return; + + System.err.println("Test " + count + " cl:" + cl + " sp:" + sp + " cp:" + cp); + + // test specific tmp directory + File test_tmp = new File("tmp.test" + count); + test_tmp.mkdirs(); + + // build up list of options and files to be compiled + List opts = new ArrayList(); + List files = new ArrayList(); + + // expected value for annotation + String expect = null; + + opts.add("-processorpath"); + opts.add(System.getProperty("test.classes")); + opts.add("-processor"); + opts.add(Processor.class.getName()); + opts.add("-proc:only"); + opts.add("-d"); + opts.add(test_tmp.getPath()); + //opts.add("-verbose"); + files.add(test_java); + + /* + * Analyze each of cl, cp, sp, building up the options and files to + * be compiled, and determining the expected outcome fo the test case. + */ + + // command line file: either omitted or given + if (cl == Kind.OLD) { + files.add(cl_pkgInfo_java); + // command line files always supercede files on paths + expect = "CL"; + } + + // source path: + switch (sp) { + case NONE: + break; + + case OLD: + opts.add("-sourcepath"); + opts.add(sp_old.getPath()); + if (expect == null && cp == Kind.NONE) { + assert cl == Kind.NONE && cp == Kind.NONE; + expect = "SP_OLD"; + } + break; + + case NEW: + opts.add("-sourcepath"); + opts.add(sp_new.getPath()); + if (expect == null) { + assert cl == Kind.NONE && cp == Kind.OLD; + expect = "SP_NEW"; + } + break; + + case GEN: + opts.add("-Agen=" + new File(sp_gen, "p/package-info.java")); + assert cl == Kind.NONE && cp == Kind.NONE; + expect = "SP_GEN"; + break; + } + + // class path: + switch (cp) { + case NONE: + break; + + case OLD: + opts.add("-classpath"); + opts.add(cp_old.getPath()); + if (expect == null && sp == Kind.NONE) { + assert cl == Kind.NONE && sp == Kind.NONE; + expect = "CP_OLD"; + } + break; + + case NEW: + opts.add("-classpath"); + opts.add(cp_new.getPath()); + if (expect == null) { + assert cl == Kind.NONE && sp == Kind.OLD; + expect = "CP_NEW"; + } + break; + + case GEN: + opts.add("-Agen=" + new File(cp_gen, "p/package-info.class")); + assert cl == Kind.NONE && sp == Kind.NONE; + expect = "CP_GEN"; + break; + } + + // pass expected value to annotation processor + assert expect != null; + opts.add("-Aexpect=" + expect); + + // compile the files with the options that have been built up + compile(opts, files); + } + + /** + * Return true if this combination of parameters does not identify a useful test case. + */ + boolean skip(Kind cl, Kind sp, Kind cp) { + // skip if no package files required + if (cl == Kind.NONE && sp == Kind.NONE && cp == Kind.NONE) + return true; + + // skip if both sp and sp are OLD, since results may be indeterminate + if (sp == Kind.OLD && cp == Kind.OLD) + return true; + + // skip if sp or cp is NEW but the other is not OLD + if ((sp == Kind.NEW && cp != Kind.OLD) || (cp == Kind.NEW && sp != Kind.OLD)) + return true; + + // only use GEN if no other package-info files present + if (sp == Kind.GEN && !(cl == Kind.NONE && cp == Kind.NONE) || + cp == Kind.GEN && !(cl == Kind.NONE && sp == Kind.NONE)) { + return true; + } + + // remaining combinations are valid + return false; + } + + /** Write a file with a given body. */ + File writeFile(String path, String body) throws Exception { + File f = new File(path); + if (f.getParentFile() != null) + f.getParentFile().mkdirs(); + Writer out = new FileWriter(path); + try { + out.write(body); + } finally { + out.close(); + } + return f; + } + + /** Write a file with a given body, ensuring that the file is newer than a reference file. */ + File writeFile(String path, String body, File ref) throws Exception { + for (int i = 0; i < 5; i++) { + File f = writeFile(path, body); + if (f.lastModified() > ref.lastModified()) + return f; + Thread.sleep(2000); + } + throw new Exception("cannot create file " + path + " newer than " + ref); + } + + /** Compile a file to a given directory, with options provided. */ + void compile(File dir, String[] opts, File src) throws Exception { + dir.mkdirs(); + List opts2 = new ArrayList(); + opts2.addAll(Arrays.asList("-d", dir.getPath())); + opts2.addAll(Arrays.asList(opts)); + compile(opts2, Collections.singletonList(src)); + } + + /** Compile files with options provided. */ + void compile(List opts, List files) throws Exception { + System.err.println("javac: " + opts + " " + files); + List args = new ArrayList(); + args.addAll(opts); + for (File f: files) + args.add(f.getPath()); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + int rc = com.sun.tools.javac.Main.compile(args.toArray(new String[args.size()]), pw); + pw.flush(); + if (sw.getBuffer().length() > 0) + System.err.println(sw.toString()); + if (rc != 0) + throw new Exception("compilation failed: rc=" + rc); + } + + /** Report an error. */ + void error(String msg) { + System.err.println("Error: " + msg); + errors++; + } + + /** Test case counter. */ + int count; + + /** Number of errors found. */ + int errors; + + /** Optional set of test cases to be run; empty implies all test cases. */ + Set tests = new HashSet(); + + /* Files created by setup. */ + File test_java; + File sp_old; + File sp_new; + File sp_gen; + File cp_old; + File cp_new; + File cp_gen; + File cl_pkgInfo_java; + + /** Annotation processor used to verify the expected value for the + package annotations found by javac. */ + @SupportedOptions({ "gen", "expect" }) + @SupportedAnnotationTypes({"*"}) + public static class Processor extends AbstractProcessor { + public SourceVersion getSupportedSourceVersion() { + return SourceVersion.latest(); + } + + public boolean process(Set annots, RoundEnvironment renv) { + round++; + System.err.println("Round " + round + " annots:" + annots + " rootElems:" + renv.getRootElements()); + + // if this is the first round and the gen option is given, use the filer to create + // a copy of the file specified by the gen option. + String gen = getOption("gen"); + if (round == 1 && gen != null) { + try { + Filer filer = processingEnv.getFiler(); + JavaFileObject f; + if (gen.endsWith(".java")) + f = filer.createSourceFile("p.package-info"); + else + f = filer.createClassFile("p.package-info"); + System.err.println("copy " + gen + " to " + f.getName()); + write(f, read(new File(gen))); + } catch (IOException e) { + error("Cannot create package-info file: " + e); + } + } + + // if annotation processing is complete, verify the package annotation + // found by the compiler. + if (renv.processingOver()) { + System.err.println("final round"); + Elements eu = processingEnv.getElementUtils(); + TypeElement te = eu.getTypeElement("p.Test"); + PackageElement pe = eu.getPackageOf(te); + System.err.println("final: te:" + te + " pe:" + pe); + List annos = pe.getAnnotationMirrors(); + System.err.println("final: annos:" + annos); + if (annos.size() == 1) { + String expect = "@" + te + "(\"" + getOption("expect") + "\")"; + String actual = annos.get(0).toString(); + checkEqual("package annotations", actual, expect); + } else { + error("Wrong number of annotations found: (" + annos.size() + ") " + annos); + } + } + + return true; + } + + /** Get an option given to the annotation processor. */ + String getOption(String name) { + return processingEnv.getOptions().get(name); + } + + /** Read a file. */ + byte[] read(File file) { + byte[] bytes = new byte[(int) file.length()]; + DataInputStream in = null; + try { + in = new DataInputStream(new FileInputStream(file)); + in.readFully(bytes); + } catch (IOException e) { + error("Error reading file: " + e); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + error("Error closing file: " + e); + } + } + } + return bytes; + } + + /** Write a file. */ + void write(JavaFileObject file, byte[] bytes) { + OutputStream out = null; + try { + out = file.openOutputStream(); + out.write(bytes, 0, bytes.length); + } catch (IOException e) { + error("Error writing file: " + e); + } finally { + if (out != null) { + try { + out.close(); + } catch (IOException e) { + error("Error closing file: " + e); + } + } + } + } + + /** Check two strings are equal, and report an error if they are not. */ + private void checkEqual(String label, String actual, String expect) { + if (!actual.equals(expect)) { + error("Unexpected value for " + label + "; actual=" + actual + ", expected=" + expect); + } + } + + /** Report an error to the annotation processing system. */ + void error(String msg) { + Messager messager = processingEnv.getMessager(); + messager.printMessage(Diagnostic.Kind.ERROR, msg); + } + + int round; + } +} From 8cc63249e909e44d58703301dd74ad36c92c7927 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Fri, 29 Jan 2010 22:51:41 -0800 Subject: [PATCH 046/107] 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 047/107] 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 048/107] 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 049/107] 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 050/107] 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 378a8861c0436e05c354fa0b1ee9688b8bb48abc Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Mon, 1 Feb 2010 17:05:35 -0800 Subject: [PATCH 051/107] 6919986: [308] change size of type_index (of CLASS_EXTENDS and THROWS) from byte to short Co-authored-by: Michael Ernst Reviewed-by: darcy, jjg --- .../com/sun/tools/classfile/ExtendedAnnotation.java | 11 +++++++---- .../com/sun/tools/javac/code/TypeAnnotations.java | 6 +----- .../classes/com/sun/tools/javac/jvm/ClassReader.java | 4 ++-- .../classes/com/sun/tools/javac/jvm/ClassWriter.java | 4 ++-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java b/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java index 756870e664f..2072ae648b0 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java @@ -123,11 +123,14 @@ public class ExtendedAnnotation { // Class extends and implements clauses case CLASS_EXTENDS: case CLASS_EXTENDS_GENERIC_OR_ARRAY: - position.type_index = cr.readUnsignedByte(); + int in = cr.readUnsignedShort(); + if (in == 0xFFFF) + in = -1; + position.type_index = in; break; // throws case THROWS: - position.type_index = cr.readUnsignedByte(); + position.type_index = cr.readUnsignedShort(); break; case CLASS_LITERAL: case CLASS_LITERAL_GENERIC_OR_ARRAY: @@ -213,11 +216,11 @@ public class ExtendedAnnotation { // Class extends and implements clauses case CLASS_EXTENDS: case CLASS_EXTENDS_GENERIC_OR_ARRAY: - n += 1; // type_index + n += 2; // type_index break; // throws case THROWS: - n += 1; // type_index + n += 2; // type_index break; case CLASS_LITERAL: case CLASS_LITERAL_GENERIC_OR_ARRAY: diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java index 90943e9bb41..b3e45fe8dbd 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java @@ -149,11 +149,7 @@ public class TypeAnnotations { JCFieldAccess fieldFrame = (JCFieldAccess)frame; if ("class".contentEquals(fieldFrame.name)) { p.type = TargetType.CLASS_LITERAL; - if (fieldFrame.selected instanceof JCAnnotatedType) { - p.pos = TreeInfo.typeIn(fieldFrame).pos; - } else if (fieldFrame.selected instanceof JCArrayTypeTree) { - p.pos = fieldFrame.selected.pos; - } + p.pos = TreeInfo.innermostType(fieldFrame.selected).pos; } else throw new AssertionError(); return p; diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java index 146c7100ea9..cedbf235681 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java @@ -1425,11 +1425,11 @@ public class ClassReader implements Completer { // Class extends and implements clauses case CLASS_EXTENDS: case CLASS_EXTENDS_GENERIC_OR_ARRAY: - position.type_index = nextByte(); + position.type_index = nextChar(); break; // throws case THROWS: - position.type_index = nextByte(); + position.type_index = nextChar(); break; case CLASS_LITERAL: case CLASS_LITERAL_GENERIC_OR_ARRAY: diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java index 2ed523802ff..39f73bf4de5 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java @@ -965,11 +965,11 @@ public class ClassWriter extends ClassFile { // Class extends and implements clauses case CLASS_EXTENDS: case CLASS_EXTENDS_GENERIC_OR_ARRAY: - databuf.appendByte(p.type_index); + databuf.appendChar(p.type_index); break; // throws case THROWS: - databuf.appendByte(p.type_index); + databuf.appendChar(p.type_index); break; case CLASS_LITERAL: case CLASS_LITERAL_GENERIC_OR_ARRAY: From d5280868a3ee35da56e67b502062a7e9846040fa Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Tue, 2 Feb 2010 16:38:26 +0100 Subject: [PATCH 052/107] 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 053/107] 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 b0d7cf8472b34671b366682c548da5f387897123 Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Tue, 2 Feb 2010 10:56:10 -0800 Subject: [PATCH 054/107] 6918625: handle annotations on array class literals Co-authored-by: Michael Ernst Reviewed-by: jjg, darcy --- .../com/sun/tools/classfile/ClassWriter.java | 1 + .../javac/code/TypeAnnotationPosition.java | 1 + .../com/sun/tools/javap/AnnotationWriter.java | 1 + .../typeAnnotations/ArrayClassLiterals2.java | 82 +++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 langtools/test/tools/javap/typeAnnotations/ArrayClassLiterals2.java diff --git a/langtools/src/share/classes/com/sun/tools/classfile/ClassWriter.java b/langtools/src/share/classes/com/sun/tools/classfile/ClassWriter.java index 6b2bad47c37..3f98bd72f0f 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/ClassWriter.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/ClassWriter.java @@ -744,6 +744,7 @@ public class ClassWriter { out.writeByte(p.type_index); break; case CLASS_LITERAL: + case CLASS_LITERAL_GENERIC_OR_ARRAY: out.writeShort(p.offset); break; // method parameter: not specified diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java index 70bb61e25ee..0dceb90cba3 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java @@ -139,6 +139,7 @@ public class TypeAnnotationPosition { sb.append(type_index); break; case CLASS_LITERAL: + case CLASS_LITERAL_GENERIC_OR_ARRAY: sb.append(", offset = "); sb.append(offset); break; diff --git a/langtools/src/share/classes/com/sun/tools/javap/AnnotationWriter.java b/langtools/src/share/classes/com/sun/tools/javap/AnnotationWriter.java index 029026c47f5..c4af507e8f1 100644 --- a/langtools/src/share/classes/com/sun/tools/javap/AnnotationWriter.java +++ b/langtools/src/share/classes/com/sun/tools/javap/AnnotationWriter.java @@ -162,6 +162,7 @@ public class AnnotationWriter extends BasicWriter { print(pos.type_index); break; case CLASS_LITERAL: + case CLASS_LITERAL_GENERIC_OR_ARRAY: if (showOffsets) { print(", offset="); print(pos.offset); diff --git a/langtools/test/tools/javap/typeAnnotations/ArrayClassLiterals2.java b/langtools/test/tools/javap/typeAnnotations/ArrayClassLiterals2.java new file mode 100644 index 00000000000..eb9ba848c4f --- /dev/null +++ b/langtools/test/tools/javap/typeAnnotations/ArrayClassLiterals2.java @@ -0,0 +1,82 @@ +/* + * 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 6918625 + * @summary javap dumps type information of array class literals + */ + +import java.io.*; + +public class ArrayClassLiterals2 { + public static void main(String[] args) throws Exception { + new ArrayClassLiterals2().run(); + } + + public void run() throws IOException { + File classFile = new File(System.getProperty("test.classes"), "ArrayClassLiterals2$Test.class"); + + verify(classFile, + "RuntimeInvisibleTypeAnnotations:", + "CLASS_LITERAL_GENERIC_OR_ARRAY" + ); + + if (errors > 0) + throw new Error(errors + " found."); + } + + String javap(File f) { + StringWriter sw = new StringWriter(); + PrintWriter out = new PrintWriter(sw); + int rc = com.sun.tools.javap.Main.run(new String[] { "-v", f.getPath() }, out); + if (rc != 0) + throw new Error("javap failed. rc=" + rc); + out.close(); + return sw.toString(); + } + + void verify(File classFile, String... expects) { + String output = javap(classFile); + for (String expect: expects) { + if (output.indexOf(expect)< 0) + error(expect + " not found"); + } + } + + void error(String msg) { + System.err.println(msg); + errors++; + } + + int errors; + + + /*********************** Test class *************************/ + static class Test { + @interface A { } + void test() { + Object a = @A String @A [] @A [].class; + } + } +} From aafe7d739828aec046812d78778d8689f30983a6 Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Wed, 3 Feb 2010 10:02:33 +0100 Subject: [PATCH 055/107] 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 3485352c4350ecc1b4526ebc840294cc1f7a6445 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Wed, 3 Feb 2010 11:28:21 -0800 Subject: [PATCH 056/107] 6922429: extend tree position test waiver Reviewed-by: darcy --- langtools/test/tools/javac/treepostests/TreePosTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langtools/test/tools/javac/treepostests/TreePosTest.java b/langtools/test/tools/javac/treepostests/TreePosTest.java index d5c71f3009f..7499cc7a387 100644 --- a/langtools/test/tools/javac/treepostests/TreePosTest.java +++ b/langtools/test/tools/javac/treepostests/TreePosTest.java @@ -98,7 +98,7 @@ import static com.sun.tools.javac.util.Position.NOPOS; * @test * @bug 6919889 * @summary assorted position errors in compiler syntax trees - * @run main TreePosTest -q -r -ef ./tools/javac/typeAnnotations . + * @run main TreePosTest -q -r -ef ./tools/javac/typeAnnotations -ef ./tools/javap/typeAnnotations . */ public class TreePosTest { /** From 9452aaa027adf820cd6b361c78b0dcd33d07ce70 Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Wed, 3 Feb 2010 11:33:57 -0800 Subject: [PATCH 057/107] 6922300: [308] populate the reference_info for type annotations targeting primitive class literals Co-authored-by: Michael Ernst Reviewed-by: darcy, jjg --- langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java index be75ef5c8fe..87a42506092 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java @@ -2158,6 +2158,11 @@ public class Gen extends JCTree.Visitor { code.emitop2(ldc2, makeRef(tree.pos(), tree.selected.type)); result = items.makeStackItem(pt); return; + } else if (tree.name == names.TYPE) { + // Set the annotation positions for primitive class literals + // (e.g. int.class) which have been converted to TYPE field + // access on the corresponding boxed type (e.g. Integer.TYPE). + setTypeAnnotationPositions(tree.pos); } Symbol ssym = TreeInfo.symbol(tree.selected); From aecc4f4081e3804e98a3df0e15f995581ed71b55 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Wed, 3 Feb 2010 12:28:30 -0800 Subject: [PATCH 058/107] 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 059/107] 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 060/107] 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 061/107] 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 9dff5300aeb504c227394f3949833d436093847d Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Wed, 3 Feb 2010 16:58:57 -0800 Subject: [PATCH 062/107] 6921979: add test program to verify annotations are attached to nodes as expected Reviewed-by: darcy --- .../javac/treeannotests/AnnoTreeTests.java | 44 +++ .../test/tools/javac/treeannotests/DA.java | 37 +++ .../test/tools/javac/treeannotests/TA.java | 36 +++ .../test/tools/javac/treeannotests/Test.java | 32 ++ .../javac/treeannotests/TestProcessor.java | 302 ++++++++++++++++++ 5 files changed, 451 insertions(+) create mode 100644 langtools/test/tools/javac/treeannotests/AnnoTreeTests.java create mode 100644 langtools/test/tools/javac/treeannotests/DA.java create mode 100644 langtools/test/tools/javac/treeannotests/TA.java create mode 100644 langtools/test/tools/javac/treeannotests/Test.java create mode 100644 langtools/test/tools/javac/treeannotests/TestProcessor.java diff --git a/langtools/test/tools/javac/treeannotests/AnnoTreeTests.java b/langtools/test/tools/javac/treeannotests/AnnoTreeTests.java new file mode 100644 index 00000000000..92472c1976b --- /dev/null +++ b/langtools/test/tools/javac/treeannotests/AnnoTreeTests.java @@ -0,0 +1,44 @@ +/* + * 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 + * @build DA TA Test TestProcessor + * @compile -proc:only -processor TestProcessor AnnoTreeTests.java + */ + +@Test(6) +class AnnoTreeTests { + // primitive types + @DA("int") int i1; + int i2 = (@TA("int") int) 0; + + // simple array types + @DA("int[]") int[] a1; + int @TA("int") [] a2; + int[] a3 = (@TA("int[]") int[]) a1; + int[] a4 = (int @TA("int") []) a1; + + // multi-dimensional array types + // (still to come) +} diff --git a/langtools/test/tools/javac/treeannotests/DA.java b/langtools/test/tools/javac/treeannotests/DA.java new file mode 100644 index 00000000000..b691bec5270 --- /dev/null +++ b/langtools/test/tools/javac/treeannotests/DA.java @@ -0,0 +1,37 @@ +/* + * 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.lang.annotation.*; +import static java.lang.annotation.ElementType.*; + +/** + * Annotation used by TestProcessor to indicate the expected type + * of the declaration to which the annotation is attached. + * These annotations are expected to be found in the modifiers + * field on ClassDef, MethodDef and VarDef nodes. + */ +@Target({FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) +@interface DA { + String value(); +} + diff --git a/langtools/test/tools/javac/treeannotests/TA.java b/langtools/test/tools/javac/treeannotests/TA.java new file mode 100644 index 00000000000..ba9b044db9c --- /dev/null +++ b/langtools/test/tools/javac/treeannotests/TA.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.lang.annotation.*; +import static java.lang.annotation.ElementType.*; + +/** + * Annotation used by TestProcessor to indicate the expected type + * to which the annotation is attached. + * These annotations are expected to be found in AnnotatedType nodes. + */ +@Target({TYPE_USE, TYPE_PARAMETER}) +@interface TA { + String value(); +} + diff --git a/langtools/test/tools/javac/treeannotests/Test.java b/langtools/test/tools/javac/treeannotests/Test.java new file mode 100644 index 00000000000..c1887a61bcd --- /dev/null +++ b/langtools/test/tools/javac/treeannotests/Test.java @@ -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. + */ + +/** + * Annotation used by TestProcessor to indicate the expected number of + * @DA and @TA annotations in the source tree to which the Test annotation + * is attached. + */ +@interface Test { + int value(); +} + diff --git a/langtools/test/tools/javac/treeannotests/TestProcessor.java b/langtools/test/tools/javac/treeannotests/TestProcessor.java new file mode 100644 index 00000000000..f059c668d19 --- /dev/null +++ b/langtools/test/tools/javac/treeannotests/TestProcessor.java @@ -0,0 +1,302 @@ +/* + * 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.util.*; +import javax.annotation.processing.*; +import javax.lang.model.*; +import javax.lang.model.element.*; +import javax.lang.model.util.*; +import javax.tools.*; + +import com.sun.source.util.*; +import com.sun.tools.javac.code.BoundKind; +import com.sun.tools.javac.tree.JCTree.*; +import com.sun.tools.javac.tree.TreeScanner; +import com.sun.tools.javac.tree.*; +import com.sun.tools.javac.util.List; + +/** + * Test processor used to check test programs using the @Test, @DA, and @TA + * annotations. + * + * The processor looks for elements annotated with @Test, and analyzes the + * syntax trees for those elements. Within such trees, the processor looks + * for the DA annotations on decls and TA annotations on types. + * The value of these annotations should be a simple string rendition of + * the tree node to which it is attached. + * The expected number of annotations is given by the parameter to the + * @Test annotation itself. + */ +@SupportedAnnotationTypes({"Test"}) +public class TestProcessor extends AbstractProcessor { + public SourceVersion getSupportedSourceVersion() { + return SourceVersion.latest(); + } + + /** Process trees for elements annotated with the @Test(n) annotation. */ + public boolean process(Set annos, RoundEnvironment renv) { + if (renv.processingOver()) + return true; + + Elements elements = processingEnv.getElementUtils(); + Trees trees = Trees.instance(processingEnv); + + TypeElement testAnno = elements.getTypeElement("Test"); + for (Element elem: renv.getElementsAnnotatedWith(testAnno)) { + System.err.println("ELEM: " + elem); + int count = getValue(getAnnoMirror(elem, testAnno), Integer.class); + System.err.println("count: " + count); + TreePath p = trees.getPath(elem); + JavaFileObject file = p.getCompilationUnit().getSourceFile(); + JCTree tree = (JCTree) p.getLeaf(); + System.err.println("tree: " + tree); + new TestScanner(file).check(tree, count); + } + return true; + } + + /** Get the AnnotationMirror on an element for a given annotation. */ + AnnotationMirror getAnnoMirror(Element e, TypeElement anno) { + Types types = processingEnv.getTypeUtils(); + for (AnnotationMirror m: e.getAnnotationMirrors()) { + if (types.isSameType(m.getAnnotationType(), anno.asType())) + return m; + } + return null; + } + + /** Get the value of the value element of an annotation mirror. */ + T getValue(AnnotationMirror m, Class type) { + for (Map.Entry e: m.getElementValues().entrySet()) { + ExecutableElement ee = e.getKey(); + if (ee.getSimpleName().contentEquals("value")) { + AnnotationValue av = e.getValue(); + return type.cast(av.getValue()); + } + } + return null; + } + + /** Report an error to the annotation processing system. */ + void error(String msg) { + Messager messager = processingEnv.getMessager(); + messager.printMessage(Diagnostic.Kind.ERROR, msg); + } + + /** Report an error to the annotation processing system. */ + void error(JavaFileObject file, JCTree tree, String msg) { + // need better API for reporting tree position errors to the messager + Messager messager = processingEnv.getMessager(); + String text = file.getName() + ":" + getLine(file, tree) + ": " + msg; + messager.printMessage(Diagnostic.Kind.ERROR, text); + } + + /** Get the line number for the primary position for a tree. + * The code is intended to be simple, although not necessarily efficient. + * However, note that a file manager such as JavacFileManager is likely + * to cache the results of file.getCharContent, avoiding the need to read + * the bits from disk each time this method is called. + */ + int getLine(JavaFileObject file, JCTree tree) { + try { + CharSequence cs = file.getCharContent(true); + int line = 1; + for (int i = 0; i < tree.pos; i++) { + if (cs.charAt(i) == '\n') // jtreg tests always use Unix line endings + line++; + } + return line; + } catch (IOException e) { + return -1; + } + } + + /** Scan a tree, looking for @DA and @TA annotations, and verifying that such + * annotations are attached to the expected tree node matching the string + * parameter of the annotation. + */ + class TestScanner extends TreeScanner { + /** Create a scanner for a given file. */ + TestScanner(JavaFileObject file) { + this.file = file; + } + + /** Check the annotations in a given tree. */ + void check(JCTree tree, int expectCount) { + foundCount = 0; + scan(tree); + if (foundCount != expectCount) + error(file, tree, "Wrong number of annotations found: " + foundCount + ", expected: " + expectCount); + } + + /** Check @DA annotations on a class declaration. */ + @Override + public void visitClassDef(JCClassDecl tree) { + super.visitClassDef(tree); + check(tree.mods.annotations, "DA", tree); + } + + /** Check @DA annotations on a method declaration. */ + @Override + public void visitMethodDef(JCMethodDecl tree) { + super.visitMethodDef(tree); + check(tree.mods.annotations, "DA", tree); + } + + /** Check @DA annotations on a field, parameter or local variable declaration. */ + @Override + public void visitVarDef(JCVariableDecl tree) { + super.visitVarDef(tree); + check(tree.mods.annotations, "DA", tree); + } + + /** Check @TA annotations on a type. */ + public void visitAnnotatedType(JCAnnotatedType tree) { + super.visitAnnotatedType(tree); + check(tree.annotations, "TA", tree); + } + + /** Check to see if a list of annotations contains a named annotation, and + * if so, verify the annotation is expected by comparing the value of the + * annotation's argument against the string rendition of the reference tree + * node. + * @param annos the list of annotations to be checked + * @param name the name of the annotation to be checked + * @param tree the tree against which to compare the annotations's argument + */ + void check(List annos, String name, JCTree tree) { + for (List l = annos; l.nonEmpty(); l = l.tail) { + JCAnnotation anno = l.head; + if (anno.annotationType.toString().equals(name) && (anno.args.size() == 1)) { + String expect = getStringValue(anno.args.head); + foundCount++; + System.err.println("found: " + name + " " + expect); + String found = new TypePrinter().print(tree); + if (!found.equals(expect)) + error(file, anno, "Unexpected result: expected: \"" + expect + "\", found: \"" + found + "\""); + } + } + } + + /** Get the string value of an annotation argument, which is given by the + * expression name=value. + */ + String getStringValue(JCExpression e) { + if (e.getTag() == JCTree.ASSIGN) { + JCAssign a = (JCAssign) e; + JCExpression rhs = a.rhs; + if (rhs.getTag() == JCTree.LITERAL) { + JCLiteral l = (JCLiteral) rhs; + return (String) l.value; + } + } + throw new IllegalArgumentException(e.toString()); + } + + /** The file for the tree. Used to locate errors. */ + JavaFileObject file; + /** The number of annotations that have been found. @see #check */ + int foundCount; + } + + /** Convert a type or decl tree to a reference string used by the @DA and @TA annotations. */ + class TypePrinter extends Visitor { + /** Convert a type or decl tree to a string. */ + String print(JCTree tree) { + if (tree == null) + return null; + tree.accept(this); + return result; + } + + String print(List list) { + return print(list, ", "); + } + + String print(List list, String sep) { + StringBuilder sb = new StringBuilder(); + if (list.nonEmpty()) { + sb.append(print(list.head)); + for (List l = list.tail; l.nonEmpty(); l = l.tail) { + sb.append(sep); + sb.append(print(l.head)); + } + } + return sb.toString(); + } + + @Override + public void visitClassDef(JCClassDecl tree) { + result = tree.name.toString(); + } + + @Override + public void visitMethodDef(JCMethodDecl tree) { + result = tree.name.toString(); + } + + @Override + public void visitVarDef(JCVariableDecl tree) { + tree.vartype.accept(this); + } + + @Override + public void visitAnnotatedType(JCAnnotatedType tree) { + tree.underlyingType.accept(this); + } + + @Override + public void visitTypeIdent(JCPrimitiveTypeTree tree) { + result = tree.toString(); + } + + @Override + public void visitTypeArray(JCArrayTypeTree tree) { + result = print(tree.elemtype) + "[]"; + } + + @Override + public void visitTypeApply(JCTypeApply tree) { + result = print(tree.clazz) + "<" + print(tree.arguments) + ">"; + } + + @Override + public void visitTypeParameter(JCTypeParameter tree) { + if (tree.bounds.isEmpty()) + result = tree.name.toString(); + else + result = tree.name + " extends " + print(tree.bounds, "&"); + } + + @Override + public void visitWildcard(JCWildcard tree) { + if (tree.kind.kind == BoundKind.UNBOUND) + result = tree.kind.toString(); + else + result = tree.kind + " " + print(tree.inner); + } + + private String result; + } +} From c9c72ab9da89474b5e0df87c8eab965f46a57d99 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Thu, 4 Feb 2010 10:14:28 -0800 Subject: [PATCH 063/107] 6923080: TreeScanner.visitNewClass should scan tree.typeargs Reviewed-by: darcy --- .../sun/tools/javac/code/TypeAnnotations.java | 7 - .../com/sun/tools/javac/comp/MemberEnter.java | 5 - .../JavacProcessingEnvironment.java | 4 - .../com/sun/tools/javac/tree/TreeScanner.java | 2 + langtools/test/tools/javac/tree/T6923080.java | 40 ++ .../tools/javac/tree/TreeScannerTest.java | 387 ++++++++++++++++++ 6 files changed, 429 insertions(+), 16 deletions(-) create mode 100644 langtools/test/tools/javac/tree/T6923080.java create mode 100644 langtools/test/tools/javac/tree/TreeScannerTest.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java index b3e45fe8dbd..6dcc1bb5bfe 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java @@ -240,13 +240,6 @@ public class TypeAnnotations { return p; } - @Override - public void visitApply(JCMethodInvocation tree) { - scan(tree.meth); - scan(tree.typeargs); - scan(tree.args); - } - private void setTypeAnnotationPos(List annotations, TypeAnnotationPosition position) { for (JCTypeAnnotation anno : annotations) { anno.annotation_position = position; diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java b/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java index 39dd35902a5..f4a3debe285 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java @@ -1065,11 +1065,6 @@ public class MemberEnter extends JCTree.Visitor implements Completer { super.visitNewArray(tree); } @Override - public void visitApply(JCMethodInvocation tree) { - super.visitApply(tree); - scan(tree.typeargs); - } - @Override public void visitMethodDef(JCMethodDecl tree) { annotate(tree, tree.receiverAnnotations); super.visitMethodDef(tree); diff --git a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java index ae8c188bbbd..ab46fe5eadf 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java +++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java @@ -1295,10 +1295,6 @@ public class JavacProcessingEnvironment implements ProcessingEnvironment, Closea node.sym = null; super.visitIdent(node); } - public void visitApply(JCMethodInvocation node) { - scan(node.typeargs); - super.visitApply(node); - } }; diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java index 8a07d6ea519..5721d5d2078 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java @@ -193,6 +193,7 @@ public class TreeScanner extends Visitor { } public void visitApply(JCMethodInvocation tree) { + scan(tree.typeargs); scan(tree.meth); scan(tree.args); } @@ -200,6 +201,7 @@ public class TreeScanner extends Visitor { public void visitNewClass(JCNewClass tree) { scan(tree.encl); scan(tree.clazz); + scan(tree.typeargs); scan(tree.args); scan(tree.def); } diff --git a/langtools/test/tools/javac/tree/T6923080.java b/langtools/test/tools/javac/tree/T6923080.java new file mode 100644 index 00000000000..b4a719f187e --- /dev/null +++ b/langtools/test/tools/javac/tree/T6923080.java @@ -0,0 +1,40 @@ +/* + * 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. + */ + +/* + * This file is not a regular test, but is processed by ./TreeScannerTest.java, + * which verifies the operation of the javac TreeScanner. + * @bug 6923080 + * @summary TreeScanner.visitNewClass should scan tree.typeargs + */ +class T6923080 { + void test() { + C c = new C(); // exercises TreeScanner.visitNewClass + Object o = c.m(); // exercises TreeScanner.visitApply + } + + static class C { + C() { } + T m() { return null; } + } +} diff --git a/langtools/test/tools/javac/tree/TreeScannerTest.java b/langtools/test/tools/javac/tree/TreeScannerTest.java new file mode 100644 index 00000000000..79b95510958 --- /dev/null +++ b/langtools/test/tools/javac/tree/TreeScannerTest.java @@ -0,0 +1,387 @@ +/* + * 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. + */ + + +/** + * Utility and test program to check javac's internal TreeScanner class. + * The program can be run standalone, or as a jtreg test. For info on + * command line args, run program with no args. + * + *

+ * jtreg: Note that by using the -r switch in the test description below, this test + * will process all java files in the langtools/test directory, thus implicitly + * covering any new language features that may be tested in this test suite. + */ + +/* + * @test + * @bug 6923080 + * @summary TreeScanner.visitNewClass should scan tree.typeargs + * @run main TreeScannerTest -q -r . + */ + +import java.io.*; +import java.lang.reflect.*; +import java.util.*; +import javax.tools.*; + +import com.sun.source.tree.CompilationUnitTree; +import com.sun.source.util.JavacTask; +import com.sun.tools.javac.api.JavacTool; +import com.sun.tools.javac.tree.*; +import com.sun.tools.javac.tree.JCTree.*; +import com.sun.tools.javac.util.List; + +public class TreeScannerTest { + /** + * Main entry point. + * If test.src is set, program runs in jtreg mode, and will throw an Error + * if any errors arise, otherwise System.exit will be used. In jtreg mode, + * the default base directory for file args is the value of ${test.src}. + * In jtreg mode, the -r option can be given to change the default base + * directory to the root test directory. + */ + public static void main(String... args) { + String testSrc = System.getProperty("test.src"); + File baseDir = (testSrc == null) ? null : new File(testSrc); + boolean ok = new TreeScannerTest().run(baseDir, args); + if (!ok) { + if (testSrc != null) // jtreg mode + throw new Error("failed"); + else + System.exit(1); + } + } + + /** + * Run the program. A base directory can be provided for file arguments. + * In jtreg mode, the -r option can be given to change the default base + * directory to the test root directory. For other options, see usage(). + * @param baseDir base directory for any file arguments. + * @param args command line args + * @return true if successful or in gui mode + */ + boolean run(File baseDir, String... args) { + if (args.length == 0) { + usage(System.out); + return true; + } + + ArrayList files = new ArrayList(); + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.equals("-q")) + quiet = true; + else if (arg.equals("-v")) + verbose = true; + else if (arg.equals("-r")) { + File d = baseDir; + while (!new File(d, "TEST.ROOT").exists()) { + d = d.getParentFile(); + if (d == null) + throw new Error("cannot find TEST.ROOT"); + } + baseDir = d; + } + else if (arg.startsWith("-")) + throw new Error("unknown option: " + arg); + else { + while (i < args.length) + files.add(new File(baseDir, args[i++])); + } + } + + for (File file: files) { + if (file.exists()) + test(file); + else + error("File not found: " + file); + } + + if (fileCount != 1) + System.err.println(fileCount + " files read"); + if (errors > 0) + System.err.println(errors + " errors"); + + return (errors == 0); + } + + /** + * Print command line help. + * @param out output stream + */ + void usage(PrintStream out) { + out.println("Usage:"); + out.println(" java TreeScannerTest options... files..."); + out.println(""); + out.println("where options include:"); + out.println("-q Quiet: don't report on inapplicable files"); + out.println("-v Verbose: report on files as they are being read"); + out.println(""); + out.println("files may be directories or files"); + out.println("directories will be scanned recursively"); + out.println("non java files, or java files which cannot be parsed, will be ignored"); + out.println(""); + } + + /** + * Test a file. If the file is a directory, it will be recursively scanned + * for java files. + * @param file the file or directory to test + */ + void test(File file) { + if (file.isDirectory()) { + for (File f: file.listFiles()) { + test(f); + } + return; + } + + if (file.isFile() && file.getName().endsWith(".java")) { + try { + if (verbose) + System.err.println(file); + fileCount++; + ScanTester t = new ScanTester(); + t.test(read(file)); + } catch (ParseException e) { + if (!quiet) { + error("Error parsing " + file + "\n" + e.getMessage()); + } + } catch (IOException e) { + error("Error reading " + file + ": " + e); + } + return; + } + + if (!quiet) + error("File " + file + " ignored"); + } + + /** + * Read a file. + * @param file the file to be read + * @return the tree for the content of the file + * @throws IOException if any IO errors occur + * @throws TreePosTest.ParseException if any errors occur while parsing the file + */ + JCCompilationUnit read(File file) throws IOException, ParseException { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + Reporter r = new Reporter(pw); + JavacTool tool = JavacTool.create(); + StandardJavaFileManager fm = tool.getStandardFileManager(r, null, null); + Iterable files = fm.getJavaFileObjects(file); + JavacTask task = tool.getTask(pw, fm, r, Collections.emptyList(), null, files); + Iterable trees = task.parse(); + pw.flush(); + if (r.errors > 0) + throw new ParseException(sw.toString()); + Iterator iter = trees.iterator(); + if (!iter.hasNext()) + throw new Error("no trees found"); + JCCompilationUnit t = (JCCompilationUnit) iter.next(); + if (iter.hasNext()) + throw new Error("too many trees found"); + return t; + } + + /** + * Report an error. When the program is complete, the program will either + * exit or throw an Error if any errors have been reported. + * @param msg the error message + */ + void error(String msg) { + System.err.println(msg); + errors++; + } + + /** + * Report an error for a specific tree node. + * @param file the source file for the tree + * @param t the tree node + * @param label an indication of the error + */ + void error(JavaFileObject file, JCTree t, String msg) { + error(file.getName() + ":" + getLine(file, t) + ": " + msg + " " + trim(t, 64)); + } + + /** + * Get a trimmed string for a tree node, with normalized white space and limited length. + */ + String trim(JCTree t, int len) { + String s = t.toString().replaceAll("[\r\n]+", " ").replaceAll(" +", " "); + return (s.length() < len) ? s : s.substring(0, len); + } + + /** Number of files that have been analyzed. */ + int fileCount; + /** Number of errors reported. */ + int errors; + /** Flag: don't report irrelevant files. */ + boolean quiet; + /** Flag: report files as they are processed. */ + boolean verbose; + + /** + * Main class for testing operation of tree scanner. + * The set of nodes found by the scanner are compared + * against the set of nodes found by reflection. + */ + private class ScanTester extends TreeScanner { + /** Main entry method for the class. */ + void test(JCCompilationUnit tree) { + sourcefile = tree.sourcefile; + found = new HashSet(); + scan(tree); + expect = new HashSet(); + reflectiveScan(tree); + if (found.equals(expect)) + return; + + error("Differences found for " + tree.sourcefile.getName()); + + if (found.size() != expect.size()) + error("Size mismatch; found: " + found.size() + ", expected: " + expect.size()); + + Set missing = new HashSet(); + missing.addAll(expect); + missing.removeAll(found); + for (JCTree t: missing) + error(tree.sourcefile, t, "missing"); + + Set excess = new HashSet(); + excess.addAll(found); + excess.removeAll(expect); + for (JCTree t: excess) + error(tree.sourcefile, t, "unexpected"); + } + + /** Record all tree nodes found by scanner. */ + @Override + public void scan(JCTree tree) { + if (tree == null) + return; + System.err.println("FOUND: " + tree.getTag() + " " + trim(tree, 64)); + found.add(tree); + super.scan(tree); + } + + /** record all tree nodes found by reflection. */ + public void reflectiveScan(Object o) { + if (o == null) + return; + if (o instanceof JCTree) { + JCTree tree = (JCTree) o; + System.err.println("EXPECT: " + tree.getTag() + " " + trim(tree, 64)); + expect.add(tree); + for (Field f: getFields(tree)) { + try { + //System.err.println("FIELD: " + f.getName()); + reflectiveScan(f.get(tree)); + } catch (IllegalAccessException e) { + error(e.toString()); + } + } + } else if (o instanceof List) { + List list = (List) o; + for (Object item: list) + reflectiveScan(item); + } else + error("unexpected item: " + o); + } + + JavaFileObject sourcefile; + Set found; + Set expect; + } + + /** + * Thrown when errors are found parsing a java file. + */ + private static class ParseException extends Exception { + ParseException(String msg) { + super(msg); + } + } + + /** + * DiagnosticListener to report diagnostics and count any errors that occur. + */ + private static class Reporter implements DiagnosticListener { + Reporter(PrintWriter out) { + this.out = out; + } + + public void report(Diagnostic diagnostic) { + out.println(diagnostic); + switch (diagnostic.getKind()) { + case ERROR: + errors++; + } + } + int errors; + PrintWriter out; + } + + /** + * Get the set of fields for a tree node that may contain child tree nodes. + * These are the fields that are subtypes of JCTree or List. + * The results are cached, based on the tree's tag. + */ + Set getFields(JCTree tree) { + Set fields = map.get(tree.getTag()); + if (fields == null) { + fields = new HashSet(); + for (Field f: tree.getClass().getFields()) { + Class fc = f.getType(); + if (JCTree.class.isAssignableFrom(fc) || List.class.isAssignableFrom(fc)) + fields.add(f); + } + map.put(tree.getTag(), fields); + } + return fields; + } + // where + Map> map = new HashMap>(); + + /** Get the line number for the primary position for a tree. + * The code is intended to be simple, although not necessarily efficient. + * However, note that a file manager such as JavacFileManager is likely + * to cache the results of file.getCharContent, avoiding the need to read + * the bits from disk each time this method is called. + */ + int getLine(JavaFileObject file, JCTree tree) { + try { + CharSequence cs = file.getCharContent(true); + int line = 1; + for (int i = 0; i < tree.pos; i++) { + if (cs.charAt(i) == '\n') // jtreg tests always use Unix line endings + line++; + } + return line; + } catch (IOException e) { + return -1; + } + } +} From 22ce62f2d16eb6ae9be85e3ad6ad668ed67ba7ea Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Thu, 4 Feb 2010 11:16:23 -0800 Subject: [PATCH 064/107] 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 065/107] 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 066/107] 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 067/107] 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 068/107] 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 069/107] 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 070/107] 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 071/107] 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 072/107] 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 94ccfa4187790387e2a9762150e9eaa92b2ac594 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Fri, 5 Feb 2010 12:27:12 -0800 Subject: [PATCH 073/107] 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 c73000ad8f2b505d493ef080d9a06eb1ae3e23af Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Sun, 7 Feb 2010 11:07:50 +0100 Subject: [PATCH 074/107] 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 075/107] 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 076/107] 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 077/107] 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 078/107] 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 079/107] 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 080/107] 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 081/107] 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 082/107] 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 083/107] 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 084/107] 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 085/107] 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 086/107] 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 087/107] 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 088/107] 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 089/107] 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 090/107] 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 091/107] 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 092/107] 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 093/107] 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 094/107] 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 095/107] 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 096/107] 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 097/107] 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 098/107] 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 099/107] 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 100/107] 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 101/107] 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 102/107] 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 103/107] 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 104/107] 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 105/107] 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 106/107] 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 107/107] 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