Fix `VDBVariableListApplication` w.r.t. `GDBVariable` that has no var-obj associated
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 27 Sep 2019 20:52:14 +0100
changeset 187 4c23ffccaf8e
parent 186 8110a5e2c704
child 188 7080f4698aec
Fix `VDBVariableListApplication` w.r.t. `GDBVariable` that has no var-obj associated ...such as when the variable is synthetic (provided by frame decorator)
VDBVariableObjectListApplication.st
--- a/VDBVariableObjectListApplication.st	Tue Sep 24 00:43:53 2019 +0100
+++ b/VDBVariableObjectListApplication.st	Fri Sep 27 20:52:14 2019 +0100
@@ -118,11 +118,15 @@
 !VDBVariableObjectListApplication methodsFor:'aspects'!
 
 backgroundColorFor: aVDBVariableOjectPresenter
-    ^ aVDBVariableOjectPresenter varobj hasChanged
+    | varobj |
+
+    varobj := aVDBVariableOjectPresenter varobj.
+    ^(varobj notNil and:[varobj hasChanged])
         ifTrue:[ Color yellow lighter lighter ]
         ifFalse:[ nil ]
 
     "Created: / 01-02-2018 / 09:08:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-09-2019 / 00:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 foregroundColorFor: aVDBVariableOjectPresenter
@@ -237,7 +241,7 @@
             "/ Update the child, but only if the list of currently displayed
             "/ children remains the same. Keep in mind that user may have
             "/ have switched to another frame before we're finished with the update.
-            internalListHolder root children == children ifTrue: [ changed := each varobj hasChanged or:[changed] ] 
+            internalListHolder root children == children ifTrue: [ changed := (each varobj notNil and:[each varobj hasChanged]) or:[changed] ] 
         ].
     ].
     self enqueueDelayedAction:[ 
@@ -245,7 +249,7 @@
     ]
 
     "Created: / 06-02-2018 / 12:52:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 21-03-2018 / 09:42:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-09-2019 / 01:09:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 delayedUpdateInternalList