Performance fix in Tools::NavigatorModel: do no trigger change
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 28 Feb 2014 22:51:37 +0100
changeset 14082 a42883c052f0
parent 14081 fc81617ae457
child 14083 8fe49737a951
Performance fix in Tools::NavigatorModel: do no trigger change when new evironmentHolder actually contains same value as current environment instvar.
Tools_NavigatorModel.st
--- a/Tools_NavigatorModel.st	Fri Feb 28 22:29:12 2014 +0100
+++ b/Tools_NavigatorModel.st	Fri Feb 28 22:51:37 2014 +0100
@@ -393,29 +393,41 @@
     "return/create the 'environmentHolder' value holder (automatically generated)"
 
     environmentHolder isNil ifTrue:[
-        environmentHolder := ValueHolder new.
+        environmentHolder := ValueHolder with: environment.
+"/        environmentHolder := ValueHolder with: nil.
+
         environmentHolder addDependent:self.
     ].
     ^ environmentHolder
+
+    "Modified: / 28-02-2014 / 19:27:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-environmentHolder:aValueModel
+environmentHolder:aValueModel 
     "set the 'environmentHolder' value holder (automatically generated)"
-
-    |oldValue newValue|
+    
+    | oldValue  newValue |
 
     environmentHolder notNil ifTrue:[
         oldValue := environmentHolder value.
         environmentHolder removeDependent:self.
+    ] ifFalse:[ 
+        oldValue := environment.
     ].
+
     environmentHolder := aValueModel.
     environmentHolder notNil ifTrue:[
         environmentHolder addDependent:self.
     ].
     newValue := environmentHolder value.
     oldValue ~~ newValue ifTrue:[
-        self update:#value with:newValue from:environmentHolder.
+        self 
+            update:#value
+            with:newValue
+            from:environmentHolder.
     ].
+
+    "Modified: / 28-02-2014 / 19:30:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !NavigatorModel methodsFor:'change & update'!
@@ -481,11 +493,11 @@
 !NavigatorModel class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_NavigatorModel.st,v 1.29 2014-02-25 10:41:59 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_NavigatorModel.st,v 1.30 2014-02-28 21:51:37 vrany Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_NavigatorModel.st,v 1.29 2014-02-25 10:41:59 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_NavigatorModel.st,v 1.30 2014-02-28 21:51:37 vrany Exp $'
 !
 
 version_HG
@@ -494,7 +506,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools_NavigatorModel.st,v 1.29 2014-02-25 10:41:59 vrany Exp $'
+    ^ '$Id: Tools_NavigatorModel.st,v 1.30 2014-02-28 21:51:37 vrany Exp $'
 ! !