fix memory leak in extensions (#229)

This commit is contained in:
TautCony 2023-10-10 17:03:29 +08:00 committed by GitHub
parent 7dfe62b96d
commit 99e6c5a733
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 16 deletions

View file

@ -2,6 +2,7 @@ package ee.carlrobert.codegpt.settings;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.util.Disposer;
import ee.carlrobert.codegpt.CodeGPTBundle;
import ee.carlrobert.codegpt.conversations.ConversationsState;
import ee.carlrobert.codegpt.credentials.AzureCredentialsManager;
@ -16,7 +17,9 @@ import javax.swing.JComponent;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.Nullable;
public class SettingsConfigurable implements Configurable, Disposable {
public class SettingsConfigurable implements Configurable {
private Disposable parentDisposable;
private SettingsComponent settingsComponent;
@ -35,7 +38,8 @@ public class SettingsConfigurable implements Configurable, Disposable {
@Override
public JComponent createComponent() {
var settings = SettingsState.getInstance();
settingsComponent = new SettingsComponent(this, settings);
parentDisposable = Disposer.newDisposable();
settingsComponent = new SettingsComponent(parentDisposable, settings);
return settingsComponent.getPanel();
}
@ -109,13 +113,12 @@ public class SettingsConfigurable implements Configurable, Disposable {
@Override
public void disposeUIResources() {
if (parentDisposable != null) {
Disposer.dispose(parentDisposable);
}
settingsComponent = null;
}
@Override
public void dispose() {
}
private boolean isServiceChanged(
ServiceSelectionForm serviceSelectionForm,
SettingsState settings) {