* changes:
Revert "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything."
Merge commit '7b98b666ec465259c676c90cb12f3d1b4e1c7cf7'
* commit '7b98b666ec465259c676c90cb12f3d1b4e1c7cf7':
Fix a bug in getSocketError() in VpnService.
Merge commit 'c22e0c8012828474e8aa2e29b441ef02728b0842'
* commit 'c22e0c8012828474e8aa2e29b441ef02728b0842':
Fix order of setting/saving state in VpnService.
Merge commit 'cb2b2378c735e687c15e2af7f908c68ffae5fe90'
* commit 'cb2b2378c735e687c15e2af7f908c68ffae5fe90':
Fix the bug that EXIF attributes are always cached.
Merge commit '021fa3fa6fe88c33ad11a3139ebcd3a5be8eb953'
* commit '021fa3fa6fe88c33ad11a3139ebcd3a5be8eb953':
First update of SearchManager docs to reflect the new Donut Quick Search Box feature.
This change makes SurfaceHolder.setType(GPU) obsolete (it's now ignored).
Added an API to android_native_window_t to allow extending the functionality without ever breaking binary compatibility. This is used to implement the new set_usage() API. This API needs to be called by software renderers because the default is to use usage flags suitable for h/w.
* changes:
Fix bug 2043140. A race condition is encountered when an application invokes shutdown() on its TextToSpeech object while is has speak() requests still running. Since the TTS service destructor releases the synthesizer resources and sets the corresponding synth reference to null, an NPE was observed. The fix consists in catching NPEs whenever the sNativeSynth object is accessed, and return the matching error for the call. This change is a "low risk" version of the fix for bug 2025765i (same issue) which was reverted because it was higher risk than this CL: it affected the logic of each call to sNativeSynth. This CL only sets an error code when an NPE is fired because sNativeSynth is null.
* changes:
DO NOT MERGE. This is merged from master. Fix couple of bugs in the meminfo report. . added the new "/data/dalvik-cache/" to dalvik heap . shortened the starting line's length from 40 to 30 to handle the case where there is no name . fixed the pri/shared for others. It was swapped.
This is because the AudioFlinger duplicating thread is closed while the output tracks are still active. This cause the output tracks objects to be destroyed at a time where they can be in use by the destination output mixer.
The fix consists in adding the OutputTrack to the track list (mTracks) of its destination thread so that a strong reference is help during the mixer processed and the track is detroyed only when safe by destination thread.
Also added detection of problems when creating the output track (e.g. no more tracks in mixer). In this case the output track is not added to output track list of duplicating thread.