46352 Commits

Author SHA1 Message Date
Vladimir Marko
b4b5518c81 Fix android_media_AudioSystem_getMasterMute return type.
Caused FPU stack overflow on x86.

Bug: 18023418

(cherry picked from commit c1bcdbb75877d99972f1cd13a9c40126822621bc)

Change-Id: Ia1b5a1da52b20c2e0a84321e784cd795ec649e66
2014-10-29 21:18:00 +00:00
Calin Juravle
43a9264619 Merge "Use native brige only if we have a private data directory." 2014-10-29 13:15:49 +00:00
Calin Juravle
6a4d2369e5 Use native brige only if we have a private data directory.
Bug: 18027433

Change-Id: I59b1b1cbe1d7d14b93d8bb6d4255c951d9e469b6
2014-10-29 12:40:03 +00:00
Narayan Kamath
e87d36f892 Merge "Revert "Remove unused apache related API."" 2014-10-27 16:55:42 +00:00
Narayan Kamath
31f54ef815 Revert "Remove unused apache related API."
This reverts commit 3f2714e18bfd979aefefa1d45c50a69fca21cf14.

Change-Id: Ie0e51897ab509d112dc37ca7b90b4139b0a82d8d
2014-10-27 16:55:14 +00:00
Narayan Kamath
9834af9ccf Merge "Remove unused apache related API." 2014-10-27 16:17:21 +00:00
Calin Juravle
f7d24d2443 Merge "PreInitializeNativeBridge only if its Available" 2014-10-27 15:16:03 +00:00
Calin Juravle
79ec4c15ab PreInitializeNativeBridge only if its Available
Also, assert that we always have a private application directory for non
system_server case.

Change-Id: I8397d7f7b04cde0bf65b60ca415bf3f4b349783c
2014-10-27 14:45:33 +00:00
Narayan Kamath
3f2714e18b Remove unused apache related API.
Hidden and used only in unit tests.

Change-Id: I492b735f0f7e129946e28c31ad9d91c98aacf987
2014-10-24 14:27:07 +01:00
Elliott Hughes
ced7ebdb1d Merge "Migrate off timeFormat12 and timeFormat24." 2014-10-23 18:21:56 +00:00
Elliott Hughes
f7d5e0a53e Migrate off timeFormat12 and timeFormat24.
libcore now offers a wider variety of 12-/24-hour time formats,
so be more specific about which one we want here.

(cherry-pick of 85f60d3a03b5b5d9a0e8b8a138eb85a6b53a1eca.)

Bug: 10361358
Change-Id: I846ab7a6f84cd49e876ad21e9366aff1600e0530
2014-10-23 11:18:21 -07:00
Neil Fuller
09fd5a1873 Merge "Replacing FloatMath native implementation with calls to Math" 2014-10-20 10:08:11 +00:00
Nick Kralevich
7b3db39aa4 Replacing FloatMath native implementation with calls to Math
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
2014-10-20 09:24:11 +01:00
Elliott Hughes
4cd671e4d2 Merge "Revert "Replacing FloatMath native implementation with calls to Math"" 2014-10-18 20:43:07 +00:00
Elliott Hughes
b3b68d0333 Revert "Replacing FloatMath native implementation with calls to Math"
This reverts commit 32b88b48daa7383880088246d7222dd93cf55285.

Change-Id: I40ea17f3a68f2b53eb013aebd3ba1becdc724f94
2014-10-18 20:41:27 +00:00
Neil Fuller
c7aa8fe623 Merge "Removing some more FloatMath references" 2014-10-17 14:48:17 +00:00
Neil Fuller
fd2d41b742 Merge "Replacing FloatMath native implementation with calls to Math" 2014-10-16 08:16:24 +00:00
Neil Fuller
e4625cc1a8 Merge "Fix Time docs to document various error cases" 2014-10-15 15:56:06 +00:00
Neil Fuller
7079f2003c Fix Time docs to document various error cases
Bug: https://code.google.com/p/android/issues/detail?id=76386
Change-Id: Ibb71405b70453d5abaf45426ec4e36261b6695cf
2014-10-15 12:08:05 +01:00
Neil Fuller
32b88b48da Replacing FloatMath native implementation with calls to Math
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
2014-10-15 11:47:58 +01:00
Neil Fuller
6de42dac43 Removing some more FloatMath references
See frameworks/base commit 33253a4baa6279f81a73425b49dfb6abe5f5416e
for details.

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I46d4ee4c4be7972e3bcc6782fb50f024b6fff1ee
2014-10-15 11:45:45 +01:00
Neil Fuller
33253a4baa Switch from FloatMath -> Math and Math.hypot where possible
The motivation is an API change: FloatMath is going to be
deprecated and/or removed. Performance is not the goal of
this change.

That said...

Math is faster than FloatMath with AOT compilation.

While making the change, occurances of:

{Float}Math.sqrt(x * x + y * y) and
{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))

have been replaced with:

{(float)} Math.hypot(x, y)

Right now there is no runtime intrinsic for hypot so is not faster
in all cases for AOT compilation:

Math.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with
AOT, but all other combinations of FloatMath, use of pow() etc.
are slower than hypot().

hypot() has the advantage of being self documenting and
could be optimized in future. None of the behavior differences
around NaN and rounding appear to be important for the cases
looked at: they all assume results and arguments are in range
and usually the results are cast to float.

Different implementations measured on hammerhead / L:

AOT compiled:

[FloatMath.hypot(x, y)]
benchmark=Hypot_FloatMathHypot} 633.85 ns; σ=0.32 ns @ 3 trials

[FloatMath.sqrt(x*x + y*y)]
benchmark=Hypot_FloatMathSqrtMult} 684.17 ns; σ=4.83 ns @ 3 trials

[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]
benchmark=Hypot_FloatMathSqrtPow} 1270.65 ns; σ=12.20 ns @ 6 trials

[(float) Math.hypot(x, y)]
benchmark=Hypot_MathHypot} 96.80 ns; σ=0.05 ns @ 3 trials

[(float) Math.sqrt(x*x + y*y)]
benchmark=Hypot_MathSqrtMult} 23.97 ns; σ=0.01 ns @ 3 trials

[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]
benchmark=Hypot_MathSqrtPow} 156.19 ns; σ=0.12 ns @ 3 trials

Interpreter:

benchmark=Hypot_FloatMathHypot} 1180.54 ns; σ=5.13 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtMult} 1121.05 ns; σ=3.80 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtPow} 3327.14 ns; σ=7.33 ns @ 3 trials
benchmark=Hypot_MathHypot} 856.57 ns; σ=1.41 ns @ 3 trials
benchmark=Hypot_MathSqrtMult} 1028.92 ns; σ=9.11 ns @ 3 trials
benchmark=Hypot_MathSqrtPow} 2539.47 ns; σ=24.44 ns @ 3 trials

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I06c91f682095e627cb547d60d936ef87941be692
2014-10-01 14:04:15 +01:00
Elliott Hughes
960e83185e Use strerror(3) when reporting zygote failures.
Bug: 17700596
Change-Id: I39a72ab6f19063de3c90c9fccdb749dc9a86324e
2014-09-30 08:49:01 -07:00
Dan Albert
e08bd64184 Allow AOSP to boot.
HAVE_OOM_ADJ is really __linux__, and this code should never be run on
another platform.

Bug: 17641445
Change-Id: Ib8174106b6d03c9c2429794a4f582c09cb308646
2014-09-25 11:48:11 -07:00
Andreas Gampe
6f954cf2eb Merge "Frameworks/base: Early init native bridge" 2014-09-24 21:59:51 +00:00
Bill Yi
1829a4b4d1 Merge "Fix build. Cherry-pick 2393c364b0f727c6b904febba32ad2ddc4142c96 - DO NOT MERGE" 2014-09-24 16:46:41 +00:00
Bill Yi
519c1f6433 Fix build. Cherry-pick 2393c364b0f727c6b904febba32ad2ddc4142c96 - DO NOT MERGE
Change-Id: I30305a3f821b4f75f5037ebf11b74cfb8f2c8bb2
2014-09-24 09:17:57 -07:00
jgu21
2eacd06bfb Frameworks/base: Early init native bridge
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
2014-09-22 16:04:37 -07:00
Christopher Ferris
b6f891c42f Merge "Remove MALLOC_LEAK_CHECK references." 2014-09-20 00:42:22 +00:00
Elliott Hughes
600ca140e2 Merge "Use constants instead of resources for ellipsis." 2014-09-19 22:02:45 +00:00
Igor Viarheichyk
ed0daa93e4 Use constants instead of resources for ellipsis.
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
2014-09-19 22:02:08 +00:00
Christopher Ferris
8b1dfddf50 Remove MALLOC_LEAK_CHECK references.
Bug: 17378595
Change-Id: Ib9680ef97dfea6bc20d96f0bed90f4553186315c
2014-09-19 12:24:59 -07:00
Dan Albert
88ba339aef Clean up makefile cruft.
The build system already takes care of all these things.

Change-Id: Idef80b554e07cef5e5ed2adf1b5740a76f13ef6d
2014-09-11 16:21:19 -07:00
Ian Rogers
296a712e6b Merge "Make a field final." 2014-09-11 20:01:22 +00:00
Dan Albert
2ffa4aabd7 Merge "Use char16_t for char things." 2014-09-09 04:30:35 +00:00
Dan Albert
f348c15ecf Use char16_t for char things.
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
2014-09-08 18:30:08 -07:00
Elliott Hughes
ab94a1676e Merge "Small documentation fixes across many files." 2014-09-08 18:44:14 +00:00
Christopher Ferris
f4eaaadb8c Merge "Fix use of %llx for sscanf 64 bit values." 2014-09-06 16:55:50 +00:00
Christopher Ferris
bebb26725a Add new header to support 32 bit/64 bit dumps.
Bug: 17319589

(cherry picked from commit 0d3c045a0d48193150689e5924bd04c511380a8a)

Change-Id: I79aa035098115de7b02171a9432ff7e9393328ab
2014-09-05 17:17:04 -07:00
Mark Doliner
d0646dca40 Small documentation fixes across many files.
Change-Id: I3e8787ce4bc6018ea1dc9aef2a2cd4e0a8dde663
2014-09-05 13:57:51 -07:00
Andreas Gampe
aec67dcc02 Frameworks/base: Add native bridge post-fork initialization
Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
2014-09-03 21:38:34 -07:00
Christopher Ferris
c70b5e66f7 Fix use of %llx for sscanf 64 bit values.
Change-Id: Ie7a0e243dfcf24722783fe7d697a1412de7efe68
2014-09-03 19:59:08 -07:00
Marcin Kosiba
25d928f687 Merge "Update WebViewFactory.java to compile in AOSP." 2014-09-01 08:50:25 +00:00
Marcin Kosiba
5ddbe722be Merge "Load the WebView Java code via createPackageContext." 2014-09-01 08:50:10 +00:00
Marcin Kosiba
2453f611d9 Merge "Remove WebView library preloading mechanism." 2014-09-01 08:48:50 +00:00
Neil Fuller
8178edfc09 Merge "Fixing android.text.format.Time for non-English locales" 2014-08-29 08:27:30 +00:00
Neil Fuller
788cb18f65 Fixing android.text.format.Time for non-English locales
The test fixes for bug 17262063 showed up a real issue for
non-English locales with the Time.format() method:
If the Android string resources that contain the pattern use
non-ASCII characters then a '?' would be output instead of
those characters.

For example, in France the pattern for '%c' includes a 'à'
(a with a grave accent) and Japan includes 日.

The problem was due to converting the pattern to bytes using
the US_ASCII character set, which turns non-ASCII characters
into '?'. The code has been changed to use char throughout
and avoid bytes.

Internal documentation has been improved.

Some calls to modifyAndAppend() have been replaced with a
direct call to outputBuilder.append() because the
modify step is guaranteed to a no-op for the literals given.

The formatter has been changed to use Locale.US because it
is only used for outputting numbers. It has been renamed
to make this more obvious and the locale field has been
removed.

Bug: 17262063
Change-Id: I32b92f7f7e3e6931d3514d87f1d9a38f136d4021
2014-08-29 09:08:47 +01:00
Ian Rogers
d8e34a6a0d Make a field final.
Make a field that can be final, final.

Change-Id: I597ef43bad5045a63e7e9fe6eedd8e0f0a637ca4
2014-08-27 16:32:57 -07:00
Calin Juravle
2d3571cc17 Merge "Fix the length of a profiler system property" 2014-08-27 16:36:53 +00:00
Wei Jin
4d033e1c44 Fix the length of a profiler system property
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
2014-08-27 15:50:17 +01:00