DynamoDS/Dynamo — pull request #1570 by Benglin (2014-04-29 05:02:01+00:00)
Title: Avoid mirror data query if info bubble is hidden

Hi Luke/Ian,

This pull request is a temporary measure to ease the ```SymbolNotFoundException``` pain, especially in the cases where a value query is not even desirable (i.e. when info bubble is in a hidden state). Ultimately the following still need to happen to completely improve the situation:

- Info bubble should be completely reworked to show more meaningful information (work-in-progress)
- ```VisualizationManager``` needs to avoid querying the variable's ```MirrorData``` if it is not necessary.

#### Important:
After this tweak, the following call stack is still seen with each selection-deselection (regardless of the number of nodes in selection). Each of the selection operation results in 6 queries to get the ```MirrorData```, that might not be necessary (can we cache the ```MirrorData``` on the ```NodeModel``` instead? But of course that presents a serious problem to thread safety when ```LiveRunner``` tries to modify the same ```MirrorData``` in the background. I was under the impression that a ```MirrorData``` is made for each query, so there *might not* be any thread safety issue after all. Something to consider.)

```
ProtoCore.dll!ProtoCore.DSASM.Mirror.ExecutionMirror.GetValue(string name, int b...
ProtoCore.dll!ProtoCore.Mirror.RuntimeMirror.RuntimeMirror(string varname, int b...
ProtoCore.dll!ProtoCore.Mirror.Reflection.Reflect(string varname, int blockDecl,...
ProtoScript.dll!ProtoScript.Runners.LiveRunner.InspectNodeValue(string nodeName)...
DynamoCore.dll!Dynamo.DSEngine.LiveRunnerServices.GetMirror(string var) Line 52 ...
DynamoCore.dll!Dynamo.DSEngine.EngineController.GetMirror(string variableName) L...
DynamoCore.dll!Dynamo.DSEngine.EngineController.GetGraphicItems(string variableN...
DynamoCore.dll!Dynamo.Models.NodeModel.UpdateRenderPackage() Line 1463 + 0x46 by...
DynamoCore.dll!Dynamo.VisualizationManager.UpdateRenderPackagesThread.AnonymousM...
[External Code]
DynamoCore.dll!Dynamo.VisualizationManager.UpdateRenderPackagesThread(object sen...
[External Code]
```