15a062b16485b913fbca72ce5ebafb9e16aab284 |
|
06-Feb-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
AbstractMap.keySet and .values should not be volatile Ported from openjdk8u121 changeset: 11261:6c1cb8f35b16 user: shade date: Thu Dec 17 21:14:58 2015 +0300 summary: 8145539: (coll) AbstractMap.keySet and .values should not be volatile More infocab be found here: https://bugs.openjdk.java.net/browse/JDK-8145539 Test: CtsLibcoreTestCases Bug: 31028374 Change-Id: I1a9a2c31268336f4922ef6ab692b6e7f84e706c2
|
9efb6d12ce4d2ffedb73d6e9887ea2c89f8ec129 |
|
08-Jun-2016 |
Narayan Kamath <narayan@google.com> |
Update HashMap, HashSet, LinkedHashMap to JDK8u60. Added tests for: - entrySet()/keySet()/values() spliterators (LinkedHashMap has completely new implementations) - LinkedHashMap.eldest (Android specific API, previously existed but was untested) - naming of nested class LinkedHashMap.LinkedHashMapEntry - tweaked test for Map.getOrDefault() method so it's useful for LinkedHashMap This CL doesn't touch HashSetTest since it already covered spliterator() and serialization. Test: Ran all libcore tests. Bug: 29935305 Change-Id: I9d991a08c403b83b15e9c88ce97cbd5cd77a8bcf
|
49965c1dc9da104344f4893a05e45795a5740d20 |
|
30-Jun-2016 |
Ganesh Mahendran <opensource.ganesh@gmail.com> |
remove x attribute of java file java file does not need x attribute. This patch removes it. Change-Id: I2a7170d99f4bee7a7b819621c84dd197ded37fa2 Signed-off-by: Ganesh Mahendran <opensource.ganesh@gmail.com>
|
309f9df28350e15445b9135e8b710fa2b34b5dc1 |
|
25-Apr-2016 |
Yi Kong <yikong@google.com> |
Update URLs to Java technotes and platform docs Fix links to {@docRoot}/../{technotes,platform} pages. This is done by batch editing using the following script: grep @docRoot -rl | xargs sed -i 's/\/..\/technotes/r\/openjdk-redirect.html?v=8\&path=\/technotes/g;s/\/..\/platform/openjdk-redirect.html?v=8\&path=\/platform/g' Bug: 27540501 Change-Id: Ib5634cd461fbba37dd94ddad9660910dc9397fe7 (cherry picked from commit d2449bb576ad1e3a3877364e5e1ae28625f69e35)
|
d2449bb576ad1e3a3877364e5e1ae28625f69e35 |
|
25-Apr-2016 |
Yi Kong <yikong@google.com> |
Update URLs to Java technotes and platform docs Fix links to {@docRoot}/../{technotes,platform} pages. This is done by batch editing using the following script: grep @docRoot -rl | xargs sed -i 's/\/..\/technotes/r\/openjdk-redirect.html?v=8\&path=\/technotes/g;s/\/..\/platform/openjdk-redirect.html?v=8\&path=\/platform/g' Bug: 27540501 Change-Id: Ib5634cd461fbba37dd94ddad9660910dc9397fe7
|
6d562f688e350ade3c025bfb1c4c8cca9b3e2030 |
|
13-Apr-2016 |
Narayan Kamath <narayan@google.com> |
HashMap: Remove support for alt-hashing. This approach has been abandoned in OpenJdk8 (in favour of tree-ifying when the number of collisions for a given key is large). Given that : (1) Alt-hashing has always been disabled on Android (the threshold was Integer.MAX_VALUE). (2) The OpenJdk8 changes are fairly extensive. We revert to what's essentially the Android M implementation of HashMap; always using a secondary hash, always ignoring the load factor and starting with an initial size of 4. The Hashtable implementation has been left untouched, except for the removal of effectively dead alt-hashing code. bug: 28082128 (cherry picked from commit bfada6f78af63fd626be6991c696cb0393289686) Change-Id: Id0378441104659d341ffaf0b0edf42c592586fae
|
bfada6f78af63fd626be6991c696cb0393289686 |
|
13-Apr-2016 |
Narayan Kamath <narayan@google.com> |
HashMap: Remove support for alt-hashing. This approach has been abandoned in OpenJdk8 (in favour of tree-ifying when the number of collisions for a given key is large). Given that : (1) Alt-hashing has always been disabled on Android (the threshold was Integer.MAX_VALUE). (2) The OpenJdk8 changes are fairly extensive. We revert to what's essentially the Android M implementation of HashMap; always using a secondary hash, always ignoring the load factor and starting with an initial size of 4. The Hashtable implementation has been left untouched, except for the removal of effectively dead alt-hashing code. bug: 28082128 Change-Id: I12d225d9dbf52e6941864093eefdfb2d60989364
|
0976dc2e109a3ca2bd977d18eee74e4b7c9ada30 |
|
04-Apr-2016 |
Shubham Ajmera <shubhamajmera@google.com> |
Add Map::replaceAll method and corresponding unit test. Bug: 27426743 (cherry-picked from commit 135ea6cd4f7ebe2f225351a1928d8a62bce5cb00) Change-Id: Ia86b769fbf5ce55379325ae575d4b3818cb6ccc1
|
135ea6cd4f7ebe2f225351a1928d8a62bce5cb00 |
|
04-Apr-2016 |
Shubham Ajmera <shubhamajmera@google.com> |
Add Map::replaceAll method and corresponding unit test. Bug: 27426743 Change-Id: Ia86b769fbf5ce55379325ae575d4b3818cb6ccc1
|
0e83756c4295f4df3853047205d94fe845573522 |
|
08-Mar-2016 |
Shubham Ajmera <shubhamajmera@google.com> |
Port OpenJDK8 changes in java.util.Map & add tests. The CL add tests for map default methods added in Java 8 - getOrDefault, putIfAbsent, remove(K, V), replace(K, V, V), replace(K, V), forEach, replaceAll, compute, computeIfAbsent, computeIfPresent, putIfAbsent, merge. Methods have been made synchronzed in Hashtable. They are using the default map methods instead of taking the upstream changes. Replace(K, V, V) in LinkedHashMap has been overridden as it doesn't record access when the replace method doesn't make any replacement. Bug: 27426743 (cherry-picked from commit 88f1a4f0b1efb746419672919654c285ce44fbc5) Change-Id: Ifb2130698dd0ed42acc5c0f429496eebb444e21c
|
44aed07672d7775f168a49dbb5b8a13682c02600 |
|
08-Mar-2016 |
Shubham Ajmera <shubhamajmera@google.com> |
Port OpenJDK8 changes in java.util.Map & add tests. The CL add tests for map default methods added in Java 8 - getOrDefault, putIfAbsent, remove(K, V), replace(K, V, V), replace(K, V), forEach, replaceAll, compute, computeIfAbsent, computeIfPresent, putIfAbsent, merge. Methods have been made synchronzed in Hashtable. They are using the default map methods instead of taking the upstream changes. Replace(K, V, V) in LinkedHashMap has been overridden as it doesn't record access when the replace method doesn't make any replacement. Bug: 27426743 Change-Id: Ifb2130698dd0ed42acc5c0f429496eebb444e21c
|
8b056f0b15bc1e45da8d4c504353b05e681ac013 |
|
04-Mar-2016 |
Narayan Kamath <narayan@google.com> |
Add java.lang.Iterable.spliterator() and supporting classes. The only android specific changes here are to HashMap - their spliterators add Spliterator.ORDERED if the HashMap is an instance of a LinkedHashMap. There's some degree of duplication between the test code used to exercise primitive arrays (Arrays / Spliterators provide similar APIs). These differences are quite hard to consolidate, since the Arrays version declares that their Spliterators are ORDERED but the Spliterator version doesn't. The latter also allows us to declare additional Spliterator characteristics. bug: 27426688 Change-Id: I191a9319d4af7e22834f2d91f73634a227b36bc2
|
4c89023ef86f29fa9add7db2574f2169fe842577 |
|
04-Mar-2016 |
Narayan Kamath <narayan@google.com> |
Add java.lang.Iterable.spliterator() and supporting classes. The only android specific changes here are to HashMap - their spliterators add Spliterator.ORDERED if the HashMap is an instance of a LinkedHashMap. There's some degree of duplication between the test code used to exercise primitive arrays (Arrays / Spliterators provide similar APIs). These differences are quite hard to consolidate, since the Arrays version declares that their Spliterators are ORDERED but the Spliterator version doesn't. The latter also allows us to declare additional Spliterator characteristics. (cherry-picked from commit ed21aa3a8dcd34eca6f0317eeb683e7afdc825b9) bug: 27426688 Change-Id: I191a9319d4af7e22834f2d91f73634a227b36bc2
|
60796efea3a74e02aea384b8eb56103ea21b880b |
|
29-Feb-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Add Iterable#forEach & Map#forEach from openJdk8 Based on openJdk 8u40 source & iam@ stream change in ag/872080 Bug: 27404545 Change-Id: Ic67e20b35c24e7acce513e010b727510af09a83e (cherry picked from commit c3a9db83a352d92d5a6e0098f22bde07e34a1d3b)
|
c3a9db83a352d92d5a6e0098f22bde07e34a1d3b |
|
29-Feb-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Add Iterable#forEach & Map#forEach from openJdk8 Based on openJdk 8u40 source & iam@ stream change in ag/872080 Bug: 27404545 Change-Id: Ic67e20b35c24e7acce513e010b727510af09a83e
|
44973ad1b6b55b8afa2aba3abad8166e31e772d5 |
|
12-Jan-2016 |
Kenny Root <kroot@google.com> |
Fix HashMap and HashSet cloning problem If HashMap or HashSet were cloned, it would no longer be equal to "EMPTY_TABLE" causing the next insertion into the map to be inserted at an index that was out of bounds. Bug: 26294011 Change-Id: I374ed126d0d2fa725d6a7f86a6e419cb34ff9ce9
|
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c |
|
21-Dec-2015 |
Narayan Kamath <narayan@google.com> |
Update file headers. Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
|
5339965fe0440cb3f203c09ef5eacaf262ae1d13 |
|
25-Nov-2015 |
Narayan Kamath <narayan@google.com> |
Stop calling Math.min from HashMap.inflateTable. Fixes 119-noimage-patchoat on host. Note that this partially brings back the change that was reverted in 4ee97ca40af11f4fc. The rest of that change was still super bogus because we'd always scale capacity with loadFactor, which is wrong. bug: 25837641 Change-Id: Ifc3ab50e67035517a12bcb70177553130867e326
|
4ee97ca40af11f4fc9dc9e381a0730513ed026ab |
|
24-Nov-2015 |
Narayan Kamath <narayan@google.com> |
Fix HashMapTest#testSerializationSelf. Reverts a bogus change to the map capacity calculation. bug: 25837641 Change-Id: Id2081ce845e459f8f87578921b6bd113ceb049a6
|
9048c4faf8f9f15e0124c32834b6a9a2a6cb54de |
|
10-Nov-2015 |
Narayan Kamath <narayan@google.com> |
Rename Entry classes in HashMap and LinkedHashMap. The name "Entry" was hiding interface Map.Entry so code that did stuff like : HashMap.Entry<K, V> foo : map.entrySet() would break. Moreover, that naming scheme confusing (with interface Map.Entry, class HashMap.Entry and class LinkedHashMap.Entry) and this change (IMO) improves readability. Change-Id: Ie9ea96f9a8e4a4988bdc47f77117dc23922315b3
|
8f12848784d4954d633848ac60d12a91401ddecd |
|
28-Jul-2015 |
Narayan Kamath <narayan@google.com> |
Revert android patch to make {Linked}HashMap.Entry public. It's unnecessary and only serves to break code that writes things like : HashMap.Entry<K, V> foo = bar.entrySet(); Change-Id: I35efd90b3f53fd3c843f076f4e9e1fa5a171ff05
|
46e3649f898305d185fc40bae2542e933a16b619 |
|
06-May-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Use OpenJdk implementation of java.lang.* [part 1] - Changes to String hashing. - Change StringCoding.isTrusted. - For boxed primitive types, change how TYPE is derived (use the array equivalents component type). - System: the security manager is now always null. Also, port over changes to make system properties read only. - StrictMath : Use our existing fdlibm and remove references to jdflibm.h. Change-Id: I221692836b9320cade9074b122fbc25c8e72cf99
|
983b2c6ff9ea6d35adf7ab6398dccf870b7e180a |
|
24-Apr-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Use OpenJdk implementation for java.util.* - Add a target for currency data (currency.data). - Arrays: Add an android specific debugging method. - Currency: Use ICU4C data. - EnumMap / EnumSet : Use JavaLangAccess directly. - HashMap / Hashtable / LinkedHashMap : Make Entry<K,V> public. - LinkedHashMap : Add an eldest() method. - Locale : Fix handling of 3 letter region codes. - Scanner : Temporarily remove references to the nio file APIs. - ServiceLoader : Add a method to instantiate a class from a system property (used in other parts of libcore). - Hashing : Use JavaLangAccess directly. - VM : Remove native initialization (doesn't apply here). Change-Id: I8e870357cf3987cd571c7ebe8bc633a85380a8d5
|
51b1b6997fd3f980076b8081f7f1165ccc2a4008 |
|
16-Feb-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Initial import of OpenJdk files. Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories. Build ojluni into core-oj jar. Use openjdk classes from java.awt.font package. Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java. Copy following native files from openjdk to libcore/ojluni/src/main/native: jdk/src/solaris/native/java/io/canonicalize_md.c build/linux-amd64/include/classfile_constants.h jdk/src/share/native/java/net/DatagramPacket.c jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c jdk/src/share/native/java/lang/Double.c jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c jdk/src/solaris/native/java/io/FileDescriptor_md.c jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c jdk/src/share/native/java/io/FileInputStream.c jdk/src/solaris/native/sun/nio/ch/FileKey.c jdk/src/solaris/native/java/io/FileOutputStream_md.c jdk/src/solaris/native/java/io/FileSystem_md.c jdk/src/share/native/java/lang/Float.c jdk/src/share/native/java/net/Inet4Address.c jdk/src/solaris/native/java/net/Inet4AddressImpl.c jdk/src/share/native/java/net/Inet6Address.c jdk/src/solaris/native/java/net/Inet6AddressImpl.c jdk/src/share/native/java/net/InetAddress.c jdk/src/solaris/native/java/net/InetAddressImplFactory.c jdk/src/share/native/java/io/io_util.c jdk/src/solaris/native/sun/nio/ch/IOUtil.c jdk/src/share/native/java/io/io_util.h jdk/src/solaris/native/java/io/io_util_md.c jdk/src/solaris/native/java/io/io_util_md.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h jdk/src/share/native/java/lang/java_props.h jdk/src/solaris/native/java/lang/java_props_md.c jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h jdk/src/share/native/common/jlong.h jdk/src/solaris/native/common/jlong_md.h jdk/src/share/native/common/jni_util.c jdk/src/share/native/common/jni_util.h jdk/src/solaris/native/common/jni_util_md.c jdk/src/share/javavm/export/jvm.h jdk/src/solaris/javavm/export/jvm_md.h jdk/src/solaris/native/java/net/linux_close.c jdk/src/share/native/sun/misc/NativeSignalHandler.c jdk/src/solaris/native/sun/nio/ch/NativeThread.c jdk/src/share/native/java/net/net_util.c jdk/src/share/native/java/net/net_util.h jdk/src/solaris/native/java/net/net_util_md.c jdk/src/solaris/native/java/net/net_util_md.h jdk/src/solaris/native/java/net/NetworkInterface.c jdk/src/share/native/sun/nio/ch/nio.h jdk/src/solaris/native/sun/nio/ch/nio_util.h jdk/src/share/native/java/io/ObjectStreamClass.c jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c jdk/src/solaris/native/java/net/PlainSocketImpl.c jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c jdk/src/share/native/java/lang/Runtime.c jdk/src/share/native/java/lang/Shutdown.c jdk/src/share/native/sun/misc/Signal.c jdk/src/solaris/native/java/net/SocketInputStream.c jdk/src/solaris/native/java/net/SocketOutputStream.c jdk/src/share/native/java/lang/StrictMath.c jdk/src/share/native/java/lang/String.c build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h jdk/src/share/native/java/lang/System.c jdk/src/share/native/java/lang/Thread.c jdk/src/share/native/java/lang/Throwable.c jdk/src/solaris/native/java/io/UnixFileSystem_md.c jdk/src/solaris/native/java/lang/UNIXProcess_md.c jdk/src/share/native/java/util/zip/zip_util.c jdk/src/share/native/java/util/zip/zip_util.h Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d
|