提交 dcd7096e 编写于 作者: L lana

Merge

...@@ -136,3 +136,6 @@ f1ec21b8142168ff40f3278d2f6b5fe4bd5f3b26 jdk8-b09 ...@@ -136,3 +136,6 @@ f1ec21b8142168ff40f3278d2f6b5fe4bd5f3b26 jdk8-b09
09fd2067f715e4505c44b01c301258a4e8f8964e jdk8-b12 09fd2067f715e4505c44b01c301258a4e8f8964e jdk8-b12
4cb2e8679b27432854690cb688ea06d3b2d8e008 jdk8-b13 4cb2e8679b27432854690cb688ea06d3b2d8e008 jdk8-b13
99632935785e2038b2fc836da9f2ede69dea294b jdk8-b14 99632935785e2038b2fc836da9f2ede69dea294b jdk8-b14
3c248d0e2c486624cc0d7aba1e4df45ae5774ff7 jdk8-b15
b71d1acfae5240d8c1359443cd02b5ddb587231c jdk8-b17
929597c6e777f742ad252660045ebaa4a3ea4772 jdk8-b16
...@@ -140,71 +140,13 @@ FILES_2D_c = \ ...@@ -140,71 +140,13 @@ FILES_2D_c = \
debug_trace.c \ debug_trace.c \
debug_util.c debug_util.c
# These files rely on motif to be built, and should not be included
# in a headless build.
#FILES_MOTIF_c = \
#keep awt_AWTEvent.c \
# awt_Button.c \
# awt_Canvas.c \
# awt_Checkbox.c \
#keep .h awt_Component.c \
#keep .h awt_Cursor.c \
# awt_DataTransferer.c \
# awt_DrawingSurface.c \
# awt_Event.c \
# awt_FileDialog.c \
# awt_GlobalCursorManager.c \
# awt_GraphicsEnv.c \
# awt_InputMethod.c \
#keep awt_Insets.c \
# awt_KeyboardFocusManager.c \
# awt_Label.c \
# awt_List.c \
# awt_Menu.c \
# awt_MenuBar.c \
# awt_MenuComponent.c \
# awt_MenuItem.c \
# awt_motif.c \
# awt_Plugin.c \
# awt_PopupMenu.c \
# awt_Robot.c \
# awt_Scrollbar.c \
# awt_ScrollPane.c \
# awt_Selection.c \
# awt_UNIXToolkit.c \
# awt_TextArea.c \
# awt_TextField.c \
# awt_TopLevel.c \
# awt_mgrsel.c \
# awt_util.c \
# awt_wm.c \
# awt_XmDnD.c \
# awt_dnd.c \
# awt_dnd_ds.c \
# awt_dnd_dt.c \
# canvas.c \
# cursor.c \
# multi_font.c \
# robot_common.c \
# list.c \
# multiVis.c \
# XDrawingArea.c \
# MouseInfo.c \
# awt_xembed.c \
# awt_xembed_server.c \
# gtk2_interface.c \
# swing_GTKEngine.c \
# swing_GTKStyle.c
# These files are required to be built, with or without motif. Some of # These files are required to be built, with or without motif. Some of
# these are only dependent on X11, and some contain native source that # these are only dependent on X11, and some contain native source that
# is required, even in a headless build. # is required, even in a headless build.
FILES_NO_MOTIF_c = \ FILES_NO_MOTIF_c = \
awt_Font.c \ awt_Font.c \
awt_MToolkit.c \ HeadlessToolkit.c \
fontpath.c \ fontpath.c \
VDrawingArea.c \ VDrawingArea.c \
X11Color.c \ X11Color.c \
......
...@@ -61,11 +61,8 @@ FILES_export = \ ...@@ -61,11 +61,8 @@ FILES_export = \
sun/awt/image/BufImgSurfaceData.java \ sun/awt/image/BufImgSurfaceData.java \
sun/awt/image/DataBufferNative.java \ sun/awt/image/DataBufferNative.java \
\ \
sun/awt/motif/X11FontMetrics.java \
sun/awt/X11InputMethod.java \ sun/awt/X11InputMethod.java \
sun/awt/motif/MFontConfiguration.java \ sun/awt/motif/MFontConfiguration.java \
sun/awt/motif/MFontPeer.java \
sun/awt/motif/MToolkit.java \
sun/awt/DebugSettings.java \ sun/awt/DebugSettings.java \
sun/awt/EmbeddedFrame.java \ sun/awt/EmbeddedFrame.java \
sun/awt/PlatformFont.java \ sun/awt/PlatformFont.java \
...@@ -93,7 +90,6 @@ FILES_export = \ ...@@ -93,7 +90,6 @@ FILES_export = \
sun/java2d/cmm/ColorTransform.java \ sun/java2d/cmm/ColorTransform.java \
sun/awt/datatransfer/DataTransferer.java \ sun/awt/datatransfer/DataTransferer.java \
sun/awt/dnd/SunDragSourceContextPeer.java \ sun/awt/dnd/SunDragSourceContextPeer.java \
sun/awt/motif/MToolkitThreadBlockedHandler.java \
sun/java2d/opengl/OGLBlitLoops.java \ sun/java2d/opengl/OGLBlitLoops.java \
sun/java2d/opengl/OGLContext.java \ sun/java2d/opengl/OGLContext.java \
sun/java2d/opengl/OGLMaskFill.java \ sun/java2d/opengl/OGLMaskFill.java \
......
...@@ -31,7 +31,6 @@ SUNWprivate_1.1 { ...@@ -31,7 +31,6 @@ SUNWprivate_1.1 {
global: global:
JNI_OnLoad; JNI_OnLoad;
#Java_sun_awt_motif_MComponentPeer_restoreFocus;
Java_sun_awt_DefaultMouseInfoPeer_fillPointWithCoords; Java_sun_awt_DefaultMouseInfoPeer_fillPointWithCoords;
Java_sun_awt_DefaultMouseInfoPeer_isWindowUnderMouse; Java_sun_awt_DefaultMouseInfoPeer_isWindowUnderMouse;
Java_java_awt_AWTEvent_nativeSetSource; Java_java_awt_AWTEvent_nativeSetSource;
...@@ -56,230 +55,11 @@ SUNWprivate_1.1 { ...@@ -56,230 +55,11 @@ SUNWprivate_1.1 {
Java_sun_awt_UNIXToolkit_load_1stock_1icon; Java_sun_awt_UNIXToolkit_load_1stock_1icon;
Java_sun_awt_UNIXToolkit_load_1gtk_1icon; Java_sun_awt_UNIXToolkit_load_1gtk_1icon;
Java_sun_awt_UNIXToolkit_nativeSync; Java_sun_awt_UNIXToolkit_nativeSync;
#Java_sun_awt_motif_MButtonPeer_create;
#Java_sun_awt_motif_MButtonPeer_setLabel;
#Java_sun_awt_motif_MPanelPeer_pEnsureIndex;
#Java_sun_awt_motif_MPanelPeer_pRestack;
#Java_sun_awt_motif_MCanvasPeer_create;
#Java_sun_awt_motif_MCanvasPeer_initIDs;
#Java_sun_awt_motif_MCanvasPeer_resetTargetGC;
#Java_sun_awt_motif_MCheckboxMenuItemPeer_pSetState;
#Java_sun_awt_motif_MCheckboxPeer_create;
#Java_sun_awt_motif_MCheckboxPeer_setCheckboxGroup;
#Java_sun_awt_motif_MCheckboxPeer_setLabel;
#Java_sun_awt_motif_MCheckboxPeer_pSetState;
#Java_sun_awt_motif_MCheckboxPeer_pGetState;
#Java_sun_awt_motif_MChoicePeer_addItem;
#Java_sun_awt_motif_MChoicePeer_appendItems;
#Java_sun_awt_motif_MChoicePeer_create;
#Java_sun_awt_motif_MChoicePeer_pReshape;
#Java_sun_awt_motif_MChoicePeer_remove;
#Java_sun_awt_motif_MChoicePeer_removeAll;
#Java_sun_awt_motif_MChoicePeer_setBackground;
#Java_sun_awt_motif_MChoicePeer_pSelect;
#Java_sun_awt_motif_MChoicePeer_setFont;
#Java_sun_awt_motif_MChoicePeer_setForeground;
#Java_sun_awt_motif_MComponentPeer_addNativeDropTarget;
#Java_sun_awt_motif_MComponentPeer_getNativeColor;
#Java_sun_awt_motif_MComponentPeer_getWindow;
#Java_sun_awt_motif_MComponentPeer_pDisable;
#Java_sun_awt_motif_MComponentPeer_pDispose;
#Java_sun_awt_motif_MComponentPeer_pEnable;
#Java_sun_awt_motif_MComponentPeer_pGetLocationOnScreen;
#Java_sun_awt_motif_MComponentPeer_pGetLocationOnScreen2;
#Java_sun_awt_motif_MComponentPeer_pHide;
#Java_sun_awt_motif_MComponentPeer_pInitialize;
#Java_sun_awt_motif_MComponentPeer_pMakeCursorVisible;
#Java_sun_awt_motif_MComponentPeer_pReshape;
#Java_sun_awt_motif_MComponentPeer_pShow;
#Java_sun_awt_motif_MComponentPeer_removeNativeDropTarget;
#Java_sun_awt_motif_MComponentPeer_pSetBackground;
#Java_sun_awt_motif_MComponentPeer_pSetFont;
#Java_sun_awt_motif_MComponentPeer_processSynchronousLightweightTransfer;
#Java_sun_awt_motif_MComponentPeer__1requestFocus;
#Java_sun_awt_motif_MComponentPeer_getNativeFocusedWindow;
#Java_sun_awt_motif_MCheckboxMenuItemPeer_getState;
#Java_sun_awt_motif_MComponentPeer_pSetForeground;
#Java_sun_awt_motif_MDragSourceContextPeer_startDrag;
#Java_sun_awt_motif_MDragSourceContextPeer_setNativeCursor;
#Java_sun_awt_motif_MDropTargetContextPeer_addTransfer;
#Java_sun_awt_motif_MDropTargetContextPeer_dropDone;
#Java_sun_awt_motif_MDropTargetContextPeer_startTransfer;
#Java_sun_awt_motif_X11DragSourceContextPeer_startDrag;
#Java_sun_awt_motif_X11DragSourceContextPeer_setNativeCursor;
#Java_sun_awt_motif_X11DropTargetContextPeer_sendResponse;
#Java_sun_awt_motif_X11DropTargetContextPeer_dropDone;
#Java_sun_awt_motif_X11DropTargetContextPeer_getData;
#Java_sun_awt_motif_MEmbeddedFramePeer_NEFcreate;
#Java_sun_awt_motif_MEmbeddedFramePeer_pShowImpl;
#Java_sun_awt_motif_MEmbeddedFramePeer_requestXEmbedFocus;
#Java_sun_awt_motif_MEmbeddedFramePeer_isXEmbedApplicationActive;
#Java_sun_awt_motif_MEmbeddedFramePeer_isXEmbedActive;
#Java_sun_awt_motif_MEmbeddedFramePeer_synthesizeFocusInOut;
#Java_sun_awt_motif_MEmbeddedFramePeer_pReshapePrivate;
#Java_sun_awt_motif_MEmbeddedFramePeer_getBoundsPrivate;
#Java_sun_awt_motif_MEmbeddedFrame_getWidget;
#Java_sun_awt_motif_MEmbeddedFrame_mapWidget;
#Java_sun_awt_motif_MEmbedCanvasPeer_forwardEventToEmbedded;
#Java_sun_awt_motif_MFramePeer_pSetIconImage___3B_3I_3SII;
#Java_sun_awt_motif_MFileDialogPeer_create;
#Java_sun_awt_motif_MFileDialogPeer_pDispose;
#Java_sun_awt_motif_MFileDialogPeer_pHide;
#Java_sun_awt_motif_MFileDialogPeer_pReshape;
#Java_sun_awt_motif_MFileDialogPeer_pShow;
#Java_sun_awt_motif_MFileDialogPeer_setFileEntry;
#Java_sun_awt_motif_MFileDialogPeer_setFont;
#Java_sun_awt_motif_MFramePeer_pGetIconSize;
#Java_sun_awt_motif_MGlobalCursorManager_cacheInit;
#Java_sun_awt_motif_MGlobalCursorManager_findComponentAt;
#Java_sun_awt_motif_MGlobalCursorManager_findHeavyweightUnderCursor;
#Java_sun_awt_motif_MGlobalCursorManager_getCursorPos;
#Java_sun_awt_motif_MGlobalCursorManager_getLocationOnScreen;
#Java_sun_awt_motif_MLabelPeer_create;
#Java_sun_awt_motif_MLabelPeer_setAlignment;
#Java_sun_awt_motif_MLabelPeer_setText;
#Java_sun_awt_motif_MListPeer_addItem;
#Java_sun_awt_motif_MListPeer_create;
#Java_sun_awt_motif_MListPeer_delItems;
#Java_sun_awt_motif_MListPeer_deselect;
#Java_sun_awt_motif_MListPeer_isSelected;
#Java_sun_awt_motif_MListPeer_makeVisible;
#Java_sun_awt_motif_MListPeer_nativeHandleMouseWheel;
#Java_sun_awt_motif_MListPeer_select;
#Java_sun_awt_motif_MListPeer_setMultipleSelections;
#Java_sun_awt_motif_MMenuBarPeer_create;
#Java_sun_awt_motif_MMenuItemPeer_createMenuItem;
#Java_sun_awt_motif_MMenuItemPeer_pDisable;
#Java_sun_awt_motif_MMenuItemPeer_pDispose;
#Java_sun_awt_motif_MMenuItemPeer_pEnable;
#Java_sun_awt_motif_MMenuItemPeer_pSetLabel;
#Java_sun_awt_motif_MMenuPeer_createMenu;
#Java_sun_awt_motif_MMenuPeer_createSubMenu;
#Java_sun_awt_motif_MMenuPeer_pDispose;
#Java_sun_awt_motif_MPopupMenuPeer_createMenu;
#Java_sun_awt_motif_MPopupMenuPeer_pDispose;
#Java_sun_awt_motif_MPopupMenuPeer_pShow;
#Java_sun_awt_motif_MRobotPeer_getRGBPixelsImpl;
#Java_sun_awt_motif_MRobotPeer_keyPressImpl;
#Java_sun_awt_motif_MRobotPeer_keyReleaseImpl;
#Java_sun_awt_motif_MRobotPeer_mouseMoveImpl;
#Java_sun_awt_motif_MRobotPeer_mousePressImpl;
#Java_sun_awt_motif_MRobotPeer_mouseReleaseImpl;
#Java_sun_awt_motif_MRobotPeer_mouseWheelImpl;
#Java_sun_awt_motif_MRobotPeer_setup;
#Java_sun_awt_motif_MScrollbarPeer_create;
#Java_sun_awt_motif_MScrollbarPeer_setLineIncrement;
#Java_sun_awt_motif_MScrollbarPeer_setPageIncrement;
#Java_sun_awt_motif_MScrollbarPeer_pSetValues;
#Java_sun_awt_motif_MScrollPanePeer_create;
#Java_sun_awt_motif_MScrollPanePeer_pGetBlockIncrement;
#Java_sun_awt_motif_MScrollPanePeer_pGetScrollbarSpace;
#Java_sun_awt_motif_MScrollPanePeer_pGetShadow;
#Java_sun_awt_motif_MScrollPanePeer_pInsets;
#Java_sun_awt_motif_MScrollPanePeer_pSetIncrement;
#Java_sun_awt_motif_MScrollPanePeer_pSetScrollChild;
#Java_sun_awt_motif_MScrollPanePeer_setScrollPosition;
#Java_sun_awt_motif_MScrollPanePeer_setTypedValue;
#Java_sun_awt_motif_MTextAreaPeer_initIDs;
#Java_sun_awt_motif_MTextAreaPeer_pCreate;
#Java_sun_awt_motif_MTextAreaPeer_getCaretPosition;
#Java_sun_awt_motif_MTextAreaPeer_getExtraHeight;
#Java_sun_awt_motif_MTextAreaPeer_getExtraWidth;
#Java_sun_awt_motif_MTextAreaPeer_getSelectionEnd;
#Java_sun_awt_motif_MTextAreaPeer_getSelectionStart;
#Java_sun_awt_motif_MTextAreaPeer_getText;
#Java_sun_awt_motif_MTextAreaPeer_insert;
#Java_sun_awt_motif_MTextAreaPeer_nativeHandleMouseWheel;
#Java_sun_awt_motif_MTextAreaPeer_pMakeCursorVisible;
#Java_sun_awt_motif_MTextAreaPeer_pSetEditable;
#Java_sun_awt_motif_MTextAreaPeer_pShow2;
#Java_sun_awt_motif_MTextAreaPeer_replaceRange;
#Java_sun_awt_motif_MTextAreaPeer_select;
#Java_sun_awt_motif_MTextAreaPeer_setCaretPosition;
#Java_sun_awt_motif_MTextAreaPeer_setFont;
#Java_sun_awt_motif_MTextAreaPeer_setText;
#Java_sun_awt_motif_MTextAreaPeer_setTextBackground;
#Java_sun_awt_motif_MTextFieldPeer_initIDs;
#Java_sun_awt_motif_MTextFieldPeer_pCreate;
#Java_sun_awt_motif_MTextFieldPeer_getCaretPosition;
#Java_sun_awt_motif_MTextFieldPeer_getSelectionEnd;
#Java_sun_awt_motif_MTextFieldPeer_getSelectionStart;
#Java_sun_awt_motif_MTextFieldPeer_getText;
#Java_sun_awt_motif_MTextFieldPeer_insertReplaceText;
#Java_sun_awt_motif_MTextFieldPeer_preDispose;
#Java_sun_awt_motif_MTextFieldPeer_pSetEditable;
#Java_sun_awt_motif_MTextFieldPeer_select;
#Java_sun_awt_motif_MTextFieldPeer_setCaretPosition;
#Java_sun_awt_motif_MTextFieldPeer_setEchoChar;
#Java_sun_awt_motif_MTextFieldPeer_setFont;
#Java_sun_awt_motif_MTextFieldPeer_setText;
Java_sun_awt_motif_MToolkit_beep;
Java_sun_awt_motif_MToolkit_getLockingKeyStateNative;
Java_sun_awt_motif_MToolkit_getMulticlickTime;
Java_sun_awt_motif_MToolkit_getNumMouseButtons;
Java_sun_awt_motif_MToolkit_loadXSettings;
Java_sun_awt_motif_MToolkit_getScreenHeight;
Java_sun_awt_motif_MToolkit_getScreenResolution;
Java_sun_awt_motif_MToolkit_getScreenWidth;
Java_sun_awt_motif_MToolkit_init;
Java_sun_awt_motif_MToolkit_isDynamicLayoutSupportedNative;
Java_sun_awt_motif_MToolkit_isFrameStateSupported;
Java_sun_awt_motif_MToolkit_loadSystemColors;
Java_sun_awt_motif_MToolkit_makeColorModel;
Java_sun_awt_motif_MToolkit_run;
Java_sun_awt_motif_MToolkit_isAlwaysOnTopSupported;
Java_sun_awt_motif_MToolkit_getEventNumber;
Java_sun_awt_motif_MToolkit_updateSyncSelection;
Java_sun_awt_motif_MToolkit_isSyncUpdated;
Java_sun_awt_motif_MToolkit_isSyncFailed;
Java_sun_awt_motif_MToolkit_nativeUnGrab;
Java_sun_awt_motif_MToolkit_nativeGrab;
Java_sun_awt_motif_MToolkit_getWMName;
Java_sun_awt_motif_MWindowAttributes_initIDs;
#Java_sun_awt_motif_MWindowPeer_pDispose;
#Java_sun_awt_motif_MWindowPeer_pHide;
#Java_sun_awt_motif_MWindowPeer_pReshape;
#Java_sun_awt_motif_MWindowPeer_pSetTitle;
#Java_sun_awt_motif_MWindowPeer_pShow;
#Java_sun_awt_motif_MWindowPeer_setResizable;
#Java_sun_awt_motif_MWindowPeer_toBack;
#Java_sun_awt_motif_MWindowPeer_addTextComponentNative;
#Java_sun_awt_motif_MWindowPeer_getState;
#Java_sun_awt_motif_MWindowPeer_pSetIMMOption;
#Java_sun_awt_motif_MWindowPeer_pSetMenuBar;
#Java_sun_awt_motif_MWindowPeer_pShowModal;
#Java_sun_awt_motif_MWindowPeer_removeTextComponentNative;
#Java_sun_awt_motif_MWindowPeer_setSaveUnder;
#Java_sun_awt_motif_MWindowPeer_setState;
#Java_sun_awt_motif_MWindowPeer_resetTargetGC;
#Java_sun_awt_motif_MWindowPeer_registerX11DropTarget;
#Java_sun_awt_motif_MWindowPeer_unregisterX11DropTarget;
#Java_sun_awt_motif_MWindowPeer_updateAlwaysOnTop;
#Java_sun_awt_motif_MWindowPeer_setFocusableWindow;
#Java_sun_awt_motif_MWindowPeer_pToFront;
#Java_sun_awt_motif_MCustomCursor_cacheInit;
#Java_sun_awt_motif_MCustomCursor_createCursor;
#Java_sun_awt_motif_MCustomCursor_queryBestCursor;
Java_sun_awt_motif_X11FontMetrics_bytesWidth;
Java_sun_awt_motif_X11FontMetrics_getMFCharsWidth;
Java_sun_awt_motif_X11FontMetrics_init;
Java_sun_awt_X11InputMethod_disposeXIC; Java_sun_awt_X11InputMethod_disposeXIC;
Java_sun_awt_X11InputMethod_isCompositionEnabledNative; Java_sun_awt_X11InputMethod_isCompositionEnabledNative;
Java_sun_awt_X11InputMethod_resetXIC; Java_sun_awt_X11InputMethod_resetXIC;
Java_sun_awt_X11InputMethod_setCompositionEnabledNative; Java_sun_awt_X11InputMethod_setCompositionEnabledNative;
Java_sun_awt_X11InputMethod_turnoffStatusWindow; Java_sun_awt_X11InputMethod_turnoffStatusWindow;
#Java_sun_awt_motif_MInputMethod_openXIMNative;
#Java_sun_awt_motif_MInputMethod_configureStatusAreaNative;
#Java_sun_awt_motif_MInputMethod_createXICNative;
#Java_sun_awt_motif_MInputMethod_reconfigureXICNative;
#Java_sun_awt_motif_MInputMethod_setXICFocusNative;
#Java_sun_awt_motif_X11Clipboard_getClipboardData;
#Java_sun_awt_motif_X11Clipboard_getClipboardFormats;
#Java_sun_awt_motif_X11Clipboard_registerClipboardViewer;
#Java_sun_awt_motif_X11Clipboard_unregisterClipboardViewer;
#Java_sun_awt_motif_X11Selection_init;
#Java_sun_awt_motif_X11Selection_pGetSelectionOwnership;
#Java_sun_awt_motif_X11Selection_clearNativeContext;
Java_sun_awt_SunToolkit_closeSplashScreen; Java_sun_awt_SunToolkit_closeSplashScreen;
Java_sun_awt_PlatformFont_initIDs; Java_sun_awt_PlatformFont_initIDs;
Java_sun_awt_X11GraphicsConfig_init; Java_sun_awt_X11GraphicsConfig_init;
...@@ -313,25 +93,6 @@ SUNWprivate_1.1 { ...@@ -313,25 +93,6 @@ SUNWprivate_1.1 {
Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama; Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama;
Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint; Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint;
Java_sun_awt_X11GraphicsEnvironment_initXRender; Java_sun_awt_X11GraphicsEnvironment_initXRender;
#Java_sun_awt_motif_MEmbedCanvasPeer_initXEmbedServer;
#Java_sun_awt_motif_MEmbedCanvasPeer_destroyXEmbedServer;
#Java_sun_awt_motif_MEmbedCanvasPeer_isXEmbedActive;
#Java_sun_awt_motif_MEmbedCanvasPeer_initDispatching;
#Java_sun_awt_motif_MEmbedCanvasPeer_endDispatching;
#Java_sun_awt_motif_MEmbedCanvasPeer_embedChild;
#Java_sun_awt_motif_MEmbedCanvasPeer_childDestroyed;
#Java_sun_awt_motif_MEmbedCanvasPeer_getEmbedPreferredSize;
#Java_sun_awt_motif_MEmbedCanvasPeer_getEmbedMinimumSize;
#Java_sun_awt_motif_MEmbedCanvasPeer_getClientBounds;
#Java_sun_awt_motif_MEmbedCanvasPeer_notifyChildEmbedded;
#Java_sun_awt_motif_MEmbedCanvasPeer_detachChild;
#Java_sun_awt_motif_MEmbedCanvasPeer_forwardKeyEvent;
#Java_sun_awt_motif_MEmbedCanvasPeer_getAWTKeyCodeForKeySym;
#Java_sun_awt_motif_MEmbedCanvasPeer_sendMessage__I;
#Java_sun_awt_motif_MEmbedCanvasPeer_sendMessage__IJJJ;
#Java_sun_awt_motif_MEmbedCanvasPeer_getWindow;
#Java_sun_awt_motif_GrabbedKey_initKeySymAndModifiers;
#Java_sun_awt_motif_MEmbeddedFramePeer_traverseOut;
Java_java_awt_AWTEvent_initIDs; Java_java_awt_AWTEvent_initIDs;
Java_java_awt_Button_initIDs; Java_java_awt_Button_initIDs;
Java_java_awt_Container_initIDs; Java_java_awt_Container_initIDs;
...@@ -345,41 +106,6 @@ SUNWprivate_1.1 { ...@@ -345,41 +106,6 @@ SUNWprivate_1.1 {
Java_java_awt_Insets_initIDs; Java_java_awt_Insets_initIDs;
Java_java_awt_TextField_initIDs; Java_java_awt_TextField_initIDs;
Java_java_awt_Window_initIDs; Java_java_awt_Window_initIDs;
#Java_sun_awt_motif_MCheckboxPeer_getIndicatorSize;
#Java_sun_awt_motif_MCheckboxPeer_getSpacing;
#Java_sun_awt_motif_MChoicePeer_freeNativeData;
#Java_sun_awt_motif_MComponentPeer_getComponents_1NoClientCode;
#Java_sun_awt_motif_MComponentPeer_getParent_1NoClientCode;
#Java_sun_awt_motif_MComponentPeer_initIDs;
#Java_sun_awt_motif_MComponentPeer_nativeHandleEvent;
#Java_sun_awt_motif_MComponentPeer_pSetCursor;
#Java_sun_awt_motif_MComponentPeer_pSetInnerForeground;
#Java_sun_awt_motif_MComponentPeer_pSetScrollbarBackground;
#Java_sun_awt_motif_MComponentPeer_setTargetBackground;
#Java_sun_awt_motif_MDataTransferer_dragQueryFile;
#Java_sun_awt_motif_MDataTransferer_getAtomForTarget;
#Java_sun_awt_motif_MDataTransferer_getTargetNameForAtom;
#Java_sun_awt_motif_MFileDialogPeer_insertReplaceFileDialogText;
Java_sun_awt_motif_MFontPeer_initIDs;
#Java_sun_awt_motif_MListPeer_setBackground;
#Java_sun_awt_motif_MMenuBarPeer_initIDs;
#Java_sun_awt_motif_MMenuBarPeer_pDispose;
#Java_sun_awt_motif_MMenuItemPeer_getParent_1NoClientCode;
#Java_sun_awt_motif_MMenuItemPeer_initIDs;
#Java_sun_awt_motif_MMenuItemPeer_pSetShortcut;
#Java_sun_awt_motif_MPopupMenuPeer_initIDs;
#Java_sun_awt_motif_MScrollbarPeer_initIDs;
#Java_sun_awt_motif_MScrollPanePeer_initIDs;
#Java_sun_awt_motif_MTextAreaPeer_pSetCursor;
Java_sun_awt_motif_MToolkit_shutdown;
#Java_sun_awt_motif_MWindowPeer_initIDs;
#Java_sun_awt_motif_MWindowPeer_pCreate;
#Java_sun_awt_motif_MWindowPeer_wrapInSequenced;
Java_sun_awt_motif_X11FontMetrics_initIDs;
#Java_sun_awt_X11InputMethod_initIDs;
#Java_sun_awt_motif_X11Selection_initIDs;
Java_sun_awt_motif_MToolkitThreadBlockedHandler_enter;
Java_sun_awt_motif_MToolkitThreadBlockedHandler_exit;
Java_sun_awt_X11GraphicsConfig_init; Java_sun_awt_X11GraphicsConfig_init;
Java_sun_awt_X11GraphicsConfig_initIDs; Java_sun_awt_X11GraphicsConfig_initIDs;
Java_sun_awt_X11GraphicsConfig_makeColorModel; Java_sun_awt_X11GraphicsConfig_makeColorModel;
......
...@@ -170,7 +170,6 @@ SUNWprivate_1.1 { ...@@ -170,7 +170,6 @@ SUNWprivate_1.1 {
GrPrim_Sg2dGetPixel; GrPrim_Sg2dGetPixel;
GrPrim_Sg2dGetLCDTextContrast; GrPrim_Sg2dGetLCDTextContrast;
#Java_sun_awt_motif_MComponentPeer_restoreFocus;
Java_sun_awt_DefaultMouseInfoPeer_fillPointWithCoords; Java_sun_awt_DefaultMouseInfoPeer_fillPointWithCoords;
Java_sun_awt_DefaultMouseInfoPeer_isWindowUnderMouse; Java_sun_awt_DefaultMouseInfoPeer_isWindowUnderMouse;
Java_java_awt_AWTEvent_nativeSetSource; Java_java_awt_AWTEvent_nativeSetSource;
...@@ -189,216 +188,11 @@ SUNWprivate_1.1 { ...@@ -189,216 +188,11 @@ SUNWprivate_1.1 {
Java_java_awt_ScrollPane_initIDs; Java_java_awt_ScrollPane_initIDs;
Java_java_awt_TextArea_initIDs; Java_java_awt_TextArea_initIDs;
Java_sun_awt_FontDescriptor_initIDs; Java_sun_awt_FontDescriptor_initIDs;
#Java_sun_awt_motif_MButtonPeer_create;
#Java_sun_awt_motif_MButtonPeer_setLabel;
#Java_sun_awt_motif_MCanvasPeer_create;
#Java_sun_awt_motif_MCanvasPeer_initIDs;
#Java_sun_awt_motif_MCanvasPeer_resetTargetGC;
#Java_sun_awt_motif_MCheckboxMenuItemPeer_pSetState;
#Java_sun_awt_motif_MCheckboxPeer_create;
#Java_sun_awt_motif_MCheckboxPeer_setCheckboxGroup;
#Java_sun_awt_motif_MCheckboxPeer_setLabel;
#Java_sun_awt_motif_MCheckboxPeer_pSetState;
#Java_sun_awt_motif_MCheckboxPeer_pGetState;
#Java_sun_awt_motif_MChoicePeer_addItem;
#Java_sun_awt_motif_MChoicePeer_appendItems;
#Java_sun_awt_motif_MChoicePeer_create;
#Java_sun_awt_motif_MChoicePeer_pReshape;
#Java_sun_awt_motif_MChoicePeer_remove;
#Java_sun_awt_motif_MChoicePeer_removeAll;
#Java_sun_awt_motif_MChoicePeer_setBackground;
#Java_sun_awt_motif_MChoicePeer_pSelect;
#Java_sun_awt_motif_MChoicePeer_setFont;
#Java_sun_awt_motif_MChoicePeer_setForeground;
#Java_sun_awt_motif_MComponentPeer_addNativeDropTarget;
#Java_sun_awt_motif_MComponentPeer_createBackBuffer;
#Java_sun_awt_motif_MComponentPeer_destroyBackBuffer;
#Java_sun_awt_motif_MComponentPeer_getNativeColor;
#Java_sun_awt_motif_MComponentPeer_getWindow;
#Java_sun_awt_motif_MComponentPeer_pDisable;
#Java_sun_awt_motif_MComponentPeer_pDispose;
#Java_sun_awt_motif_MComponentPeer_pEnable;
#Java_sun_awt_motif_MComponentPeer_pGetLocationOnScreen;
#Java_sun_awt_motif_MComponentPeer_pGetLocationOnScreen2;
#Java_sun_awt_motif_MComponentPeer_pHide;
#Java_sun_awt_motif_MComponentPeer_pInitialize;
#Java_sun_awt_motif_MComponentPeer_pMakeCursorVisible;
#Java_sun_awt_motif_MComponentPeer_pReshape;
#Java_sun_awt_motif_MComponentPeer_pShow;
#Java_sun_awt_motif_MComponentPeer_removeNativeDropTarget;
#Java_sun_awt_motif_MComponentPeer_swapBuffers;
#Java_sun_awt_motif_MComponentPeer_pSetBackground;
#Java_sun_awt_motif_MComponentPeer_pSetFont;
#Java_sun_awt_motif_MComponentPeer_processSynchronousLightweightTransfer;
#Java_sun_awt_motif_MComponentPeer__1requestFocus;
#Java_sun_awt_motif_MCheckboxMenuItemPeer_getState;
#Java_sun_awt_motif_MComponentPeer_pSetForeground;
#Java_sun_awt_motif_MDragSourceContextPeer_startDrag;
#Java_sun_awt_motif_MDragSourceContextPeer_setNativeCursor;
#Java_sun_awt_motif_MDropTargetContextPeer_addTransfer;
#Java_sun_awt_motif_MDropTargetContextPeer_dropDone;
#Java_sun_awt_motif_MDropTargetContextPeer_startTransfer;
#Java_sun_awt_motif_X11DragSourceContextPeer_startDrag;
#Java_sun_awt_motif_X11DragSourceContextPeer_setNativeCursor;
#Java_sun_awt_motif_X11DropTargetContextPeer_sendResponse;
#Java_sun_awt_motif_X11DropTargetContextPeer_dropDone;
#Java_sun_awt_motif_X11DropTargetContextPeer_getData;
#Java_sun_awt_motif_MEmbeddedFramePeer_NEFcreate;
#Java_sun_awt_motif_MEmbeddedFramePeer_pShowImpl;
#Java_sun_awt_motif_MEmbeddedFramePeer_pReshapePrivate;
#Java_sun_awt_motif_MEmbeddedFramePeer_getBoundsPrivate;
#Java_sun_awt_motif_MFramePeer_pSetIconImage___3B_3I_3SII;
#Java_sun_awt_motif_MEmbeddedFramePeer_requestXEmbedFocus;
#Java_sun_awt_motif_MEmbeddedFramePeer_isXEmbedApplicationActive;
#Java_sun_awt_motif_MEmbeddedFramePeer_isXEmbedActive;
#Java_sun_awt_motif_MEmbeddedFrame_getWidget;
#Java_sun_awt_motif_MEmbeddedFrame_mapWidget;
#Java_sun_awt_motif_MFileDialogPeer_create;
#Java_sun_awt_motif_MFileDialogPeer_pDispose;
#Java_sun_awt_motif_MFileDialogPeer_pHide;
#Java_sun_awt_motif_MFileDialogPeer_pReshape;
#Java_sun_awt_motif_MFileDialogPeer_pShow;
#Java_sun_awt_motif_MFileDialogPeer_setFileEntry;
#Java_sun_awt_motif_MFileDialogPeer_setFont;
#Java_sun_awt_motif_MFramePeer_pGetIconSize;
#Java_sun_awt_motif_MGlobalCursorManager_cacheInit;
#Java_sun_awt_motif_MGlobalCursorManager_findComponentAt;
#Java_sun_awt_motif_MGlobalCursorManager_findHeavyweightUnderCursor;
#Java_sun_awt_motif_MGlobalCursorManager_getCursorPos;
#Java_sun_awt_motif_MGlobalCursorManager_getLocationOnScreen;
#Java_sun_awt_motif_MLabelPeer_create;
#Java_sun_awt_motif_MLabelPeer_setAlignment;
#Java_sun_awt_motif_MLabelPeer_setText;
#Java_sun_awt_motif_MListPeer_addItem;
#Java_sun_awt_motif_MListPeer_create;
#Java_sun_awt_motif_MListPeer_delItems;
#Java_sun_awt_motif_MListPeer_deselect;
#Java_sun_awt_motif_MListPeer_isSelected;
#Java_sun_awt_motif_MListPeer_makeVisible;
#Java_sun_awt_motif_MListPeer_select;
#Java_sun_awt_motif_MListPeer_setMultipleSelections;
#Java_sun_awt_motif_MMenuBarPeer_create;
#Java_sun_awt_motif_MMenuItemPeer_createMenuItem;
#Java_sun_awt_motif_MMenuItemPeer_pDisable;
#Java_sun_awt_motif_MMenuItemPeer_pDispose;
#Java_sun_awt_motif_MMenuItemPeer_pEnable;
#Java_sun_awt_motif_MMenuItemPeer_pSetLabel;
#Java_sun_awt_motif_MMenuPeer_createMenu;
#Java_sun_awt_motif_MMenuPeer_createSubMenu;
#Java_sun_awt_motif_MMenuPeer_pDispose;
#Java_sun_awt_motif_MPopupMenuPeer_createMenu;
#Java_sun_awt_motif_MPopupMenuPeer_pDispose;
#Java_sun_awt_motif_MPopupMenuPeer_pShow;
#Java_sun_awt_motif_MRobotPeer_getRGBPixelsImpl;
#Java_sun_awt_motif_MRobotPeer_keyPressImpl;
#Java_sun_awt_motif_MRobotPeer_keyReleaseImpl;
#Java_sun_awt_motif_MRobotPeer_mouseMoveImpl;
#Java_sun_awt_motif_MRobotPeer_mousePressImpl;
#Java_sun_awt_motif_MRobotPeer_mouseReleaseImpl;
#Java_sun_awt_motif_MRobotPeer_mouseWheelImpl;
#Java_sun_awt_motif_MRobotPeer_setup;
#Java_sun_awt_motif_MScrollbarPeer_create;
#Java_sun_awt_motif_MScrollbarPeer_setLineIncrement;
#Java_sun_awt_motif_MScrollbarPeer_setPageIncrement;
#Java_sun_awt_motif_MScrollbarPeer_pSetValues;
#Java_sun_awt_motif_MScrollPanePeer_create;
#Java_sun_awt_motif_MScrollPanePeer_pGetBlockIncrement;
#Java_sun_awt_motif_MScrollPanePeer_pGetScrollbarSpace;
#Java_sun_awt_motif_MScrollPanePeer_pGetShadow;
#Java_sun_awt_motif_MScrollPanePeer_pInsets;
#Java_sun_awt_motif_MScrollPanePeer_pSetIncrement;
#Java_sun_awt_motif_MScrollPanePeer_pSetScrollChild;
#Java_sun_awt_motif_MScrollPanePeer_setScrollPosition;
#Java_sun_awt_motif_MTextAreaPeer_initIDs;
#Java_sun_awt_motif_MTextAreaPeer_pCreate;
#Java_sun_awt_motif_MTextAreaPeer_getCaretPosition;
#Java_sun_awt_motif_MTextAreaPeer_getExtraHeight;
#Java_sun_awt_motif_MTextAreaPeer_getExtraWidth;
#Java_sun_awt_motif_MTextAreaPeer_getSelectionEnd;
#Java_sun_awt_motif_MTextAreaPeer_getSelectionStart;
#Java_sun_awt_motif_MTextAreaPeer_getText;
#Java_sun_awt_motif_MTextAreaPeer_insert;
#Java_sun_awt_motif_MTextAreaPeer_pMakeCursorVisible;
#Java_sun_awt_motif_MTextAreaPeer_pSetEditable;
#Java_sun_awt_motif_MTextAreaPeer_pShow2;
#Java_sun_awt_motif_MTextAreaPeer_replaceRange;
#Java_sun_awt_motif_MTextAreaPeer_select;
#Java_sun_awt_motif_MTextAreaPeer_setCaretPosition;
#Java_sun_awt_motif_MTextAreaPeer_setFont;
#Java_sun_awt_motif_MTextAreaPeer_setText;
#Java_sun_awt_motif_MTextAreaPeer_setTextBackground;
#Java_sun_awt_motif_MTextFieldPeer_initIDs;
#Java_sun_awt_motif_MTextFieldPeer_pCreate;
#Java_sun_awt_motif_MTextFieldPeer_getCaretPosition;
#Java_sun_awt_motif_MTextFieldPeer_getSelectionEnd;
#Java_sun_awt_motif_MTextFieldPeer_getSelectionStart;
#Java_sun_awt_motif_MTextFieldPeer_getText;
#Java_sun_awt_motif_MTextFieldPeer_insertReplaceText;
#Java_sun_awt_motif_MTextFieldPeer_preDispose;
#Java_sun_awt_motif_MTextFieldPeer_pSetEditable;
#Java_sun_awt_motif_MTextFieldPeer_select;
#Java_sun_awt_motif_MTextFieldPeer_setCaretPosition;
#Java_sun_awt_motif_MTextFieldPeer_setEchoChar;
#Java_sun_awt_motif_MTextFieldPeer_setFont;
#Java_sun_awt_motif_MTextFieldPeer_setText;
Java_sun_awt_motif_MToolkit_beep;
Java_sun_awt_motif_MToolkit_getLockingKeyStateNative;
Java_sun_awt_motif_MToolkit_getMulticlickTime;
Java_sun_awt_motif_MToolkit_getNumMouseButtons;
Java_sun_awt_motif_MToolkit_getScreenHeight;
Java_sun_awt_motif_MToolkit_getScreenResolution;
Java_sun_awt_motif_MToolkit_getScreenWidth;
Java_sun_awt_motif_MToolkit_init;
Java_sun_awt_motif_MToolkit_isDynamicLayoutSupportedNative;
Java_sun_awt_motif_MToolkit_isFrameStateSupported;
Java_sun_awt_motif_MToolkit_loadSystemColors;
Java_sun_awt_motif_MToolkit_makeColorModel;
Java_sun_awt_motif_MToolkit_run;
Java_sun_awt_motif_MToolkit_sync;
Java_sun_awt_motif_MToolkit_isAlwaysOnTopSupported;
Java_sun_awt_motif_MWindowAttributes_initIDs;
#Java_sun_awt_motif_MWindowPeer_pDispose;
#Java_sun_awt_motif_MWindowPeer_pHide;
#Java_sun_awt_motif_MWindowPeer_pReshape;
#Java_sun_awt_motif_MWindowPeer_pSetTitle;
#Java_sun_awt_motif_MWindowPeer_pShow;
#Java_sun_awt_motif_MWindowPeer_setResizable;
#Java_sun_awt_motif_MWindowPeer_toBack;
#Java_sun_awt_motif_MWindowPeer_addTextComponentNative;
#Java_sun_awt_motif_MWindowPeer_getState;
#Java_sun_awt_motif_MWindowPeer_pSetIMMOption;
#Java_sun_awt_motif_MWindowPeer_pSetMenuBar;
#Java_sun_awt_motif_MWindowPeer_pShowModal;
#Java_sun_awt_motif_MWindowPeer_removeTextComponentNative;
#Java_sun_awt_motif_MWindowPeer_setSaveUnder;
#Java_sun_awt_motif_MWindowPeer_setState;
#Java_sun_awt_motif_MWindowPeer_resetTargetGC;
#Java_sun_awt_motif_MWindowPeer_registerX11DropTarget;
#Java_sun_awt_motif_MWindowPeer_unregisterX11DropTarget;
#Java_sun_awt_motif_MWindowPeer_updateAlwaysOnTop;
#Java_sun_awt_motif_X11CustomCursor_cacheInit;
#Java_sun_awt_motif_X11CustomCursor_createCursor;
#Java_sun_awt_motif_X11CustomCursor_queryBestCursor;
Java_sun_awt_motif_X11FontMetrics_bytesWidth;
Java_sun_awt_motif_X11FontMetrics_getMFCharsWidth;
Java_sun_awt_motif_X11FontMetrics_init;
Java_sun_awt_X11InputMethod_disposeXIC; Java_sun_awt_X11InputMethod_disposeXIC;
Java_sun_awt_X11InputMethod_isCompositionEnabledNative; Java_sun_awt_X11InputMethod_isCompositionEnabledNative;
Java_sun_awt_X11InputMethod_resetXIC; Java_sun_awt_X11InputMethod_resetXIC;
Java_sun_awt_X11InputMethod_setCompositionEnabledNative; Java_sun_awt_X11InputMethod_setCompositionEnabledNative;
Java_sun_awt_X11InputMethod_turnoffStatusWindow; Java_sun_awt_X11InputMethod_turnoffStatusWindow;
#Java_sun_awt_motif_MInputMethod_openXIMNative;
#Java_sun_awt_motif_MInputMethod_configureStatusAreaNative;
#Java_sun_awt_motif_MInputMethod_createXICNative;
#Java_sun_awt_motif_MInputMethod_reconfigureXICNative;
#Java_sun_awt_motif_MInputMethod_setXICFocusNative;
#Java_sun_awt_motif_X11Clipboard_getClipboardData;
#Java_sun_awt_motif_X11Clipboard_getClipboardFormats;
#Java_sun_awt_motif_X11Clipboard_registerClipboardViewer;
#Java_sun_awt_motif_X11Clipboard_unregisterClipboardViewer;
#Java_sun_awt_motif_X11Selection_init;
#Java_sun_awt_motif_X11Selection_pGetSelectionOwnership;
#Java_sun_awt_motif_X11Selection_clearNativeContext;
Java_sun_awt_SunToolkit_closeSplashScreen; Java_sun_awt_SunToolkit_closeSplashScreen;
Java_sun_awt_PlatformFont_initIDs; Java_sun_awt_PlatformFont_initIDs;
Java_sun_awt_X11GraphicsConfig_init; Java_sun_awt_X11GraphicsConfig_init;
...@@ -444,42 +238,7 @@ SUNWprivate_1.1 { ...@@ -444,42 +238,7 @@ SUNWprivate_1.1 {
Java_java_awt_Insets_initIDs; Java_java_awt_Insets_initIDs;
Java_java_awt_TextField_initIDs; Java_java_awt_TextField_initIDs;
Java_java_awt_Window_initIDs; Java_java_awt_Window_initIDs;
#Java_sun_awt_motif_MCheckboxPeer_getIndicatorSize;
#Java_sun_awt_motif_MCheckboxPeer_getSpacing;
#Java_sun_awt_motif_MChoicePeer_freeNativeData;
#Java_sun_awt_motif_MComponentPeer_getComponents_1NoClientCode;
#Java_sun_awt_motif_MComponentPeer_getParent_1NoClientCode;
#Java_sun_awt_motif_MComponentPeer_initIDs;
#Java_sun_awt_motif_MComponentPeer_nativeHandleEvent;
#Java_sun_awt_motif_MComponentPeer_pSetCursor;
#Java_sun_awt_motif_MComponentPeer_pSetInnerForeground;
#Java_sun_awt_motif_MComponentPeer_pSetScrollbarBackground;
#Java_sun_awt_motif_MComponentPeer_setTargetBackground;
#Java_sun_awt_motif_MDataTransferer_dragQueryFile;
#Java_sun_awt_motif_MDataTransferer_getAtomForTarget;
#Java_sun_awt_motif_MDataTransferer_getTargetNameForAtom;
#Java_sun_awt_motif_MFileDialogPeer_insertReplaceFileDialogText;
Java_sun_awt_motif_MFontPeer_initIDs;
#Java_sun_awt_motif_MListPeer_setBackground;
#Java_sun_awt_motif_MMenuBarPeer_initIDs;
#Java_sun_awt_motif_MMenuBarPeer_pDispose;
#Java_sun_awt_motif_MMenuItemPeer_getParent_1NoClientCode;
#Java_sun_awt_motif_MMenuItemPeer_initIDs;
#Java_sun_awt_motif_MMenuItemPeer_pSetShortcut;
#Java_sun_awt_motif_MPopupMenuPeer_initIDs;
#Java_sun_awt_motif_MScrollbarPeer_initIDs;
#Java_sun_awt_motif_MScrollPanePeer_initIDs;
#Java_sun_awt_motif_MTextAreaPeer_pSetCursor;
Java_sun_awt_motif_MToolkit_shutdown;
#Java_sun_awt_motif_MWindowPeer_initIDs;
#Java_sun_awt_motif_MWindowPeer_pCreate;
#Java_sun_awt_motif_MWindowPeer_wrapInSequenced;
Java_sun_awt_motif_X11FontMetrics_initIDs;
#Java_sun_awt_X11InputMethod_initIDs;
Java_sun_awt_motif_X11OffScreenImage_updateBitmask; Java_sun_awt_motif_X11OffScreenImage_updateBitmask;
#Java_sun_awt_motif_X11Selection_initIDs;
Java_sun_awt_motif_MToolkitThreadBlockedHandler_enter;
Java_sun_awt_motif_MToolkitThreadBlockedHandler_exit;
Java_sun_awt_X11GraphicsConfig_init; Java_sun_awt_X11GraphicsConfig_init;
Java_sun_awt_X11GraphicsConfig_initIDs; Java_sun_awt_X11GraphicsConfig_initIDs;
Java_sun_awt_X11GraphicsConfig_makeColorModel; Java_sun_awt_X11GraphicsConfig_makeColorModel;
...@@ -505,26 +264,6 @@ SUNWprivate_1.1 { ...@@ -505,26 +264,6 @@ SUNWprivate_1.1 {
Java_sun_awt_X11SurfaceData_isDgaAvailable; Java_sun_awt_X11SurfaceData_isDgaAvailable;
Java_sun_awt_X11SurfaceData_setInvalid; Java_sun_awt_X11SurfaceData_setInvalid;
Java_sun_awt_X11SurfaceData_flushNativeSurface; Java_sun_awt_X11SurfaceData_flushNativeSurface;
#Java_sun_awt_motif_MEmbedCanvasPeer_initXEmbedServer;
#Java_sun_awt_motif_MEmbedCanvasPeer_destroyXEmbedServer;
#Java_sun_awt_motif_MEmbedCanvasPeer_isXEmbedActive;
#Java_sun_awt_motif_MEmbedCanvasPeer_initDispatching;
#Java_sun_awt_motif_MEmbedCanvasPeer_endDispatching;
#Java_sun_awt_motif_MEmbedCanvasPeer_embedChild;
#Java_sun_awt_motif_MEmbedCanvasPeer_childDestroyed;
#Java_sun_awt_motif_MEmbedCanvasPeer_getEmbedPreferredSize;
#Java_sun_awt_motif_MEmbedCanvasPeer_getEmbedMinimumSize;
#Java_sun_awt_motif_MEmbedCanvasPeer_getClientBounds;
#Java_sun_awt_motif_MEmbedCanvasPeer_notifyChildEmbedded;
#Java_sun_awt_motif_MEmbedCanvasPeer_detachChild;
#Java_sun_awt_motif_MEmbedCanvasPeer_forwardKeyEvent;
#Java_sun_awt_motif_MEmbedCanvasPeer_getAWTKeyCodeForKeySym;
#Java_sun_awt_motif_MEmbedCanvasPeer_sendMessage__I;
#Java_sun_awt_motif_MEmbedCanvasPeer_sendMessage__IJJJ;
#Java_sun_awt_motif_MEmbedCanvasPeer_getWindow;
#Java_sun_awt_motif_MEmbedCanvasPeer_forwardEventToEmbedded;
#Java_sun_awt_motif_GrabbedKey_initKeySymAndModifiers;
#Java_sun_awt_motif_MEmbeddedFramePeer_traverseOut;
awt_display; awt_display;
awt_lock; awt_lock;
awt_Lock; awt_Lock;
......
...@@ -41,13 +41,7 @@ include $(BUILDDIR)/sun/awt/FILES_export_unix.gmk ...@@ -41,13 +41,7 @@ include $(BUILDDIR)/sun/awt/FILES_export_unix.gmk
# Check which C files should be built. Headless uses only # Check which C files should be built. Headless uses only
# non-motif files. Also, a version-specific motif file is # non-motif files. Also, a version-specific motif file is
# compiled based on the motif version. # compiled based on the motif version.
ifdef HEADLESS FILES_c = $(FILES_NO_MOTIF_c)
FILES_c = $(FILES_NO_MOTIF_c)
else
# FILES_c = $(FILES_MOTIF_c) $(FILES_NO_MOTIF_c)
# XXX if in FILES_MOTIF_c there are unrelated to motif stuff, create a separate list!
FILES_c = $(FILES_NO_MOTIF_c)
endif
ifeq ($(PLATFORM), solaris) ifeq ($(PLATFORM), solaris)
ifneq ($(ARCH), amd64) ifneq ($(ARCH), amd64)
...@@ -116,32 +110,6 @@ CFLAGS += -DHEADLESS=$(HEADLESS) ...@@ -116,32 +110,6 @@ CFLAGS += -DHEADLESS=$(HEADLESS)
CPPFLAGS += -DHEADLESS=$(HEADLESS) CPPFLAGS += -DHEADLESS=$(HEADLESS)
OTHER_LDLIBS = OTHER_LDLIBS =
else else
#CFLAGS += -DMOTIF_VERSION=$(MOTIF_VERSION)
#ifeq ($(STATIC_MOTIF),true)
# LIBXM = $(MOTIF_LIB)/libXm.a -lXp -lXmu
# ifeq ($(PLATFORM), linux)
# ifeq ($(ARCH_DATA_MODEL), 64)
# LIBXT = -lXt
# else
# # Allows for builds on Debian GNU Linux, X11 is in a different place
# LIBXT = $(firstword $(wildcard /usr/X11R6/lib/libXt.a) \
# $(wildcard /usr/lib/libXt.a))
# LIBSM = $(firstword $(wildcard /usr/X11R6/lib/libSM.a) \
# $(wildcard /usr/lib/libSM.a))
# LIBICE = $(firstword $(wildcard /usr/X11R6/lib/libICE.a) \
# $(wildcard /usr/lib/libICE.a))
# endif
# endif
#else
# LIBXM = -L$(MOTIF_LIB) -lXm -lXp
# ifeq ($(PLATFORM), linux)
# LIBXT = -lXt
# LIBSM =
# LIBICE =
# endif
#endif
LIBXTST = -lXtst LIBXTST = -lXtst
ifeq ($(PLATFORM), linux) ifeq ($(PLATFORM), linux)
ifeq ($(ARCH_DATA_MODEL), 64) ifeq ($(ARCH_DATA_MODEL), 64)
......
data = R0x2000;
text = LOAD ?RXO;
# Test Null
# Test Exit
# Test Hello
# Test Sleep
# Test IntToString
# Test LoadToolkit
text: .text%JNI_OnLoad;
text: .text%awt_util_debug_init;
text: .text%Java_sun_awt_X11GraphicsEnvironment_initDisplay;
text: .text%awt_init_Display;
text: .text%makeDefaultConfig: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_GraphicsEnv.o;
text: .text%awt_allocate_colors;
text: .text%alloc_col: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11Color.o;
text: .text%getVirtCubeSize;
text: .text%uname: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11Color.o;
text: .text%Java_sun_awt_font_NativeFontWrapper_getFontPath;
text: .text%getPlatformFontPathChars: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%getSolarisFontLocations: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%fstat: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%AppendFont: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%freePlatformFontPathChars: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%checkFont: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_Font.o;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getNativeFonts;
text: .text%Java_sun_awt_font_NativeFontWrapper_setNativeFontPath;
text: .text%isDisplayLocal;
text: .text%Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
text: .text%TryInitMITShm: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_GraphicsEnv.o;
text: .text%awt_output_flush;
text: .text%awtJNI_TimeMillis: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%AddFontsToX11FontPath: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getNumScreens;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum;
text: .text%Java_sun_awt_X11GraphicsDevice_getConfigVisualId;
text: .text%Java_sun_awt_X11GraphicsDevice_isDBESupported;
text: .text%Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
text: .text%Java_sun_awt_X11GraphicsConfig_initIDs;
text: .text%Java_sun_awt_X11GraphicsConfig_init;
text: .text%getAllConfigs: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_GraphicsEnv.o;
text: .text%Java_sun_awt_motif_MToolkit_init;
text: .text%getDefaultConfig;
text: .text%getScreenData;
text: .text%Java_sun_awt_PlatformFont_initIDs;
text: .text%Java_sun_awt_motif_MFontPeer_initIDs;
text: .text%awt_wm_init;
text: .text%awt_wm_initAtoms: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_getRunningWM;
text: .text%xerror_detect_wm: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_prepareIsIceWM: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isNetSupporting: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_checkAnchor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_getProperty32: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isWinSupporting: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isIceWM: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isEnlightenment: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_getECommsWindowIDProperty: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isSawfish: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isNetWMName: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isKDE2: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isCDE: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_color_match;
text: .text%setup_modifier_map: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%set_mod_mask: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_initialize_DataTransferer;
text: .text%awt_initialize_Xm_DnD;
text: .text%cacheDropDone: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_XmDnD.o;
text: .text%awt_motif_enableSingleDragInitiator;
text: .text%Java_java_awt_Cursor_initIDs;
text: .text%Java_sun_awt_motif_X11CustomCursor_cacheInit;
text: .text%Java_sun_awt_motif_MToolkit_run;
text: .text%awtJNI_GetCurrentThread;
text: .text%awt_MToolkit_loop: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_pipe_init: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_set_poll_timeout: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_events_pending: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%processOneEvent: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%set_toolkit_busy;
text: .text%waitForEvents;
text: .text%performPoll: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_get_poll_timeout: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awtJNI_CleanupGlobalRefs;
text: .text%Java_java_awt_AWTEvent_initIDs;
text: .text%Java_sun_awt_SunToolkit_wakeupEventQueue;
text: .text%Java_sun_awt_motif_MToolkit_shutdown;
text: .text%X11SD_LibDispose;
text: .text%LibDisposeStub: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
# Test LoadFrame
text: .text%Java_java_awt_Component_initIDs;
text: .text%Java_java_awt_Container_initIDs;
text: .text%Java_java_awt_Window_initIDs;
text: .text%Java_java_awt_Frame_initIDs;
text: .text%Java_sun_awt_SunToolkit_getPrivateKey;
text: .text%Java_java_awt_MenuComponent_initIDs;
text: .text%Java_sun_awt_X11GraphicsConfig_pGetBounds;
text: .text%Java_java_awt_Insets_initIDs;
text: .text%Java_sun_awt_motif_MComponentPeer_initIDs;
text: .text%Java_sun_awt_motif_MWindowPeer_initIDs;
text: .text%Java_sun_awt_motif_MWindowAttributes_initIDs;
text: .text%Java_sun_awt_motif_MWindowPeer_pCreate;
text: .text%awtJNI_CreateAndSetGlobalRef;
text: .text%copyGraphicsConfigToPeer;
text: .text%awt_Frame_guessInsets;
text: .text%awtJNI_ChangeInsets: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%getMotifFontList;
text: .text%getMotifFontStruct;
text: .text%setDeleteCallback: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awt_canvas_create;
text: .text%awt_util_show;
text: .text%addTopLevel;
text: .text%Java_sun_awt_motif_MWindowPeer_pHide;
text: .text%Java_sun_awt_motif_MComponentPeer_pInitialize;
text: .text%awt_addWidget;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetCursor;
text: .text%getCursor;
text: .text%awt_util_setCursor;
text: .text%Java_sun_awt_motif_MComponentPeer_getParent_1NoClientCode;
text: .text%Java_sun_awt_motif_MWindowPeer_pReshape;
text: .text%reshape: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awtJNI_setMbAndWwHeightAndOffsets: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awt_wm_configureGravityBuggy;
text: .text%Java_sun_awt_X11SurfaceData_initIDs;
text: .text%Java_sun_awt_motif_MToolkit_loadSystemColors;
text: .text%colorToRGB: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_allocate_systemcolors;
text: .text%Java_sun_awt_X11GraphicsConfig_makeColorModel;
text: .text%awtJNI_GetColorModel;
text: .text%Java_sun_awt_X11SurfaceData_initOps;
text: .text%Java_sun_awt_motif_MWindowPeer_pSetTitle;
text: .text%Java_sun_awt_motif_MWindowPeer_setResizable;
text: .text%Java_java_awt_Font_initIDs;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetFont;
text: .text%awt_util_mapChildren;
text: .text%changeFont: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_Component.o;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetBackground;
text: .text%getGraphicsConfigFromComponentPeer;
text: .text%awtJNI_GetColorForVis;
text: .text%ColorProc;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetForeground;
text: .text%Java_sun_awt_motif_MWindowPeer_pShow;
text: .text%Java_sun_awt_motif_MWindowPeer_pShowModal;
text: .text%awt_wm_setExtendedState;
text: .text%awt_wm_doStateProtocolNet: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_doStateProtocolWin: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_setShellDecor;
text: .text%awt_wm_setMotifDecor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_setOLDecor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_normalizeMotifDecor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_removeSizeHints;
text: .text%shellEH: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awt_wm_isStateChange;
text: .text%awt_wm_getWMState;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_cacheInit;
text: .text%innerCanvasEH: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%reconfigureOuterCanvas: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%outerCanvasResizeCB: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_findHeavyweightUnderCursor;
text: .text%awt_wm_getInsetsFromProp;
text: .text%syncTopLevelPos;
text: .text%raiseInputMethodWindow;
text: .text%awt_wm_getExtendedState: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_canvas_event_handler;
text: .text%awt_canvas_handleEvent;
text: .text%HandleExposeEvent: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/canvas.o;
text: .text%checkForExpose: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/canvas.o;
text: .text%expandDamageRect: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/canvas.o;
text: .text%getCurComponent;
text: .text%Java_java_awt_KeyboardFocusManager_initIDs;
text: .text%Java_java_awt_event_InputEvent_initIDs;
text: .text%Java_java_awt_event_KeyEvent_initIDs;
text: .text%Java_java_awt_AWTKeyStroke_allocateNewInstance;
text: .text%Java_sun_awt_motif_MComponentPeer_nativeHandleEvent;
text: .text%Java_java_awt_Event_initIDs;
# Test LoadJFrame
text: .text%Java_sun_awt_motif_MToolkit_getScreenWidth;
text: .text%Java_sun_awt_motif_MToolkit_getScreenHeight;
text: .text%X11SD_Lock: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_InitWindow: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%GetLockStub: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_GetRasInfo: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_Unlock: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_InitClip: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%XRequestSentStub: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
# Test JHello
text: .text%AWTLoadFont;
text: .text%AWTFontMaxByte1;
text: .text%AWTFontMaxCharOrByte2;
text: .text%AWTFontMaxBounds;
text: .text%AWTCharAscent;
text: .text%AWTCharDescent;
text: .text%AWTCharWidth;
text: .text%AWTFontMinByte1;
text: .text%AWTFontMinCharOrByte2;
text: .text%AWTFontPerChar;
text: .text%AWTCharRBearing;
text: .text%AWTCharLBearing;
text: .text%Java_sun_awt_X11SurfaceData_setInvalid;
text: .text%Java_sun_awt_X11SurfaceData_nativeDispose;
text: .text%X11SurfaceData_GetOps;
# SwingSet
text: .text%Java_sun_awt_motif_MWindowPeer_setSaveUnder;
text: .text%Java_sun_awt_motif_MCanvasPeer_create;
text: .text%awt_util_insertCallback;
text: .text%Java_sun_awt_motif_MComponentPeer_getComponents_1NoClientCode;
text: .text%Java_sun_awt_motif_MComponentPeer_pReshape;
text: .text%awt_util_reshape;
text: .text%Java_sun_awt_motif_MComponentPeer_pShow;
text: .text%Java_sun_awt_motif_MDataTransferer_getAtomForTarget;
text: .text%Java_sun_awt_motif_MComponentPeer_addNativeDropTarget;
text: .text%register_drop_site;
text: .text%update_drop_site_hierarchy: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_XmDnD.o;
text: .text%AWTFontDefaultChar;
text: .text%AWTFontGenerateImage;
text: .text%CreatePixmapAndGC;
text: .text%isAncestor;
text: .text%xerror_handler;
data = R0x2000;
text = LOAD ?RXO;
# Test Null
# Test Exit
# Test Hello
# Test Sleep
# Test IntToString
# Test LoadToolkit
text: .text%JNI_OnLoad;
text: .text%awt_util_debug_init;
text: .text%Java_sun_awt_X11GraphicsEnvironment_initDisplay;
text: .text%awt_init_Display;
text: .text%makeDefaultConfig: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_GraphicsEnv.o;
text: .text%awt_allocate_colors;
text: .text%Java_sun_awt_font_NativeFontWrapper_getFontPath;
text: .text%getPlatformFontPathChars: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%getSolarisFontLocations: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%AppendFont: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%freePlatformFontPathChars: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%checkFont: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_Font.o;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getNativeFonts;
text: .text%Java_sun_awt_font_NativeFontWrapper_setNativeFontPath;
text: .text%isDisplayLocal;
text: .text%Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
text: .text%TryInitMITShm: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_GraphicsEnv.o;
text: .text%awt_output_flush;
text: .text%awtJNI_TimeMillis: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%AddFontsToX11FontPath: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/fontpath.o;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getNumScreens;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum;
text: .text%Java_sun_awt_X11GraphicsDevice_getConfigVisualId;
text: .text%Java_sun_awt_X11GraphicsDevice_isDBESupported;
text: .text%Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
text: .text%Java_sun_awt_X11GraphicsConfig_initIDs;
text: .text%Java_sun_awt_X11GraphicsConfig_init;
text: .text%getAllConfigs: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_GraphicsEnv.o;
text: .text%Java_sun_awt_motif_MToolkit_init;
text: .text%getDefaultConfig;
text: .text%getScreenData;
text: .text%Java_sun_awt_PlatformFont_initIDs;
text: .text%Java_sun_awt_motif_MFontPeer_initIDs;
text: .text%awt_wm_init;
text: .text%awt_wm_initAtoms: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_getRunningWM;
text: .text%xerror_detect_wm: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_prepareIsIceWM: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isNetSupporting: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_checkAnchor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_getProperty32: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isWinSupporting: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isIceWM: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isEnlightenment: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_getECommsWindowIDProperty: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isSawfish: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isNetWMName: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isKDE2: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_isCDE: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_color_matchTC;
text: .text%setup_modifier_map: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%set_mod_mask: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_initialize_DataTransferer;
text: .text%awt_initialize_Xm_DnD;
text: .text%cacheDropDone: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_XmDnD.o;
text: .text%awt_motif_enableSingleDragInitiator;
text: .text%Java_java_awt_Cursor_initIDs;
text: .text%Java_sun_awt_motif_X11CustomCursor_cacheInit;
text: .text%Java_sun_awt_motif_MToolkit_run;
text: .text%awtJNI_GetCurrentThread;
text: .text%awt_MToolkit_loop: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_pipe_init: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_set_poll_timeout: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_events_pending: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%processOneEvent: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%set_toolkit_busy;
text: .text%waitForEvents;
text: .text%performPoll: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awt_get_poll_timeout: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%awtJNI_CleanupGlobalRefs;
text: .text%Java_java_awt_AWTEvent_initIDs;
text: .text%Java_sun_awt_SunToolkit_wakeupEventQueue;
text: .text%Java_sun_awt_motif_MToolkit_shutdown;
text: .text%X11SD_LibDispose;
text: .text%LibDisposeStub: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
# Test LoadFrame
text: .text%Java_java_awt_Component_initIDs;
text: .text%Java_java_awt_Container_initIDs;
text: .text%Java_java_awt_Window_initIDs;
text: .text%Java_java_awt_Frame_initIDs;
text: .text%Java_sun_awt_SunToolkit_getPrivateKey;
text: .text%Java_java_awt_MenuComponent_initIDs;
text: .text%Java_sun_awt_X11GraphicsConfig_pGetBounds;
text: .text%Java_java_awt_Insets_initIDs;
text: .text%Java_sun_awt_motif_MComponentPeer_initIDs;
text: .text%Java_sun_awt_motif_MWindowPeer_initIDs;
text: .text%Java_sun_awt_motif_MWindowAttributes_initIDs;
text: .text%Java_sun_awt_motif_MWindowPeer_pCreate;
text: .text%awtJNI_CreateAndSetGlobalRef;
text: .text%copyGraphicsConfigToPeer;
text: .text%awt_Frame_guessInsets;
text: .text%awtJNI_ChangeInsets: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%getMotifFontList;
text: .text%getMotifFontStruct;
text: .text%setDeleteCallback: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%ColorProc;
text: .text%awt_canvas_create;
text: .text%awt_util_show;
text: .text%addTopLevel;
text: .text%Java_sun_awt_motif_MWindowPeer_pHide;
text: .text%Java_sun_awt_motif_MComponentPeer_pInitialize;
text: .text%awt_addWidget;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetCursor;
text: .text%getCursor;
text: .text%awt_util_setCursor;
text: .text%Java_sun_awt_motif_MComponentPeer_getParent_1NoClientCode;
text: .text%Java_sun_awt_motif_MWindowPeer_pReshape;
text: .text%reshape: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awtJNI_setMbAndWwHeightAndOffsets: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awt_wm_configureGravityBuggy;
text: .text%Java_sun_awt_X11SurfaceData_initIDs;
text: .text%Java_sun_awt_motif_MToolkit_loadSystemColors;
text: .text%colorToRGB: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_MToolkit.o;
text: .text%Java_sun_awt_X11GraphicsConfig_makeColorModel;
text: .text%awtJNI_GetColorModel;
text: .text%Java_sun_awt_X11SurfaceData_initOps;
text: .text%Java_sun_awt_motif_MWindowPeer_pSetTitle;
text: .text%Java_sun_awt_motif_MWindowPeer_setResizable;
text: .text%Java_java_awt_Font_initIDs;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetFont;
text: .text%awt_util_mapChildren;
text: .text%changeFont: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_Component.o;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetBackground;
text: .text%getGraphicsConfigFromComponentPeer;
text: .text%awtJNI_GetColorForVis;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetForeground;
text: .text%Java_sun_awt_motif_MWindowPeer_pShow;
text: .text%Java_sun_awt_motif_MWindowPeer_pShowModal;
text: .text%awt_wm_setExtendedState;
text: .text%awt_wm_doStateProtocolNet: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_doStateProtocolWin: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_setShellDecor;
text: .text%awt_wm_setMotifDecor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_setOLDecor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_normalizeMotifDecor: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%awt_wm_removeSizeHints;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_cacheInit;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_findHeavyweightUnderCursor;
text: .text%getCurComponent;
text: .text%shellEH: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awt_wm_isStateChange;
text: .text%awt_wm_getWMState;
text: .text%innerCanvasEH: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%reconfigureOuterCanvas: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%outerCanvasResizeCB: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_TopLevel.o;
text: .text%awt_wm_getInsetsFromProp;
text: .text%syncTopLevelPos;
text: .text%raiseInputMethodWindow;
text: .text%awt_canvas_event_handler;
text: .text%awt_canvas_handleEvent;
text: .text%HandleExposeEvent: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/canvas.o;
text: .text%checkForExpose: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/canvas.o;
text: .text%awt_wm_getExtendedState: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_wm.o;
text: .text%expandDamageRect: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/canvas.o;
text: .text%Java_java_awt_KeyboardFocusManager_initIDs;
text: .text%Java_java_awt_event_InputEvent_initIDs;
text: .text%Java_java_awt_event_KeyEvent_initIDs;
text: .text%Java_java_awt_AWTKeyStroke_allocateNewInstance;
text: .text%Java_sun_awt_motif_MComponentPeer_nativeHandleEvent;
text: .text%Java_java_awt_Event_initIDs;
# Test LoadJFrame
text: .text%awtJNI_ThreadYield;
text: .text%Java_sun_awt_motif_MToolkit_getScreenWidth;
text: .text%Java_sun_awt_motif_MToolkit_getScreenHeight;
text: .text%X11SD_Lock: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_InitWindow: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%GetLockStub: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_GetRasInfo: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_Unlock: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%X11SD_InitClip: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
text: .text%XRequestSentStub: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/X11SurfaceData.o;
# Test JHello
text: .text%AWTLoadFont;
text: .text%AWTFontMaxByte1;
text: .text%AWTFontMaxCharOrByte2;
text: .text%AWTFontMaxBounds;
text: .text%AWTCharAscent;
text: .text%AWTCharDescent;
text: .text%AWTCharWidth;
text: .text%AWTFontMinByte1;
text: .text%AWTFontMinCharOrByte2;
text: .text%AWTFontPerChar;
text: .text%AWTCharRBearing;
text: .text%AWTCharLBearing;
text: .text%Java_sun_awt_X11SurfaceData_setInvalid;
# SwingSet
text: .text%Java_sun_awt_motif_MWindowPeer_setSaveUnder;
text: .text%Java_sun_awt_X11SurfaceData_nativeDispose;
text: .text%X11SurfaceData_GetOps;
text: .text%Java_sun_awt_motif_MCanvasPeer_create;
text: .text%awt_util_insertCallback;
text: .text%Java_sun_awt_motif_MComponentPeer_getComponents_1NoClientCode;
text: .text%Java_sun_awt_motif_MComponentPeer_pReshape;
text: .text%awt_util_reshape;
text: .text%Java_sun_awt_motif_MComponentPeer_pShow;
text: .text%Java_sun_awt_motif_MDataTransferer_getAtomForTarget;
text: .text%Java_sun_awt_motif_MComponentPeer_addNativeDropTarget;
text: .text%register_drop_site;
text: .text%update_drop_site_hierarchy: OUTPUTDIR/tmp/sun/sun.awt/motif12/obj/awt_XmDnD.o;
text: .text%AWTFontDefaultChar;
text: .text%isAncestor;
text: .text%xerror_handler;
text: .text%AWTFontGenerateImage;
text: .text%CreatePixmapAndGC;
data = R0x2000;
text = LOAD ?RXO;
# Test Null
# Test Exit
# Test Hello
# Test Sleep
# Test IntToString
# Test LoadToolkit
text: .text%JNI_OnLoad;
text: .text%awt_util_debug_init;
text: .text%Java_java_awt_Toolkit_initIDs;
text: .text%Java_sun_awt_X11GraphicsEnvironment_initDisplay;
text: .text%awt_init_Display;
text: .text%makeDefaultConfig: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_GraphicsEnv.o;
text: .text%awt_allocate_colors;
text: .text%make_uns_ordered_dither_array;
text: .text%checkFont: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_Font.o;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getNativeFonts;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getNumScreens;
text: .text%Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum;
text: .text%Java_sun_awt_X11GraphicsDevice_getConfigVisualId;
text: .text%Java_sun_awt_X11GraphicsConfig_initIDs;
text: .text%Java_sun_awt_X11GraphicsConfig_init;
text: .text%getAllConfigs: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_GraphicsEnv.o;
text: .text%awt_output_flush;
text: .text%awtJNI_TimeMillis: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%Java_sun_awt_motif_MToolkit_init;
text: .text%getDefaultConfig;
text: .text%getScreenData;
text: .text%Java_sun_awt_PlatformFont_initIDs;
text: .text%Java_sun_awt_motif_MFontPeer_initIDs;
text: .text%awt_color_matchTC;
text: .text%setup_modifier_map: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%set_mod_mask: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awt_initialize_Xm_DnD;
text: .text%Java_java_awt_Cursor_initIDs;
text: .text%Java_sun_awt_motif_X11CustomCursor_cacheInit;
text: .text%Java_java_awt_Dimension_initIDs;
text: .text%Java_sun_awt_motif_MToolkit_run;
text: .text%awtJNI_GetCurrentThread;
text: .text%awt_MToolkit_loop: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awt_pipe_init: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awt_set_poll_timeout: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awt_events_pending: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%processOneEvent: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%waitForEvents: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%performPoll: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awt_get_poll_timeout: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awtJNI_CleanupGlobalRefs;
# Test LoadFrame
text: .text%Java_java_awt_Component_initIDs;
text: .text%Java_java_awt_Container_initIDs;
text: .text%Java_java_awt_Window_initIDs;
text: .text%Java_java_awt_Frame_initIDs;
text: .text%Java_sun_awt_SunToolkit_getPrivateKey;
text: .text%Java_java_awt_MenuComponent_initIDs;
text: .text%Java_sun_awt_X11GraphicsConfig_pGetBounds;
text: .text%Java_java_awt_Rectangle_initIDs;
text: .text%Java_sun_awt_motif_MComponentPeer_initIDs;
text: .text%Java_sun_awt_motif_MWindowPeer_initIDs;
text: .text%Java_java_awt_Insets_initIDs;
text: .text%Java_sun_awt_motif_MWindowAttributes_initIDs;
text: .text%Java_sun_awt_motif_MWindowPeer_create;
text: .text%awtJNI_CreateAndSetGlobalRef;
text: .text%copyGraphicsConfigToPeer;
text: .text%awt_Frame_guessInsets;
text: .text%awt_util_runningWindowManager;
text: .text%awt_winmgrerr: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_util.o;
text: .text%awtJNI_ChangeInsets: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%getMotifFontList;
text: .text%getMotifFontStruct;
text: .text%setDeleteCallback: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%ColorProc;
text: .text%awt_canvas_create;
text: .text%awt_util_show;
text: .text%addTopLevel;
text: .text%Java_sun_awt_motif_MWindowPeer_pHide;
text: .text%Java_sun_awt_motif_MComponentPeer_pInitialize;
text: .text%awt_addWidget;
text: .text%Java_sun_awt_motif_MComponentPeer_setCursor;
text: .text%getCursor;
text: .text%awt_util_setCursor;
text: .text%Java_sun_awt_motif_MComponentPeer_getParent_1NoClientCode;
text: .text%Java_sun_awt_motif_MWindowPeer_pReshape;
text: .text%reshape: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%awtJNI_setMbAndWwHeightAndOffsets: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%awt_util_wmPositionsShellXY;
text: .text%Java_sun_awt_motif_MWindowPeer_pSetTitle;
text: .text%Java_sun_awt_motif_MWindowPeer_setResizable;
text: .text%Java_java_awt_Font_initIDs;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetFont;
text: .text%awt_util_mapChildren;
text: .text%changeFont: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_Component.o;
text: .text%Java_java_awt_Color_initIDs;
text: .text%Java_sun_awt_motif_MToolkit_loadSystemColors;
text: .text%colorToRGB: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetBackground;
text: .text%getGraphicsConfigFromComponentPeer;
text: .text%awtJNI_GetColorForVis;
text: .text%Java_sun_awt_motif_MComponentPeer_pSetForeground;
text: .text%Java_sun_awt_motif_MWindowPeer_pShow;
text: .text%Java_sun_awt_motif_MWindowPeer_pShowModal;
text: .text%setStateHints: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%awt_util_setMinMaxSizeProps;
text: .text%innerCanvasEH: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%reconfigureOuterCanvas: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%Java_java_awt_AWTEvent_initIDs;
text: .text%outerCanvasResizeCB: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_cacheInit;
text: .text%shellEH: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_findHeavyweightUnderCursor;
text: .text%getCurComponent;
text: .text%get_awt_TopLevelInsetsProp;
text: .text%syncTopLevelPos;
text: .text%Java_sun_awt_motif_MComponentPeer_nativeHandleEvent;
text: .text%raiseInputMethodWindow;
text: .text%getWindowState: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
text: .text%awt_canvas_event_handler;
text: .text%awt_canvas_handleEvent;
text: .text%HandleExposeEvent: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/canvas.o;
text: .text%checkForExpose: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/canvas.o;
text: .text%Java_java_awt_Event_initIDs;
text: .text%Java_java_awt_image_ColorModel_initIDs;
text: .text%Java_sun_awt_motif_X11Graphics_cacheInit;
text: .text%InitMITShm: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_Graphics.o;
text: .text%Java_sun_java2d_loops_RasterOutputManager_getPlatformFontVar;
text: .text%Java_sun_awt_motif_X11Graphics_createFromComponent;
text: .text%Java_sun_awt_motif_X11Graphics_pSetForeground;
text: .text%awt_init_gc;
text: .text%Java_sun_awt_motif_X11Graphics_pSetFont;
text: .text%awtJNI_GetFontData;
text: .text%awtJNI_IsMultiFont;
text: .text%Java_sun_awt_FontDescriptor_initIDs;
text: .text%loadFont;
text: .text%Java_sun_awt_motif_X11Graphics_setOrigin;
text: .text%Java_sun_awt_motif_X11Graphics_setLineAttrs;
text: .text%Java_sun_awt_motif_X11Graphics_changeClip;
text: .text%Java_sun_awt_motif_X11Graphics_devClearRect;
text: .text%Java_sun_awt_motif_X11Graphics_disposeImpl;
# Test LoadJFrame
text: .text%Java_java_awt_event_InputEvent_initIDs;
text: .text%Java_java_awt_event_KeyEvent_initIDs;
text: .text%expandDamageRect: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/canvas.o;
text: .text%awtJNI_ThreadYield;
text: .text%Java_sun_awt_motif_X11Graphics_createFromGraphics;
text: .text%Java_sun_awt_motif_MToolkit_getScreenWidth;
text: .text%Java_sun_awt_motif_MToolkit_getScreenHeight;
text: .text%Java_sun_awt_X11GraphicsConfig_makeColorModel;
text: .text%awtJNI_GetColorModel;
text: .text%Java_java_awt_image_BufferedImage_initIDs;
text: .text%Java_java_awt_image_Raster_initIDs;
text: .text%Java_java_awt_image_SampleModel_initIDs;
text: .text%Java_java_awt_image_SinglePixelPackedSampleModel_initIDs;
text: .text%Java_sun_awt_image_IntegerComponentRaster_initIDs;
text: .text%Java_sun_java2d_loops_ImageData_initIDs;
text: .text%Java_sun_java2d_loops_IntDiscreteRenderer_devSetRect;
text: .text%Java_sun_awt_motif_X11Graphics_X11LockViewResources;
text: .text%X11DeferredLockViewResources: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_Graphics.o;
text: .text%getLockMethod: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_Graphics.o;
text: .text%DGA_DeferredLockViewResources;
text: .text%setLockMethod: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_Graphics.o;
text: .text%getPrimitiveType: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_Graphics.o;
text: .text%Java_sun_awt_motif_X11Graphics_X11UnLockViewResources;
text: .text%DGA_UnlockViewResources;
text: .text%Java_sun_java2d_loops_DefaultComponent_IntIsomorphicCopy;
text: .text%minImageWidths;
text: .text%minImageRows;
text: .text%getIntImageLockInfo;
text: .text%lockIntImageData;
text: .text%unlockIntImageData;
# Test JHello
text: .text%Java_java_awt_FontMetrics_initIDs;
# SwingSet
text: .text%Java_sun_awt_image_Image_initIDs;
text: .text%Java_sun_awt_image_ImageRepresentation_initIDs;
text: .text%Java_java_awt_image_IndexColorModel_initIDs;
text: .text%Java_sun_awt_motif_MWindowPeer_setSaveUnder;
text: .text%Java_java_awt_AWTEvent_freeNativeData;
text: .text%Java_sun_java2d_loops_DefaultComponent_IntRgbToXbgr;
text: .text%Java_sun_awt_motif_MCanvasPeer_create;
text: .text%awt_util_insertCallback;
text: .text%Java_sun_awt_motif_MComponentPeer_getComponents_1NoClientCode;
text: .text%Java_sun_awt_motif_MComponentPeer_pReshape;
text: .text%awt_util_reshape;
text: .text%Java_sun_awt_motif_MComponentPeer_pShow;
text: .text%Java_sun_java2d_loops_IntDiscreteRenderer_devDrawLine;
text: .text%doDrawLine: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/IntDiscreteRenderer.o;
text: .text%adjustLine: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/IntDiscreteRenderer.o;
text: .text%Java_sun_awt_image_GifImageDecoder_initIDs;
text: .text%Java_java_awt_image_ComponentSampleModel_initIDs;
text: .text%Java_sun_awt_image_ByteComponentRaster_initIDs;
text: .text%Java_sun_awt_image_GifImageDecoder_parseImage;
text: .text%Java_sun_awt_image_ImageRepresentation_setBytePixels;
text: .text%Java_sun_java2d_loops_IntDiscreteRenderer_devDrawRect;
text: .text%outcode: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/IntDiscreteRenderer.o;
text: .text%Java_sun_java2d_loops_ImageData_isAllOpaqueGrayICM;
text: .text%Java_sun_java2d_loops_GIFAcceleratorLoops_LUTcopyTo32BitXBgr;
text: .text%getByteIndexedImageLockInfo;
text: .text%lockByteIndexedImageData;
text: .text%unlockByteIndexedImageData;
text: .text%Java_sun_java2d_loops_GIFAcceleratorLoops_LUTxparTo32BitXBgr;
text: .text%shouldDispatchToWidget: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awtMenuIsActive;
text: .text%awt_util_focusIsOnMenu;
text: .text%awt_isModal;
text: .text%findWidgetInfo: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%awt_copyXEvent;
text: .text%awt_post_java_mouse_event;
text: .text%Java_java_awt_event_MouseEvent_initIDs;
text: .text%sysTimeMillis;
text: .text%updateCursor;
text: .text%awt_setActivatedShell;
text: .text%handleFocusEvent;
text: .text%awt_post_java_focus_event;
text: .text%getModifiers;
text: .text%Java_java_awt_AWTEvent_copyDataFieldInto;
text: .text%Java_sun_awt_motif_X11InputMethod_initIDs;
text: .text%Java_sun_awt_motif_X11InputMethod_openXIM;
text: .text%awt_put_back_event;
text: .text%awt_get_next_put_back_event: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%null_event_handler: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_MToolkit.o;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_getCursorPos;
text: .text%Java_sun_awt_motif_MGlobalCursorManager_findComponentAt;
text: .text%Java_sun_awt_motif_MWindowPeer_hasTextComponents;
text: .text%Java_sun_awt_motif_X11InputMethod_createXICNative;
text: .text%findClass: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_InputMethod.o;
text: .text%createXIC: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_InputMethod.o;
text: .text%Java_sun_awt_motif_X11InputMethod_setXICFocus;
text: .text%setXICWindowFocus: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_InputMethod.o;
text: .text%setXICFocus: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_InputMethod.o;
text: .text%getAncestorShell;
text: .text%Java_sun_awt_motif_X11InputMethod_turnoffStatusWindow;
text: .text%Frame_quit: ../../../build/solaris-sparcv9/tmp/sun/sun.awt/motif12/obj64/awt_TopLevel.o;
...@@ -256,8 +256,6 @@ SUNWprivate_1.1 { ...@@ -256,8 +256,6 @@ SUNWprivate_1.1 {
Java_sun_awt_X11_XToolkit_waitForEvents; Java_sun_awt_X11_XToolkit_waitForEvents;
Java_java_awt_Event_initIDs; Java_java_awt_Event_initIDs;
Java_sun_awt_motif_X11FontMetrics_initIDs;
Java_sun_awt_motif_X11FontMetrics_init;
Java_sun_awt_X11_XWindow_x11inputMethodLookupString; Java_sun_awt_X11_XWindow_x11inputMethodLookupString;
Java_sun_awt_X11_XWindow_haveCurrentX11InputMethodInstance; Java_sun_awt_X11_XWindow_haveCurrentX11InputMethodInstance;
Java_java_awt_AWTEvent_nativeSetSource; Java_java_awt_AWTEvent_nativeSetSource;
...@@ -265,7 +263,6 @@ SUNWprivate_1.1 { ...@@ -265,7 +263,6 @@ SUNWprivate_1.1 {
Java_sun_awt_PlatformFont_initIDs; Java_sun_awt_PlatformFont_initIDs;
Java_sun_awt_FontDescriptor_initIDs; Java_sun_awt_FontDescriptor_initIDs;
Java_sun_awt_X11_XFontPeer_initIDs; Java_sun_awt_X11_XFontPeer_initIDs;
Java_sun_awt_motif_X11FontMetrics_getMFCharsWidth;
Java_sun_awt_X11InputMethod_initIDs; Java_sun_awt_X11InputMethod_initIDs;
Java_sun_awt_X11InputMethod_resetXIC; Java_sun_awt_X11InputMethod_resetXIC;
Java_sun_awt_X11InputMethod_disposeXIC; Java_sun_awt_X11InputMethod_disposeXIC;
...@@ -322,6 +319,8 @@ SUNWprivate_1.1 { ...@@ -322,6 +319,8 @@ SUNWprivate_1.1 {
Java_sun_awt_X11_XlibWrapper_XSynchronize; Java_sun_awt_X11_XlibWrapper_XSynchronize;
Java_java_awt_FileDialog_initIDs; Java_java_awt_FileDialog_initIDs;
Java_sun_awt_X11_XWindow_initIDs; Java_sun_awt_X11_XWindow_initIDs;
Java_sun_awt_X11_XWindowPeer_getLocalHostname;
Java_sun_awt_X11_XWindowPeer_getJvmPID;
Java_sun_java2d_opengl_OGLContext_getOGLIdString; Java_sun_java2d_opengl_OGLContext_getOGLIdString;
Java_sun_java2d_opengl_OGLMaskFill_maskFill; Java_sun_java2d_opengl_OGLMaskFill_maskFill;
......
/* /*
* Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -54,7 +54,7 @@ abstract class AbstractFinder<T> { ...@@ -54,7 +54,7 @@ abstract class AbstractFinder<T> {
/** /**
* Returns an array of {@code Class} objects * Returns an array of {@code Class} objects
* that represent the formal parameter types of the method * that represent the formal parameter types of the method.
* Returns an empty array if the method takes no parameters. * Returns an empty array if the method takes no parameters.
* *
* @param method the object that represents method * @param method the object that represents method
......
/* /*
* Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -87,7 +87,7 @@ public final class ConstructorFinder extends AbstractFinder<Constructor<?>> { ...@@ -87,7 +87,7 @@ public final class ConstructorFinder extends AbstractFinder<Constructor<?>> {
/** /**
* Returns an array of {@code Class} objects * Returns an array of {@code Class} objects
* that represent the formal parameter types of the constructor * that represent the formal parameter types of the constructor.
* Returns an empty array if the constructor takes no parameters. * Returns an empty array if the constructor takes no parameters.
* *
* @param constructor the object that represents constructor * @param constructor the object that represents constructor
......
/* /*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -190,7 +190,7 @@ public final class MethodFinder extends AbstractFinder<Method> { ...@@ -190,7 +190,7 @@ public final class MethodFinder extends AbstractFinder<Method> {
/** /**
* Returns an array of {@code Class} objects * Returns an array of {@code Class} objects
* that represent the formal parameter types of the method * that represent the formal parameter types of the method.
* Returns an empty array if the method takes no parameters. * Returns an empty array if the method takes no parameters.
* *
* @param method the object that represents method * @param method the object that represents method
...@@ -226,6 +226,6 @@ public final class MethodFinder extends AbstractFinder<Method> { ...@@ -226,6 +226,6 @@ public final class MethodFinder extends AbstractFinder<Method> {
*/ */
@Override @Override
protected boolean isValid(Method method) { protected boolean isValid(Method method) {
return Modifier.isPublic(method.getModifiers()) && method.getName().equals(this.name); return !method.isBridge() && Modifier.isPublic(method.getModifiers()) && method.getName().equals(this.name);
} }
} }
...@@ -666,9 +666,10 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -666,9 +666,10 @@ public abstract class Component implements ImageObserver, MenuContainer,
* can lead to a deadlock if client code also uses synchronization * can lead to a deadlock if client code also uses synchronization
* by a component object. For every such situation revealed we should * by a component object. For every such situation revealed we should
* consider possibility of replacing "this" with the package private * consider possibility of replacing "this" with the package private
* objectLock object introduced below. So far there're 2 issues known: * objectLock object introduced below. So far there're 3 issues known:
* - CR 6708322 (the getName/setName methods); * - CR 6708322 (the getName/setName methods);
* - CR 6608764 (the PropertyChangeListener machinery). * - CR 6608764 (the PropertyChangeListener machinery);
* - CR 7108598 (the Container.paint/KeyboardFocusManager.clearMostRecentFocusOwner methods).
* *
* Note: this field is considered final, though readObject() prohibits * Note: this field is considered final, though readObject() prohibits
* initializing final fields. * initializing final fields.
...@@ -1158,6 +1159,10 @@ public abstract class Component implements ImageObserver, MenuContainer, ...@@ -1158,6 +1159,10 @@ public abstract class Component implements ImageObserver, MenuContainer,
boolean updateGraphicsData(GraphicsConfiguration gc) { boolean updateGraphicsData(GraphicsConfiguration gc) {
checkTreeLock(); checkTreeLock();
if (graphicsConfig == gc) {
return false;
}
graphicsConfig = gc; graphicsConfig = gc;
ComponentPeer peer = getPeer(); ComponentPeer peer = getPeer();
......
...@@ -1950,7 +1950,7 @@ public class Container extends Component { ...@@ -1950,7 +1950,7 @@ public class Container extends Component {
*/ */
public void paint(Graphics g) { public void paint(Graphics g) {
if (isShowing()) { if (isShowing()) {
synchronized (this) { synchronized (getObjectLock()) {
if (printing) { if (printing) {
if (printingThreads.contains(Thread.currentThread())) { if (printingThreads.contains(Thread.currentThread())) {
return; return;
...@@ -2004,7 +2004,7 @@ public class Container extends Component { ...@@ -2004,7 +2004,7 @@ public class Container extends Component {
if (isShowing()) { if (isShowing()) {
Thread t = Thread.currentThread(); Thread t = Thread.currentThread();
try { try {
synchronized (this) { synchronized (getObjectLock()) {
if (printingThreads == null) { if (printingThreads == null) {
printingThreads = new HashSet(); printingThreads = new HashSet();
} }
...@@ -2013,7 +2013,7 @@ public class Container extends Component { ...@@ -2013,7 +2013,7 @@ public class Container extends Component {
} }
super.print(g); // By default, Component.print() calls paint() super.print(g); // By default, Component.print() calls paint()
} finally { } finally {
synchronized (this) { synchronized (getObjectLock()) {
printingThreads.remove(t); printingThreads.remove(t);
printing = !printingThreads.isEmpty(); printing = !printingThreads.isEmpty();
} }
......
...@@ -34,6 +34,7 @@ import java.awt.Toolkit; ...@@ -34,6 +34,7 @@ import java.awt.Toolkit;
import java.awt.im.InputMethodHighlight; import java.awt.im.InputMethodHighlight;
import java.text.Annotation; import java.text.Annotation;
import java.text.AttributedCharacterIterator; import java.text.AttributedCharacterIterator;
import java.text.AttributedCharacterIterator.Attribute;
import java.util.Vector; import java.util.Vector;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -65,7 +66,7 @@ final class StyledParagraph { ...@@ -65,7 +66,7 @@ final class StyledParagraph {
// If there are multiple Decorations in the paragraph, they are // If there are multiple Decorations in the paragraph, they are
// stored in this Vector, in order. Otherwise this vector and // stored in this Vector, in order. Otherwise this vector and
// the decorationStarts array are null. // the decorationStarts array are null.
private Vector decorations; private Vector<Decoration> decorations;
// If there are multiple Decorations in the paragraph, // If there are multiple Decorations in the paragraph,
// decorationStarts[i] contains the index where decoration i // decorationStarts[i] contains the index where decoration i
// starts. For convenience, there is an extra entry at the // starts. For convenience, there is an extra entry at the
...@@ -76,7 +77,7 @@ final class StyledParagraph { ...@@ -76,7 +77,7 @@ final class StyledParagraph {
// they are // they are
// stored in this Vector, in order. Otherwise this vector and // stored in this Vector, in order. Otherwise this vector and
// the fontStarts array are null. // the fontStarts array are null.
private Vector fonts; private Vector<Object> fonts;
// If there are multiple Fonts/GraphicAttributes in the paragraph, // If there are multiple Fonts/GraphicAttributes in the paragraph,
// fontStarts[i] contains the index where decoration i // fontStarts[i] contains the index where decoration i
// starts. For convenience, there is an extra entry at the // starts. For convenience, there is an extra entry at the
...@@ -104,7 +105,7 @@ final class StyledParagraph { ...@@ -104,7 +105,7 @@ final class StyledParagraph {
final int nextRunStart = aci.getRunLimit(); final int nextRunStart = aci.getRunLimit();
final int localIndex = index-start; final int localIndex = index-start;
Map attributes = aci.getAttributes(); Map<? extends Attribute, ?> attributes = aci.getAttributes();
attributes = addInputMethodAttrs(attributes); attributes = addInputMethodAttrs(attributes);
Decoration d = Decoration.getDecoration(attributes); Decoration d = Decoration.getDecoration(attributes);
addDecoration(d, localIndex); addDecoration(d, localIndex);
...@@ -168,7 +169,8 @@ final class StyledParagraph { ...@@ -168,7 +169,8 @@ final class StyledParagraph {
char ch = aci.setIndex(insertPos); char ch = aci.setIndex(insertPos);
int relativePos = Math.max(insertPos - aci.getBeginIndex() - 1, 0); int relativePos = Math.max(insertPos - aci.getBeginIndex() - 1, 0);
Map attributes = addInputMethodAttrs(aci.getAttributes()); Map<? extends Attribute, ?> attributes =
addInputMethodAttrs(aci.getAttributes());
Decoration d = Decoration.getDecoration(attributes); Decoration d = Decoration.getDecoration(attributes);
if (!oldParagraph.getDecorationAt(relativePos).equals(d)) { if (!oldParagraph.getDecorationAt(relativePos).equals(d)) {
return new StyledParagraph(aci, chars); return new StyledParagraph(aci, chars);
...@@ -297,7 +299,7 @@ final class StyledParagraph { ...@@ -297,7 +299,7 @@ final class StyledParagraph {
return decoration; return decoration;
} }
int run = findRunContaining(index, decorationStarts); int run = findRunContaining(index, decorationStarts);
return (Decoration) decorations.elementAt(run); return decorations.elementAt(run);
} }
/** /**
...@@ -339,6 +341,7 @@ final class StyledParagraph { ...@@ -339,6 +341,7 @@ final class StyledParagraph {
* starts array does not have room for the index, a * starts array does not have room for the index, a
* new array is created and returned. * new array is created and returned.
*/ */
@SuppressWarnings({"rawtypes", "unchecked"})
private static int[] addToVector(Object obj, private static int[] addToVector(Object obj,
int index, int index,
Vector v, Vector v,
...@@ -374,7 +377,7 @@ final class StyledParagraph { ...@@ -374,7 +377,7 @@ final class StyledParagraph {
} }
else { else {
if (!decoration.equals(d)) { if (!decoration.equals(d)) {
decorations = new Vector(INITIAL_SIZE); decorations = new Vector<Decoration>(INITIAL_SIZE);
decorations.addElement(decoration); decorations.addElement(decoration);
decorations.addElement(d); decorations.addElement(d);
decorationStarts = new int[INITIAL_SIZE]; decorationStarts = new int[INITIAL_SIZE];
...@@ -398,7 +401,7 @@ final class StyledParagraph { ...@@ -398,7 +401,7 @@ final class StyledParagraph {
} }
else { else {
if (!font.equals(f)) { if (!font.equals(f)) {
fonts = new Vector(INITIAL_SIZE); fonts = new Vector<Object>(INITIAL_SIZE);
fonts.addElement(font); fonts.addElement(font);
fonts.addElement(f); fonts.addElement(f);
fontStarts = new int[INITIAL_SIZE]; fontStarts = new int[INITIAL_SIZE];
...@@ -412,7 +415,8 @@ final class StyledParagraph { ...@@ -412,7 +415,8 @@ final class StyledParagraph {
* Resolve the given chars into Fonts using FontResolver, then add * Resolve the given chars into Fonts using FontResolver, then add
* font runs for each. * font runs for each.
*/ */
private void addFonts(char[] chars, Map attributes, int start, int limit) { private void addFonts(char[] chars, Map<? extends Attribute, ?> attributes,
int start, int limit) {
FontResolver resolver = FontResolver.getInstance(); FontResolver resolver = FontResolver.getInstance();
CodePointIterator iter = CodePointIterator.create(chars, start, limit); CodePointIterator iter = CodePointIterator.create(chars, start, limit);
...@@ -426,7 +430,8 @@ final class StyledParagraph { ...@@ -426,7 +430,8 @@ final class StyledParagraph {
* Return a Map with entries from oldStyles, as well as input * Return a Map with entries from oldStyles, as well as input
* method entries, if any. * method entries, if any.
*/ */
static Map addInputMethodAttrs(Map oldStyles) { static Map<? extends Attribute, ?>
addInputMethodAttrs(Map<? extends Attribute, ?> oldStyles) {
Object value = oldStyles.get(TextAttribute.INPUT_METHOD_HIGHLIGHT); Object value = oldStyles.get(TextAttribute.INPUT_METHOD_HIGHLIGHT);
...@@ -439,7 +444,7 @@ final class StyledParagraph { ...@@ -439,7 +444,7 @@ final class StyledParagraph {
InputMethodHighlight hl; InputMethodHighlight hl;
hl = (InputMethodHighlight) value; hl = (InputMethodHighlight) value;
Map imStyles = null; Map<? extends Attribute, ?> imStyles = null;
try { try {
imStyles = hl.getStyle(); imStyles = hl.getStyle();
} catch (NoSuchMethodError e) { } catch (NoSuchMethodError e) {
...@@ -451,7 +456,8 @@ final class StyledParagraph { ...@@ -451,7 +456,8 @@ final class StyledParagraph {
} }
if (imStyles != null) { if (imStyles != null) {
HashMap newStyles = new HashMap(5, (float)0.9); HashMap<Attribute, Object>
newStyles = new HashMap<>(5, (float)0.9);
newStyles.putAll(oldStyles); newStyles.putAll(oldStyles);
newStyles.putAll(imStyles); newStyles.putAll(imStyles);
...@@ -471,7 +477,8 @@ final class StyledParagraph { ...@@ -471,7 +477,8 @@ final class StyledParagraph {
* If attributes does not contain a GraphicAttribute, Font, or * If attributes does not contain a GraphicAttribute, Font, or
* Font family entry this method returns null. * Font family entry this method returns null.
*/ */
private static Object getGraphicOrFont(Map attributes) { private static Object getGraphicOrFont(
Map<? extends Attribute, ?> attributes) {
Object value = attributes.get(TextAttribute.CHAR_REPLACEMENT); Object value = attributes.get(TextAttribute.CHAR_REPLACEMENT);
if (value != null) { if (value != null) {
......
...@@ -257,7 +257,8 @@ import java.util.HashMap; ...@@ -257,7 +257,8 @@ import java.util.HashMap;
public final class TextAttribute extends Attribute { public final class TextAttribute extends Attribute {
// table of all instances in this class, used by readResolve // table of all instances in this class, used by readResolve
private static final Map instanceMap = new HashMap(29); private static final Map<String, TextAttribute>
instanceMap = new HashMap<String, TextAttribute>(29);
/** /**
* Constructs a <code>TextAttribute</code> with the specified name. * Constructs a <code>TextAttribute</code> with the specified name.
...@@ -280,7 +281,7 @@ public final class TextAttribute extends Attribute { ...@@ -280,7 +281,7 @@ public final class TextAttribute extends Attribute {
"subclass didn't correctly implement readResolve"); "subclass didn't correctly implement readResolve");
} }
TextAttribute instance = (TextAttribute) instanceMap.get(getName()); TextAttribute instance = instanceMap.get(getName());
if (instance != null) { if (instance != null) {
return instance; return instance;
} else { } else {
......
...@@ -55,6 +55,7 @@ import java.awt.geom.Rectangle2D; ...@@ -55,6 +55,7 @@ import java.awt.geom.Rectangle2D;
import java.text.AttributedString; import java.text.AttributedString;
import java.text.AttributedCharacterIterator; import java.text.AttributedCharacterIterator;
import java.text.AttributedCharacterIterator.Attribute; import java.text.AttributedCharacterIterator.Attribute;
import java.text.CharacterIterator;
import java.util.Map; import java.util.Map;
import java.util.HashMap; import java.util.HashMap;
import java.util.Hashtable; import java.util.Hashtable;
...@@ -382,7 +383,7 @@ public final class TextLayout implements Cloneable { ...@@ -382,7 +383,7 @@ public final class TextLayout implements Cloneable {
throw new IllegalArgumentException("Zero length string passed to TextLayout constructor."); throw new IllegalArgumentException("Zero length string passed to TextLayout constructor.");
} }
Map attributes = null; Map<? extends Attribute, ?> attributes = null;
if (font.hasLayoutAttributes()) { if (font.hasLayoutAttributes()) {
attributes = font.getAttributes(); attributes = font.getAttributes();
} }
...@@ -451,7 +452,7 @@ public final class TextLayout implements Cloneable { ...@@ -451,7 +452,7 @@ public final class TextLayout implements Cloneable {
private static Font singleFont(char[] text, private static Font singleFont(char[] text,
int start, int start,
int limit, int limit,
Map attributes) { Map<? extends Attribute, ?> attributes) {
if (attributes.get(TextAttribute.CHAR_REPLACEMENT) != null) { if (attributes.get(TextAttribute.CHAR_REPLACEMENT) != null) {
return null; return null;
...@@ -516,14 +517,17 @@ public final class TextLayout implements Cloneable { ...@@ -516,14 +517,17 @@ public final class TextLayout implements Cloneable {
text.first(); text.first();
char[] chars = new char[len]; char[] chars = new char[len];
int n = 0; int n = 0;
for (char c = text.first(); c != text.DONE; c = text.next()) { for (char c = text.first();
c != CharacterIterator.DONE;
c = text.next())
{
chars[n++] = c; chars[n++] = c;
} }
text.first(); text.first();
if (text.getRunLimit() == limit) { if (text.getRunLimit() == limit) {
Map attributes = text.getAttributes(); Map<? extends Attribute, ?> attributes = text.getAttributes();
Font font = singleFont(chars, 0, len, attributes); Font font = singleFont(chars, 0, len, attributes);
if (font != null) { if (font != null) {
fastInit(chars, font, attributes, frc); fastInit(chars, font, attributes, frc);
...@@ -561,7 +565,9 @@ public final class TextLayout implements Cloneable { ...@@ -561,7 +565,9 @@ public final class TextLayout implements Cloneable {
/** /**
* Initialize the paragraph-specific data. * Initialize the paragraph-specific data.
*/ */
private void paragraphInit(byte aBaseline, CoreMetrics lm, Map paragraphAttrs, char[] text) { private void paragraphInit(byte aBaseline, CoreMetrics lm,
Map<? extends Attribute, ?> paragraphAttrs,
char[] text) {
baseline = aBaseline; baseline = aBaseline;
...@@ -581,7 +587,10 @@ public final class TextLayout implements Cloneable { ...@@ -581,7 +587,10 @@ public final class TextLayout implements Cloneable {
* all renderable by one font (ie no embedded graphics) * all renderable by one font (ie no embedded graphics)
* all on one baseline * all on one baseline
*/ */
private void fastInit(char[] chars, Font font, Map attrs, FontRenderContext frc) { private void fastInit(char[] chars, Font font,
Map<? extends Attribute, ?> attrs,
FontRenderContext frc) {
// Object vf = attrs.get(TextAttribute.ORIENTATION); // Object vf = attrs.get(TextAttribute.ORIENTATION);
// isVerticalLine = TextAttribute.ORIENTATION_VERTICAL.equals(vf); // isVerticalLine = TextAttribute.ORIENTATION_VERTICAL.equals(vf);
isVerticalLine = false; isVerticalLine = false;
...@@ -619,7 +628,7 @@ public final class TextLayout implements Cloneable { ...@@ -619,7 +628,7 @@ public final class TextLayout implements Cloneable {
// and use it and its font to initialize the paragraph. // and use it and its font to initialize the paragraph.
// If not, use the first graphic to initialize. // If not, use the first graphic to initialize.
Map paragraphAttrs = text.getAttributes(); Map<? extends Attribute, ?> paragraphAttrs = text.getAttributes();
boolean haveFont = TextLine.advanceToFirstFont(text); boolean haveFont = TextLine.advanceToFirstFont(text);
......
...@@ -43,6 +43,7 @@ import java.awt.im.InputMethodHighlight; ...@@ -43,6 +43,7 @@ import java.awt.im.InputMethodHighlight;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.text.Annotation; import java.text.Annotation;
import java.text.AttributedCharacterIterator; import java.text.AttributedCharacterIterator;
import java.text.AttributedCharacterIterator.Attribute;
import java.text.Bidi; import java.text.Bidi;
import java.text.CharacterIterator; import java.text.CharacterIterator;
import java.util.Hashtable; import java.util.Hashtable;
...@@ -318,7 +319,8 @@ final class TextLine { ...@@ -318,7 +319,8 @@ final class TextLine {
for (int i = 0, n = 0; i < fComponents.length; ++i, n += 2) { for (int i = 0, n = 0; i < fComponents.length; ++i, n += 2) {
tlc = fComponents[getComponentLogicalIndex(i)]; tlc = fComponents[getComponentLogicalIndex(i)];
AffineTransform at = tlc.getBaselineTransform(); AffineTransform at = tlc.getBaselineTransform();
if (at != null && ((at.getType() & at.TYPE_TRANSLATION) != 0)) { if (at != null &&
((at.getType() & AffineTransform.TYPE_TRANSLATION) != 0)) {
double dx = at.getTranslateX(); double dx = at.getTranslateX();
double dy = at.getTranslateY(); double dy = at.getTranslateY();
builder.moveTo(tx += dx, ty += dy); builder.moveTo(tx += dx, ty += dy);
...@@ -903,7 +905,7 @@ final class TextLine { ...@@ -903,7 +905,7 @@ final class TextLine {
char[] chars, char[] chars,
Font font, Font font,
CoreMetrics lm, CoreMetrics lm,
Map attributes) { Map<? extends Attribute, ?> attributes) {
boolean isDirectionLTR = true; boolean isDirectionLTR = true;
byte[] levels = null; byte[] levels = null;
...@@ -1250,7 +1252,10 @@ final class TextLine { ...@@ -1250,7 +1252,10 @@ final class TextLine {
*/ */
static boolean advanceToFirstFont(AttributedCharacterIterator aci) { static boolean advanceToFirstFont(AttributedCharacterIterator aci) {
for (char ch = aci.first(); ch != aci.DONE; ch = aci.setIndex(aci.getRunLimit())) { for (char ch = aci.first();
ch != CharacterIterator.DONE;
ch = aci.setIndex(aci.getRunLimit()))
{
if (aci.getAttribute(TextAttribute.CHAR_REPLACEMENT) == null) { if (aci.getAttribute(TextAttribute.CHAR_REPLACEMENT) == null) {
return true; return true;
......
...@@ -43,6 +43,7 @@ package java.awt.font; ...@@ -43,6 +43,7 @@ package java.awt.font;
import java.awt.Font; import java.awt.Font;
import java.text.AttributedCharacterIterator; import java.text.AttributedCharacterIterator;
import java.text.AttributedCharacterIterator.Attribute;
import java.text.AttributedString; import java.text.AttributedString;
import java.text.Bidi; import java.text.Bidi;
import java.text.BreakIterator; import java.text.BreakIterator;
...@@ -176,7 +177,7 @@ public final class TextMeasurer implements Cloneable { ...@@ -176,7 +177,7 @@ public final class TextMeasurer implements Cloneable {
throw new Error(); throw new Error();
} }
if (fComponents != null) { if (fComponents != null) {
other.fComponents = (TextLineComponent[]) fComponents.clone(); other.fComponents = fComponents.clone();
} }
return other; return other;
} }
...@@ -199,7 +200,10 @@ public final class TextMeasurer implements Cloneable { ...@@ -199,7 +200,10 @@ public final class TextMeasurer implements Cloneable {
fChars = new char[text.getEndIndex() - fStart]; fChars = new char[text.getEndIndex() - fStart];
int n = 0; int n = 0;
for (char c = text.first(); c != text.DONE; c = text.next()) { for (char c = text.first();
c != CharacterIterator.DONE;
c = text.next())
{
fChars[n++] = c; fChars[n++] = c;
} }
...@@ -211,7 +215,7 @@ public final class TextMeasurer implements Cloneable { ...@@ -211,7 +215,7 @@ public final class TextMeasurer implements Cloneable {
} }
text.first(); text.first();
Map paragraphAttrs = text.getAttributes(); Map<? extends Attribute, ?> paragraphAttrs = text.getAttributes();
NumericShaper shaper = AttributeValues.getNumericShaping(paragraphAttrs); NumericShaper shaper = AttributeValues.getNumericShaping(paragraphAttrs);
if (shaper != null) { if (shaper != null) {
shaper.shape(fChars, 0, fChars.length); shaper.shape(fChars, 0, fChars.length);
...@@ -243,7 +247,8 @@ public final class TextMeasurer implements Cloneable { ...@@ -243,7 +247,8 @@ public final class TextMeasurer implements Cloneable {
GraphicAttribute graphic = (GraphicAttribute) GraphicAttribute graphic = (GraphicAttribute)
paragraphAttrs.get(TextAttribute.CHAR_REPLACEMENT); paragraphAttrs.get(TextAttribute.CHAR_REPLACEMENT);
fBaseline = TextLayout.getBaselineFromGraphic(graphic); fBaseline = TextLayout.getBaselineFromGraphic(graphic);
Font dummyFont = new Font(new Hashtable(5, (float)0.9)); Hashtable<Attribute, ?> fmap = new Hashtable<>(5, (float)0.9);
Font dummyFont = new Font(fmap);
LineMetrics lm = dummyFont.getLineMetrics(" ", 0, 1, fFrc); LineMetrics lm = dummyFont.getLineMetrics(" ", 0, 1, fFrc);
fBaselineOffsets = lm.getBaselineOffsets(); fBaselineOffsets = lm.getBaselineOffsets();
} }
......
...@@ -667,7 +667,8 @@ public abstract class Path2D implements Shape, Cloneable { ...@@ -667,7 +667,8 @@ public abstract class Path2D implements Shape, Cloneable {
// Collapse out initial moveto/lineto // Collapse out initial moveto/lineto
break; break;
} }
// NO BREAK; lineTo(coords[0], coords[1]);
break;
case SEG_LINETO: case SEG_LINETO:
lineTo(coords[0], coords[1]); lineTo(coords[0], coords[1]);
break; break;
...@@ -1392,7 +1393,8 @@ public abstract class Path2D implements Shape, Cloneable { ...@@ -1392,7 +1393,8 @@ public abstract class Path2D implements Shape, Cloneable {
// Collapse out initial moveto/lineto // Collapse out initial moveto/lineto
break; break;
} }
// NO BREAK; lineTo(coords[0], coords[1]);
break;
case SEG_LINETO: case SEG_LINETO:
lineTo(coords[0], coords[1]); lineTo(coords[0], coords[1]);
break; break;
...@@ -2456,7 +2458,7 @@ public abstract class Path2D implements Shape, Cloneable { ...@@ -2456,7 +2458,7 @@ public abstract class Path2D implements Shape, Cloneable {
} }
} }
} }
s.writeByte((byte) SERIAL_PATH_END); s.writeByte(SERIAL_PATH_END);
} }
final void readObject(java.io.ObjectInputStream s, boolean storedbl) final void readObject(java.io.ObjectInputStream s, boolean storedbl)
......
...@@ -32,7 +32,6 @@ import java.applet.AppletContext; ...@@ -32,7 +32,6 @@ import java.applet.AppletContext;
import java.applet.AppletStub; import java.applet.AppletStub;
import java.applet.AudioClip; import java.applet.AudioClip;
import java.awt.GraphicsEnvironment;
import java.awt.Image; import java.awt.Image;
import java.beans.beancontext.BeanContext; import java.beans.beancontext.BeanContext;
...@@ -53,15 +52,11 @@ import java.util.Hashtable; ...@@ -53,15 +52,11 @@ import java.util.Hashtable;
import java.util.Iterator; import java.util.Iterator;
import java.util.Vector; import java.util.Vector;
import sun.awt.AppContext;
/** /**
* This class provides some general purpose beans control methods. * This class provides some general purpose beans control methods.
*/ */
public class Beans { public class Beans {
private static final Object DESIGN_TIME = new Object();
private static final Object GUI_AVAILABLE = new Object();
/** /**
* <p> * <p>
...@@ -399,8 +394,7 @@ public class Beans { ...@@ -399,8 +394,7 @@ public class Beans {
* @see DesignMode * @see DesignMode
*/ */
public static boolean isDesignTime() { public static boolean isDesignTime() {
Object value = AppContext.getAppContext().get(DESIGN_TIME); return ThreadGroupContext.getContext().isDesignTime();
return (value instanceof Boolean) && (Boolean) value;
} }
/** /**
...@@ -417,8 +411,7 @@ public class Beans { ...@@ -417,8 +411,7 @@ public class Beans {
* *
*/ */
public static boolean isGuiAvailable() { public static boolean isGuiAvailable() {
Object value = AppContext.getAppContext().get(GUI_AVAILABLE); return ThreadGroupContext.getContext().isGuiAvailable();
return (value instanceof Boolean) ? (Boolean) value : !GraphicsEnvironment.isHeadless();
} }
/** /**
...@@ -444,7 +437,7 @@ public class Beans { ...@@ -444,7 +437,7 @@ public class Beans {
if (sm != null) { if (sm != null) {
sm.checkPropertiesAccess(); sm.checkPropertiesAccess();
} }
AppContext.getAppContext().put(DESIGN_TIME, Boolean.valueOf(isDesignTime)); ThreadGroupContext.getContext().setDesignTime(isDesignTime);
} }
/** /**
...@@ -470,7 +463,7 @@ public class Beans { ...@@ -470,7 +463,7 @@ public class Beans {
if (sm != null) { if (sm != null) {
sm.checkPropertiesAccess(); sm.checkPropertiesAccess();
} }
AppContext.getAppContext().put(GUI_AVAILABLE, Boolean.valueOf(isGuiAvailable)); ThreadGroupContext.getContext().setGuiAvailable(isGuiAvailable);
} }
} }
......
...@@ -195,7 +195,13 @@ public class Encoder { ...@@ -195,7 +195,13 @@ public class Encoder {
*/ */
public PersistenceDelegate getPersistenceDelegate(Class<?> type) { public PersistenceDelegate getPersistenceDelegate(Class<?> type) {
PersistenceDelegate pd = this.finder.find(type); PersistenceDelegate pd = this.finder.find(type);
return (pd != null) ? pd : MetaData.getPersistenceDelegate(type); if (pd == null) {
pd = MetaData.getPersistenceDelegate(type);
if (pd != null) {
this.finder.register(type, pd);
}
}
return pd;
} }
/** /**
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
package java.beans; package java.beans;
import com.sun.beans.WeakCache; import com.sun.beans.WeakCache;
import com.sun.beans.finder.BeanInfoFinder;
import com.sun.beans.finder.ClassFinder; import com.sun.beans.finder.ClassFinder;
import java.awt.Component; import java.awt.Component;
...@@ -44,9 +43,7 @@ import java.util.EventListener; ...@@ -44,9 +43,7 @@ import java.util.EventListener;
import java.util.EventObject; import java.util.EventObject;
import java.util.List; import java.util.List;
import java.util.TreeMap; import java.util.TreeMap;
import java.util.WeakHashMap;
import sun.awt.AppContext;
import sun.reflect.misc.ReflectUtil; import sun.reflect.misc.ReflectUtil;
/** /**
...@@ -98,10 +95,7 @@ public class Introspector { ...@@ -98,10 +95,7 @@ public class Introspector {
public final static int IGNORE_ALL_BEANINFO = 3; public final static int IGNORE_ALL_BEANINFO = 3;
// Static Caches to speed up introspection. // Static Caches to speed up introspection.
private static WeakCache<Class<?>, Method[]> declaredMethodCache = private static final WeakCache<Class<?>, Method[]> declaredMethodCache = new WeakCache<>();
new WeakCache<>();
private static final Object BEANINFO_CACHE = new Object();
private Class<?> beanClass; private Class<?> beanClass;
private BeanInfo explicitBeanInfo; private BeanInfo explicitBeanInfo;
...@@ -134,8 +128,6 @@ public class Introspector { ...@@ -134,8 +128,6 @@ public class Introspector {
static final String SET_PREFIX = "set"; static final String SET_PREFIX = "set";
static final String IS_PREFIX = "is"; static final String IS_PREFIX = "is";
private static final Object FINDER_KEY = new Object();
//====================================================================== //======================================================================
// Public methods // Public methods
//====================================================================== //======================================================================
...@@ -160,22 +152,15 @@ public class Introspector { ...@@ -160,22 +152,15 @@ public class Introspector {
if (!ReflectUtil.isPackageAccessible(beanClass)) { if (!ReflectUtil.isPackageAccessible(beanClass)) {
return (new Introspector(beanClass, null, USE_ALL_BEANINFO)).getBeanInfo(); return (new Introspector(beanClass, null, USE_ALL_BEANINFO)).getBeanInfo();
} }
Map<Class<?>, BeanInfo> beanInfoCache; ThreadGroupContext context = ThreadGroupContext.getContext();
BeanInfo beanInfo; BeanInfo beanInfo;
synchronized (BEANINFO_CACHE) { synchronized (declaredMethodCache) {
@SuppressWarnings("unchecked") beanInfo = context.getBeanInfo(beanClass);
Map<Class<?>, BeanInfo> temp = beanInfoCache =
(Map<Class<?>, BeanInfo>) AppContext.getAppContext().get(BEANINFO_CACHE);
if (beanInfoCache == null) {
beanInfoCache = new WeakHashMap<>();
AppContext.getAppContext().put(BEANINFO_CACHE, beanInfoCache);
}
beanInfo = beanInfoCache.get(beanClass);
} }
if (beanInfo == null) { if (beanInfo == null) {
beanInfo = new Introspector(beanClass, null, USE_ALL_BEANINFO).getBeanInfo(); beanInfo = new Introspector(beanClass, null, USE_ALL_BEANINFO).getBeanInfo();
synchronized (BEANINFO_CACHE) { synchronized (declaredMethodCache) {
beanInfoCache.put(beanClass, beanInfo); context.putBeanInfo(beanClass, beanInfo);
} }
} }
return beanInfo; return beanInfo;
...@@ -308,7 +293,7 @@ public class Introspector { ...@@ -308,7 +293,7 @@ public class Introspector {
*/ */
public static String[] getBeanInfoSearchPath() { public static String[] getBeanInfoSearchPath() {
return getFinder().getPackages(); return ThreadGroupContext.getContext().getBeanInfoFinder().getPackages();
} }
/** /**
...@@ -332,7 +317,7 @@ public class Introspector { ...@@ -332,7 +317,7 @@ public class Introspector {
if (sm != null) { if (sm != null) {
sm.checkPropertiesAccess(); sm.checkPropertiesAccess();
} }
getFinder().setPackages(path); ThreadGroupContext.getContext().getBeanInfoFinder().setPackages(path);
} }
...@@ -344,11 +329,8 @@ public class Introspector { ...@@ -344,11 +329,8 @@ public class Introspector {
*/ */
public static void flushCaches() { public static void flushCaches() {
synchronized (BEANINFO_CACHE) { synchronized (declaredMethodCache) {
Map<?,?> beanInfoCache = (Map) AppContext.getAppContext().get(BEANINFO_CACHE); ThreadGroupContext.getContext().clearBeanInfoCache();
if (beanInfoCache != null) {
beanInfoCache.clear();
}
declaredMethodCache.clear(); declaredMethodCache.clear();
} }
} }
...@@ -372,12 +354,8 @@ public class Introspector { ...@@ -372,12 +354,8 @@ public class Introspector {
if (clz == null) { if (clz == null) {
throw new NullPointerException(); throw new NullPointerException();
} }
synchronized (BEANINFO_CACHE) { synchronized (declaredMethodCache) {
@SuppressWarnings("unchecked") ThreadGroupContext.getContext().removeBeanInfo(clz);
Map<Class<?>, ?> beanInfoCache = (Map<Class<?>, ?>) AppContext.getAppContext().get(BEANINFO_CACHE);
if (beanInfoCache != null) {
beanInfoCache.put(clz, null);
}
declaredMethodCache.put(clz, null); declaredMethodCache.put(clz, null);
} }
} }
...@@ -455,7 +433,7 @@ public class Introspector { ...@@ -455,7 +433,7 @@ public class Introspector {
* @return Instance of an explicit BeanInfo class or null if one isn't found. * @return Instance of an explicit BeanInfo class or null if one isn't found.
*/ */
private static BeanInfo findExplicitBeanInfo(Class<?> beanClass) { private static BeanInfo findExplicitBeanInfo(Class<?> beanClass) {
return getFinder().find(beanClass); return ThreadGroupContext.getContext().getBeanInfoFinder().find(beanClass);
} }
/** /**
...@@ -1278,7 +1256,7 @@ public class Introspector { ...@@ -1278,7 +1256,7 @@ public class Introspector {
if (!ReflectUtil.isPackageAccessible(clz)) { if (!ReflectUtil.isPackageAccessible(clz)) {
return new Method[0]; return new Method[0];
} }
synchronized (BEANINFO_CACHE) { synchronized (declaredMethodCache) {
Method[] result = declaredMethodCache.get(clz); Method[] result = declaredMethodCache.get(clz);
if (result == null) { if (result == null) {
result = clz.getMethods(); result = clz.getMethods();
...@@ -1429,17 +1407,6 @@ public class Introspector { ...@@ -1429,17 +1407,6 @@ public class Introspector {
return false; return false;
} }
private static BeanInfoFinder getFinder() {
AppContext context = AppContext.getAppContext();
Object object = context.get(FINDER_KEY);
if (object instanceof BeanInfoFinder) {
return (BeanInfoFinder) object;
}
BeanInfoFinder finder = new BeanInfoFinder();
context.put(FINDER_KEY, finder);
return finder;
}
/** /**
* Try to create an instance of a named class. * Try to create an instance of a named class.
* First try the classloader of "sibling", then try the system * First try the classloader of "sibling", then try the system
......
/* /*
* Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
package java.beans; package java.beans;
import java.util.EventObject;
/** /**
* A "PropertyChange" event gets delivered whenever a bean changes a "bound" * A "PropertyChange" event gets delivered whenever a bean changes a "bound"
* or "constrained" property. A PropertyChangeEvent object is sent as an * or "constrained" property. A PropertyChangeEvent object is sent as an
...@@ -42,21 +44,21 @@ package java.beans; ...@@ -42,21 +44,21 @@ package java.beans;
* arbitrary set of if its properties have changed. In this case the * arbitrary set of if its properties have changed. In this case the
* old and new values should also be null. * old and new values should also be null.
*/ */
public class PropertyChangeEvent extends EventObject {
public class PropertyChangeEvent extends java.util.EventObject {
private static final long serialVersionUID = 7042693688939648123L; private static final long serialVersionUID = 7042693688939648123L;
/** /**
* Constructs a new <code>PropertyChangeEvent</code>. * Constructs a new {@code PropertyChangeEvent}.
*
* @param source the bean that fired the event
* @param propertyName the programmatic name of the property that was changed
* @param oldValue the old value of the property
* @param newValue the new value of the property
* *
* @param source The bean that fired the event. * @throws IllegalArgumentException if {@code source} is {@code null}
* @param propertyName The programmatic name of the property
* that was changed.
* @param oldValue The old value of the property.
* @param newValue The new value of the property.
*/ */
public PropertyChangeEvent(Object source, String propertyName, public PropertyChangeEvent(Object source, String propertyName,
Object oldValue, Object newValue) { Object oldValue, Object newValue) {
super(source); super(source);
this.propertyName = propertyName; this.propertyName = propertyName;
this.newValue = newValue; this.newValue = newValue;
......
...@@ -454,10 +454,7 @@ public class PropertyDescriptor extends FeatureDescriptor { ...@@ -454,10 +454,7 @@ public class PropertyDescriptor extends FeatureDescriptor {
editor = ctor.newInstance(new Object[] { bean }); editor = ctor.newInstance(new Object[] { bean });
} }
} catch (Exception ex) { } catch (Exception ex) {
// A serious error has occured. // Fall through
// Proably due to an invalid property editor.
throw new RuntimeException("PropertyEditor not instantiated",
ex);
} }
} }
return (PropertyEditor)editor; return (PropertyEditor)editor;
......
...@@ -25,9 +25,6 @@ ...@@ -25,9 +25,6 @@
package java.beans; package java.beans;
import com.sun.beans.finder.PropertyEditorFinder;
import sun.awt.AppContext;
/** /**
* The PropertyEditorManager can be used to locate a property editor for * The PropertyEditorManager can be used to locate a property editor for
* any given type name. This property editor must support the * any given type name. This property editor must support the
...@@ -55,8 +52,6 @@ import sun.awt.AppContext; ...@@ -55,8 +52,6 @@ import sun.awt.AppContext;
public class PropertyEditorManager { public class PropertyEditorManager {
private static final Object FINDER_KEY = new Object();
/** /**
* Registers an editor class to edit values of the given target class. * Registers an editor class to edit values of the given target class.
* If the editor class is {@code null}, * If the editor class is {@code null},
...@@ -81,7 +76,7 @@ public class PropertyEditorManager { ...@@ -81,7 +76,7 @@ public class PropertyEditorManager {
if (sm != null) { if (sm != null) {
sm.checkPropertiesAccess(); sm.checkPropertiesAccess();
} }
getFinder().register(targetType, editorClass); ThreadGroupContext.getContext().getPropertyEditorFinder().register(targetType, editorClass);
} }
/** /**
...@@ -92,7 +87,7 @@ public class PropertyEditorManager { ...@@ -92,7 +87,7 @@ public class PropertyEditorManager {
* The result is null if no suitable editor can be found. * The result is null if no suitable editor can be found.
*/ */
public static PropertyEditor findEditor(Class<?> targetType) { public static PropertyEditor findEditor(Class<?> targetType) {
return getFinder().find(targetType); return ThreadGroupContext.getContext().getPropertyEditorFinder().find(targetType);
} }
/** /**
...@@ -104,7 +99,7 @@ public class PropertyEditorManager { ...@@ -104,7 +99,7 @@ public class PropertyEditorManager {
* e.g. Sun implementation initially sets to {"sun.beans.editors"}. * e.g. Sun implementation initially sets to {"sun.beans.editors"}.
*/ */
public static String[] getEditorSearchPath() { public static String[] getEditorSearchPath() {
return getFinder().getPackages(); return ThreadGroupContext.getContext().getPropertyEditorFinder().getPackages();
} }
/** /**
...@@ -125,17 +120,6 @@ public class PropertyEditorManager { ...@@ -125,17 +120,6 @@ public class PropertyEditorManager {
if (sm != null) { if (sm != null) {
sm.checkPropertiesAccess(); sm.checkPropertiesAccess();
} }
getFinder().setPackages(path); ThreadGroupContext.getContext().getPropertyEditorFinder().setPackages(path);
}
private static PropertyEditorFinder getFinder() {
AppContext context = AppContext.getAppContext();
Object object = context.get(FINDER_KEY);
if (object instanceof PropertyEditorFinder) {
return (PropertyEditorFinder) object;
}
PropertyEditorFinder finder = new PropertyEditorFinder();
context.put(FINDER_KEY, finder);
return finder;
} }
} }
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package java.beans;
import com.sun.beans.finder.BeanInfoFinder;
import com.sun.beans.finder.PropertyEditorFinder;
import java.awt.GraphicsEnvironment;
import java.util.HashMap;
import java.util.Map;
import java.util.WeakHashMap;
/**
* The {@code ThreadGroupContext} is an application-dependent
* context referenced by the specific {@link ThreadGroup}.
* This is a replacement for the {@link sun.awt.AppContext}.
*
* @author Sergey Malenkov
*/
final class ThreadGroupContext {
private static final Map<ThreadGroup, ThreadGroupContext> contexts = new WeakHashMap<>();
/**
* Returns the appropriate {@code AppContext} for the caller,
* as determined by its {@code ThreadGroup}.
*
* @return the application-dependent context
*/
static ThreadGroupContext getContext() {
ThreadGroup group = Thread.currentThread().getThreadGroup();
synchronized (contexts) {
ThreadGroupContext context = contexts.get(group);
if (context == null) {
context = new ThreadGroupContext();
contexts.put(group, context);
}
return context;
}
}
private volatile boolean isDesignTime;
private volatile Boolean isGuiAvailable;
private Map<Class<?>, BeanInfo> beanInfoCache;
private BeanInfoFinder beanInfoFinder;
private PropertyEditorFinder propertyEditorFinder;
boolean isDesignTime() {
return this.isDesignTime;
}
void setDesignTime(boolean isDesignTime) {
this.isDesignTime = isDesignTime;
}
boolean isGuiAvailable() {
Boolean isGuiAvailable = this.isGuiAvailable;
return (isGuiAvailable != null)
? isGuiAvailable.booleanValue()
: !GraphicsEnvironment.isHeadless();
}
void setGuiAvailable(boolean isGuiAvailable) {
this.isGuiAvailable = Boolean.valueOf(isGuiAvailable);
}
BeanInfo getBeanInfo(Class<?> type) {
return (this.beanInfoCache != null)
? this.beanInfoCache.get(type)
: null;
}
BeanInfo putBeanInfo(Class<?> type, BeanInfo info) {
if (this.beanInfoCache == null) {
this.beanInfoCache = new WeakHashMap<>();
}
return this.beanInfoCache.put(type, info);
}
void removeBeanInfo(Class<?> type) {
if (this.beanInfoCache != null) {
this.beanInfoCache.remove(type);
}
}
void clearBeanInfoCache() {
if (this.beanInfoCache != null) {
this.beanInfoCache.clear();
}
}
synchronized BeanInfoFinder getBeanInfoFinder() {
if (this.beanInfoFinder == null) {
this.beanInfoFinder = new BeanInfoFinder();
}
return this.beanInfoFinder;
}
synchronized PropertyEditorFinder getPropertyEditorFinder() {
if (this.propertyEditorFinder == null) {
this.propertyEditorFinder = new PropertyEditorFinder();
}
return this.propertyEditorFinder;
}
}
...@@ -403,6 +403,10 @@ public class DefaultCaret extends Rectangle implements Caret, FocusListener, Mou ...@@ -403,6 +403,10 @@ public class DefaultCaret extends Rectangle implements Caret, FocusListener, Mou
* @see MouseListener#mouseClicked * @see MouseListener#mouseClicked
*/ */
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
if (getComponent() == null) {
return;
}
int nclicks = SwingUtilities2.getAdjustedClickCount(getComponent(), e); int nclicks = SwingUtilities2.getAdjustedClickCount(getComponent(), e);
if (! e.isConsumed()) { if (! e.isConsumed()) {
......
...@@ -323,8 +323,8 @@ public class BufImgSurfaceData extends SurfaceData { ...@@ -323,8 +323,8 @@ public class BufImgSurfaceData extends SurfaceData {
} }
public RenderLoops getRenderLoops(SunGraphics2D sg2d) { public RenderLoops getRenderLoops(SunGraphics2D sg2d) {
if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR && if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
sg2d.compositeState <= sg2d.COMP_ISCOPY) sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY)
{ {
return solidloops; return solidloops;
} }
......
...@@ -941,7 +941,7 @@ public final class SunGraphics2D ...@@ -941,7 +941,7 @@ public final class SunGraphics2D
} }
} }
} }
Class paintClass = paint.getClass(); Class<? extends Paint> paintClass = paint.getClass();
if (paintClass == GradientPaint.class) { if (paintClass == GradientPaint.class) {
paintState = PAINT_GRADIENT; paintState = PAINT_GRADIENT;
} else if (paintClass == LinearGradientPaint.class) { } else if (paintClass == LinearGradientPaint.class) {
...@@ -1280,7 +1280,7 @@ public final class SunGraphics2D ...@@ -1280,7 +1280,7 @@ public final class SunGraphics2D
interpolationHint = -1; interpolationHint = -1;
interpolationType = AffineTransformOp.TYPE_NEAREST_NEIGHBOR; interpolationType = AffineTransformOp.TYPE_NEAREST_NEIGHBOR;
boolean customHintPresent = false; boolean customHintPresent = false;
Iterator iter = hints.keySet().iterator(); Iterator<?> iter = hints.keySet().iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
Object key = iter.next(); Object key = iter.next();
if (key == SunHints.KEY_RENDERING || if (key == SunHints.KEY_RENDERING ||
...@@ -1311,7 +1311,7 @@ public final class SunGraphics2D ...@@ -1311,7 +1311,7 @@ public final class SunGraphics2D
*/ */
public void addRenderingHints(Map<?,?> hints) { public void addRenderingHints(Map<?,?> hints) {
boolean customHintPresent = false; boolean customHintPresent = false;
Iterator iter = hints.keySet().iterator(); Iterator<?> iter = hints.keySet().iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
Object key = iter.next(); Object key = iter.next();
if (key == SunHints.KEY_RENDERING || if (key == SunHints.KEY_RENDERING ||
......
...@@ -520,8 +520,8 @@ public abstract class SurfaceData ...@@ -520,8 +520,8 @@ public abstract class SurfaceData
} }
public boolean canRenderParallelograms(SunGraphics2D sg2d) { public boolean canRenderParallelograms(SunGraphics2D sg2d) {
if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR) { if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR) {
if (sg2d.compositeState == sg2d.COMP_XOR) { if (sg2d.compositeState == SunGraphics2D.COMP_XOR) {
if (havePgramXORLoop == LOOP_UNKNOWN) { if (havePgramXORLoop == LOOP_UNKNOWN) {
FillParallelogram loop = FillParallelogram loop =
FillParallelogram.locate(SurfaceType.AnyColor, FillParallelogram.locate(SurfaceType.AnyColor,
...@@ -531,9 +531,9 @@ public abstract class SurfaceData ...@@ -531,9 +531,9 @@ public abstract class SurfaceData
(loop != null) ? LOOP_FOUND : LOOP_NOTFOUND; (loop != null) ? LOOP_FOUND : LOOP_NOTFOUND;
} }
return havePgramXORLoop == LOOP_FOUND; return havePgramXORLoop == LOOP_FOUND;
} else if (sg2d.compositeState <= sg2d.COMP_ISCOPY && } else if (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY &&
sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON && sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON &&
sg2d.clipState != sg2d.CLIP_SHAPE) sg2d.clipState != SunGraphics2D.CLIP_SHAPE)
{ {
if (havePgramSolidLoop == LOOP_UNKNOWN) { if (havePgramSolidLoop == LOOP_UNKNOWN) {
FillParallelogram loop = FillParallelogram loop =
...@@ -551,8 +551,8 @@ public abstract class SurfaceData ...@@ -551,8 +551,8 @@ public abstract class SurfaceData
public void validatePipe(SunGraphics2D sg2d) { public void validatePipe(SunGraphics2D sg2d) {
sg2d.imagepipe = imagepipe; sg2d.imagepipe = imagepipe;
if (sg2d.compositeState == sg2d.COMP_XOR) { if (sg2d.compositeState == SunGraphics2D.COMP_XOR) {
if (sg2d.paintState > sg2d.PAINT_ALPHACOLOR) { if (sg2d.paintState > SunGraphics2D.PAINT_ALPHACOLOR) {
sg2d.drawpipe = paintViaShape; sg2d.drawpipe = paintViaShape;
sg2d.fillpipe = paintViaShape; sg2d.fillpipe = paintViaShape;
sg2d.shapepipe = paintShape; sg2d.shapepipe = paintShape;
...@@ -576,7 +576,7 @@ public abstract class SurfaceData ...@@ -576,7 +576,7 @@ public abstract class SurfaceData
converter = colorViaShape; converter = colorViaShape;
sg2d.shapepipe = colorPrimitives; sg2d.shapepipe = colorPrimitives;
} }
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
sg2d.drawpipe = converter; sg2d.drawpipe = converter;
sg2d.fillpipe = converter; sg2d.fillpipe = converter;
// REMIND: We should not be changing text strategies // REMIND: We should not be changing text strategies
...@@ -589,11 +589,11 @@ public abstract class SurfaceData ...@@ -589,11 +589,11 @@ public abstract class SurfaceData
// which is not defined for XOR. // which is not defined for XOR.
sg2d.textpipe = outlineTextRenderer; sg2d.textpipe = outlineTextRenderer;
} else { } else {
if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
sg2d.drawpipe = converter; sg2d.drawpipe = converter;
sg2d.fillpipe = converter; sg2d.fillpipe = converter;
} else { } else {
if (sg2d.strokeState != sg2d.STROKE_THIN) { if (sg2d.strokeState != SunGraphics2D.STROKE_THIN) {
sg2d.drawpipe = converter; sg2d.drawpipe = converter;
} else { } else {
sg2d.drawpipe = colorPrimitives; sg2d.drawpipe = colorPrimitives;
...@@ -604,9 +604,9 @@ public abstract class SurfaceData ...@@ -604,9 +604,9 @@ public abstract class SurfaceData
} }
// assert(sg2d.surfaceData == this); // assert(sg2d.surfaceData == this);
} }
} else if (sg2d.compositeState == sg2d.COMP_CUSTOM) { } else if (sg2d.compositeState == SunGraphics2D.COMP_CUSTOM) {
if (sg2d.antialiasHint == SunHints.INTVAL_ANTIALIAS_ON) { if (sg2d.antialiasHint == SunHints.INTVAL_ANTIALIAS_ON) {
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
sg2d.drawpipe = AAClipCompViaShape; sg2d.drawpipe = AAClipCompViaShape;
sg2d.fillpipe = AAClipCompViaShape; sg2d.fillpipe = AAClipCompViaShape;
sg2d.shapepipe = AAClipCompViaShape; sg2d.shapepipe = AAClipCompViaShape;
...@@ -621,7 +621,7 @@ public abstract class SurfaceData ...@@ -621,7 +621,7 @@ public abstract class SurfaceData
sg2d.drawpipe = compViaShape; sg2d.drawpipe = compViaShape;
sg2d.fillpipe = compViaShape; sg2d.fillpipe = compViaShape;
sg2d.shapepipe = compShape; sg2d.shapepipe = compShape;
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
sg2d.textpipe = clipCompText; sg2d.textpipe = clipCompText;
} else { } else {
sg2d.textpipe = compText; sg2d.textpipe = compText;
...@@ -631,7 +631,7 @@ public abstract class SurfaceData ...@@ -631,7 +631,7 @@ public abstract class SurfaceData
sg2d.alphafill = getMaskFill(sg2d); sg2d.alphafill = getMaskFill(sg2d);
// assert(sg2d.surfaceData == this); // assert(sg2d.surfaceData == this);
if (sg2d.alphafill != null) { if (sg2d.alphafill != null) {
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
sg2d.drawpipe = AAClipColorViaShape; sg2d.drawpipe = AAClipColorViaShape;
sg2d.fillpipe = AAClipColorViaShape; sg2d.fillpipe = AAClipColorViaShape;
sg2d.shapepipe = AAClipColorViaShape; sg2d.shapepipe = AAClipColorViaShape;
...@@ -644,8 +644,8 @@ public abstract class SurfaceData ...@@ -644,8 +644,8 @@ public abstract class SurfaceData
sg2d.drawpipe = converter; sg2d.drawpipe = converter;
sg2d.fillpipe = converter; sg2d.fillpipe = converter;
sg2d.shapepipe = converter; sg2d.shapepipe = converter;
if (sg2d.paintState > sg2d.PAINT_ALPHACOLOR || if (sg2d.paintState > SunGraphics2D.PAINT_ALPHACOLOR ||
sg2d.compositeState > sg2d.COMP_ISCOPY) sg2d.compositeState > SunGraphics2D.COMP_ISCOPY)
{ {
sg2d.textpipe = colorText; sg2d.textpipe = colorText;
} else { } else {
...@@ -653,7 +653,7 @@ public abstract class SurfaceData ...@@ -653,7 +653,7 @@ public abstract class SurfaceData
} }
} }
} else { } else {
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
sg2d.drawpipe = AAClipPaintViaShape; sg2d.drawpipe = AAClipPaintViaShape;
sg2d.fillpipe = AAClipPaintViaShape; sg2d.fillpipe = AAClipPaintViaShape;
sg2d.shapepipe = AAClipPaintViaShape; sg2d.shapepipe = AAClipPaintViaShape;
...@@ -665,9 +665,9 @@ public abstract class SurfaceData ...@@ -665,9 +665,9 @@ public abstract class SurfaceData
sg2d.textpipe = paintText; sg2d.textpipe = paintText;
} }
} }
} else if (sg2d.paintState > sg2d.PAINT_ALPHACOLOR || } else if (sg2d.paintState > SunGraphics2D.PAINT_ALPHACOLOR ||
sg2d.compositeState > sg2d.COMP_ISCOPY || sg2d.compositeState > SunGraphics2D.COMP_ISCOPY ||
sg2d.clipState == sg2d.CLIP_SHAPE) sg2d.clipState == SunGraphics2D.CLIP_SHAPE)
{ {
sg2d.drawpipe = paintViaShape; sg2d.drawpipe = paintViaShape;
sg2d.fillpipe = paintViaShape; sg2d.fillpipe = paintViaShape;
...@@ -675,13 +675,13 @@ public abstract class SurfaceData ...@@ -675,13 +675,13 @@ public abstract class SurfaceData
sg2d.alphafill = getMaskFill(sg2d); sg2d.alphafill = getMaskFill(sg2d);
// assert(sg2d.surfaceData == this); // assert(sg2d.surfaceData == this);
if (sg2d.alphafill != null) { if (sg2d.alphafill != null) {
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
sg2d.textpipe = clipColorText; sg2d.textpipe = clipColorText;
} else { } else {
sg2d.textpipe = colorText; sg2d.textpipe = colorText;
} }
} else { } else {
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
sg2d.textpipe = clipPaintText; sg2d.textpipe = clipPaintText;
} else { } else {
sg2d.textpipe = paintText; sg2d.textpipe = paintText;
...@@ -700,11 +700,11 @@ public abstract class SurfaceData ...@@ -700,11 +700,11 @@ public abstract class SurfaceData
converter = colorViaShape; converter = colorViaShape;
sg2d.shapepipe = colorPrimitives; sg2d.shapepipe = colorPrimitives;
} }
if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
sg2d.drawpipe = converter; sg2d.drawpipe = converter;
sg2d.fillpipe = converter; sg2d.fillpipe = converter;
} else { } else {
if (sg2d.strokeState != sg2d.STROKE_THIN) { if (sg2d.strokeState != SunGraphics2D.STROKE_THIN) {
sg2d.drawpipe = converter; sg2d.drawpipe = converter;
} else { } else {
sg2d.drawpipe = colorPrimitives; sg2d.drawpipe = colorPrimitives;
...@@ -817,7 +817,7 @@ public abstract class SurfaceData ...@@ -817,7 +817,7 @@ public abstract class SurfaceData
private static CompositeType getFillCompositeType(SunGraphics2D sg2d) { private static CompositeType getFillCompositeType(SunGraphics2D sg2d) {
CompositeType compType = sg2d.imageComp; CompositeType compType = sg2d.imageComp;
if (sg2d.compositeState == sg2d.COMP_ISCOPY) { if (sg2d.compositeState == SunGraphics2D.COMP_ISCOPY) {
if (compType == CompositeType.SrcOverNoEa) { if (compType == CompositeType.SrcOverNoEa) {
compType = CompositeType.OpaqueSrcOverNoEa; compType = CompositeType.OpaqueSrcOverNoEa;
} else { } else {
......
...@@ -71,7 +71,7 @@ public abstract class SurfaceDataProxy ...@@ -71,7 +71,7 @@ public abstract class SurfaceDataProxy
static { static {
cachingAllowed = true; cachingAllowed = true;
String manimg = (String)AccessController.doPrivileged( String manimg = AccessController.doPrivileged(
new GetPropertyAction("sun.java2d.managedimages")); new GetPropertyAction("sun.java2d.managedimages"));
if (manimg != null && manimg.equals("false")) { if (manimg != null && manimg.equals("false")) {
cachingAllowed = false; cachingAllowed = false;
...@@ -79,7 +79,7 @@ public abstract class SurfaceDataProxy ...@@ -79,7 +79,7 @@ public abstract class SurfaceDataProxy
} }
defaultThreshold = 1; defaultThreshold = 1;
String num = (String)AccessController.doPrivileged( String num = AccessController.doPrivileged(
new GetPropertyAction("sun.java2d.accthreshold")); new GetPropertyAction("sun.java2d.accthreshold"));
if (num != null) { if (num != null) {
try { try {
......
...@@ -328,7 +328,7 @@ public abstract class GraphicsPrimitive { ...@@ -328,7 +328,7 @@ public abstract class GraphicsPrimitive {
static { static {
GetPropertyAction gpa = new GetPropertyAction("sun.java2d.trace"); GetPropertyAction gpa = new GetPropertyAction("sun.java2d.trace");
String trace = (String)AccessController.doPrivileged(gpa); String trace = AccessController.doPrivileged(gpa);
if (trace != null) { if (trace != null) {
boolean verbose = false; boolean verbose = false;
int traceflags = 0; int traceflags = 0;
...@@ -391,9 +391,9 @@ public abstract class GraphicsPrimitive { ...@@ -391,9 +391,9 @@ public abstract class GraphicsPrimitive {
private static PrintStream getTraceOutputFile() { private static PrintStream getTraceOutputFile() {
if (traceout == null) { if (traceout == null) {
if (tracefile != null) { if (tracefile != null) {
Object o = FileOutputStream o = AccessController.doPrivileged(
AccessController.doPrivileged(new PrivilegedAction() { new PrivilegedAction<FileOutputStream>() {
public Object run() { public FileOutputStream run() {
try { try {
return new FileOutputStream(tracefile); return new FileOutputStream(tracefile);
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
...@@ -402,7 +402,7 @@ public abstract class GraphicsPrimitive { ...@@ -402,7 +402,7 @@ public abstract class GraphicsPrimitive {
} }
}); });
if (o != null) { if (o != null) {
traceout = new PrintStream((OutputStream) o); traceout = new PrintStream(o);
} else { } else {
traceout = System.err; traceout = System.err;
} }
...@@ -415,8 +415,8 @@ public abstract class GraphicsPrimitive { ...@@ -415,8 +415,8 @@ public abstract class GraphicsPrimitive {
public static class TraceReporter extends Thread { public static class TraceReporter extends Thread {
public static void setShutdownHook() { public static void setShutdownHook() {
AccessController.doPrivileged(new PrivilegedAction() { AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Object run() { public Void run() {
TraceReporter t = new TraceReporter(); TraceReporter t = new TraceReporter();
t.setContextClassLoader(null); t.setContextClassLoader(null);
Runtime.getRuntime().addShutdownHook(t); Runtime.getRuntime().addShutdownHook(t);
......
...@@ -56,7 +56,7 @@ import java.util.HashMap; ...@@ -56,7 +56,7 @@ import java.util.HashMap;
public final class SurfaceType { public final class SurfaceType {
private static int unusedUID = 1; private static int unusedUID = 1;
private static HashMap surfaceUIDMap = new HashMap(100); private static HashMap<String, Integer> surfaceUIDMap = new HashMap<>(100);
/* /*
* CONSTANTS USED BY ALL PRIMITIVES TO DESCRIBE THE SURFACES * CONSTANTS USED BY ALL PRIMITIVES TO DESCRIBE THE SURFACES
...@@ -402,7 +402,7 @@ public final class SurfaceType { ...@@ -402,7 +402,7 @@ public final class SurfaceType {
} }
public synchronized static final int makeUniqueID(String desc) { public synchronized static final int makeUniqueID(String desc) {
Integer i = (Integer) surfaceUIDMap.get((Object) desc); Integer i = surfaceUIDMap.get(desc);
if (i == null) { if (i == null) {
if (unusedUID > 255) { if (unusedUID > 255) {
......
...@@ -78,12 +78,12 @@ class OGLBufImgOps extends BufferedBufImgOps { ...@@ -78,12 +78,12 @@ class OGLBufImgOps extends BufferedBufImgOps {
} }
SurfaceData srcData = SurfaceData srcData =
dstData.getSourceSurfaceData(img, sg.TRANSFORM_ISIDENT, dstData.getSourceSurfaceData(img, SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null); CompositeType.SrcOver, null);
if (!(srcData instanceof OGLSurfaceData)) { if (!(srcData instanceof OGLSurfaceData)) {
// REMIND: this hack tries to ensure that we have a cached texture // REMIND: this hack tries to ensure that we have a cached texture
srcData = srcData =
dstData.getSourceSurfaceData(img, sg.TRANSFORM_ISIDENT, dstData.getSourceSurfaceData(img, SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null); CompositeType.SrcOver, null);
if (!(srcData instanceof OGLSurfaceData)) { if (!(srcData instanceof OGLSurfaceData)) {
return false; return false;
......
...@@ -60,7 +60,7 @@ public class OGLDrawImage extends DrawImage { ...@@ -60,7 +60,7 @@ public class OGLDrawImage extends DrawImage {
SurfaceData dstData = sg.surfaceData; SurfaceData dstData = sg.surfaceData;
SurfaceData srcData = SurfaceData srcData =
dstData.getSourceSurfaceData(img, dstData.getSourceSurfaceData(img,
sg.TRANSFORM_GENERIC, SunGraphics2D.TRANSFORM_GENERIC,
sg.imageComp, sg.imageComp,
bgColor); bgColor);
......
...@@ -123,14 +123,16 @@ abstract class OGLPaints { ...@@ -123,14 +123,16 @@ abstract class OGLPaints {
} }
SurfaceData srcData = SurfaceData srcData =
dstData.getSourceSurfaceData(bi, sg2d.TRANSFORM_ISIDENT, dstData.getSourceSurfaceData(bi,
SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null); CompositeType.SrcOver, null);
if (!(srcData instanceof OGLSurfaceData)) { if (!(srcData instanceof OGLSurfaceData)) {
// REMIND: this is a hack that attempts to cache the system // REMIND: this is a hack that attempts to cache the system
// memory image from the TexturePaint instance into an // memory image from the TexturePaint instance into an
// OpenGL texture... // OpenGL texture...
srcData = srcData =
dstData.getSourceSurfaceData(bi, sg2d.TRANSFORM_ISIDENT, dstData.getSourceSurfaceData(bi,
SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null); CompositeType.SrcOver, null);
if (!(srcData instanceof OGLSurfaceData)) { if (!(srcData instanceof OGLSurfaceData)) {
return false; return false;
......
...@@ -428,18 +428,18 @@ public abstract class OGLSurfaceData extends SurfaceData ...@@ -428,18 +428,18 @@ public abstract class OGLSurfaceData extends SurfaceData
// by the CompositeType.SrcNoEa (any color) test below.) // by the CompositeType.SrcNoEa (any color) test below.)
if (/* CompositeType.SrcNoEa (any color) */ if (/* CompositeType.SrcNoEa (any color) */
(sg2d.compositeState <= sg2d.COMP_ISCOPY && (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY &&
sg2d.paintState <= sg2d.PAINT_ALPHACOLOR) || sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR) ||
/* CompositeType.SrcOver (any color) */ /* CompositeType.SrcOver (any color) */
(sg2d.compositeState == sg2d.COMP_ALPHA && (sg2d.compositeState == SunGraphics2D.COMP_ALPHA &&
sg2d.paintState <= sg2d.PAINT_ALPHACOLOR && sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
(((AlphaComposite)sg2d.composite).getRule() == (((AlphaComposite)sg2d.composite).getRule() ==
AlphaComposite.SRC_OVER)) || AlphaComposite.SRC_OVER)) ||
/* CompositeType.Xor (any color) */ /* CompositeType.Xor (any color) */
(sg2d.compositeState == sg2d.COMP_XOR && (sg2d.compositeState == SunGraphics2D.COMP_XOR &&
sg2d.paintState <= sg2d.PAINT_ALPHACOLOR)) sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR))
{ {
textpipe = oglTextPipe; textpipe = oglTextPipe;
} else { } else {
...@@ -454,12 +454,12 @@ public abstract class OGLSurfaceData extends SurfaceData ...@@ -454,12 +454,12 @@ public abstract class OGLSurfaceData extends SurfaceData
OGLRenderer nonTxPipe = null; OGLRenderer nonTxPipe = null;
if (sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON) { if (sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON) {
if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR) { if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR) {
if (sg2d.compositeState <= sg2d.COMP_XOR) { if (sg2d.compositeState <= SunGraphics2D.COMP_XOR) {
txPipe = oglTxRenderPipe; txPipe = oglTxRenderPipe;
nonTxPipe = oglRenderPipe; nonTxPipe = oglRenderPipe;
} }
} else if (sg2d.compositeState <= sg2d.COMP_ALPHA) { } else if (sg2d.compositeState <= SunGraphics2D.COMP_ALPHA) {
if (OGLPaints.isValid(sg2d)) { if (OGLPaints.isValid(sg2d)) {
txPipe = oglTxRenderPipe; txPipe = oglTxRenderPipe;
nonTxPipe = oglRenderPipe; nonTxPipe = oglRenderPipe;
...@@ -467,7 +467,7 @@ public abstract class OGLSurfaceData extends SurfaceData ...@@ -467,7 +467,7 @@ public abstract class OGLSurfaceData extends SurfaceData
// custom paints handled by super.validatePipe() below // custom paints handled by super.validatePipe() below
} }
} else { } else {
if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR) { if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR) {
if (graphicsConfig.isCapPresent(CAPS_PS30) && if (graphicsConfig.isCapPresent(CAPS_PS30) &&
(sg2d.imageComp == CompositeType.SrcOverNoEa || (sg2d.imageComp == CompositeType.SrcOverNoEa ||
sg2d.imageComp == CompositeType.SrcOver)) sg2d.imageComp == CompositeType.SrcOver))
...@@ -484,7 +484,7 @@ public abstract class OGLSurfaceData extends SurfaceData ...@@ -484,7 +484,7 @@ public abstract class OGLSurfaceData extends SurfaceData
sg2d.drawpipe = aaConverter; sg2d.drawpipe = aaConverter;
sg2d.fillpipe = aaConverter; sg2d.fillpipe = aaConverter;
sg2d.shapepipe = aaConverter; sg2d.shapepipe = aaConverter;
} else if (sg2d.compositeState == sg2d.COMP_XOR) { } else if (sg2d.compositeState == SunGraphics2D.COMP_XOR) {
// install the solid pipes when AA and XOR are both enabled // install the solid pipes when AA and XOR are both enabled
txPipe = oglTxRenderPipe; txPipe = oglTxRenderPipe;
nonTxPipe = oglRenderPipe; nonTxPipe = oglRenderPipe;
...@@ -494,10 +494,10 @@ public abstract class OGLSurfaceData extends SurfaceData ...@@ -494,10 +494,10 @@ public abstract class OGLSurfaceData extends SurfaceData
} }
if (txPipe != null) { if (txPipe != null) {
if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
sg2d.drawpipe = txPipe; sg2d.drawpipe = txPipe;
sg2d.fillpipe = txPipe; sg2d.fillpipe = txPipe;
} else if (sg2d.strokeState != sg2d.STROKE_THIN) { } else if (sg2d.strokeState != SunGraphics2D.STROKE_THIN) {
sg2d.drawpipe = txPipe; sg2d.drawpipe = txPipe;
sg2d.fillpipe = nonTxPipe; sg2d.fillpipe = nonTxPipe;
} else { } else {
...@@ -524,7 +524,7 @@ public abstract class OGLSurfaceData extends SurfaceData ...@@ -524,7 +524,7 @@ public abstract class OGLSurfaceData extends SurfaceData
@Override @Override
protected MaskFill getMaskFill(SunGraphics2D sg2d) { protected MaskFill getMaskFill(SunGraphics2D sg2d) {
if (sg2d.paintState > sg2d.PAINT_ALPHACOLOR) { if (sg2d.paintState > SunGraphics2D.PAINT_ALPHACOLOR) {
/* /*
* We can only accelerate non-Color MaskFill operations if * We can only accelerate non-Color MaskFill operations if
* all of the following conditions hold true: * all of the following conditions hold true:
...@@ -548,8 +548,8 @@ public abstract class OGLSurfaceData extends SurfaceData ...@@ -548,8 +548,8 @@ public abstract class OGLSurfaceData extends SurfaceData
public boolean copyArea(SunGraphics2D sg2d, public boolean copyArea(SunGraphics2D sg2d,
int x, int y, int w, int h, int dx, int dy) int x, int y, int w, int h, int dx, int dy)
{ {
if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE && if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE &&
sg2d.compositeState < sg2d.COMP_XOR) sg2d.compositeState < SunGraphics2D.COMP_XOR)
{ {
x += sg2d.transX; x += sg2d.transX;
y += sg2d.transY; y += sg2d.transY;
......
...@@ -144,7 +144,7 @@ public class AAShapePipe ...@@ -144,7 +144,7 @@ public class AAShapePipe
public void renderPath(SunGraphics2D sg, Shape s, BasicStroke bs) { public void renderPath(SunGraphics2D sg, Shape s, BasicStroke bs) {
boolean adjust = (bs != null && boolean adjust = (bs != null &&
sg.strokeHint != SunHints.INTVAL_STROKE_PURE); sg.strokeHint != SunHints.INTVAL_STROKE_PURE);
boolean thin = (sg.strokeState <= sg.STROKE_THINDASHED); boolean thin = (sg.strokeState <= SunGraphics2D.STROKE_THINDASHED);
Region clip = sg.getCompClip(); Region clip = sg.getCompClip();
int abox[] = new int[4]; int abox[] = new int[4];
......
...@@ -247,7 +247,7 @@ public class BufferedPaints { ...@@ -247,7 +247,7 @@ public class BufferedPaints {
BufferedImage bi = paint.getImage(); BufferedImage bi = paint.getImage();
SurfaceData dstData = sg2d.surfaceData; SurfaceData dstData = sg2d.surfaceData;
SurfaceData srcData = SurfaceData srcData =
dstData.getSourceSurfaceData(bi, sg2d.TRANSFORM_ISIDENT, dstData.getSourceSurfaceData(bi, SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null); CompositeType.SrcOver, null);
boolean filter = boolean filter =
(sg2d.interpolationType != (sg2d.interpolationType !=
......
...@@ -508,9 +508,9 @@ public abstract class BufferedRenderPipe ...@@ -508,9 +508,9 @@ public abstract class BufferedRenderPipe
} }
public void draw(SunGraphics2D sg2d, Shape s) { public void draw(SunGraphics2D sg2d, Shape s) {
if (sg2d.strokeState == sg2d.STROKE_THIN) { if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
if (s instanceof Polygon) { if (s instanceof Polygon) {
if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
Polygon p = (Polygon)s; Polygon p = (Polygon)s;
drawPolygon(sg2d, p.xpoints, p.ypoints, p.npoints); drawPolygon(sg2d, p.xpoints, p.ypoints, p.npoints);
return; return;
...@@ -518,7 +518,7 @@ public abstract class BufferedRenderPipe ...@@ -518,7 +518,7 @@ public abstract class BufferedRenderPipe
} }
Path2D.Float p2df; Path2D.Float p2df;
int transx, transy; int transx, transy;
if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) { if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
if (s instanceof Path2D.Float) { if (s instanceof Path2D.Float) {
p2df = (Path2D.Float)s; p2df = (Path2D.Float)s;
} else { } else {
...@@ -532,7 +532,7 @@ public abstract class BufferedRenderPipe ...@@ -532,7 +532,7 @@ public abstract class BufferedRenderPipe
transy = 0; transy = 0;
} }
drawPath(sg2d, p2df, transx, transy); drawPath(sg2d, p2df, transx, transy);
} else if (sg2d.strokeState < sg2d.STROKE_CUSTOM) { } else if (sg2d.strokeState < SunGraphics2D.STROKE_CUSTOM) {
ShapeSpanIterator si = LoopPipe.getStrokeSpans(sg2d, s); ShapeSpanIterator si = LoopPipe.getStrokeSpans(sg2d, s);
try { try {
fillSpans(sg2d, si, 0, 0); fillSpans(sg2d, si, 0, 0);
...@@ -547,11 +547,11 @@ public abstract class BufferedRenderPipe ...@@ -547,11 +547,11 @@ public abstract class BufferedRenderPipe
public void fill(SunGraphics2D sg2d, Shape s) { public void fill(SunGraphics2D sg2d, Shape s) {
int transx, transy; int transx, transy;
if (sg2d.strokeState == sg2d.STROKE_THIN) { if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
// Here we are able to use fillPath() for // Here we are able to use fillPath() for
// high-quality fills. // high-quality fills.
Path2D.Float p2df; Path2D.Float p2df;
if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) { if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
if (s instanceof Path2D.Float) { if (s instanceof Path2D.Float) {
p2df = (Path2D.Float)s; p2df = (Path2D.Float)s;
} else { } else {
...@@ -569,7 +569,7 @@ public abstract class BufferedRenderPipe ...@@ -569,7 +569,7 @@ public abstract class BufferedRenderPipe
} }
AffineTransform at; AffineTransform at;
if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) { if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
// Transform (translation) will be done by FillSpans (we could // Transform (translation) will be done by FillSpans (we could
// delegate to fillPolygon() here, but most hardware accelerated // delegate to fillPolygon() here, but most hardware accelerated
// libraries cannot handle non-convex polygons, so we will use // libraries cannot handle non-convex polygons, so we will use
......
...@@ -146,7 +146,7 @@ public class DrawImage implements DrawImagePipe ...@@ -146,7 +146,7 @@ public class DrawImage implements DrawImagePipe
int imgh = img.getHeight(null); int imgh = img.getHeight(null);
boolean checkfinalxform; boolean checkfinalxform;
if (sg.transformState <= sg.TRANSFORM_ANY_TRANSLATE && if (sg.transformState <= SunGraphics2D.TRANSFORM_ANY_TRANSLATE &&
(txtype == AffineTransform.TYPE_IDENTITY || (txtype == AffineTransform.TYPE_IDENTITY ||
txtype == AffineTransform.TYPE_TRANSLATION)) txtype == AffineTransform.TYPE_TRANSLATION))
{ {
...@@ -166,7 +166,7 @@ public class DrawImage implements DrawImagePipe ...@@ -166,7 +166,7 @@ public class DrawImage implements DrawImagePipe
return; return;
} }
checkfinalxform = false; checkfinalxform = false;
} else if (sg.transformState <= sg.TRANSFORM_TRANSLATESCALE && } else if (sg.transformState <= SunGraphics2D.TRANSFORM_TRANSLATESCALE &&
((txtype & (AffineTransform.TYPE_FLIP | ((txtype & (AffineTransform.TYPE_FLIP |
AffineTransform.TYPE_MASK_ROTATION | AffineTransform.TYPE_MASK_ROTATION |
AffineTransform.TYPE_GENERAL_TRANSFORM)) == 0)) AffineTransform.TYPE_GENERAL_TRANSFORM)) == 0))
...@@ -344,14 +344,14 @@ public class DrawImage implements DrawImagePipe ...@@ -344,14 +344,14 @@ public class DrawImage implements DrawImagePipe
Region clip = sg.getCompClip(); Region clip = sg.getCompClip();
SurfaceData dstData = sg.surfaceData; SurfaceData dstData = sg.surfaceData;
SurfaceData srcData = dstData.getSourceSurfaceData(img, SurfaceData srcData = dstData.getSourceSurfaceData(img,
sg.TRANSFORM_GENERIC, SunGraphics2D.TRANSFORM_GENERIC,
sg.imageComp, sg.imageComp,
bgColor); bgColor);
if (srcData == null) { if (srcData == null) {
img = getBufferedImage(img); img = getBufferedImage(img);
srcData = dstData.getSourceSurfaceData(img, srcData = dstData.getSourceSurfaceData(img,
sg.TRANSFORM_GENERIC, SunGraphics2D.TRANSFORM_GENERIC,
sg.imageComp, sg.imageComp,
bgColor); bgColor);
if (srcData == null) { if (srcData == null) {
...@@ -372,7 +372,7 @@ public class DrawImage implements DrawImagePipe ...@@ -372,7 +372,7 @@ public class DrawImage implements DrawImagePipe
sx1 = sy1 = 0; sx1 = sy1 = 0;
srcData = dstData.getSourceSurfaceData(img, srcData = dstData.getSourceSurfaceData(img,
sg.TRANSFORM_GENERIC, SunGraphics2D.TRANSFORM_GENERIC,
sg.imageComp, sg.imageComp,
bgColor); bgColor);
} }
...@@ -398,7 +398,7 @@ public class DrawImage implements DrawImagePipe ...@@ -398,7 +398,7 @@ public class DrawImage implements DrawImagePipe
sx1 = sy1 = 0; sx1 = sy1 = 0;
srcData = dstData.getSourceSurfaceData(img, srcData = dstData.getSourceSurfaceData(img,
sg.TRANSFORM_GENERIC, SunGraphics2D.TRANSFORM_GENERIC,
sg.imageComp, sg.imageComp,
null); null);
srcType = srcData.getSurfaceType(); srcType = srcData.getSurfaceType();
...@@ -449,7 +449,7 @@ public class DrawImage implements DrawImagePipe ...@@ -449,7 +449,7 @@ public class DrawImage implements DrawImagePipe
SurfaceType dstType = dstData.getSurfaceType(); SurfaceType dstType = dstData.getSurfaceType();
MaskBlit maskblit; MaskBlit maskblit;
Blit blit; Blit blit;
if (sg.compositeState <= sg.COMP_ALPHA) { if (sg.compositeState <= SunGraphics2D.COMP_ALPHA) {
/* NOTE: We either have, or we can make, /* NOTE: We either have, or we can make,
* a MaskBlit for any alpha composite type * a MaskBlit for any alpha composite type
*/ */
...@@ -565,7 +565,7 @@ public class DrawImage implements DrawImagePipe ...@@ -565,7 +565,7 @@ public class DrawImage implements DrawImagePipe
while (true) { while (true) {
SurfaceData srcData = SurfaceData srcData =
dstData.getSourceSurfaceData(img, dstData.getSourceSurfaceData(img,
sg.TRANSFORM_ISIDENT, SunGraphics2D.TRANSFORM_ISIDENT,
sg.imageComp, sg.imageComp,
bgColor); bgColor);
if (srcData == null) { if (srcData == null) {
...@@ -628,7 +628,7 @@ public class DrawImage implements DrawImagePipe ...@@ -628,7 +628,7 @@ public class DrawImage implements DrawImagePipe
while (true) { while (true) {
SurfaceData srcData = SurfaceData srcData =
dstData.getSourceSurfaceData(img, dstData.getSourceSurfaceData(img,
sg.TRANSFORM_TRANSLATESCALE, SunGraphics2D.TRANSFORM_TRANSLATESCALE,
sg.imageComp, sg.imageComp,
bgColor); bgColor);
...@@ -800,11 +800,11 @@ public class DrawImage implements DrawImagePipe ...@@ -800,11 +800,11 @@ public class DrawImage implements DrawImagePipe
public static boolean isSimpleTranslate(SunGraphics2D sg) { public static boolean isSimpleTranslate(SunGraphics2D sg) {
int ts = sg.transformState; int ts = sg.transformState;
if (ts <= sg.TRANSFORM_INT_TRANSLATE) { if (ts <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
// Integer translates are always "simple" // Integer translates are always "simple"
return true; return true;
} }
if (ts >= sg.TRANSFORM_TRANSLATESCALE) { if (ts >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
// Scales and beyond are always "not simple" // Scales and beyond are always "not simple"
return false; return false;
} }
...@@ -846,8 +846,11 @@ public class DrawImage implements DrawImagePipe ...@@ -846,8 +846,11 @@ public class DrawImage implements DrawImagePipe
} }
int type = tx.getType(); int type = tx.getType();
boolean needTrans = boolean needTrans =
((type&(tx.TYPE_MASK_ROTATION|tx.TYPE_GENERAL_TRANSFORM)) != 0); ((type & (AffineTransform.TYPE_MASK_ROTATION |
if (! needTrans && type != tx.TYPE_TRANSLATION && type != tx.TYPE_IDENTITY) AffineTransform.TYPE_GENERAL_TRANSFORM)) != 0);
if (! needTrans &&
type != AffineTransform.TYPE_TRANSLATION &&
type != AffineTransform.TYPE_IDENTITY)
{ {
double[] mtx = new double[4]; double[] mtx = new double[4];
tx.getMatrix(mtx); tx.getMatrix(mtx);
...@@ -861,7 +864,7 @@ public class DrawImage implements DrawImagePipe ...@@ -861,7 +864,7 @@ public class DrawImage implements DrawImagePipe
Raster raster = bImg.getRaster(); Raster raster = bImg.getRaster();
IndexColorModel icm = (IndexColorModel) cm; IndexColorModel icm = (IndexColorModel) cm;
// Just need to make sure that we have a transparent pixel // Just need to make sure that we have a transparent pixel
if (needTrans && cm.getTransparency() == cm.OPAQUE) { if (needTrans && cm.getTransparency() == Transparency.OPAQUE) {
// Fix 4221407 // Fix 4221407
if (raster instanceof sun.awt.image.BytePackedRaster) { if (raster instanceof sun.awt.image.BytePackedRaster) {
dstCM = ColorModel.getRGBdefault(); dstCM = ColorModel.getRGBdefault();
...@@ -892,7 +895,7 @@ public class DrawImage implements DrawImagePipe ...@@ -892,7 +895,7 @@ public class DrawImage implements DrawImagePipe
} /* raster instanceof sun.awt.image.BytePackedRaster */ } /* raster instanceof sun.awt.image.BytePackedRaster */
} /* if (cm.getTransparency() == cm.OPAQUE) */ } /* if (cm.getTransparency() == cm.OPAQUE) */
} /* if (cm instanceof IndexColorModel) */ } /* if (cm instanceof IndexColorModel) */
else if (needTrans && cm.getTransparency() == cm.OPAQUE) { else if (needTrans && cm.getTransparency() == Transparency.OPAQUE) {
// Need a bitmask transparency // Need a bitmask transparency
// REMIND: for now, use full transparency since no loops // REMIND: for now, use full transparency since no loops
// for bitmask // for bitmask
...@@ -902,7 +905,7 @@ public class DrawImage implements DrawImagePipe ...@@ -902,7 +905,7 @@ public class DrawImage implements DrawImagePipe
else { else {
if (cm instanceof IndexColorModel || if (cm instanceof IndexColorModel ||
(needTrans && cm.getTransparency() == cm.OPAQUE)) (needTrans && cm.getTransparency() == Transparency.OPAQUE))
{ {
// Need a bitmask transparency // Need a bitmask transparency
// REMIND: for now, use full transparency since no loops // REMIND: for now, use full transparency since no loops
......
...@@ -54,7 +54,7 @@ public abstract class GlyphListPipe implements TextPipe { ...@@ -54,7 +54,7 @@ public abstract class GlyphListPipe implements TextPipe {
} }
float devx, devy; float devx, devy;
if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
double origin[] = {x + info.originX, y + info.originY}; double origin[] = {x + info.originX, y + info.originY};
sg2d.transform.transform(origin, 0, origin, 0, 1); sg2d.transform.transform(origin, 0, origin, 0, 1);
devx = (float)origin[0]; devx = (float)origin[0];
...@@ -90,7 +90,7 @@ public abstract class GlyphListPipe implements TextPipe { ...@@ -90,7 +90,7 @@ public abstract class GlyphListPipe implements TextPipe {
sg2d, data, offset, length, ix, iy); sg2d, data, offset, length, ix, iy);
return; return;
} }
if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
double origin[] = {ix + info.originX, iy + info.originY}; double origin[] = {ix + info.originX, iy + info.originY};
sg2d.transform.transform(origin, 0, origin, 0, 1); sg2d.transform.transform(origin, 0, origin, 0, 1);
x = (float) origin[0]; x = (float) origin[0];
...@@ -122,7 +122,7 @@ public abstract class GlyphListPipe implements TextPipe { ...@@ -122,7 +122,7 @@ public abstract class GlyphListPipe implements TextPipe {
SurfaceData.outlineTextRenderer.drawGlyphVector(sg2d, gv, x, y); SurfaceData.outlineTextRenderer.drawGlyphVector(sg2d, gv, x, y);
return; return;
} }
if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
double origin[] = {x, y}; double origin[] = {x, y};
sg2d.transform.transform(origin, 0, origin, 0, 1); sg2d.transform.transform(origin, 0, origin, 0, 1);
x = (float) origin[0]; x = (float) origin[0];
......
...@@ -171,11 +171,11 @@ public class LoopPipe ...@@ -171,11 +171,11 @@ public class LoopPipe
public void draw(SunGraphics2D sg2d, Shape s) { public void draw(SunGraphics2D sg2d, Shape s) {
if (sg2d.strokeState == sg2d.STROKE_THIN) { if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
Path2D.Float p2df; Path2D.Float p2df;
int transX; int transX;
int transY; int transY;
if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) { if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
if (s instanceof Path2D.Float) { if (s instanceof Path2D.Float) {
p2df = (Path2D.Float)s; p2df = (Path2D.Float)s;
} else { } else {
...@@ -193,7 +193,7 @@ public class LoopPipe ...@@ -193,7 +193,7 @@ public class LoopPipe
return; return;
} }
if (sg2d.strokeState == sg2d.STROKE_CUSTOM) { if (sg2d.strokeState == SunGraphics2D.STROKE_CUSTOM) {
fill(sg2d, sg2d.stroke.createStrokedShape(s)); fill(sg2d, sg2d.stroke.createStrokedShape(s));
return; return;
} }
...@@ -271,7 +271,7 @@ public class LoopPipe ...@@ -271,7 +271,7 @@ public class LoopPipe
sr.setRule(PathIterator.WIND_NON_ZERO); sr.setRule(PathIterator.WIND_NON_ZERO);
BasicStroke bs = (BasicStroke) sg2d.stroke; BasicStroke bs = (BasicStroke) sg2d.stroke;
boolean thin = (sg2d.strokeState <= sg2d.STROKE_THINDASHED); boolean thin = (sg2d.strokeState <= SunGraphics2D.STROKE_THINDASHED);
boolean normalize = boolean normalize =
(sg2d.strokeHint != SunHints.INTVAL_STROKE_PURE); (sg2d.strokeHint != SunHints.INTVAL_STROKE_PURE);
...@@ -288,11 +288,11 @@ public class LoopPipe ...@@ -288,11 +288,11 @@ public class LoopPipe
} }
public void fill(SunGraphics2D sg2d, Shape s) { public void fill(SunGraphics2D sg2d, Shape s) {
if (sg2d.strokeState == sg2d.STROKE_THIN) { if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
Path2D.Float p2df; Path2D.Float p2df;
int transX; int transX;
int transY; int transY;
if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) { if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
if (s instanceof Path2D.Float) { if (s instanceof Path2D.Float) {
p2df = (Path2D.Float)s; p2df = (Path2D.Float)s;
} else { } else {
...@@ -314,7 +314,7 @@ public class LoopPipe ...@@ -314,7 +314,7 @@ public class LoopPipe
try { try {
sr.setOutputArea(sg2d.getCompClip()); sr.setOutputArea(sg2d.getCompClip());
AffineTransform at = AffineTransform at =
((sg2d.transformState == sg2d.TRANSFORM_ISIDENT) ((sg2d.transformState == SunGraphics2D.TRANSFORM_ISIDENT)
? null ? null
: sg2d.transform); : sg2d.transform);
sr.appendPath(s.getPathIterator(at)); sr.appendPath(s.getPathIterator(at));
...@@ -328,7 +328,7 @@ public class LoopPipe ...@@ -328,7 +328,7 @@ public class LoopPipe
// REMIND: Eventually, the plan is that it will not be possible for // REMIND: Eventually, the plan is that it will not be possible for
// fs to be null since the FillSpans loop will be the fundamental // fs to be null since the FillSpans loop will be the fundamental
// loop implemented for any destination type... // loop implemented for any destination type...
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
si = sg2d.clipRegion.filter(si); si = sg2d.clipRegion.filter(si);
// REMIND: Region.filter produces a Java-only iterator // REMIND: Region.filter produces a Java-only iterator
// with no native counterpart... // with no native counterpart...
......
...@@ -117,16 +117,16 @@ public abstract class RenderingEngine { ...@@ -117,16 +117,16 @@ public abstract class RenderingEngine {
return reImpl; return reImpl;
} }
reImpl = (RenderingEngine) reImpl =
AccessController.doPrivileged(new PrivilegedAction() { AccessController.doPrivileged(new PrivilegedAction<RenderingEngine>() {
public Object run() { public RenderingEngine run() {
final String ductusREClass = "sun.dc.DuctusRenderingEngine"; final String ductusREClass = "sun.dc.DuctusRenderingEngine";
String reClass = String reClass =
System.getProperty("sun.java2d.renderer", ductusREClass); System.getProperty("sun.java2d.renderer", ductusREClass);
if (reClass.equals(ductusREClass)) { if (reClass.equals(ductusREClass)) {
try { try {
Class cls = Class.forName(ductusREClass); Class<?> cls = Class.forName(ductusREClass);
return cls.newInstance(); return (RenderingEngine) cls.newInstance();
} catch (ReflectiveOperationException ignored) { } catch (ReflectiveOperationException ignored) {
// not found // not found
} }
...@@ -153,7 +153,7 @@ public abstract class RenderingEngine { ...@@ -153,7 +153,7 @@ public abstract class RenderingEngine {
GetPropertyAction gpa = GetPropertyAction gpa =
new GetPropertyAction("sun.java2d.renderer.trace"); new GetPropertyAction("sun.java2d.renderer.trace");
String reTrace = (String) AccessController.doPrivileged(gpa); String reTrace = AccessController.doPrivileged(gpa);
if (reTrace != null) { if (reTrace != null) {
reImpl = new Tracer(reImpl); reImpl = new Tracer(reImpl);
} }
......
...@@ -29,10 +29,8 @@ import java.awt.*; ...@@ -29,10 +29,8 @@ import java.awt.*;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentEvent;
import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import sun.awt.motif.X11FontMetrics;
import sun.util.logging.PlatformLogger; import sun.util.logging.PlatformLogger;
// FIXME: implement multi-select // FIXME: implement multi-select
......
...@@ -35,7 +35,6 @@ import java.awt.image.ImageProducer; ...@@ -35,7 +35,6 @@ import java.awt.image.ImageProducer;
import java.awt.image.VolatileImage; import java.awt.image.VolatileImage;
import java.awt.peer.*; import java.awt.peer.*;
import sun.awt.*; import sun.awt.*;
import sun.awt.motif.X11FontMetrics;
import java.lang.reflect.*; import java.lang.reflect.*;
import sun.util.logging.PlatformLogger; import sun.util.logging.PlatformLogger;
import java.util.*; import java.util.*;
......
...@@ -34,8 +34,6 @@ import java.awt.image.VolatileImage; ...@@ -34,8 +34,6 @@ import java.awt.image.VolatileImage;
import java.awt.peer.*; import java.awt.peer.*;
import sun.java2d.pipe.Region; import sun.java2d.pipe.Region;
import sun.awt.*; import sun.awt.*;
import sun.awt.motif.MToolkit;
import sun.awt.motif.X11FontMetrics;
public class XEmbedChildProxyPeer implements ComponentPeer, XEventDispatcher{ public class XEmbedChildProxyPeer implements ComponentPeer, XEventDispatcher{
XEmbeddingContainer container; XEmbeddingContainer container;
......
...@@ -51,6 +51,7 @@ import javax.swing.UIDefaults; ...@@ -51,6 +51,7 @@ import javax.swing.UIDefaults;
import sun.awt.*; import sun.awt.*;
import sun.font.FontConfigManager; import sun.font.FontConfigManager;
import sun.font.FontManager; import sun.font.FontManager;
import sun.java2d.SunGraphicsEnvironment;
import sun.misc.PerformanceLogger; import sun.misc.PerformanceLogger;
import sun.print.PrintJob2D; import sun.print.PrintJob2D;
import sun.security.action.GetBooleanAction; import sun.security.action.GetBooleanAction;
...@@ -109,7 +110,7 @@ public final class XToolkit extends UNIXToolkit implements Runnable { ...@@ -109,7 +110,7 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
static int awt_multiclick_time; static int awt_multiclick_time;
static boolean securityWarningEnabled; static boolean securityWarningEnabled;
private static int screenWidth = -1, screenHeight = -1; // Dimensions of default screen private static volatile int screenWidth = -1, screenHeight = -1; // Dimensions of default screen
static long awt_defaultFg; // Pixel static long awt_defaultFg; // Pixel
private static XMouseInfoPeer xPeer; private static XMouseInfoPeer xPeer;
private static Method m_removeSourceEvents; private static Method m_removeSourceEvents;
...@@ -310,6 +311,19 @@ public final class XToolkit extends UNIXToolkit implements Runnable { ...@@ -310,6 +311,19 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
System.setProperty("sun.awt.enableExtraMouseButtons", ""+areExtraMouseButtonsEnabled); System.setProperty("sun.awt.enableExtraMouseButtons", ""+areExtraMouseButtonsEnabled);
saved_error_handler = XlibWrapper.SetToolkitErrorHandler(); saved_error_handler = XlibWrapper.SetToolkitErrorHandler();
// Detect display mode changes
XlibWrapper.XSelectInput(XToolkit.getDisplay(), XToolkit.getDefaultRootWindow(), XConstants.StructureNotifyMask);
XToolkit.addEventDispatcher(XToolkit.getDefaultRootWindow(), new XEventDispatcher() {
@Override
public void dispatchEvent(XEvent ev) {
if (ev.get_type() == XConstants.ConfigureNotify) {
((X11GraphicsEnvironment)GraphicsEnvironment.
getLocalGraphicsEnvironment()).
displayChanged();
}
}
});
} finally { } finally {
awtUnlock(); awtUnlock();
} }
...@@ -684,29 +698,49 @@ public final class XToolkit extends UNIXToolkit implements Runnable { ...@@ -684,29 +698,49 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
} }
} }
static int getDefaultScreenWidth() { static {
if (screenWidth == -1) { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
long display = getDisplay(); if (ge instanceof SunGraphicsEnvironment) {
((SunGraphicsEnvironment)ge).addDisplayChangedListener(
new DisplayChangedListener() {
@Override
public void displayChanged() {
// 7045370: Reset the cached values
XToolkit.screenWidth = -1;
XToolkit.screenHeight = -1;
}
@Override
public void paletteChanged() {}
});
}
}
private static void initScreenSize() {
if (screenWidth == -1 || screenHeight == -1) {
awtLock(); awtLock();
try { try {
screenWidth = (int) XlibWrapper.DisplayWidth(display, XlibWrapper.DefaultScreen(display)); XWindowAttributes pattr = new XWindowAttributes();
try {
XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(), XToolkit.getDefaultRootWindow(), pattr.pData);
screenWidth = (int) pattr.get_width();
screenHeight = (int) pattr.get_height();
} finally {
pattr.dispose();
}
} finally { } finally {
awtUnlock(); awtUnlock();
} }
} }
}
static int getDefaultScreenWidth() {
initScreenSize();
return screenWidth; return screenWidth;
} }
static int getDefaultScreenHeight() { static int getDefaultScreenHeight() {
if (screenHeight == -1) { initScreenSize();
long display = getDisplay();
awtLock();
try {
screenHeight = (int) XlibWrapper.DisplayHeight(display, XlibWrapper.DefaultScreen(display));
} finally {
awtUnlock();
}
}
return screenHeight; return screenHeight;
} }
......
...@@ -208,12 +208,19 @@ class XWindowPeer extends XPanelPeer implements WindowPeer, ...@@ -208,12 +208,19 @@ class XWindowPeer extends XPanelPeer implements WindowPeer,
return name; return name;
} }
private static native String getLocalHostname();
private static native int getJvmPID();
void postInit(XCreateWindowParams params) { void postInit(XCreateWindowParams params) {
super.postInit(params); super.postInit(params);
// Init WM_PROTOCOLS atom // Init WM_PROTOCOLS atom
initWMProtocols(); initWMProtocols();
// Set _NET_WM_PID and WM_CLIENT_MACHINE using this JVM
XAtom.get("WM_CLIENT_MACHINE").setProperty(getWindow(), getLocalHostname());
XAtom.get("_NET_WM_PID").setCard32Property(getWindow(), getJvmPID());
// Set WM_TRANSIENT_FOR and group_leader // Set WM_TRANSIENT_FOR and group_leader
Window t_window = (Window)target; Window t_window = (Window)target;
Window owner = t_window.getOwner(); Window owner = t_window.getOwner();
......
...@@ -487,14 +487,9 @@ public class X11GraphicsDevice ...@@ -487,14 +487,9 @@ public class X11GraphicsDevice
* X11GraphicsEnvironment when the display mode has been changed. * X11GraphicsEnvironment when the display mode has been changed.
*/ */
public synchronized void displayChanged() { public synchronized void displayChanged() {
// reset the list of configs (and default config) // On X11 the visuals do not change, and therefore we don't need
defaultConfig = null; // to reset the defaultConfig, config, doubleBufferVisuals,
configs = null; // neither do we need to reset the native data.
doubleBufferVisuals = null;
// reset the native data structures associated with this device (they
// will be reinitialized when the GraphicsConfigs are configured)
resetNativeData(screen);
// pass on to all top-level windows on this screen // pass on to all top-level windows on this screen
topLevels.notifyListeners(); topLevels.notifyListeners();
......
/*
* Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.awt.motif;
final class AWTLockAccess {
static native void awtLock();
static native void awtUnlock();
static void awtWait() { awtWait(0); }
static native void awtWait(long timeout);
static native void awtNotifyAll();
}
...@@ -25,26 +25,19 @@ ...@@ -25,26 +25,19 @@
package sun.awt.motif; package sun.awt.motif;
import java.awt.Font; import sun.awt.FontConfiguration;
import java.io.BufferedReader; import sun.awt.X11FontManager;
import sun.font.FontUtilities;
import sun.font.SunFontManager;
import sun.util.logging.PlatformLogger;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Locale;
import java.util.Properties; import java.util.Properties;
import java.util.Scanner; import java.util.Scanner;
import sun.awt.FontConfiguration;
import sun.awt.X11FontManager;
import sun.awt.X11GraphicsEnvironment;
import sun.font.FontManager;
import sun.font.SunFontManager;
import sun.font.FontManagerFactory;
import sun.font.FontUtilities;
import sun.java2d.SunGraphicsEnvironment;
import sun.util.logging.PlatformLogger;
public class MFontConfiguration extends FontConfiguration { public class MFontConfiguration extends FontConfiguration {
...@@ -258,47 +251,6 @@ public class MFontConfiguration extends FontConfiguration { ...@@ -258,47 +251,6 @@ public class MFontConfiguration extends FontConfiguration {
return Charset.forName("ISO8859_1"); return Charset.forName("ISO8859_1");
} }
/* methods for Motif support *********************************************/
private String[][] motifFontSets = new String[NUM_FONTS][NUM_STYLES];
public String getMotifFontSet(String fontName, int style) {
assert isLogicalFontFamilyName(fontName);
fontName = fontName.toLowerCase(Locale.ENGLISH);
int fontIndex = getFontIndex(fontName);
int styleIndex = getStyleIndex(style);
return getMotifFontSet(fontIndex, styleIndex);
}
private String getMotifFontSet(int fontIndex, int styleIndex) {
String fontSet = motifFontSets[fontIndex][styleIndex];
if (fontSet == null) {
fontSet = buildMotifFontSet(fontIndex, styleIndex);
motifFontSets[fontIndex][styleIndex] = fontSet;
}
return fontSet;
}
private String buildMotifFontSet(int fontIndex, int styleIndex) {
StringBuilder buffer = new StringBuilder();
short[] scripts = getCoreScripts(fontIndex);
for (int i = 0; i < scripts.length; i++) {
short nameID = getComponentFontIDMotif(scripts[i], fontIndex, styleIndex);
if (nameID == 0) {
nameID = getComponentFontID(scripts[i], fontIndex, styleIndex);
}
String name = getComponentFontName(nameID);
if (name == null || name.endsWith("fontspecific")) {
continue;
}
if (buffer.length() > 0) {
buffer.append(',');
}
buffer.append(name);
}
return buffer.toString();
}
protected String getFaceNameFromComponentFontName(String componentFontName) { protected String getFaceNameFromComponentFontName(String componentFontName) {
return null; return null;
} }
...@@ -315,36 +267,6 @@ public class MFontConfiguration extends FontConfiguration { ...@@ -315,36 +267,6 @@ public class MFontConfiguration extends FontConfiguration {
return ((X11FontManager) fontManager).getFileNameFromXLFD(componentFontName); return ((X11FontManager) fontManager).getFileNameFromXLFD(componentFontName);
} }
/**
* Get default font for Motif widgets to use, preventing them from
* wasting time accessing inappropriate X resources. This is called
* only from native code.
*
* This is part of a Motif specific performance enhancement. By
* default, when Motif widgets are created and initialized, Motif will
* set up default fonts for the widgets, which we ALWAYS override.
* This set up includes finding the default font in the widget's X
* resources and fairly expensive requests of the X server to identify
* the specific font or fontset. We avoid all of this overhead by
* providing a well known font to use at the creation of widgets, where
* possible.
*
* The X11 fonts are specified by XLFD strings which have %d as a
* marker to indicate where the fontsize should be substituted. [The
* libc function sprintf() is used to replace it.] The value 140
* specifies a font size of 14 points.
*/
private static String getDefaultMotifFontSet() {
String font = ((MFontConfiguration) getFontConfiguration()).getMotifFontSet("sansserif", Font.PLAIN);
if (font != null) {
int i;
while ((i = font.indexOf("%d")) >= 0) {
font = font.substring(0, i) + "140" + font.substring(i+2);
}
}
return font;
}
public HashSet<String> getAWTFontPathSet() { public HashSet<String> getAWTFontPathSet() {
HashSet<String> fontDirs = new HashSet<String>(); HashSet<String> fontDirs = new HashSet<String>();
short[] scripts = getCoreScripts(0); short[] scripts = getCoreScripts(0);
......
/*
* Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.awt.motif;
import sun.awt.datatransfer.ToolkitThreadBlockedHandler;
import sun.awt.SunToolkit;
final class MToolkitThreadBlockedHandler implements
ToolkitThreadBlockedHandler {
private static ToolkitThreadBlockedHandler priveleged_lock = null;
static {
priveleged_lock = new MToolkitThreadBlockedHandler();
}
private MToolkitThreadBlockedHandler() {}
static ToolkitThreadBlockedHandler getToolkitThreadBlockedHandler() {
return priveleged_lock;
}
public void lock() {
SunToolkit.awtLock();
}
public void unlock() {
SunToolkit.awtUnlock();
}
public native void enter();
public native void exit();
}
/*
* Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.awt.motif;
import java.awt.Image;
class MWindowAttributes {
static int NORMAL = 0;
static int ICONIC = 1;
static int MAXIMIZED = 2;
static int AWT_DECOR_NONE = 0;
static int AWT_DECOR_ALL = 1;
static int AWT_DECOR_BORDER = 2;
static int AWT_DECOR_RESIZEH = 4;
static int AWT_DECOR_TITLE = 8;
static int AWT_DECOR_MENU = 0x10;
static int AWT_DECOR_MINIMIZE = 0x20;
static int AWT_DECOR_MAXIMIZE = 0x40;
static int AWT_UNOBSCURED = 0; // X11 VisibilityUnobscured
static int AWT_PARTIALLY_OBSCURED = 1; // X11 VisibilityPartiallyObscured
static int AWT_FULLY_OBSCURED = 2; // X11 VisibilityFullyObscured
static int AWT_UNKNOWN_OBSCURITY = 3;
boolean nativeDecor;
boolean initialFocus;
boolean isResizable;
int initialState;
int visibilityState; // updated by native X11 event handling code.
String title;
java.awt.Image icon;
int decorations; // for future expansion to be able to
// specify native decorations
private static native void initIDs();
static {
initIDs();
}
MWindowAttributes() {
nativeDecor = false;
initialFocus = false;
isResizable = false;
initialState = NORMAL;
visibilityState = AWT_UNKNOWN_OBSCURITY;
title = null;
icon = null;
decorations = 0;
}
}
/*
* Copyright (c) 1995, 2004, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.awt.motif;
import java.awt.*;
import java.util.Hashtable;
import sun.awt.PlatformFont;
/**
* A font metrics object for a WServer font.
*
* @author Jim Graham
*/
public class X11FontMetrics extends FontMetrics {
/**
* The widths of the first 256 characters.
*/
int widths[];
/**
* The standard ascent of the font. This is the logical height
* above the baseline for the Alphanumeric characters and should
* be used for determining line spacing. Note, however, that some
* characters in the font may extend above this height.
*/
int ascent;
/**
* The standard descent of the font. This is the logical height
* below the baseline for the Alphanumeric characters and should
* be used for determining line spacing. Note, however, that some
* characters in the font may extend below this height.
*/
int descent;
/**
* The standard leading for the font. This is the logical amount
* of space to be reserved between the descent of one line of text
* and the ascent of the next line. The height metric is calculated
* to include this extra space.
*/
int leading;
/**
* The standard height of a line of text in this font. This is
* the distance between the baseline of adjacent lines of text.
* It is the sum of the ascent+descent+leading. There is no
* guarantee that lines of text spaced at this distance will be
* disjoint; such lines may overlap if some characters overshoot
* the standard ascent and descent metrics.
*/
int height;
/**
* The maximum ascent for all characters in this font. No character
* will extend further above the baseline than this metric.
*/
int maxAscent;
/**
* The maximum descent for all characters in this font. No character
* will descend further below the baseline than this metric.
*/
int maxDescent;
/**
* The maximum possible height of a line of text in this font.
* Adjacent lines of text spaced this distance apart will be
* guaranteed not to overlap. Note, however, that many paragraphs
* that contain ordinary alphanumeric text may look too widely
* spaced if this metric is used to determine line spacing. The
* height field should be preferred unless the text in a given
* line contains particularly tall characters.
*/
int maxHeight;
/**
* The maximum advance width of any character in this font.
*/
int maxAdvance;
static {
initIDs();
}
/**
* Initialize JNI field and method IDs for fields that may be
accessed from C.
*/
private static native void initIDs();
/**
* Calculate the metrics from the given WServer and font.
*/
public X11FontMetrics(Font font) {
super(font);
init();
}
/**
* Get leading
*/
public int getLeading() {
return leading;
}
/**
* Get ascent.
*/
public int getAscent() {
return ascent;
}
/**
* Get descent
*/
public int getDescent() {
return descent;
}
/**
* Get height
*/
public int getHeight() {
return height;
}
/**
* Get maxAscent
*/
public int getMaxAscent() {
return maxAscent;
}
/**
* Get maxDescent
*/
public int getMaxDescent() {
return maxDescent;
}
/**
* Get maxAdvance
*/
public int getMaxAdvance() {
return maxAdvance;
}
/**
* Return the width of the specified string in this Font.
*/
public int stringWidth(String string) {
return charsWidth(string.toCharArray(), 0, string.length());
}
/**
* Return the width of the specified char[] in this Font.
*/
public int charsWidth(char chars[], int offset, int length) {
Font font = getFont();
PlatformFont pf = ((PlatformFont) font.getPeer());
if (pf.mightHaveMultiFontMetrics()) {
return getMFCharsWidth(chars, offset, length, font);
} else {
if (widths != null) {
int w = 0;
for (int i = offset; i < offset + length; i++) {
int ch = chars[i];
if (ch < 0 || ch >= widths.length) {
w += maxAdvance;
} else {
w += widths[ch];
}
}
return w;
} else {
return maxAdvance * length;
}
}
}
private native int getMFCharsWidth(char chars[], int offset, int length, Font font);
/**
* Return the width of the specified byte[] in this Font.
*/
public native int bytesWidth(byte data[], int off, int len);
/**
* Get the widths of the first 256 characters in the font.
*/
public int[] getWidths() {
return widths;
}
native void init();
static Hashtable table = new Hashtable();
static synchronized FontMetrics getFontMetrics(Font font) {
FontMetrics fm = (FontMetrics)table.get(font);
if (fm == null) {
table.put(font, fm = new X11FontMetrics(font));
}
return fm;
}
}
...@@ -299,7 +299,7 @@ public class X11Renderer implements ...@@ -299,7 +299,7 @@ public class X11Renderer implements
private void doPath(SunGraphics2D sg2d, Shape s, boolean isFill) { private void doPath(SunGraphics2D sg2d, Shape s, boolean isFill) {
Path2D.Float p2df; Path2D.Float p2df;
int transx, transy; int transx, transy;
if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) { if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
if (s instanceof Path2D.Float) { if (s instanceof Path2D.Float) {
p2df = (Path2D.Float)s; p2df = (Path2D.Float)s;
} else { } else {
...@@ -323,10 +323,10 @@ public class X11Renderer implements ...@@ -323,10 +323,10 @@ public class X11Renderer implements
} }
public void draw(SunGraphics2D sg2d, Shape s) { public void draw(SunGraphics2D sg2d, Shape s) {
if (sg2d.strokeState == sg2d.STROKE_THIN) { if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
// Delegate to drawPolygon() if possible... // Delegate to drawPolygon() if possible...
if (s instanceof Polygon && if (s instanceof Polygon &&
sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE) sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE)
{ {
Polygon p = (Polygon) s; Polygon p = (Polygon) s;
drawPolygon(sg2d, p.xpoints, p.ypoints, p.npoints); drawPolygon(sg2d, p.xpoints, p.ypoints, p.npoints);
...@@ -336,7 +336,7 @@ public class X11Renderer implements ...@@ -336,7 +336,7 @@ public class X11Renderer implements
// Otherwise we will use drawPath() for // Otherwise we will use drawPath() for
// high-quality thin paths. // high-quality thin paths.
doPath(sg2d, s, false); doPath(sg2d, s, false);
} else if (sg2d.strokeState < sg2d.STROKE_CUSTOM) { } else if (sg2d.strokeState < SunGraphics2D.STROKE_CUSTOM) {
// REMIND: X11 can handle uniform scaled wide lines // REMIND: X11 can handle uniform scaled wide lines
// and dashed lines itself if we set the appropriate // and dashed lines itself if we set the appropriate
// XGC attributes (TBD). // XGC attributes (TBD).
...@@ -360,10 +360,10 @@ public class X11Renderer implements ...@@ -360,10 +360,10 @@ public class X11Renderer implements
} }
public void fill(SunGraphics2D sg2d, Shape s) { public void fill(SunGraphics2D sg2d, Shape s) {
if (sg2d.strokeState == sg2d.STROKE_THIN) { if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
// Delegate to fillPolygon() if possible... // Delegate to fillPolygon() if possible...
if (s instanceof Polygon && if (s instanceof Polygon &&
sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE) sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE)
{ {
Polygon p = (Polygon) s; Polygon p = (Polygon) s;
fillPolygon(sg2d, p.xpoints, p.ypoints, p.npoints); fillPolygon(sg2d, p.xpoints, p.ypoints, p.npoints);
...@@ -378,7 +378,7 @@ public class X11Renderer implements ...@@ -378,7 +378,7 @@ public class X11Renderer implements
AffineTransform at; AffineTransform at;
int transx, transy; int transx, transy;
if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
// Transform (translation) will be done by XFillSpans // Transform (translation) will be done by XFillSpans
at = null; at = null;
transx = sg2d.transX; transx = sg2d.transX;
......
...@@ -295,9 +295,9 @@ public abstract class X11SurfaceData extends XSurfaceData { ...@@ -295,9 +295,9 @@ public abstract class X11SurfaceData extends XSurfaceData {
public void validatePipe(SunGraphics2D sg2d) { public void validatePipe(SunGraphics2D sg2d) {
if (sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON && if (sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON &&
sg2d.paintState <= sg2d.PAINT_ALPHACOLOR && sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
(sg2d.compositeState <= sg2d.COMP_ISCOPY || (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY ||
sg2d.compositeState == sg2d.COMP_XOR)) sg2d.compositeState == SunGraphics2D.COMP_XOR))
{ {
if (x11txpipe == null) { if (x11txpipe == null) {
/* /*
...@@ -315,7 +315,7 @@ public abstract class X11SurfaceData extends XSurfaceData { ...@@ -315,7 +315,7 @@ public abstract class X11SurfaceData extends XSurfaceData {
return; return;
} }
if (sg2d.clipState == sg2d.CLIP_SHAPE) { if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
// Do this to init textpipe correctly; we will override the // Do this to init textpipe correctly; we will override the
// other non-text pipes below // other non-text pipes below
// REMIND: we should clean this up eventually instead of // REMIND: we should clean this up eventually instead of
...@@ -329,7 +329,7 @@ public abstract class X11SurfaceData extends XSurfaceData { ...@@ -329,7 +329,7 @@ public abstract class X11SurfaceData extends XSurfaceData {
case SunHints.INTVAL_TEXT_ANTIALIAS_OFF: case SunHints.INTVAL_TEXT_ANTIALIAS_OFF:
// Use X11 pipe even if DGA is available since DGA // Use X11 pipe even if DGA is available since DGA
// text slows everything down when mixed with X11 calls // text slows everything down when mixed with X11 calls
if (sg2d.compositeState == sg2d.COMP_ISCOPY) { if (sg2d.compositeState == SunGraphics2D.COMP_ISCOPY) {
sg2d.textpipe = x11textpipe; sg2d.textpipe = x11textpipe;
} else { } else {
sg2d.textpipe = solidTextRenderer; sg2d.textpipe = solidTextRenderer;
...@@ -353,7 +353,7 @@ public abstract class X11SurfaceData extends XSurfaceData { ...@@ -353,7 +353,7 @@ public abstract class X11SurfaceData extends XSurfaceData {
case SunHints.INTVAL_TEXT_ANTIALIAS_OFF: case SunHints.INTVAL_TEXT_ANTIALIAS_OFF:
// Use X11 pipe even if DGA is available since DGA // Use X11 pipe even if DGA is available since DGA
// text slows everything down when mixed with X11 calls // text slows everything down when mixed with X11 calls
if (sg2d.compositeState == sg2d.COMP_ISCOPY) { if (sg2d.compositeState == SunGraphics2D.COMP_ISCOPY) {
sg2d.textpipe = x11textpipe; sg2d.textpipe = x11textpipe;
} else { } else {
sg2d.textpipe = solidTextRenderer; sg2d.textpipe = solidTextRenderer;
...@@ -370,10 +370,10 @@ public abstract class X11SurfaceData extends XSurfaceData { ...@@ -370,10 +370,10 @@ public abstract class X11SurfaceData extends XSurfaceData {
} }
} }
if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) { if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
sg2d.drawpipe = x11txpipe; sg2d.drawpipe = x11txpipe;
sg2d.fillpipe = x11txpipe; sg2d.fillpipe = x11txpipe;
} else if (sg2d.strokeState != sg2d.STROKE_THIN){ } else if (sg2d.strokeState != SunGraphics2D.STROKE_THIN){
sg2d.drawpipe = x11txpipe; sg2d.drawpipe = x11txpipe;
sg2d.fillpipe = x11pipe; sg2d.fillpipe = x11pipe;
} else { } else {
...@@ -398,8 +398,8 @@ public abstract class X11SurfaceData extends XSurfaceData { ...@@ -398,8 +398,8 @@ public abstract class X11SurfaceData extends XSurfaceData {
} }
public RenderLoops getRenderLoops(SunGraphics2D sg2d) { public RenderLoops getRenderLoops(SunGraphics2D sg2d) {
if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR && if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
sg2d.compositeState <= sg2d.COMP_ISCOPY) sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY)
{ {
return solidloops; return solidloops;
} }
...@@ -488,7 +488,7 @@ public abstract class X11SurfaceData extends XSurfaceData { ...@@ -488,7 +488,7 @@ public abstract class X11SurfaceData extends XSurfaceData {
makePipes(); makePipes();
} }
CompositeType comptype = sg2d.imageComp; CompositeType comptype = sg2d.imageComp;
if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE && if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE &&
(CompositeType.SrcOverNoEa.equals(comptype) || (CompositeType.SrcOverNoEa.equals(comptype) ||
CompositeType.SrcNoEa.equals(comptype))) CompositeType.SrcNoEa.equals(comptype)))
{ {
......
/* /*
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -23,15 +23,22 @@ ...@@ -23,15 +23,22 @@
* questions. * questions.
*/ */
/* #include <jni.h>
*/ #include <jni_util.h>
#ifdef HEADLESS
#ifndef _XDrawingArea_h_ extern JavaVM *jvm;
#define _XDrawingArea_h_
extern WidgetClass xDrawingAreaClass; JNIEXPORT jint JNICALL
JNI_OnLoad(JavaVM *vm, void *reserved)
{
jvm = vm;
return JNI_VERSION_1_2;
}
typedef struct _XDrawingAreaClassRec *XDrawingAreaWidgetClass; JNIEXPORT jboolean JNICALL AWTIsHeadless() {
typedef struct _XDrawingAreaRec *XDrawingAreaWidget; return JNI_TRUE;
}
#endif /* !_VDrawingArea_h_ */ #endif
/*
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
#ifdef HEADLESS
#error This file should not be included in headless library
#endif
#include "awt_p.h"
#include "awt_Component.h"
#include <jni.h>
#include <jni_util.h>
extern int awt_numScreens;
extern AwtScreenDataPtr x11Screens;
extern struct ComponentIDs componentIDs;
extern struct MComponentPeerIDs mComponentPeerIDs;
/*
* Class: sun_awt_DefaultMouseInfoPeer
* Method: fillPointWithCoords
* Signature: (Ljava/awt/Point)I
*/
JNIEXPORT jint JNICALL
Java_sun_awt_DefaultMouseInfoPeer_fillPointWithCoords(JNIEnv *env, jclass cls,
jobject point)
{
static jclass pointClass = NULL;
jclass pointClassLocal;
static jfieldID xID, yID;
Window rootWindow, childWindow;
int i;
int32_t xr, yr, xw, yw;
uint32_t keys;
Bool pointerFound;
AWT_LOCK();
if (pointClass == NULL) {
pointClassLocal = (*env)->FindClass(env, "java/awt/Point");
DASSERT(pointClassLocal != NULL);
if (pointClassLocal == NULL) {
AWT_UNLOCK();
return (jint)0;
}
pointClass = (jclass)(*env)->NewGlobalRef(env, pointClassLocal);
(*env)->DeleteLocalRef(env, pointClassLocal);
xID = (*env)->GetFieldID(env, pointClass, "x", "I");
yID = (*env)->GetFieldID(env, pointClass, "y", "I");
}
for (i = 0; i < awt_numScreens; i++) {
pointerFound = XQueryPointer(awt_display, x11Screens[i].root,
&rootWindow, &childWindow,
&xr, &yr, &xw, &yw, &keys);
if (pointerFound) {
(*env)->SetIntField(env, point, xID, xr);
(*env)->SetIntField(env, point, yID, yr);
AWT_UNLOCK();
return (jint)i;
}
}
/* This should never happen */
DASSERT(FALSE);
AWT_UNLOCK();
return (jint)0;
}
/*
* Class: sun_awt_DefaultMouseInfoPeer
* Method: isWindowUnderMouse
* Signature: (Ljava/awt/Window)Z
*/
JNIEXPORT jboolean JNICALL Java_sun_awt_DefaultMouseInfoPeer_isWindowUnderMouse
(JNIEnv * env, jclass cls, jobject window)
{
Window rootWindow = None, parentWindow = None, siblingWindow = None;
Window * children = NULL;
int i = 0;
int is_the_same_screen = 0;
int32_t xr = 0, yr = 0, xw = 0, yw = 0;
uint32_t keys = 0;
uint32_t nchildren = 0;
Bool pointerFound = 0;
struct FrameData *wdata = NULL;
jobject winPeer = NULL;
if ((*env)->EnsureLocalCapacity(env, 1) < 0) {
return JNI_FALSE;
}
winPeer = (*env)->GetObjectField(env, window, componentIDs.peer);
if (JNU_IsNull(env, winPeer)) {
return JNI_FALSE;
}
wdata = (struct FrameData *)
JNU_GetLongFieldAsPtr(env, winPeer, mComponentPeerIDs.pData);
(*env)->DeleteLocalRef(env, winPeer);
if (wdata == NULL) {
return JNI_FALSE;
}
AWT_LOCK();
XQueryTree(awt_display, XtWindow(wdata->winData.comp.widget),
&rootWindow, &parentWindow, &children, &nchildren);
is_the_same_screen = XQueryPointer(awt_display, parentWindow,
&rootWindow, &siblingWindow, &xr, &yr, &xw, &yw, &keys);
if (siblingWindow == XtWindow(wdata->winData.comp.widget) && is_the_same_screen) {
AWT_UNLOCK();
return JNI_TRUE;
}
AWT_UNLOCK();
return JNI_FALSE ;
}
/*
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
*/
#include <X11/IntrinsicP.h>
#include "XDrawingAreaP.h"
#include <Xm/XmP.h>
#include <stdio.h>
#include <malloc.h>
#ifdef DEBUG
#include <jvm.h> /* To get jio_fprintf() */
#endif
/******************************************************************
*
* Provides Canvas widget which allows the X11 visual to be
* changed (the Motif DrawingArea restricts the visual to that
* of the parent widget).
*
******************************************************************/
static XmNavigability WidgetNavigable();
static void ClassInitialize();
static XmBaseClassExtRec baseClassExtRec = {
NULL,
NULLQUARK,
XmBaseClassExtVersion,
sizeof(XmBaseClassExtRec),
NULL, /* InitializePrehook */
NULL, /* SetValuesPrehook */
NULL, /* InitializePosthook */
NULL, /* SetValuesPosthook */
NULL, /* secondaryObjectClass */
NULL, /* secondaryCreate */
NULL, /* getSecRes data */
{ 0 }, /* fastSubclass flags */
NULL, /* getValuesPrehook */
NULL, /* getValuesPosthook */
NULL, /* classPartInitPrehook */
NULL, /* classPartInitPosthook*/
NULL, /* ext_resources */
NULL, /* compiled_ext_resources*/
0, /* num_ext_resources */
FALSE, /* use_sub_resources */
WidgetNavigable, /* widgetNavigable */
NULL /* focusChange */
};
XDrawingAreaClassRec xDrawingAreaClassRec = {
{
/* Core class part */
/* superclass */ (WidgetClass)&xmDrawingAreaClassRec,
/* class_name */ "XDrawingArea",
/* widget_size */ sizeof(XDrawingAreaRec),
/* class_initialize */ ClassInitialize,
/* class_part_initialize*/ NULL,
/* class_inited */ FALSE,
/* initialize */ NULL,
/* initialize_hook */ NULL,
/* realize */ XtInheritRealize,
/* actions */ NULL,
/* num_actions */ 0,
/* resources */ NULL,
/* num_resources */ 0,
/* xrm_class */ NULLQUARK,
/* compress_motion */ FALSE,
/* compress_exposure */ FALSE,
/* compress_enterleave*/ FALSE,
/* visible_interest */ FALSE,
/* destroy */ NULL,
/* resize */ XtInheritResize,
/* expose */ XtInheritExpose,
/* set_values */ NULL,
/* set_values_hook */ NULL,
/* set_values_almost */ XtInheritSetValuesAlmost,
/* get_values_hook */ NULL,
/* accept_focus */ NULL,
/* version */ XtVersion,
/* callback_offsets */ NULL,
/* tm_table */ NULL,
/* query_geometry */ NULL,
/* display_accelerator */ NULL,
/* extension */ (XtPointer)&baseClassExtRec
},
{ /* composite_class fields */
XtInheritGeometryManager, /* geometry_manager */
XtInheritChangeManaged, /* change_managed */
XtInheritInsertChild, /* insert_child */
XtInheritDeleteChild, /* delete_child */
NULL, /* extension */
},
{ /* constraint_class fields */
NULL, /* resource list */
0, /* num resources */
0, /* constraint size */
NULL, /* init proc */
NULL, /* destroy proc */
NULL, /* set values proc */
NULL, /* extension */
},
{ /* manager_class fields */
XtInheritTranslations, /* translations */
NULL, /* syn_resources */
0, /* num_get_resources */
NULL, /* syn_cont_resources */
0, /* num_get_cont_resources */
XmInheritParentProcess, /* parent_process */
NULL, /* extension */
},
{ /* drawingArea class */
/* extension */ NULL
},
/* XDrawingArea class part */
{
/* extension */ NULL
}
};
WidgetClass xDrawingAreaClass = (WidgetClass)&xDrawingAreaClassRec;
static void ClassInitialize( void )
{
baseClassExtRec.record_type = XmQmotif ;
}
static XmNavigability WidgetNavigable(Widget wid)
{
return XmCONTROL_NAVIGABLE;
}
/*
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
*/
#ifndef _XDrawingAreaP_h_
#define _XDrawingAreaP_h_
#include <Xm/DrawingAP.h>
#include "XDrawingArea.h"
/***************************************************************
* VDrawingArea Widget Data Structures
*
*
**************************************************************/
/* Define part class structure */
typedef struct _XDrawingAreaClass {
XtPointer extension;
} XDrawingAreaClassPart;
/* Define the full class record */
typedef struct _XDrawingAreaClassRec {
CoreClassPart core_class;
CompositeClassPart composite_class;
ConstraintClassPart constraint_class;
XmManagerClassPart manager_class;
XmDrawingAreaClassPart drawing_area_class;
XDrawingAreaClassPart xdrawingarea_class;
} XDrawingAreaClassRec;
/* External definition for class record */
extern XDrawingAreaClassRec xDrawingAreaClassRec;
/****************************************************************
*
* Full instance record declaration
*
****************************************************************/
typedef struct _XDrawingAreaRec
{
CorePart core;
CompositePart composite;
ConstraintPart constraint;
XmManagerPart manager;
XmDrawingAreaPart drawing_area;
} XDrawingAreaRec;
#endif /* !_VDrawingAreaP_h_ */
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册