2814 Commits

Author SHA1 Message Date
Nick Kralevich
1f5da180b4 am f730b759: am d6c2ccb2: Merge "core: fix arithmetic on a pointer to void"
* commit 'f730b7599d18c49e132b73856697b7444cdf091f':
  core: fix arithmetic on a pointer to void
2013-10-14 13:17:20 -07:00
synergydev
01994c79f4 core: fix arithmetic on a pointer to void
Use char* instead of void* for this
pointer arithmetic. Fixes the following:

error: arithmetic on a pointer to void
buf = buf + offset;
      ~~~ ^

Change-Id: I6cfc92c9240fda66a52e780cda7820fdba76914a
2013-10-14 12:27:22 -07:00
Aravind Akella
554069ee8c am d18920f5: am d9b09fa9: Merge "Fix registerListener and flush bugs." into klp-dev
* commit 'd18920f5c9c3f4662ceb8f729805ae06761cf108':
  Fix registerListener and flush bugs.
2013-10-10 19:21:08 -07:00
Aravind Akella
d9b09fa97e Merge "Fix registerListener and flush bugs." into klp-dev 2013-10-11 02:05:53 +00:00
Aravind Akella
4bdc37d315 Fix registerListener and flush bugs.
1) Fix registerListener to return false when called with a Trigger sensor. Correct java documentation.
2) Remove reservedFlags and FlushCompleteListener parameters from the public API.
3) Create SensorEventListener2 which extends SensorEventListener and has the onFlushCompleted callback.
3) Change flush(Sensor) API to flush(SensorEventListener).

Change-Id: I56ce4e0b6e329483e129a14ad7e8a0cd35665ffe
Bug: 10894703
2013-10-09 19:00:22 -07:00
Leon Scroggins III
25c4e98711 am 97b707d5: am 80a058b3: Merge "Do not attempt to decode NULL SkData." into klp-dev
* commit '97b707d5eb34d5e76e2b820c158b14fe47631be0':
  Do not attempt to decode  NULL SkData.
2013-10-08 06:38:45 -07:00
Leon Scroggins III
80a058b303 Merge "Do not attempt to decode NULL SkData." into klp-dev 2013-10-08 13:33:05 +00:00
Leon Scroggins III
f65183fd76 Do not attempt to decode NULL SkData.
NewFromFD fails if mmap fails. In that case, it returns a NULL
SkData. SkMemoryStream handles NULL input by calling SkData::NewEmpty,
which is not threadsafe. If the SkMemoryStream were to get some
busted SkData, its call to read might fail. Sidestep this problem
by not creating the SkMemoryStream if the SkData is NULL, skipping
the call to SkData::NewEmpty.

BUG:11028218
Change-Id: Id70299bef1c85ffb5d17102fdb5ea071b0bee68a
2013-10-07 17:30:47 -04:00
Victoria Lease
e820087359 am 0d5a719d: am b088c9e0: Merge "reset mShapingPaint\'s SkTypeface before we use it" into klp-dev
* commit '0d5a719dc7f2ca8726f670af3c5b9fdee614ab07':
  reset mShapingPaint's SkTypeface before we use it
2013-10-04 18:01:45 -07:00
Victoria Lease
b088c9e0dd Merge "reset mShapingPaint's SkTypeface before we use it" into klp-dev 2013-10-05 00:55:52 +00:00
Victoria Lease
8450a6ef8b reset mShapingPaint's SkTypeface before we use it
Harfbuzz works in TTF glyph-space, but most of Skia works in
fallback glyph-space. shapeFontRun() helpfully calculates the
baseGlyphCount needed to convert between the two, but leaves
mShapingPaint's SkTypeface set to the specific TTF being shaped
rather than the original SkTypeface that was requested. Needless
to say, this causes all manner of horrific malady when glyph
indices are calculated in one glyph-index-space and then applied
to another.

To fix this issue, I reset mShapingPaint's SkTypeface when done
with the Harfbuzz shaping operation so that the baseGlyphCount only
gets applied once.

Change-Id: Ia886f89d667634e15e5fc8d7af443c9d1ba89622
2013-10-04 17:33:35 -07:00
Dianne Hackborn
7c55154d47 am 80e75d39: am 0d763a90: Merge "Implement issue #11050739: Show swapped out RAM" into klp-dev
* commit '80e75d3946fd4c5cdd913d217df1b8d32ec464ee':
  Implement issue #11050739: Show swapped out RAM
2013-10-03 15:39:36 -07:00
Dianne Hackborn
8883ced18a Implement issue #11050739: Show swapped out RAM
Add "swapped out" field to mem info everywhere.

Change-Id: I89abe8eb0e91fa5c193da93815dc592593c8a3c8
2013-10-02 17:40:05 -07:00
Dianne Hackborn
e2a67ac27b am 57d96f0e: Merge "Fix issue #10948509: Crash in procstats when there is no data" into klp-dev
* commit '57d96f0e92e8af842878660a8271e65cec2426d3':
  Fix issue #10948509: Crash in procstats when there is no data
2013-09-30 17:10:55 -07:00
Dianne Hackborn
cb4285537b Fix issue #10948509: Crash in procstats when there is no data
Not dealing with the case where there is a null list.

Also fixed some bugs I found while looking at this:

- When resetting the stats, we would use a newly computed time stamp
  for the total durations rather than the one we used to reset the
  proc/service entries.  This would result in them being able to be
  slightly > 100%.
- There was a bug in how we split a single process state into its
  per-package representation, where we would but the cloned process
  state into the new package's entry (instead of properly for its
  own package entry), to be immediately overwritten by the new
  process state we make for that package.  This could result in
  bad data for processes that have multiple packages.
- There was a bug in resetting service stats, where we wouldn't
  update the overall run timestamp, allowing that time to sometimes
  be > 100%.
- There was a bug in computing pss data for processes with multiple
  packages, where the pss data was not distributed across all of the
  activity per-package process states.
- There was a bug in computing the zram information that would cause
  it to compute the wrong value, and then never be displayed.

Finally a little code refactoring so that ProcessState and ServiceState
can now share a common implementation for the table of duration values.

Change-Id: I5e0f4e9107829b81f395dad9419c33257b4f8902
2013-09-29 17:14:15 -07:00
Elliott Hughes
917f88f033 am 82e5d875: am ebd397ad: Merge "Regenerate all the OpenGL stubs."
* commit '82e5d8758a61f1a49700f67f6ddb69219528bad2':
  Regenerate all the OpenGL stubs.
2013-09-27 15:41:25 -07:00
Adam Lesinski
7979e170b5 am bde988ad: Merge "Add Graphics alloc tracking via memtrack" into klp-dev
* commit 'bde988ade5f75c3d241422dce2ee4124871fab53':
  Add Graphics alloc tracking via memtrack
2013-09-26 10:27:55 -07:00
Adam Lesinski
bde988ade5 Merge "Add Graphics alloc tracking via memtrack" into klp-dev 2013-09-26 17:22:31 +00:00
Dianne Hackborn
f9ad7b9d92 am 66a9b2d7: Merge "Fix issue #10903002: com.facebook.katana keeps itself in A Services" into klp-dev
* commit '66a9b2d7392a7f6334b5fe23d00ba718f3fa1851':
  Fix issue #10903002: com.facebook.katana keeps itself in A Services
2013-09-25 16:09:13 -07:00
Dianne Hackborn
cbd9a52f25 Fix issue #10903002: com.facebook.katana keeps itself in A Services
Now when memory low, if a service's process is above
a selected pss, then the process is not allowed to go
in to the service a list.

Also simplified the normal meminfo details dump to not
include the shared dirty and shared clean sizes by
default, since these can be very confusing.  You will
still get to see them with the "-a" flag.

Finally some small steps to better managing service
processes in the LRU list, so hopefully we can some
day be better about letting them drop down in the list
when there isn't really much interesting happening in
the process.  Not yet used at this point.

Change-Id: I654bfd6d05de2a63120185ebb15ffda8cbeb5dac
2013-09-25 15:45:56 -07:00
Adam Lesinski
5b4ef81f2b Add Graphics alloc tracking via memtrack
Any OpenGL memory reported by /proc/pid/smaps will not be included
in the GPU GL memory count and will be considered Unknown. This is
an artifact of how some memory reporting is done in libmemtrack
and some is done in this module.

bug:10294768

Change-Id: Id8fb63b2e86520f4dbc8410573a509e66b96b13b
2013-09-25 14:41:49 -07:00
Elliott Hughes
428d3fcbe3 Regenerate all the OpenGL stubs.
Bug: https://code.google.com/p/android/issues/detail?id=60390
Change-Id: I2e6f210178f656a5f08a1fcd4239581d680329a6
2013-09-24 17:15:41 -07:00
Derek Sollenberger
fad41c8fd1 am 5db1f5aa: Merge "Fix Java API error where requesting another style for a provided family fails" into klp-dev
* commit '5db1f5aaacf01e176f2463c212da72eaafc79165':
  Fix Java API error where requesting another style for a provided family fails
2013-09-23 18:59:24 -07:00
Derek Sollenberger
fe8e21fd80 Fix Java API error where requesting another style for a provided family fails
Internally the API uses the same code path as SkTypeface::CreateFromName which
returns NULL if the requested style is not supported by the existing family.
However, the existing Java API expects that we return the default font in the
requested style so this CL ensures that we do.

bug: 10860066
Change-Id: Ide3a0cc24015e97fa35aef283b42e7d7d11edd9c
2013-09-23 09:22:56 -04:00
Glenn Kasten
dd47d78a5e am 543de874: Merge "Revert "Workaround for slow AudioRecord destructor"" into klp-dev
* commit '543de8746e1c238f81a863f687d258ad86f5ef95':
  Revert "Workaround for slow AudioRecord destructor"
2013-09-20 15:41:00 -07:00
Glenn Kasten
543de8746e Merge "Revert "Workaround for slow AudioRecord destructor"" into klp-dev 2013-09-20 22:38:19 +00:00
Glenn Kasten
f69cd6787d Revert "Workaround for slow AudioRecord destructor"
This reverts commit 8d87d7ba113ad90685f1d2669e65251a9b422a5a.

Change-Id: I78cbe73959d29fc0ff3153268503ae685cd0995c
2013-09-20 18:10:28 +00:00
Svetoslav
c0e1ae0176 am facc08c7: Merge "Move PdfDocument to android.graphics.pdf" into klp-dev
* commit 'facc08c7757cef56da6d10e78ce99ef7949700e3':
  Move PdfDocument to android.graphics.pdf
2013-09-19 18:17:05 -07:00
Svetoslav
facc08c775 Merge "Move PdfDocument to android.graphics.pdf" into klp-dev 2013-09-20 01:14:02 +00:00
Glenn Kasten
0fbb74847a am 9d53e30e: Merge "Workaround for slow AudioRecord destructor" into klp-dev
* commit '9d53e30e5eaf53cb0bd57319e02025ba7182bba3':
  Workaround for slow AudioRecord destructor
2013-09-19 17:13:51 -07:00
Svetoslav
6811f4e92c Move PdfDocument to android.graphics.pdf
1. Move PdfDocument to android.graphics.pdf.

2. Changed the PdfDocument as per API concil request.

3. Updated the documentation.

bug:10461180
bug:10552565
bug:10681585
bug:10552336

Change-Id: I08e15b34cf37bb064248c887e6f59808019cafe8
2013-09-19 17:12:47 -07:00
Glenn Kasten
9d53e30e5e Merge "Workaround for slow AudioRecord destructor" into klp-dev 2013-09-20 00:08:58 +00:00
Glenn Kasten
8d87d7ba11 Workaround for slow AudioRecord destructor
Bug: 10816117
Change-Id: If59028bc7dc7abb84e1e3642c721c2629653631f
2013-09-19 16:46:04 -07:00
Leon Scroggins III
2360ada939 am 57989c0e: Merge "Skip writing zeroes to java allocated memory." into klp-dev
* commit '57989c0e042c4f4e9362d875cf3df481243c0488':
  Skip writing zeroes to java allocated memory.
2013-09-19 16:21:49 -07:00
Leon Scroggins III
57989c0e04 Merge "Skip writing zeroes to java allocated memory." into klp-dev 2013-09-19 23:19:13 +00:00
Eino-Ville Talvala
f3c61c6657 am a84ca8a3: Merge "TextureView/GLES20Canvas: Support synchronous GLConsumers" into klp-dev
* commit 'a84ca8a3ca2525855e705c13666bc5da2eaf3260':
  TextureView/GLES20Canvas: Support synchronous GLConsumers
2013-09-19 14:59:54 -07:00
Eino-Ville Talvala
a3402c33c6 TextureView/GLES20Canvas: Support synchronous GLConsumers
Always update to the newest available frame from a GLConsumer.
Otherwise, with a synchronous queue, rendering can fall behind and
eventually deadlock with producer.

Bug: 10830400
Change-Id: I7f1d752c80ae5dac892a26d82e86806c27f5d955
2013-09-19 13:43:42 -07:00
Leon Scroggins III
1ffe727c06 Skip writing zeroes to java allocated memory.
If pixel memory was just allocated by Java, tell our decoders not
to write 0s, since the memory was initialized to 0. Likewise,
when drawing to a bitmap with memory just allocated by Java, do
not erase to 0.

Depends on a change to external/skia to add the new option on
image decoders:
https://googleplex-android-review.git.corp.google.com/362663

BUG:10016979
Change-Id: I9a3dc969870f8516e7d8495fe96d0a6b8225eda2
2013-09-19 16:22:57 -04:00
Derek Sollenberger
23b7bc1b44 am a2c6209f: Merge "Update SkTypeface::CreateFromName to handle NULL if familyName does not match" into klp-dev
* commit 'a2c6209f6120d300cd28d97ec868b5cabb3ee1a9':
  Update SkTypeface::CreateFromName to handle NULL if familyName does not match
2013-09-19 10:57:00 -07:00
Derek Sollenberger
89ec829908 Update SkTypeface::CreateFromName to handle NULL if familyName does not match
This is a multi-project change with a dependency on external/skia

bug: 10730965
Change-Id: Ida880a86ebd182a221333bbd85eaa30d047a1618
2013-09-19 08:14:53 -04:00
Leon Scroggins III
2e4e98895b am 3490228e: Merge "Use a native buffer for decoding images." into klp-dev
* commit '3490228efb949ad1979c89bb206a3697f5ffc185':
  Use a native buffer for decoding images.
2013-09-18 10:55:43 -07:00
Leon Scroggins III
7315f1baee Use a native buffer for decoding images.
Fixes BUG:10725383

Depends on https://googleplex-android-review.git.corp.google.com/#/c/357300/
in external/skia.

In the previous fix for BUG:8432093 and BUG:6493544
(https://googleplex-android-review.googlesource.com/#/c/346191/),
instead of calling mark on the provided input stream, we
copied the entire stream in native code (except in one case;
more details below), allowing rewind no matter how much of
the stream had been read. This was because two decoders
may rewind after reading an arbitrary amount of the stream:
SkImageDecoder_wbmp and SkImageDecoder_libjpeg.

It turns out that the jpeg decoder does not need this rewind
after arbitrary length (it is a failure recovery case, and
libjpeg has a default recovery we can use - the above referenced
CL in Skia uses the default).

Although the wbmp decoder could read any amount given a
stream with the "right" data, and then return false, such a
stream would not be a valid stream of another format, so it
is okay for this rewind to fail.

Further, the previous fix was inefficient in the common case
where the caller decodes just the bounds, resets, then decodes
the entire image (since we have copied the entire stream twice).
The copy also resulted in the crashes seen in BUG:10725383.

In this CL, buffer only the amount of input needed by
SkImageDecoder::Factory to determine the type of image decoder
needed. Do not mark the input stream provided by the caller,
so their mark (if any) can remain in tact. The new Skia class
SkFrontBufferedStream allows buffering just the beginning
of the stream.

core/jni/android/graphics/BitmapFactory.cpp:
Instead of calling GetRewindableStream (which has been removed),
call CreateJavaInputStreamAdaptor. Then wrap it in an
SkFrontBufferedStream, with a large enough buffer to determine
which type of image is used.

core/jni/android/graphics/CreateJavaOutputStreamAdaptor.h:
core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp:
Remove mark, markSupported, and rewind. CreateJavaInputStreamAdaptor
now turns an SkStream which is not rewindable. If the caller
needs rewind that needs to be handled differently (for example,
by using SkFrontBufferedStream, as is done in BitmapFactory and
Movie.
Remove RewindableJavaStream and GetRewindableStream.
Remove code specific to ByteArrayInputStream, which makes slow
JNI calls. Instead, depend on the caller to buffer the input
in the general case. There is no reason to special case this
stream (especially since we already have decodeByteArray).
Remove CheckForAssetStream, which is now always special cased
in Java.

core/jni/android/graphics/Movie.cpp:
Call CreateJavaInputStreamAdaptor and use an SkFrontBufferedStream.
Add a native function for decoding an Asset, and remove old
call to CheckForAssetStream.

graphics/java/android/graphics/BitmapFactory.java:
Write a helper function for decoding a stream to consolidate
common code.
Buffer enough of the input so that SkImageDecoder::Factory
can rewind after having read enough to determine the type.
Unlike the old code, do NOT mark the caller's stream. This is
handled in native code. The caller's mark (if any) is left alone.

graphics/java/android/graphics/Movie.java:
Check for an Asset stream before passing to native, and
call a native function for handling the asset directly.

BUG:6493544
BUG:8432093
BUG:10725383

Change-Id: Ide74d3606ff4bb2a8c6cdbf11bae3f96696f331a
2013-09-18 12:01:20 -04:00
Leon Scroggins III
3b8a7a0402 am b693ef60: Merge "Do not allocate so much memory on the stack." into klp-dev
* commit 'b693ef60ef27538402d941702ab652a57f585158':
  Do not allocate so much memory on the stack.
2013-09-16 10:41:40 -07:00
Leon Scroggins III
b693ef60ef Merge "Do not allocate so much memory on the stack." into klp-dev 2013-09-16 17:36:58 +00:00
Dianne Hackborn
f3b4cf7d01 am 28eeb420: Merge "Implement #10749688: Improve low memory reporting" into klp-dev
* commit '28eeb42012018bfa3cffc77e9a970e8f5c13f70b':
  Implement #10749688: Improve low memory reporting
2013-09-13 17:15:23 -07:00
Dianne Hackborn
8e69257a9c Implement #10749688: Improve low memory reporting
This significantly reworks the logging we do when
all cached processes are killed:

- We now collect the list of processes in-place so we
  have a snapshot of exactly when the low memory situation
  happened.
- In that snapshot we include the key process state: oom
  adj, proc state, adj reasons.
- The report then asynchronously collects pss information
  for those processes.
- The ultimate data printed to the log looks like a mix
  between the "dumpsys meminfo" and "dumpsys activity"
  output.  This code no longer uses "dumpsys meminfo"
  itself, so some of that data is no longer included,
  in particular pss organized by allocation type.

In doing this, I realized that the existing code that is
supposed to run "procstats" is not currently working.  And
at that point I realized, really, when we are collecting
this pss data we'd really like to include all those native
processes using ghod-only-knows how much RAM.  And guess
what, we have a list of processes available in
ProcessCpuTracker.

So we now also collect and print information for native
processes, and we also do this for "dumpsys meminfo" which
really seems like a good thing when we are printing summaries
of all pss and such.

I also improved the code for reading /proc/meminfo to be
able to load all the interesting fields from there, and
am now printing that as well.

Change-Id: I9e7d13e9c07a8249c7a7e12e5433973b2c0fdc11
2013-09-13 16:02:01 -07:00
Leon Scroggins III
37b82e3232 Do not allocate so much memory on the stack.
Instead, allocate a smaller amount and grow as necessary.

BUG:10697851
Change-Id: Iec57a8a374a4a76a3770e241cf561d58f3c8e1dc
2013-09-12 20:00:46 -04:00
Eric Laurent
e33b79ef37 am 95a18139: Merge "Add HOTWORD as an AudioSource" into klp-dev
* commit '95a181397dad3113b96e3cc7392a5b0f5d742f39':
  Add HOTWORD as an AudioSource
2013-09-11 17:17:50 -07:00
Eric Laurent
95a181397d Merge "Add HOTWORD as an AudioSource" into klp-dev 2013-09-12 00:15:31 +00:00
Eino-Ville Talvala
fb09a73819 am ede3eeb7: Merge changes Ia6300c23,Idd2ae8ad into klp-dev
* commit 'ede3eeb72c9708df023bdfb369905ededd1ebb06':
  Camera2: Immutable metadata
  Camera2: Listener rework and other API updates
2013-09-11 17:10:36 -07:00