~ubuntu-branches/debian/squeeze/openjdk-6/squeeze

« back to all changes in this revision

Viewing changes to debian/patches/CVE-2012-1716.patch

  • Committer: Package Import Robot
  • Author(s): Moritz Muehlenhoff
  • Date: 2012-06-27 09:21:49 UTC
  • Revision ID: package-import@ubuntu.com-20120627092149-sehd53bk71f637vs
Tags: 6b18-1.8.13-0+squeeze2
CVE-2012-1711 CVE-2012-1713 CVE-2012-1716 CVE-2012-1717
CVE-2012-1718 CVE-2012-1719 CVE-2012-1723 CVE-2012-1724
CVE-2012-1725

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# HG changeset patch
 
2
# User rupashka
 
3
# Date 1330366708 -7200
 
4
# Node ID 7047bf04103450562b485e00c622fea18b227eea
 
5
# Parent  fec31f67f89f877945d3fd9c827ecbaf55c6c924
 
6
7143614: SynthLookAndFeel stability improvement
 
7
Reviewed-by: malenkov
 
8
 
 
9
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java b/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
 
10
--- openjdk/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
 
11
+++ openjdk/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
 
12
@@ -135,8 +135,8 @@
 
13
         if (!c.isEnabled()) {
 
14
             state = DISABLED;
 
15
         }
 
16
-        if (SynthLookAndFeel.selectedUI == this) {
 
17
-            return SynthLookAndFeel.selectedUIState | SynthConstants.ENABLED;
 
18
+        if (SynthLookAndFeel.getSelectedUI() == this) {
 
19
+            return SynthLookAndFeel.getSelectedUIState() | SynthConstants.ENABLED;
 
20
         }
 
21
         AbstractButton button = (AbstractButton) c;
 
22
         ButtonModel model = button.getModel();
 
23
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java b/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
 
24
--- openjdk/jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
 
25
+++ openjdk/jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
 
26
@@ -94,9 +94,9 @@
 
27
 
 
28
     private int getComponentState(JComponent c) {
 
29
         int state = SynthLookAndFeel.getComponentState(c);
 
30
-        if (SynthLookAndFeel.selectedUI == this &&
 
31
+        if (SynthLookAndFeel.getSelectedUI() == this &&
 
32
                         state == SynthConstants.ENABLED) {
 
33
-            state = SynthLookAndFeel.selectedUIState | SynthConstants.ENABLED;
 
34
+            state = SynthLookAndFeel.getSelectedUIState() | SynthConstants.ENABLED;
 
35
         }
 
36
         return state;
 
37
     }
 
38
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java b/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
 
39
--- openjdk/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
 
40
+++ openjdk/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
 
41
@@ -78,27 +78,25 @@
 
42
     private static final Object STYLE_FACTORY_KEY = new Object(); // com.sun.java.swing.plaf.gtk.StyleCache
 
43
 
 
44
     /**
 
45
+     * AppContext key to get selectedUI.
 
46
+     */
 
47
+    private static final Object SELECTED_UI_KEY = new StringBuilder("selectedUI");
 
48
+
 
49
+    /**
 
50
+     * AppContext key to get selectedUIState.
 
51
+     */
 
52
+    private static final Object SELECTED_UI_STATE_KEY = new StringBuilder("selectedUIState");
 
53
+
 
54
+    /**
 
55
      * The last SynthStyleFactory that was asked for from AppContext
 
56
      * <code>lastContext</code>.
 
57
      */
 
58
     private static SynthStyleFactory lastFactory;
 
59
     /**
 
60
-     * If this is true it indicates there is more than one AppContext active
 
61
-     * and that we need to make sure in getStyleCache the requesting
 
62
-     * AppContext matches that of <code>lastContext</code> before returning
 
63
-     * it.
 
64
-     */
 
65
-    private static boolean multipleApps;
 
66
-    /**
 
67
      * AppContext lastLAF came from.
 
68
      */
 
69
     private static AppContext lastContext;
 
70
 
 
71
-    // Refer to setSelectedUI
 
72
-    static ComponentUI selectedUI;
 
73
-    // Refer to setSelectedUI
 
74
-    static int selectedUIState;
 
75
-
 
76
     /**
 
77
      * SynthStyleFactory for the this SynthLookAndFeel.
 
78
      */
 
79
@@ -112,6 +110,10 @@
 
80
 
 
81
     private Handler _handler;
 
82
 
 
83
+    static ComponentUI getSelectedUI() {
 
84
+        return (ComponentUI) AppContext.getAppContext().get(SELECTED_UI_KEY);
 
85
+    }
 
86
+
 
87
     /**
 
88
      * Used by the renderers. For the most part the renderers are implemented
 
89
      * as Labels, which is problematic in so far as they are never selected.
 
90
@@ -123,8 +125,8 @@
 
91
     static void setSelectedUI(ComponentUI uix, boolean selected,
 
92
                               boolean focused, boolean enabled,
 
93
                               boolean rollover) {
 
94
-        selectedUI = uix;
 
95
-        selectedUIState = 0;
 
96
+        int selectedUIState = 0;
 
97
+
 
98
         if (selected) {
 
99
             selectedUIState = SynthConstants.SELECTED;
 
100
             if (focused) {
 
101
@@ -141,19 +143,32 @@
 
102
         else {
 
103
             if (enabled) {
 
104
                 selectedUIState |= SynthConstants.ENABLED;
 
105
-                selectedUIState = SynthConstants.FOCUSED;
 
106
+                if (focused) {
 
107
+                    selectedUIState |= SynthConstants.FOCUSED;
 
108
+                }
 
109
             }
 
110
             else {
 
111
                 selectedUIState |= SynthConstants.DISABLED;
 
112
             }
 
113
         }
 
114
+
 
115
+        AppContext context = AppContext.getAppContext();
 
116
+
 
117
+        context.put(SELECTED_UI_KEY, uix);
 
118
+        context.put(SELECTED_UI_STATE_KEY, Integer.valueOf(selectedUIState));
 
119
+    }
 
120
+
 
121
+    static int getSelectedUIState() {
 
122
+        Integer result = (Integer) AppContext.getAppContext().get(SELECTED_UI_STATE_KEY);
 
123
+
 
124
+        return result == null ? 0 : result.intValue();
 
125
     }
 
126
 
 
127
     /**
 
128
      * Clears out the selected UI that was last set in setSelectedUI.
 
129
      */
 
130
     static void resetSelectedUI() {
 
131
-        selectedUI = null;
 
132
+        AppContext.getAppContext().remove(SELECTED_UI_KEY);
 
133
     }
 
134
 
 
135
 
 
136
@@ -168,10 +183,6 @@
 
137
         // for a particular AppContext.
 
138
         synchronized(SynthLookAndFeel.class) {
 
139
             AppContext context = AppContext.getAppContext();
 
140
-            if (!multipleApps && context != lastContext &&
 
141
-                                 lastContext != null) {
 
142
-                multipleApps = true;
 
143
-            }
 
144
             lastFactory = cache;
 
145
             lastContext = context;
 
146
             context.put(STYLE_FACTORY_KEY, cache);
 
147
@@ -185,17 +196,13 @@
 
148
      */
 
149
     public static SynthStyleFactory getStyleFactory() {
 
150
         synchronized(SynthLookAndFeel.class) {
 
151
-            if (!multipleApps) {
 
152
-                return lastFactory;
 
153
-            }
 
154
             AppContext context = AppContext.getAppContext();
 
155
 
 
156
             if (lastContext == context) {
 
157
                 return lastFactory;
 
158
             }
 
159
             lastContext = context;
 
160
-            lastFactory = (SynthStyleFactory)AppContext.getAppContext().get
 
161
-                                           (STYLE_FACTORY_KEY);
 
162
+            lastFactory = (SynthStyleFactory) context.get(STYLE_FACTORY_KEY);
 
163
             return lastFactory;
 
164
         }
 
165
     }