PatchSet 4099 Date: 2003/10/05 17:06:57 Author: dalibor Branch: HEAD Tag: (none) Log: Fixed iteration in HashMap and Hashtable to use hasNext()
Removed micro-optimization in putAll and putAllInternal that used size() to precompute the number of steps necessary to iterate over a collection. Use hasNext(), like Sun apparently does. Members: ChangeLog:1.1694->1.1695 libraries/javalib/java/util/HashMap.java:1.18->1.19 libraries/javalib/java/util/Hashtable.java:1.28->1.29 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.1694 kaffe/ChangeLog:1.1695 --- kaffe/ChangeLog:1.1694 Sun Oct 5 16:04:47 2003 +++ kaffe/ChangeLog Sun Oct 5 17:06:57 2003 @@ -1,3 +1,13 @@ +2003-10-05 Stuart Ballard <[EMAIL PROTECTED]> + + * libraries/javalib/java/util/HashMap.java: + (putAll, putAllInternal) Iterate over collection using hasNext() + instead of using size(). + + * libraries/javalib/java/util/Hashtable.java + (putAll, putAllInternal) Iterate over collection using hasNext() + instead of using size(). + 2003-10-05 Kiyo Inaba <[EMAIL PROTECTED]> * kaffe/kaffevm/stackTrace.c: Index: kaffe/libraries/javalib/java/util/HashMap.java diff -u kaffe/libraries/javalib/java/util/HashMap.java:1.18 kaffe/libraries/javalib/java/util/HashMap.java:1.19 --- kaffe/libraries/javalib/java/util/HashMap.java:1.18 Tue Aug 12 23:02:19 2003 +++ kaffe/libraries/javalib/java/util/HashMap.java Sun Oct 5 17:06:58 2003 @@ -381,8 +381,7 @@ public void putAll(Map m) { Iterator itr = m.entrySet().iterator(); - int msize = m.size(); - while (msize-- > 0) + while (itr.hasNext()) { Map.Entry e = (Map.Entry) itr.next(); // Optimize in case the Entry is one of our own. @@ -709,10 +708,10 @@ void putAllInternal(Map m) { Iterator itr = m.entrySet().iterator(); - int msize = m.size(); - size = msize; - while (msize-- > 0) + size = 0; + while (itr.hasNext()) { + size++; Map.Entry e = (Map.Entry) itr.next(); Object key = e.getKey(); int idx = hash(key); Index: kaffe/libraries/javalib/java/util/Hashtable.java diff -u kaffe/libraries/javalib/java/util/Hashtable.java:1.28 kaffe/libraries/javalib/java/util/Hashtable.java:1.29 --- kaffe/libraries/javalib/java/util/Hashtable.java:1.28 Tue Aug 12 23:02:19 2003 +++ kaffe/libraries/javalib/java/util/Hashtable.java Sun Oct 5 17:06:58 2003 @@ -510,7 +510,7 @@ { Iterator itr = m.entrySet().iterator(); - for (int msize = m.size(); msize > 0; msize--) + while (itr.hasNext()) { Map.Entry e = (Map.Entry) itr.next(); // Optimize in case the Entry is one of our own. @@ -859,11 +859,11 @@ void putAllInternal(Map m) { Iterator itr = m.entrySet().iterator(); - int msize = m.size(); - this.size = msize; + size = 0; - for (; msize > 0; msize--) + while (itr.hasNext()) { + size++; Map.Entry e = (Map.Entry) itr.next(); Object key = e.getKey(); int idx = hash(key); _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe