frameworks/base: Port of approved stability fixes to GB
Implement Mutual exclusion in BroadcastReceiver, Invoke forceStopPackageLocked only after acquiring a lock on ActivityManagerService.this. ServiceRecord's bindings is a hashmap to keep track of all active bindings to the service. This is not cleared when the service is brought down by activity manager. This adds up the references to IntentBindRecords and its references to ServiceRecord. Fix is to clear the bindings. ServiceRecord's restarter is a reference to the service and is not cleared when the service is brought down by activity manager. This adds up the references to ServiceRecord. Fix is to set the reference to null when the service is brought down by activity manager. The service connection to the previous live wallpaper is unbound when a new wallpaper is effective. Although the service connection is unbound it is not disconnected and its reference to wallpaper's service and engine is still effective. This adds up to the total JNI references and causes dalvik (hosting system_server) to abort. Fix is to release the references in clearWallpaperComponentLocked. startActivityUncheckedLocked tries to move the target task to front when it is not at front. topRunningNonDelayedActivityLocked is used to find the current task, however null value isn't handled. This null causes an unhandled exception leading to the android framework reboot. Change-Id: I31349a421b32148cbce750e3531bb749f9a917a9
Loading
Please register or sign in to comment