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 }