Age | Commit message (Collapse) | Author |
|
The only user of UriCodec is android.net.Uri so it can
be moved to android.net.
Test: make droid && make cts
Bug: 111055375
Change-Id: Ib5c68b1ee771c509d0bb6edd7d07c4ba677805a5
|
|
This commit adds RuntimeHooks, a class that acts similarly to
ZygoteHooks but for both zygote and non-zygote environments. It
acts as a facade to hide some internal details from higher-level
framework classes and will be beneficial if we need to keep
runtime and core libraries internal details from leaking too far.
The TimezoneGetter class is being removed here too as the Supplier
interface is suitable for use instead.
Bug: 111055375
Test: build / boot
Change-Id: I74bb8cc6c50ff653d86149fb249ec7487dacb270
|
|
This class appears to be unused.
Test: build
Bug: 111055375
Change-Id: I3404a436677a60c439045eb05ad7f0f3a32f9d2a
|
|
org.kxml2 code is heavily modified in Android so renaming it to a
reserved package name will not make it less maintainable. This rename
should also flush out users who are depending on the parser
package name.
Bug: 111055375
Test: build
Change-Id: Idfe871ef7b24fd60d706b932ff2dc52eb9fbf4b6
|
|
It makes sense to hide the details of the parser implementation
(and other similar objects) in libcore so that framework code is
isolated from implementation choices.
Test: build
Bug: 111055375
Merged-In: I88548c991178c0a2971f6e2b99216b5a6aae0b09
Change-Id: I88548c991178c0a2971f6e2b99216b5a6aae0b09
|
|
This commit introduces the CovariantReturnType annotation
that can be used to prepare the Android platform for future
API changes associated with more specific return types on
subclass methods.
The annotation introduces platform bytecode for the new
form of the method as a synthetic overload of the original,
public version.
This commit contains a first example:
A change to ConcurrentHashMap made in OpenJDK 8. Android
cannot make this change without breaking apps that compile
against latest stubs but have to run on older releases. The
API change can only be made once apps will no longer be run
on devices without the synthetic version (without app tooling
changes to accelerate the switch).
This commit also introduces a test to confirm that the platform
bytecode is present in the old and new forms.
There are platform tooling changes associated with this commit.
Bug: 70661641
Test: CTS: run cts -m CtsLibcoreTestCases
Change-Id: I39c4152223aed34642169689cba39de313358655
|
|
Bug: 78457893
Test: cts-tradefed run cts-dev -m CtsLibcoreTestCases -t libcore.libcore.util.ArrayUtilsTest
Change-Id: Iedfa90f43964370d41ce38a2bcbefa1ee6779bd5
|
|
This commit introduces the CountryZonesFinder which
holds the entire contents of the <countryzones>
element from tzlookup.xml. It is intended for
usecases where the memory vs i/o trade off means
it's better to load the data once and keep it
pinned in memory. The pinning is left to the caller.
Bug: 63561146
Test: CTS: run cts -m CtsLibcoreTestCases
Change-Id: I36bb611149d8febc38f39db5a9c048c9549e1b1c
|
|
NullFromTypeParam is nullness related annotation
used when nullability is deliberately left floating;
the nullability is the same as the actual type parameter
of the class.
Test: make docs
Bug: 64930165
Change-Id: Iffe5138b1da438ac7e981ac93e0c1ef3df920dbb
|
|
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
|
|
Add AnnotatedStackTraceElement to describe a stack frame
and held locks as well as an object the frame is blocked
on.
Add VMStack.getAnnotatedStackTrace to return an array that
contains an AnnotatedStackTraceElement for each stack frame,
with the StackTraceElement describing the frame, an array
containing all objects that are locked at the described location,
and optionally for the top frame an object the thread is blocked
on, waiting for or sleeping on.
Bug: 70538431
Test: m test-art-host
Test: art/test/testrunner/testrunner.py -b --host -t 168
Change-Id: I0d92e3d8182c4a592549a6445854816f71afd29e
|
|
* changes:
Add a hasUtcZone() for telephony tz detection
Country tz lookup / expose CountyTimeZones
|
|
This commit moves CountryTimeZones to be a top-level class.
It also add a replacement for the telephony logic for looking
up a time zone given only an ISO code. The
isDefaultOkForCountryTimeZoneDetection() method logic has been
compared with the existing telephony tz lookup logic and it
returns the same answers for now and in 6 months.
Bug: 63743683
Test: vogar luni/src/test/java/libcore/libcore/util/CountryTimeZonesTest.java
Test: vogar luni/src/test/java/libcore/libcore/util/TimeZoneFinderTest.java
Change-Id: I817991657f02630db241a0e1134accddaf935b1c
|
|
Since the new classes Int{32,64}Ref live in the package
android.system, which is fine for libcore to depend on,
there is no longer a need to have libcore.util.Mutable*.
This CL migrates all usages to the new classes.
Test: CtsLibcoreTestCases
Bug: 67901714
Change-Id: Icb55f778e05f6083d6d93b4c50fa76211dfa16c7
|
|
After preceding CLs removed remaining libcore dependencies,
there are now no longer dependencies on Mutable{Int,Long}
in libcore. This CL moves those classes into framework,
where the rest of android.util already lives. After this CL,
libcore and framework contain distinct packages (android.util
was the only package that previously existed in both).
Bug: 67901714
Test: Treehugger
(cherry picked from commit 3510dc633e610d265e64ff6ac66471d52b83731b)
Change-Id: I696a48339f8a02d7c10e0460068ba560f86ac67e
Merged-In: I696a48339f8a02d7c10e0460068ba560f86ac67e
|
|
Test: make
Bug: 64930165
Change-Id: Ia72c736d65dfd414b6b5d31f47d4bf67cb39eb08
|
|
This CL deprecates the remaining dependencies on android.util
in libcore, which is the last thing stopping android.util from
being dropped from libcore. This is a necessary step for adoption
of an OpenJDK 9 build toolchain because android.util already
exists in framework.
The affected methods live in android.system.Os. Two methods
(sendfile and waitpid) are part of the API; this CL deprecates
those and introduces replacements. Another method (ioctlInt)
is not part of the API; this CL replaces it rather than only
deprecating the old one.
The old methods depended on android.util.Mutable{Int,Long}.
Their replacements use new classes android.system.Int{32,64}Ref.
These names were chosen to indicate that these types are
suitable for C-style lower level system calls, but not for
other abstractions that specifically represent an int or long
in the Java language.
Test: Treehugger
Bug: 67901714
Change-Id: Ia19acf0927bea0fedfb003e49a926840d8d5ff21
|
|
Simplifications for the runtime to avoid pointer chasing:
- Store the coordinate types in the VarHandle as a separate fields
rather than a list.
- Store a boolean indicating a change in byte ordering is required
rather than a ByteOrder field.
And a consistency tweak with s/ByteArrayVarHandle/ByteArrayViewVarHandle/g.
Bug: 65872996
Test: art/test.py --host -g -j32
Change-Id: I11922b0c702d1d4b46c618db70ded22e2ac248d0
|
|
This is the second attempt to submit this CL. The first time this
CL was submitted [1], it was missing a corresponding change in
libnativehelper and was therefore reverted [2].
[1] commit bb1ca6958f161564fe4744ff9c32c6d0abdc7a41
at http://r.android.com/515035
[2] commit 3e06dd181820f01abaa33d8102aa1d781a867de5
at https://r.android.com/517995/
Original commit message follows:
=== cut ===
The new classes are the libcore-internal versions of the
corresponding classes in android.util.
This CL migrates libcore code to use these classes instead.
The only exception are android.system.Os's static method
signatures which continue to use android.util.Mutable{Int,Long}
since those signatures are part of the Android API. The
implementation of those methods converts between those
types and the libcore-internal ones.
This further reduces the dependency of libcore code onto
android.* packages.
Test: Treehugger
Bug: 67901714
Change-Id: Ic06e9824098984a2807adef8d5c257f6b0465a63
|
|
This reverts commit bb1ca6958f161564fe4744ff9c32c6d0abdc7a41.
Reason for revert: Likely cause of the below error that causes the device to not
boot successfully. Reverting while I work out the reason.
"JNI DETECTED ERROR IN APPLICATION: attempt to access field int android.util.MutableInt.value from an object argument of type libcore
.util.MutableInt: 0x70339504"
Change-Id: I3b55cde24e3594c0fda8f0261a003f880c2869aa
|
|
The new classes are the libcore-internal versions of the
corresponding classes in android.util.
This CL migrates libcore code to use these classes instead.
The only exception are android.system.Os's static method
signatures which continue to use android.util.Mutable{Int,Long}
since those signatures are part of the Android API. The
implementation of those methods converts between those
types and the libcore-internal ones.
This further reduces the dependency of libcore code onto
android.* packages.
Test: Treehugger
Bug: 67901714
Change-Id: Id072a1e830aba92a60c405836b4f74ab6a7ce172
|
|
android.util is the only package shared between libcore and
framework, with only the Mutable* classes living in libcore.
This CL topic moves most of these classes to framework.
After this CL topic, only MutableInt and MutableLong remain
in libcore. This prevents future libcore dependencies on
android.util; it is a first step towards removing the package
overlap between libcore and framework.
Test: Treehugger
Bug: 67901714
Change-Id: I049b74a5ccd043c8e04b7657c649637c0a65aa50
|
|
Implements the plain instance methods in VarHandle.
Adds classes for VarHandles accessing array elements, byte arrays,
byte buffers, and fields, and allows them to be instantiated via
MethodHandles and MethodHandles.Lookup.
Bug: 65872996
Test: art/test/run-test --host 710
Change-Id: Ic028a2e896c2c64846c394ce33363a8542ffd2a7
|
|
The Crypto provider was deprecated in N and we are now removing it.
Bug: 35707247
Test: cts -m CtsLibcoreTestCases
Test: cts -m CtsSecurityTestCases
Change-Id: I5c4e2ad168faef639d77ebd2355c01b3f944b94c
|
|
This reverts commit 9762264100d81d3dd653cbca2996b288c52f9546.
Jack is disabled everywhere now. This reapplies
I20a0f0327172bc51db47c7c56ccc806e20cf1244 with updates for changes
to Soong and to add sources to the core-lambda-stubs jar.
Test: m -j checkbuild
Change-Id: I77c9dc558bc6c0f3833b1b79a0707c498e560628
|
|
This reverts commit 70d863fdc17969b4638caf830d0567adc20a6100.
Reason for revert: Broke the few remaining builds that still use jack
Change-Id: I437d583cf33d68e6d8fa3367e1ea54848b56e05b
|
|
See build/soong/README.md for more information.
Test: m -j checkbuild
Test: classes.dex for core-oj is identical
Test: classes.dex for core-libart only has extra bridge methods (b/65645120)
Change-Id: I0f81937dcc6efba87e7f61b2d5840b18068cd587
|