From 04f713a4cd99fe180183a3087285903cca0bede2 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Fri, 21 Aug 2015 17:49:21 +0300 Subject: [PATCH] fixed memleak in BreakpointsDialogFactory --- .../breakpoints/ui/BreakpointsDialogFactory.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java index 391b3f9cbb53..87ac62482d50 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,9 +15,11 @@ */ package com.intellij.xdebugger.impl.breakpoints.ui; +import com.intellij.openapi.Disposable; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.popup.Balloon; +import com.intellij.openapi.util.Disposer; import com.intellij.xdebugger.impl.breakpoints.XBreakpointUtil; import org.jetbrains.annotations.Nullable; @@ -33,9 +35,18 @@ public class BreakpointsDialogFactory { myProject = project; } - public void setBalloonToHide(Balloon balloonToHide, Object breakpoint) { + public void setBalloonToHide(final Balloon balloonToHide, Object breakpoint) { myBalloonToHide = balloonToHide; myBreakpoint = breakpoint; + Disposer.register(myBalloonToHide, new Disposable() { + @Override + public void dispose() { + if (myBalloonToHide == balloonToHide) { + myBalloonToHide = null; + myBreakpoint = null; + } + } + }); } public static BreakpointsDialogFactory getInstance(Project project) { -- 2.32.0