mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 113114: Expanding Modules View throws SWTError: No more handles.
This commit is contained in:
parent
6f2faec4eb
commit
4eb41a0f15
2 changed files with 28 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
|||
2005-10-19 Mikhail Khodjaiants
|
||||
Bug 113114: Expanding Modules View throws SWTError: No more handles.
|
||||
* ModulesView.java
|
||||
|
||||
2005-09-06 Mikhail Khodjaiants
|
||||
Cleanup: replaced "new Boolean" by the static Boolean objects (Java 1.4).
|
||||
* QuestionStatusHandler.java
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
package org.eclipse.cdt.debug.internal.ui.views.modules;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import org.eclipse.cdt.core.IAddress;
|
||||
import org.eclipse.cdt.core.model.ICElement;
|
||||
import org.eclipse.cdt.debug.core.model.ICDebugElement;
|
||||
|
@ -123,7 +125,7 @@ public class ModulesView extends AbstractDebugEventHandlerView implements IDebug
|
|||
if ( de != null ) {
|
||||
ImageDescriptor descriptor = de.getImageDescriptor( element );
|
||||
if ( descriptor != null ) {
|
||||
image = descriptor.createImage();
|
||||
image = ModulesView.this.getImage( descriptor );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -327,6 +329,8 @@ public class ModulesView extends AbstractDebugEventHandlerView implements IDebug
|
|||
private HashMap fSelectionStates = new HashMap( 10 );
|
||||
|
||||
private AbstractViewerState fLastState = null;
|
||||
|
||||
private HashMap fImageCache = new HashMap( 10 );
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createViewer(org.eclipse.swt.widgets.Composite)
|
||||
|
@ -989,10 +993,29 @@ public class ModulesView extends AbstractDebugEventHandlerView implements IDebug
|
|||
if ( viewer != null ) {
|
||||
getDetailDocument().removeDocumentListener( getDetailDocumentListener() );
|
||||
}
|
||||
disposeImageCache();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
private AbstractViewerState getViewerState() {
|
||||
return new ModulesViewerState( getModulesViewer() );
|
||||
}
|
||||
|
||||
protected Image getImage( ImageDescriptor desc ) {
|
||||
Image image = (Image)fImageCache.get( desc );
|
||||
if ( image == null ) {
|
||||
image = desc.createImage();
|
||||
fImageCache.put( desc, image );
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
private void disposeImageCache() {
|
||||
Iterator it = fImageCache.values().iterator();
|
||||
while( it.hasNext() ) {
|
||||
Map.Entry entry = (Map.Entry)it.next();
|
||||
((Image)entry.getValue()).dispose();
|
||||
}
|
||||
fImageCache.clear();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue