diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-10-03 23:04:57 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-10-03 23:04:57 +0000 |
| commit | bac998a0cb4e8c19350129d2541bbb33cbd7d7f4 (patch) | |
| tree | 929e7fb2eb4d3c8d85d24738c495900e32a59b2d /core/java | |
| parent | a4fabd3ef26eada64f6bca2909342fb374b888b0 (diff) | |
| parent | 8d475ca0586ca7315d0660be429d5eebe114303b (diff) | |
Merge "Prevent WakeLock count ending up in an incorrect state"
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/os/PowerManager.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 3726f47093b9..7f4dee6ef2da 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -1412,7 +1412,11 @@ public final class PowerManager { */ public void release(int flags) { synchronized (mToken) { - mInternalCount--; + if (mInternalCount > 0) { + // internal count must only be decreased if it is > 0 or state of + // the WakeLock object is broken. + mInternalCount--; + } if ((flags & RELEASE_FLAG_TIMEOUT) == 0) { mExternalCount--; } |
