@@ -1079,7 +1079,7 @@ internal static int ExtraIndent(XmlNode indentNode)
10791079
10801080 /// <summary></summary>
10811081 public virtual void GenerateChildren ( XmlNode node , XmlNode caller , ICmObject obj , int indent ,
1082- ref int insPos , ArrayList path , bool fUsePersistentExpansion )
1082+ ref int insPos , ArrayList path , ObjSeqHashMap reuseMap , bool fUsePersistentExpansion )
10831083 {
10841084 CheckDisposed ( ) ;
10851085
@@ -1101,14 +1101,14 @@ public virtual void GenerateChildren(XmlNode node, XmlNode caller, ICmObject obj
11011101 if ( indentNode != null )
11021102 {
11031103 // Similarly pretest for children of caller, to see whether anything is produced.
1104- ContainingDataTree . ApplyLayout ( obj , this , indentNode , indent + ExtraIndent ( indentNode ) , insPos , path ,
1104+ ContainingDataTree . ApplyLayout ( obj , this , indentNode , indent + ExtraIndent ( indentNode ) , insPos , path , reuseMap ,
11051105 true , out ntr ) ;
11061106 //fUseChildrenOfNode = false;
11071107 }
11081108 else
11091109 {
11101110 int insPosT = insPos ; // don't modify the real one in this test call.
1111- ntr = ContainingDataTree . ProcessPartChildren ( node , path , obj , this , indent + ExtraIndent ( node ) , ref insPosT ,
1111+ ntr = ContainingDataTree . ProcessPartChildren ( node , path , reuseMap , obj , this , indent + ExtraIndent ( node ) , ref insPosT ,
11121112 true , null , false , node ) ;
11131113 //fUseChildrenOfNode = true;
11141114 }
@@ -1144,7 +1144,7 @@ public virtual void GenerateChildren(XmlNode node, XmlNode caller, ICmObject obj
11441144 {
11451145 // Record the expansion state and generate the children.
11461146 Expansion = DataTree . TreeItemState . ktisExpanded ;
1147- CreateIndentedNodes ( caller , obj , indent , ref insPos , path , node ) ;
1147+ CreateIndentedNodes ( caller , obj , indent , ref insPos , path , reuseMap , node ) ;
11481148 }
11491149 else
11501150 {
@@ -1156,7 +1156,7 @@ public virtual void GenerateChildren(XmlNode node, XmlNode caller, ICmObject obj
11561156
11571157 /// <summary></summary>
11581158 public virtual void CreateIndentedNodes ( XmlNode caller , ICmObject obj , int indent , ref int insPos ,
1159- ArrayList path , XmlNode node )
1159+ ArrayList path , ObjSeqHashMap reuseMap , XmlNode node )
11601160 {
11611161 CheckDisposed ( ) ;
11621162
@@ -1170,10 +1170,10 @@ public virtual void CreateIndentedNodes(XmlNode caller, ICmObject obj, int inden
11701170 {
11711171 DataTree . NodeTestResult ntr ;
11721172 insPos = ContainingDataTree . ApplyLayout ( obj , this , indentNode , indent + ExtraIndent ( indentNode ) ,
1173- insPos , path , false , out ntr ) ;
1173+ insPos , path , reuseMap , false , out ntr ) ;
11741174 }
11751175 else
1176- ContainingDataTree . ProcessPartChildren ( node , path , obj , this , indent + ExtraIndent ( node ) , ref insPos ,
1176+ ContainingDataTree . ProcessPartChildren ( node , path , reuseMap , obj , this , indent + ExtraIndent ( node ) , ref insPos ,
11771177 false , parameter , false , caller ) ;
11781178 }
11791179
@@ -1592,7 +1592,7 @@ public virtual void Expand(int iSlice)
15921592 if ( Key . Length > 1 )
15931593 caller = Key [ Key . Length - 2 ] as XmlNode ;
15941594 int insPos = iSlice + 1 ;
1595- CreateIndentedNodes ( caller , m_obj , Indent , ref insPos , new ArrayList ( Key ) , m_configurationNode ) ;
1595+ CreateIndentedNodes ( caller , m_obj , Indent , ref insPos , new ArrayList ( Key ) , new ObjSeqHashMap ( ) , m_configurationNode ) ;
15961596
15971597 Expansion = DataTree . TreeItemState . ktisExpanded ;
15981598 if ( m_propertyTable != null )
0 commit comments