e31b37859051d3902e06e4ba384995df7188917f |
|
02-Dec-2017 |
Hans Boehm <hboehm@google.com> |
Add reachabilityFence, ReachabilitySensitive Add the @ReachabilitySensitive annotation itself, and use it in libcore itself, where needed. Import OpenJDK9+181's reachabilityFence, so that it can be used in preference to the annotation where it makes sense. Java 9's stopgap reachabilityFence implementation doesn't work for us, so replace it with a different stopgap. The libcore changes correct many situations in which finalizers could previously run prematurely according to the JLS. Or they would correct them if we had a real implementation for @ReachabilitySensitive. The ZipFile constructor could close the file before notifying the CloseGuard that it was open. Aside from the ZipFile change, there should be no functional change, yet. Note that the ExemptionMechanism.java fix is the same as upstream. Conspicuously missing: - Any code, e.g. in ART or D8, that actually looks for the annotation. - Uses in frameworks code, where it's probably most critical. Bug: 63934467 Bug: 70906684 Bug: 28342794 Test: Build & boot AOSP Change-Id: I652f0625b39b2ba9ac901d4f63e6aa6cf3b74af5
|
4f5f16ccda77bc0448b42e4dc36da50e0c100591 |
|
19-Jul-2017 |
Victor Chang <vichang@google.com> |
Fix comments in Matcher.java and MatcherTest.java Bug: 33737213 Test: cts-tradefed run cts -m CtsLibcoreTestCases --primary-abi-only Change-Id: Id4147185591e1237fb99a231a8a39d831b9d3f48
|
faa2342e585ce148d6de982106ec7b5735f07f1f |
|
13-Jul-2017 |
Victor Chang <vichang@google.com> |
Fix Matcher.find and reset - Matcher.find didn't call reset(), but according to the javadoc, it should. - reset() didn't obtain a fresh value from mutable CharSequence. Given that the constructor uses CharSequence, it should obtain a new value from the CharSequence and match it again Added 2 tests to verify such behaviors accordingly Bug: 33737213 Test: cts-tradefed run cts -m CtsLibcoreTestCases --primary-abi-only Change-Id: I16ce01944b8c1baac9b7947d5551fb030eb95fc8
|
4fdd044dd2cf0566613e2b1f79ca56711894446d |
|
28-Mar-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
java.util.regex javadoc chages from openJdk8u121 Test: make -j 32 Bug: 36461944 Change-Id: I85ab28f2a7629c450ee6cee614dd25ed77a00123 (cherry picked from commit 8510e5234e7f0bda32cf4507e679ca856c6040b5)
|
285e53bf2b7c81134ae8bdb4044df216610bed17 |
|
04-Apr-2017 |
Narayan Kamath <narayan@google.com> |
Revert "Revert "Matcher: Avoid excessive String copies."" This reverts commit 53e4e15bb0fc2f789274998f3ce62c4fc021fbe8. Fixes a memory leak introduced in 53e4e15bb0f. Also : - switches to using ScopedStringChars to simplify the code further. - better ICU error checking. Bug: 36366255 Bug: 36818684 Test: cts -m CtsLibcoreTestCases Test: ScannerTest on host/x86 (cherry picked from commit 9084fb6f7c4da5d42c6b58b523d71e8ad65dd754) Change-Id: Iad7c5b07647542bcaa2e6621107c0cd206249bae
|
9084fb6f7c4da5d42c6b58b523d71e8ad65dd754 |
|
04-Apr-2017 |
Narayan Kamath <narayan@google.com> |
Revert "Revert "Matcher: Avoid excessive String copies."" This reverts commit 53e4e15bb0fc2f789274998f3ce62c4fc021fbe8. Fixes a memory leak introduced in 53e4e15bb0f. Also : - switches to using ScopedStringChars to simplify the code further. - better ICU error checking. Bug: 36366255 Bug: 36818684 Test: cts -m CtsLibcoreTestCases Test: ScannerTest on host/x86 Change-Id: I3f108931cd5236be4ff9c0bd608a87701370dbf1
|
53e4e15bb0fc2f789274998f3ce62c4fc021fbe8 |
|
03-Apr-2017 |
Narayan Kamath <narayan@google.com> |
Revert "Matcher: Avoid excessive String copies." This reverts commit 903563600f39b4efdf22a179f0d270e4d2a72469. Reason for revert: this results in sporadic crashes on host/x86. Change-Id: Ibb914b298df0e814a8684904b118fbaa8b8cab2c bug: 36366255
|
903563600f39b4efdf22a179f0d270e4d2a72469 |
|
24-Mar-2017 |
Narayan Kamath <narayan@google.com> |
Matcher: Avoid excessive String copies. We avoid calls to GetStringChars on every JNI call to find or findNext. Given that we now have a moving collector, we always copy on GetStringChars. Moreover, on Android O, we incur the cost of these copies even if the String in question is in a non-moveable space because the String might be compressed. The cost of these calls can quickly add up, especially for the case where the pattern in question occurs several times in the string. Relevant benchmark results are included below. This shows that for a String size of 64kb with near worst case repetition of patterns, the new implementation takes ~1/100th the time (8ms vs 737ms) BEFORE: Experiment {instrument=runtime, benchmarkMethod=timeReplaceAllTrivialPatternSingleOccurence, vm=default, parameters={s=NON_MOVEABLE}} runtime(ns): min=1832194.71, 1st qu.=1865190.38, median=1918799.21, mean=1951987.04, 3rd qu.=2032988.61, max=2171749.44 Experiment {instrument=runtime, benchmarkMethod=timeReplaceTrivialPatternAllRepeated, vm=default, parameters={s=MOVEABLE_256}} runtime(ns): min=91264.94, 1st qu.=91999.01, median=92500.85, mean=92864.29, 3rd qu.=94001.42, max=94304.77 Experiment {instrument=runtime, benchmarkMethod=timeReplaceTrivialPatternAllRepeated, vm=default, parameters={s=MOVEABLE_1024}} runtime(ns): min=460049.96, 1st qu.=464198.96, median=473150.38, mean=477171.31, 3rd qu.=489764.60, max=508391.29 Experiment {instrument=runtime, benchmarkMethod=timeReplaceTrivialPatternAllRepeated, vm=default, parameters={s=NON_MOVEABLE}} runtime(ns): min=736209191.00, 1st qu.=736360924.50, median=737412847.00, mean=737419384.78, 3rd qu.=738278240.00, max=738760545.00 AFTER: Experiment {instrument=runtime, benchmarkMethod=timeReplaceAllTrivialPatternSingleOccurence, vm=default, parameters={s=NON_MOVEABLE}} runtime(ns): min=1518890.99, 1st qu.=1528913.92, median=1637897.87, mean=1626845.46, 3rd qu.=1712046.38, max=1750239.83 Experiment {instrument=runtime, benchmarkMethod=timeReplaceTrivialPatternAllRepeated, vm=default, parameters={s=MOVEABLE_256}} runtime(ns): min=61491.55, 1st qu.=62453.80, median=63083.26, mean=63023.21, 3rd qu.=63730.98, max=64245.10 Experiment {instrument=runtime, benchmarkMethod=timeReplaceTrivialPatternAllRepeated, vm=default, parameters={s=MOVEABLE_1024}} runtime(ns): min=175484.27, 1st qu.=176039.91, median=177751.78, mean=179295.87, 3rd qu.=183334.40, max=187095.50 Experiment {instrument=runtime, benchmarkMethod=timeReplaceTrivialPatternAllRepeated, vm=default, parameters={s=NON_MOVEABLE}} runtime(ns): min=8268762.61, 1st qu.=8396197.28, median=8662951.07, mean=8596467.31, 3rd qu.=8731159.36, max=8973943.49 bug: 36366255 bug: 36818684 Test: cts -m CtsLibcoreTestCases Test: benchmark Change-Id: Iff07cf2c2ebe89f04289bfa92bcd2469fec349e7
|
8510e5234e7f0bda32cf4507e679ca856c6040b5 |
|
28-Mar-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
java.util.regex javadoc chages from openJdk8u121 Test: make -j 32 Bug: 36461944 Change-Id: I85ab28f2a7629c450ee6cee614dd25ed77a00123
|
69860bf2b28f0e14741a8895abdb77b45d1ed55d |
|
11-Jan-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Regex support for named capture groups. 3 new methods in Matcher class: group(String), start(String), end(String) that takes the name of named capture group. Definition (?<name>X) and backreferencing (\k<name>) both work fine. Added support for ${name} in replace methods. Test: vogar OldMatcherTest Bug: 19717812 Change-Id: Id6dce9158721917d644adb1a0b88d25ddb000fcd
|
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>
|
17d9d335a92b93da440e19d07c935c5f9e9e16fc |
|
03-May-2016 |
Richard Uhler <ruhler@google.com> |
Hold a ClassLoader reference in NativeAllocationRegistry. So that the native library isn't unloaded before we have a chance to call the freeFunction. Bug: 28406866 (cherry picked from commit 111fdf10801861427f59e42c34c40d5df484053b) Change-Id: I80c15400335edfc31de0bb6e06ed514ac4ea1d4d
|
111fdf10801861427f59e42c34c40d5df484053b |
|
03-May-2016 |
Richard Uhler <ruhler@google.com> |
Hold a ClassLoader reference in NativeAllocationRegistry. So that the native library isn't unloaded before we have a chance to call the freeFunction. Bug: 28406866 Change-Id: I1c876b90837902ac3e65a41eb4a4fdd4f84a9b6c
|
5b53b8c56fb2aba6fffc5c467d092d9dcaf45f34 |
|
22-Apr-2016 |
Hans Boehm <hboehm@google.com> |
Convert Pattern and Matcher to use NativeAllocationRegistry Avoid finalizer use, since already finalized objects may still be accessed by other finalizers, causing native memory corruption. This should also improve memory tracking and deallocation performance a bit. Bug: 27887091 Change-Id: Ib1df6bcdacaf8eba622b67c10ac9ceb675067884 (cherry picked from commit d9e764ece41000c87d12d82a50eab6444ba02a8e)
|
d9e764ece41000c87d12d82a50eab6444ba02a8e |
|
22-Apr-2016 |
Hans Boehm <hboehm@google.com> |
Convert Pattern and Matcher to use NativeAllocationRegistry Avoid finalizer use, since already finalized objects may still be accessed by other finalizers, causing native memory corruption. This should also improve memory tracking and deallocation performance a bit. Bug: 27887091 Change-Id: Ib1df6bcdacaf8eba622b67c10ac9ceb675067884
|
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c |
|
21-Dec-2015 |
Narayan Kamath <narayan@google.com> |
Update file headers. Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
|
85d69e16fe1e59e50c1ad228e754abf325088362 |
|
20-Dec-2015 |
Narayan Kamath <narayan@google.com> |
Revert "Revert "Port ICU based regex implementation over to OpenJdk."" This reverts commit fadaa97dd78736d94460684d87dcdadd14a5813c. Fixes build breakage due to unresolved @link tags. Change-Id: I329c28d872a2a40064b7219d3537eaae1cfe6fae
|
fadaa97dd78736d94460684d87dcdadd14a5813c |
|
18-Dec-2015 |
Brian Carlstrom <bdc@google.com> |
Revert "Port ICU based regex implementation over to OpenJdk." This reverts commit 075cf9ab88476958db0dd3ca80e21802fc623f66. Change-Id: If343ef8a2f62b1ce301f1801b1660cfb21552178
|
075cf9ab88476958db0dd3ca80e21802fc623f66 |
|
18-Dec-2015 |
Narayan Kamath <narayan@google.com> |
Port ICU based regex implementation over to OpenJdk. Change-Id: I5de7fa40dbf35843949ac3eb9d7cef680d64e45a
|
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
|