--- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Tree.java Fri Oct 15 12:29:39 2010 +0300
+++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Tree.java Fri Oct 29 11:49:32 2010 +0300
@@ -978,8 +978,11 @@
void releaseChildren_pp(boolean destroy) {
if (topLevelItems != null) {
for (int i = topLevelItemCount-1; i >= 0; i--) {
- TreeItem item = _getItem(i);
- if(item.cached){
+ // Cannot use _getItem here, since in a VIRTUAL style Tree it may cause
+ // creating a new TreeItem, which doesn't make sense when trying to release
+ // all children.
+ TreeItem item = topLevelItems[i];
+ if(item != null && item.cached){
if (item != null && !item.isDisposed() ) {
item.childrenItemCount = 0;
item.childrenItems = null;