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: I8d1947d88b3c576643138b1df589fb9da7c1ab88
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
All supported locales use only U+2025 and U+2026 to represent
ellipses, and it will unlikely change in future. Given translated
resources are inconsistent and often use three dots it is safer
to use constants instead of resources.
Change-Id: I51a6cb903f62f739fbadd6b78e5765c0028d641a
The build system takes care of linking the correct STL and gtest
libraries for you, and specifying them manually confuses the build
system when using libc++.
Change-Id: I9f76ab26a63ace51293614cfb5ca002f37438e02
Clang complains about ambiguity between std::hash and ::hash (locally
defined). There's no need to pull in the whole namespace for two uses of
std::map anyway.
Change-Id: Icbaa7ebbaad05999988784ad34662c721fb12b29
In C++11 mode, "foo"MACRO_THAT_EXPANDS_TO_STRING gets lexed as a user
defined literal. Add space around the macro.
Change-Id: I24fbe1fda483db4a8c606e80dbe17430ad070dc2
The address of a reference will never be null in well formed C++ code.
The function returning the value being checked simply returns a
dereferenced pointer (which is just going to segfault if it is null!).
Change-Id: I3a4eb6adfc003c63ebf21b81d46088d52154d99d
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
Change parameter `nativeObject` from type `jint` to `jlong` to match its JNI
signature.
Bug: 12890910
(cherry picked from commit 3cb78498d3f664f541ba7d28f4543cf8c12733f1)
Reported-By: ashok.bhat@arm.com, marcus.oakland@arm.com
Change-Id: I624dfb41485be823d31797514664d3a5f9e52eb0
Broken build.
frameworks/base/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java:89: error: constructor PackageParser in class PackageParser cannot be applied to given types;
PackageParser packageParser = new PackageParser(archiveFilePath);
^
required: no arguments
found: String
reason: actual and formal argument lists differ in length
frameworks/base/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java:93: error: method parsePackage in class PackageParser cannot be applied to given types;
PackageParser.Package pkg = packageParser.parsePackage(sourceFile,
^
required: File,int
found: File,String,DisplayMetrics,int
reason: actual and formal argument lists differ in length
frameworks/base/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java:99: error: incompatible types
boolean savedCerts = packageParser.collectCertificates(pkg, 0);
^
required: boolean
found: void
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 errors
make: *** [out/target/common/obj/APPS/FrameworksServicesTests_intermediates/classes-full-debug.jar] Error 41
This reverts commit 2f446561f2f6d1b320b34432854d2f55e5b56f9e.
Change-Id: I0aa992d7b9eccce7e38c430a8a96084a6ee99866
Added unit tests to help with future integration and regression
testing.
Change-Id: I5e7d709e80ccbbe1dde1dc26b3e9a155f5009ad1
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>