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
The presence of ".bc" files in an APK implies
incompatibility with any of the 64 bit ABIs.
bug: 14900093
Change-Id: I66ca339a9a149cb3b7e7b349033d80acdeb4140a
The function android_media_AudioSystem_error_callback from AudioSystem
JNI interface is using FindClass function but does not delete the
reference created by VM in this function.
By doing this call, VM will add a local reference in IndirectRefTable
and it's the caller's job to delete this reference.
By not doing this, everytime this callback is called, a new reference is
added and never deleted.
The effect is crashing the VM running system_server:
E/dalvikvm( 3071): JNI ERROR (app bug): local reference table overflow (max=512)
W/dalvikvm( 3071): JNI local reference table (0x732da288) dump:
W/dalvikvm( 3071): Last 10 entries (of 512):
W/dalvikvm( 3071): 511: 0x42a90008 java.lang.Class<android.os.Parcel>
W/dalvikvm( 3071): 510: 0x4381fd90 android.view.KeyEvent
W/dalvikvm( 3071): 509: 0x439b9808 android.view.KeyEvent
W/dalvikvm( 3071): 508: 0x42d2fe18 java.lang.Class<com.android.server.input.InputManagerService>
W/dalvikvm( 3071): 507: 0x42ad4298 java.lang.Class<android.media.AudioSystem>
W/dalvikvm( 3071): 506: 0x42ad4298 java.lang.Class<android.media.AudioSystem>
W/dalvikvm( 3071): 505: 0x42ad4298 java.lang.Class<android.media.AudioSystem>
W/dalvikvm( 3071): 504: 0x42ad4298 java.lang.Class<android.media.AudioSystem>
W/dalvikvm( 3071): 503: 0x42ad4298 java.lang.Class<android.media.AudioSystem>
W/dalvikvm( 3071): 502: 0x42ad4298 java.lang.Class<android.media.AudioSystem>
W/dalvikvm( 3071): Summary:
W/dalvikvm( 3071): 510 of java.lang.Class (3 unique instances)
W/dalvikvm( 3071): 2 of android.view.KeyEvent (2 unique instances)
E/dalvikvm( 3071): Failed adding to JNI local ref table (has 512 entries)
...
E/dalvikvm( 3071): VM aborting
In this case, PID 3071 is system server.
Change-Id: I0c113eb72256984854d59a3ccef11a8d23f96e79
Signed-off-by: Robert Chiras <robert.chiras@intel.com>
- Differentiate between clean exits and signals.
- Change the logic for the waitpid warning. We should log it
only if the *first* call to waitpid returned ECHILD.
Change-Id: I6bc50e4ffd100fb7f3f526d6b4056bed10b8045f