From e9aac5f44d7bf8c4a523773e57c30fd8340850eb Mon Sep 17 00:00:00 2001 From: Griff Hazen Date: Fri, 5 Sep 2014 20:04:09 -0700 Subject: [PATCH] Remove reference to StatusBarNotification after the value is accessed. StatusBarNotificationHolder values are fetched exactly once. Bug: 15426276 Bug: 16575857 Change-Id: I3d11aba717d17426d31e7b1a07560f6b7e79c4ec --- .../android/service/notification/IStatusBarNotificationHolder.aidl | 1 + .../android/server/notification/NotificationManagerService.java | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/java/android/service/notification/IStatusBarNotificationHolder.aidl b/core/java/android/service/notification/IStatusBarNotificationHolder.aidl index fd6b59ed4449..c25cdb247ad2 100644 --- a/core/java/android/service/notification/IStatusBarNotificationHolder.aidl +++ b/core/java/android/service/notification/IStatusBarNotificationHolder.aidl @@ -20,5 +20,6 @@ import android.service.notification.StatusBarNotification; /** @hide */ interface IStatusBarNotificationHolder { + /** Fetch the held StatusBarNotification. This method should only be called once per Holder */ StatusBarNotification get(); } diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 54f043d29d2f..0378e26efe29 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -2960,15 +2960,18 @@ public class NotificationManagerService extends SystemService { */ private static final class StatusBarNotificationHolder extends IStatusBarNotificationHolder.Stub { - private final StatusBarNotification mValue; + private StatusBarNotification mValue; public StatusBarNotificationHolder(StatusBarNotification value) { mValue = value; } + /** Get the held value and clear it. This function should only be called once per holder */ @Override public StatusBarNotification get() { - return mValue; + StatusBarNotification value = mValue; + mValue = null; + return value; } } } -- 2.11.0