@@ -107,6 +107,8 @@ protected CustomNodeManager2(
107107 // create the table of monitored nodes.
108108 // these are created by the node manager whenever a client subscribe to an attribute of the node.
109109 m_monitoredNodes = new NodeIdDictionary < MonitoredNode2 > ( ) ;
110+
111+ m_predefinedNodes = new NodeIdDictionary < NodeState > ( ) ;
110112 }
111113 #endregion
112114
@@ -129,7 +131,7 @@ protected virtual void Dispose(bool disposing)
129131 {
130132 lock ( Lock )
131133 {
132- foreach ( NodeState node in m_predefinedNodes ? . Values )
134+ foreach ( NodeState node in m_predefinedNodes . Values )
133135 {
134136 Utils . SilentDispose ( node ) ;
135137 }
@@ -321,7 +323,7 @@ protected virtual NodeHandle IsHandleInNamespace(object managerHandle)
321323 public NodeState Find ( NodeId nodeId )
322324 {
323325 NodeState node = null ;
324- if ( m_predefinedNodes ? . TryGetValue ( nodeId , out node ) == true )
326+ if ( m_predefinedNodes . TryGetValue ( nodeId , out node ) == true )
325327 {
326328 return node ;
327329 }
@@ -349,11 +351,6 @@ public NodeId CreateNode(
349351
350352 lock ( Lock )
351353 {
352- if ( m_predefinedNodes == null )
353- {
354- m_predefinedNodes = new NodeIdDictionary < NodeState > ( ) ;
355- }
356-
357354 instance . ReferenceTypeId = referenceTypeId ;
358355
359356 NodeState parent = null ;
@@ -390,7 +387,7 @@ public bool DeleteNode(
390387 List < LocalReference > referencesToRemove = new List < LocalReference > ( ) ;
391388
392389 NodeState node = null ;
393- if ( m_predefinedNodes ? . TryGetValue ( nodeId , out node ) != true )
390+ if ( m_predefinedNodes . TryGetValue ( nodeId , out node ) != true )
394391 {
395392 return false ;
396393 }
@@ -477,11 +474,6 @@ public virtual void LoadPredefinedNodes(
477474 string resourcePath ,
478475 IDictionary < NodeId , IList < IReference > > externalReferences )
479476 {
480- if ( m_predefinedNodes == null )
481- {
482- m_predefinedNodes = new NodeIdDictionary < NodeState > ( ) ;
483- }
484-
485477 // load the predefined nodes from an XML document.
486478 NodeStateCollection predefinedNodes = new NodeStateCollection ( ) ;
487479 predefinedNodes . LoadFromResource ( context , resourcePath , assembly , true ) ;
@@ -544,11 +536,6 @@ protected virtual NodeState AddBehaviourToPredefinedNode(ISystemContext context,
544536 /// </summary>
545537 protected virtual void AddPredefinedNode ( ISystemContext context , NodeState node )
546538 {
547- if ( m_predefinedNodes == null )
548- {
549- m_predefinedNodes = new NodeIdDictionary < NodeState > ( ) ;
550- }
551-
552539 // assign a default value to any variable in namespace 0
553540 if ( node is BaseVariableState nodeStateVar )
554541 {
@@ -614,7 +601,7 @@ protected virtual void RemovePredefinedNode(
614601 NodeState node ,
615602 List < LocalReference > referencesToRemove )
616603 {
617- if ( m_predefinedNodes ? . TryRemove ( node . NodeId , out _ ) != true )
604+ if ( m_predefinedNodes . TryRemove ( node . NodeId , out _ ) != true )
618605 {
619606 return ;
620607 }
@@ -687,7 +674,7 @@ protected virtual void OnNodeRemoved(NodeState node)
687674 /// <param name="externalReferences">A list of references to add to external targets.</param>
688675 protected virtual void AddReverseReferences ( IDictionary < NodeId , IList < IReference > > externalReferences )
689676 {
690- foreach ( NodeState source in m_predefinedNodes ? . Values )
677+ foreach ( NodeState source in m_predefinedNodes . Values )
691678 {
692679 IList < IReference > references = new List < IReference > ( ) ;
693680 source . GetReferences ( SystemContext , references ) ;
@@ -855,15 +842,12 @@ public NodeState FindPredefinedNode(NodeId nodeId, Type expectedType)
855842 /// </summary>
856843 public virtual void DeleteAddressSpace ( )
857844 {
858- if ( m_predefinedNodes != null )
859- {
860- var nodes = m_predefinedNodes . Values . ToArray ( ) ;
861- m_predefinedNodes . Clear ( ) ;
845+ var nodes = m_predefinedNodes . Values . ToArray ( ) ;
846+ m_predefinedNodes . Clear ( ) ;
862847
863- foreach ( NodeState node in nodes )
864- {
865- Utils . SilentDispose ( node ) ;
866- }
848+ foreach ( NodeState node in nodes )
849+ {
850+ Utils . SilentDispose ( node ) ;
867851 }
868852 }
869853
@@ -894,7 +878,7 @@ protected virtual NodeHandle GetManagerHandle(ServerSystemContext context, NodeI
894878 }
895879
896880 NodeState node = null ;
897- if ( m_predefinedNodes ? . TryGetValue ( nodeId , out node ) == true )
881+ if ( m_predefinedNodes . TryGetValue ( nodeId , out node ) == true )
898882 {
899883 var handle = new NodeHandle {
900884 NodeId = nodeId ,
0 commit comments