Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorteicher2005-06-02 08:58:10 +0000
committerteicher2005-06-02 08:58:10 +0000
commit7ca57d2320de548f7b4537241330f48beec138f4 (patch)
treef852fd97581c5782cb7d10de16ef5817baea2da6 /org.eclipse.ui.workbench.texteditor
parent44ecc78e88146db7fd5d536eae3ad893588ef8bb (diff)
downloadeclipse.platform.text-7ca57d2320de548f7b4537241330f48beec138f4.tar.gz
eclipse.platform.text-7ca57d2320de548f7b4537241330f48beec138f4.tar.xz
eclipse.platform.text-7ca57d2320de548f7b4537241330f48beec138f4.zip
reverting fix for 67857 [implementation] ReferenceSelectionAction can leak a quick diff provider
- fix is not complete - no tests - no clients
Diffstat (limited to 'org.eclipse.ui.workbench.texteditor')
-rw-r--r--org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/quickdiff/ReferenceSelectionAction.java29
1 files changed, 9 insertions, 20 deletions
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/quickdiff/ReferenceSelectionAction.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/quickdiff/ReferenceSelectionAction.java
index 7f6c53e1238..15764a72556 100644
--- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/quickdiff/ReferenceSelectionAction.java
+++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/texteditor/quickdiff/ReferenceSelectionAction.java
@@ -63,17 +63,13 @@ public class ReferenceSelectionAction extends Action implements IUpdate {
/**
* Creates an instance of the implementation provided by the extension, if none has been created
* before. Otherwise, the cached implementation is returned.
- * @param cache <code>true</code> if the provider should be cached
* @return The <code>IQuickDiffProviderImplementation</code> instance provided by the extension.
*/
- private IQuickDiffReferenceProvider getProvider(boolean cache) {
- IQuickDiffReferenceProvider provider= fProvider;
- if (provider == null) {
- provider= fDescriptor.createProvider();
- if (cache)
- fProvider= provider;
+ private IQuickDiffReferenceProvider getProvider() {
+ if (fProvider == null) {
+ fProvider= fDescriptor.createProvider();
}
- return provider;
+ return fProvider;
}
/*
@@ -87,7 +83,7 @@ public class ReferenceSelectionAction extends Action implements IUpdate {
if (fEditor instanceof ITextEditorExtension3) {
ITextEditorExtension3 extension= (ITextEditorExtension3) fEditor;
- IQuickDiffReferenceProvider provider= getProvider(true);
+ IQuickDiffReferenceProvider provider= getProvider();
if (provider != null) {
provider.setActiveEditor(fEditor);
if (provider.isEnabled()) {
@@ -121,19 +117,12 @@ public class ReferenceSelectionAction extends Action implements IUpdate {
}
if (fDescriptor.isPluginLoaded()) {
- IQuickDiffReferenceProvider provider= getProvider(false);
- if (provider == null) {
+ getProvider();
+ if (fProvider == null) {
setEnabled(false);
} else {
- try {
- provider.setActiveEditor(fEditor);
- setEnabled(provider.isEnabled());
- } finally {
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=67857
- // dispose the provider if we just created it to check enablement
- if (provider != fProvider)
- provider.dispose();
- }
+ fProvider.setActiveEditor(fEditor);
+ setEnabled(fProvider.isEnabled());
}
} else {
// optimistically enable it

Back to the top