Mercurial > projects > dwt2
comparison base/src/java/util/HashMap.d @ 120:536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
===D2===
* added [Try]Immutable/Const/Shared templates to work with differenses in D1/D2 instead of version statements
used these templates to work with strict type storage rules of dmd-2.053
* com.ibm.icu now also compilable with D2, but not tested yet
* small fixes
Snippet288 - shared data is in TLS
===Phobos===
* fixed critical bugs in Phobos implemention
completely incorrect segfault prone fromStringz (Linux's port ruthless killer)
terrible, incorrect StringBuffer realization (StyledText killer)
* fixed small bugs as well
Snippet72 - misprint in the snippet
* implemented missed functionality for Phobos
ByteArrayOutputStream implemented (image loading available)
formatting correctly works for all DWT's cases
As a result, folowing snippets now works with Phobos (Snippet### - what is fixed):
Snippet24, 42, 111, 115, 130, 235, 276 - bad string formatting
Snippet48, 282 - crash on image loading
Snippet163, 189, 211, 213, 217, 218, 222 - crash on copy/cut in StyledText
Snippet244 - hang-up
===Tango===
* few changes for the latest Tango trunc-r5661
* few small performance improvments
===General===
* implMissing-s for only one version changed to implMissingInTango/InPhobos
* incorrect calls to Format in toString-s fixed
* fixed loading \uXXXX characters in ResourceBundle
* added good UTF-8 support for StyledText, TextLayout (Win32) and friends
UTF functions revised and tested. It is now in java.nonstandard.*Utf modules
StyledText and TextLayout (Win32) modules revised for UTF-8 support
* removed small diferences in most identical files in *.swt.* folders
*.swt.internal.image, *.swt.events and *.swt.custom are identical in Win32/Linux32
now 179 of 576 (~31%) files in *.swt.* folders are fully identical
* Win32: snippets now have right subsystem, pretty icons and native system style controls
* small fixes in snippets
Snippet44 - it's not Snippet44
Snippet212 - functions work with different images and offsets arrays
Win32: Snippet282 - crash on close if the button has an image
Snippet293 - setGrayed is commented
and others
Win32: As a result, folowing snippets now works
Snippet68 - color doesn't change
Snippet163, 189, 211, 213, 217, 218, 222 - UTF-8 issues (see above)
Snippet193 - no tabel headers
author | Denis Shelomovskij <verylonglogin.reg@gmail.com> |
---|---|
date | Sat, 09 Jul 2011 15:50:20 +0300 |
parents | 9f4c18c268b2 |
children |
comparison
equal
deleted
inserted
replaced
119:d00e8db0a568 | 120:536e43f63c81 |
---|---|
39 | 39 |
40 public this(){ | 40 public this(){ |
41 version(Tango){ | 41 version(Tango){ |
42 map = new MapType(); | 42 map = new MapType(); |
43 } else { // Phobos | 43 } else { // Phobos |
44 implMissing( __FILE__, __LINE__ ); | 44 implMissingInPhobos(); |
45 } | 45 } |
46 } | 46 } |
47 public this(int initialCapacity){ | 47 public this(int initialCapacity){ |
48 this(); | 48 this(); |
49 } | 49 } |
50 public this(int initialCapacity, float loadFactor){ | 50 public this(int initialCapacity, float loadFactor){ |
51 version(Tango){ | 51 version(Tango){ |
52 map = new MapType(loadFactor); | 52 map = new MapType(loadFactor); |
53 } else { // Phobos | 53 } else { // Phobos |
54 implMissing( __FILE__, __LINE__ ); | 54 implMissingInPhobos(); |
55 } | 55 } |
56 } | 56 } |
57 public this(Map m){ | 57 public this(Map m){ |
58 this(); | 58 this(); |
59 putAll(m); | 59 putAll(m); |
60 } | 60 } |
61 public void clear(){ | 61 public void clear(){ |
62 version(Tango){ | 62 version(Tango){ |
63 map.clear(); | 63 map.clear(); |
64 } else { // Phobos | 64 } else { // Phobos |
65 implMissing( __FILE__, __LINE__ ); | 65 implMissingInPhobos(); |
66 } | 66 } |
67 } | 67 } |
68 public bool containsKey(Object key){ | 68 public bool containsKey(Object key){ |
69 version(Tango){ | 69 version(Tango){ |
70 ObjRef v; | 70 ObjRef v; |
71 ObjRef keyr = ObjRef(key); | 71 ObjRef keyr = ObjRef(key); |
72 return map.get(keyr, v ); | 72 return map.get(keyr, v ); |
73 } else { // Phobos | 73 } else { // Phobos |
74 implMissing( __FILE__, __LINE__ ); | 74 implMissingInPhobos(); |
75 return false; | 75 return false; |
76 } | 76 } |
77 } | 77 } |
78 public bool containsKey(String key){ | 78 public bool containsKey(String key){ |
79 return containsKey(stringcast(key)); | 79 return containsKey(stringcast(key)); |
81 public bool containsValue(Object value){ | 81 public bool containsValue(Object value){ |
82 version(Tango){ | 82 version(Tango){ |
83 ObjRef valuer = ObjRef(value); | 83 ObjRef valuer = ObjRef(value); |
84 return map.contains(valuer); | 84 return map.contains(valuer); |
85 } else { // Phobos | 85 } else { // Phobos |
86 implMissing( __FILE__, __LINE__ ); | 86 implMissingInPhobos(); |
87 return false; | 87 return false; |
88 } | 88 } |
89 } | 89 } |
90 public Set entrySet(){ | 90 public Set entrySet(){ |
91 version(Tango){ | 91 version(Tango){ |
93 foreach( k, v; map ){ | 93 foreach( k, v; map ){ |
94 res.add( new MapEntry(this,k.obj)); | 94 res.add( new MapEntry(this,k.obj)); |
95 } | 95 } |
96 return res; | 96 return res; |
97 } else { // Phobos | 97 } else { // Phobos |
98 implMissing( __FILE__, __LINE__ ); | 98 implMissingInPhobos(); |
99 return null; | 99 return null; |
100 } | 100 } |
101 } | 101 } |
102 public override equals_t opEquals(Object o){ | 102 public override equals_t opEquals(Object o){ |
103 version(Tango){ | 103 version(Tango){ |
113 } | 113 } |
114 return true; | 114 return true; |
115 } | 115 } |
116 return false; | 116 return false; |
117 } else { // Phobos | 117 } else { // Phobos |
118 implMissing( __FILE__, __LINE__ ); | 118 implMissingInPhobos(); |
119 return false; | 119 return false; |
120 } | 120 } |
121 } | 121 } |
122 public Object get(Object key){ | 122 public Object get(Object key){ |
123 version(Tango){ | 123 version(Tango){ |
125 if( auto v = keyr in map ){ | 125 if( auto v = keyr in map ){ |
126 return (*v).obj; | 126 return (*v).obj; |
127 } | 127 } |
128 return null; | 128 return null; |
129 } else { // Phobos | 129 } else { // Phobos |
130 implMissing( __FILE__, __LINE__ ); | 130 implMissingInPhobos(); |
131 return null; | 131 return null; |
132 } | 132 } |
133 } | 133 } |
134 public Object get(String key){ | 134 public Object get(String key){ |
135 return get(stringcast(key)); | 135 return get(stringcast(key)); |
139 } | 139 } |
140 public bool isEmpty(){ | 140 public bool isEmpty(){ |
141 version(Tango){ | 141 version(Tango){ |
142 return map.isEmpty(); | 142 return map.isEmpty(); |
143 } else { // Phobos | 143 } else { // Phobos |
144 implMissing( __FILE__, __LINE__ ); | 144 implMissingInPhobos(); |
145 return false; | 145 return false; |
146 } | 146 } |
147 } | 147 } |
148 public Set keySet(){ | 148 public Set keySet(){ |
149 version(Tango){ | 149 version(Tango){ |
151 foreach( k, v; map ){ | 151 foreach( k, v; map ){ |
152 res.add(k.obj); | 152 res.add(k.obj); |
153 } | 153 } |
154 return res; | 154 return res; |
155 } else { // Phobos | 155 } else { // Phobos |
156 implMissing( __FILE__, __LINE__ ); | 156 implMissingInPhobos(); |
157 return null; | 157 return null; |
158 } | 158 } |
159 } | 159 } |
160 public Object put(Object key, Object value){ | 160 public Object put(Object key, Object value){ |
161 version(Tango){ | 161 version(Tango){ |
166 res = (*vold).obj; | 166 res = (*vold).obj; |
167 } | 167 } |
168 map[ keyr ] = valuer; | 168 map[ keyr ] = valuer; |
169 return res; | 169 return res; |
170 } else { // Phobos | 170 } else { // Phobos |
171 implMissing( __FILE__, __LINE__ ); | 171 implMissingInPhobos(); |
172 return null; | 172 return null; |
173 } | 173 } |
174 } | 174 } |
175 public Object put(String key, Object value){ | 175 public Object put(String key, Object value){ |
176 return put( stringcast(key), value ); | 176 return put( stringcast(key), value ); |
185 version(Tango){ | 185 version(Tango){ |
186 foreach( k, v; t ){ | 186 foreach( k, v; t ){ |
187 map[ObjRef(k)] = ObjRef(v); | 187 map[ObjRef(k)] = ObjRef(v); |
188 } | 188 } |
189 } else { // Phobos | 189 } else { // Phobos |
190 implMissing( __FILE__, __LINE__ ); | 190 implMissingInPhobos(); |
191 } | 191 } |
192 } | 192 } |
193 public Object remove(Object key){ | 193 public Object remove(Object key){ |
194 version(Tango){ | 194 version(Tango){ |
195 ObjRef keyr = ObjRef(key); | 195 ObjRef keyr = ObjRef(key); |
198 map.removeKey(keyr); | 198 map.removeKey(keyr); |
199 return res; | 199 return res; |
200 } | 200 } |
201 return null; | 201 return null; |
202 } else { // Phobos | 202 } else { // Phobos |
203 implMissing( __FILE__, __LINE__ ); | 203 implMissingInPhobos(); |
204 return null; | 204 return null; |
205 } | 205 } |
206 } | 206 } |
207 public Object remove(String key){ | 207 public Object remove(String key){ |
208 return remove(stringcast(key)); | 208 return remove(stringcast(key)); |
209 } | 209 } |
210 public int size(){ | 210 public int size(){ |
211 version(Tango){ | 211 version(Tango){ |
212 return map.size(); | 212 return map.size(); |
213 } else { // Phobos | 213 } else { // Phobos |
214 implMissing( __FILE__, __LINE__ ); | 214 implMissingInPhobos(); |
215 return 0; | 215 return 0; |
216 } | 216 } |
217 } | 217 } |
218 public Collection values(){ | 218 public Collection values(){ |
219 version(Tango){ | 219 version(Tango){ |
221 foreach( k, v; map ){ | 221 foreach( k, v; map ){ |
222 res.add( v.obj ); | 222 res.add( v.obj ); |
223 } | 223 } |
224 return res; | 224 return res; |
225 } else { // Phobos | 225 } else { // Phobos |
226 implMissing( __FILE__, __LINE__ ); | 226 implMissingInPhobos(); |
227 return null; | 227 return null; |
228 } | 228 } |
229 } | 229 } |
230 | 230 |
231 public int opApply (int delegate(ref Object value) dg){ | 231 public int opApply (int delegate(ref Object value) dg){ |
233 int ldg( ref ObjRef or ){ | 233 int ldg( ref ObjRef or ){ |
234 return dg( or.obj ); | 234 return dg( or.obj ); |
235 } | 235 } |
236 return map.opApply( &ldg ); | 236 return map.opApply( &ldg ); |
237 } else { // Phobos | 237 } else { // Phobos |
238 implMissing( __FILE__, __LINE__ ); | 238 implMissingInPhobos(); |
239 return 0; | 239 return 0; |
240 } | 240 } |
241 } | 241 } |
242 public int opApply (int delegate(ref Object key, ref Object value) dg){ | 242 public int opApply (int delegate(ref Object key, ref Object value) dg){ |
243 version(Tango){ | 243 version(Tango){ |
244 int ldg( ref ObjRef key, ref ObjRef value ){ | 244 int ldg( ref ObjRef key, ref ObjRef value ){ |
245 return dg( key.obj, value.obj ); | 245 return dg( key.obj, value.obj ); |
246 } | 246 } |
247 return map.opApply( &ldg ); | 247 return map.opApply( &ldg ); |
248 } else { // Phobos | 248 } else { // Phobos |
249 implMissing( __FILE__, __LINE__ ); | 249 implMissingInPhobos(); |
250 return 0; | 250 return 0; |
251 } | 251 } |
252 } | 252 } |
253 | 253 |
254 } | 254 } |