diff options
author | Dianne Hackborn <hackbod@google.com> | 2012-06-06 11:48:46 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2012-06-06 11:48:46 -0700 |
commit | cdadee630e09fc2aa966244a71bf22236f9a30a4 (patch) | |
tree | fa4927ce3142fb4470ee8571cf20a34306c4226c | |
parent | 1ad66b2f873496bcbe72e91d1978cf1b2633b3a4 (diff) | |
download | frameworks_base-cdadee630e09fc2aa966244a71bf22236f9a30a4.zip frameworks_base-cdadee630e09fc2aa966244a71bf22236f9a30a4.tar.gz frameworks_base-cdadee630e09fc2aa966244a71bf22236f9a30a4.tar.bz2 |
Fix some divide by zero errors that could crash the system.
Change-Id: I66273df84e45de59b5b161f4d13de67a9e0f46d5
-rw-r--r-- | core/java/com/android/internal/os/ProcessStats.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/core/java/com/android/internal/os/ProcessStats.java b/core/java/com/android/internal/os/ProcessStats.java index e0e9a29..1923b86 100644 --- a/core/java/com/android/internal/os/ProcessStats.java +++ b/core/java/com/android/internal/os/ProcessStats.java @@ -619,8 +619,11 @@ public class ProcessStats { } final public float getTotalCpuPercent() { - return ((float)(mRelUserTime+mRelSystemTime+mRelIrqTime)*100) - / (mRelUserTime+mRelSystemTime+mRelIrqTime+mRelIdleTime); + int denom = mRelUserTime+mRelSystemTime+mRelIrqTime+mRelIdleTime; + if (denom <= 0) { + return 0; + } + return ((float)(mRelUserTime+mRelSystemTime+mRelIrqTime)*100) / denom; } final void buildWorkingProcs() { @@ -699,7 +702,7 @@ public class ProcessStats { long sampleTime = mCurrentSampleTime - mLastSampleTime; long sampleRealTime = mCurrentSampleRealTime - mLastSampleRealTime; - long percAwake = (sampleTime*100) / sampleRealTime; + long percAwake = sampleRealTime > 0 ? ((sampleTime*100) / sampleRealTime) : 0; if (percAwake != 100) { pw.print(" with "); pw.print(percAwake); |