On modern versions of Android running in AOT mode
FloatMath is slower than Math. Calls to Math.sqrt(),
etc. are replaced by intrinsics which can be as small
as a single CPU opcode.
When running in interpreted mode the new
implementation is unfortunately slower, but I'm
judging this acceptable and likely to be improved
over time. This change saves a small amount of native
code.
Example timings:
Mako AOSP AOT:
Method: Original / New / Direct call to Math
ceil: 596ns / 146.ns / 111ns
sqrt: 694ns / 56ns / 25ns
Mako AOSP interpreted:
Method: Original / New / Direct call to Math
ceil: 1900ns / 2307ns / 1485ns
sqrt: 1998ns / 2603ns / 1788ns
Other calls Mako AOT:
Method: Original / New
cos: 635ns / 270ns
exp: 566ns / 324ns
floor: 604ns / 150ns
hypot: 631ns / 232ns
pow: 936ns / 643ns
sin: 641ns / 299ns
The advice to use Math directly, in preference to
FloatMath, is still good. FloatMath will be deprecated
separately.
Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: If07fcbd78543d13bc6d75f9743f999860e8d58d7
HAVE_OOM_ADJ is really __linux__, and this code should never be run on
another platform.
Bug: 17641445
Change-Id: Ib8174106b6d03c9c2429794a4f582c09cb308646
Add the app directory to the arguments for starting a process.
Add a check for NeedsNativeBridge and a call to PreInitializeBridge
in the native fork code.
Change-Id: I0b93da93251c6b4638de786bf98cf99df07c3fc2
When compiling in C++ mode, the compiler will complain about conversions
from uint16_t to char16_t. Be consistent in using char16_t for strings.
Change-Id: I052b6176ced635162920b31560052d9a64f92764
This patch changes the profiler system property
"dalvik.vm.profile.max-stack-depth" to "dalvik.vm.profile.stack-depth"
so that the length of the option is less than PROP_NAME_MAX.
Bug: 17294224
Change-Id: I5723883d7fa38dd5eaa276182e5d680d152cedad
ro.dalvik.vm.native.bridge is expected to be always be set. A value of
"0" means that the native bridge is disabled and that no value should be
passed to the runtime.
Bug: 17104449
(cherry picked from commit 831bd75b2bbc126f02578a967e925271b9cac6d3)
Change-Id: Ib483ac8e96bdc66af2725815807d4deb36fb36ab
Use ExceptionCheck before ExceptionOccurred since ExceptionCheck
doesn't acquire any locks and is faster.
Change-Id: Ibd87fd1e33b339bd2a6effa1d20d3253c8a61bdc
There was a JNI error where when you got an OOM and called
report_exception, it would call two NewStringUTF in a row without
checking the return values. This could mean that the first one
threw a new OOME and the second one would cause a JNI error when
it also attempted to throw an OOME with a pending OOME.
Bug: 16843627
Change-Id: Ie4f9f9a5f8b7993cd3655d42a6718c0a5e1199f8
This will allow us to conditionally change the compiler-filter based on other properties.
Bug: 15165413
Change-Id: I1676987c69a3cad4217dc4b56465ef3ae886122a
Symptom: SkBitmap::getAddr(int, int) may return NULL due to unrecognized config
(ex: kRLE_Index8_Config). This will cause memcmp method to crash. Since bm0 and
bm1 both have pixel data() (have passed NULL == getPixels() check), those 2
bitmaps should be valid (only unrecognized), we return JNI_FALSE to warn user
those 2 unrecognized config bitmaps may be different.
Change-Id: I6970c27de412110a3035d0a783112c4cd3ebc35b
AudioTrack and AudioRecord JNI should not cast
jshortArray to jbyteArray. This appeared to work with Dalvik
but causes data corruption with ART.
(cherry picked from commit 9d02848e902d04417df616354db3a18c03e639b7)
Change-Id: Ie36624d3ea06042373c64edced4b5e30b7b1ee86
Locale settings are persisted to system properties
and not to system settings, so the values read here
are used pretty much everywhere.
bug: 15873165
bug: 10090157
Change-Id: Ie7cda166439112c615afbd38253cf4fbb5791242
64-bit process will have virtual addresses that don't fit in an
unsigned long if ActivityManagerService is in a 32-bit process,
and the locations of the '-' and ' ' characters in the maps
are not predictable. Fix the sscanf for finding the start of the
mapping, and use it again to find the end of the mapping. Also
fix a few 64-bit warnings.
Change-Id: I8855c76085142768be1d45346f1032fd37cbe4eb