javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Tree.java
changeset 87 1627c337e51e
parent 35 85266cc22c7f
--- 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;