Skip to content

Commit cdadee6

Browse files
author
Dianne Hackborn
committed
Fix some divide by zero errors that could crash the system.
Change-Id: I66273df84e45de59b5b161f4d13de67a9e0f46d5
1 parent 1ad66b2 commit cdadee6

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

core/java/com/android/internal/os/ProcessStats.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -619,8 +619,11 @@ final public int getLastIdleTime() {
619619
}
620620

621621
final public float getTotalCpuPercent() {
622-
return ((float)(mRelUserTime+mRelSystemTime+mRelIrqTime)*100)
623-
/ (mRelUserTime+mRelSystemTime+mRelIrqTime+mRelIdleTime);
622+
int denom = mRelUserTime+mRelSystemTime+mRelIrqTime+mRelIdleTime;
623+
if (denom <= 0) {
624+
return 0;
625+
}
626+
return ((float)(mRelUserTime+mRelSystemTime+mRelIrqTime)*100) / denom;
624627
}
625628

626629
final void buildWorkingProcs() {
@@ -699,7 +702,7 @@ final public String printCurrentState(long now) {
699702

700703
long sampleTime = mCurrentSampleTime - mLastSampleTime;
701704
long sampleRealTime = mCurrentSampleRealTime - mLastSampleRealTime;
702-
long percAwake = (sampleTime*100) / sampleRealTime;
705+
long percAwake = sampleRealTime > 0 ? ((sampleTime*100) / sampleRealTime) : 0;
703706
if (percAwake != 100) {
704707
pw.print(" with ");
705708
pw.print(percAwake);

0 commit comments

Comments
 (0)