| 1032 | } |
| 1033 | |
| 1034 | int Debugger::GetPropertyValue(Var &aVar, PropertySource &aProp) |
| 1035 | { |
| 1036 | if (aVar.Type() == VAR_VIRTUAL) |
| 1037 | { |
| 1038 | aProp.value.Free(); |
| 1039 | aProp.value.InitResult(aProp.value.buf); |
| 1040 | aProp.value.symbol = SYM_INTEGER; // Virtual vars, like BIFs, expect this default. |
| 1041 | aVar.Get(aProp.value); |
| 1042 | if (aProp.value.symbol == SYM_OBJECT) |
| 1043 | aProp.value.object->AddRef(); // See comments in ExpandExpression and BIV_TrayMenu. |
| 1044 | if (aProp.value.Exited()) |
| 1045 | return DEBUGGER_E_EVAL_FAIL; |
| 1046 | } |
| 1047 | else |
| 1048 | { |
| 1049 | aProp.value.Free(); |
| 1050 | aProp.value.mem_to_free = nullptr; // Any value would be overwritten but this must be cleared manually. |
| 1051 | if (aVar.IsUninitializedNormalVar()) |
| 1052 | { |
| 1053 | aProp.value.symbol = SYM_MISSING; |
| 1054 | aProp.value.marker = _T(""); |
| 1055 | aProp.value.marker_length = 0; |
| 1056 | } |
| 1057 | else |
| 1058 | aVar.ToToken(aProp.value); |
| 1059 | } |
| 1060 | return DEBUGGER_E_OK; |
| 1061 | } |
| 1062 | |
| 1063 | |
| 1064 | int Debugger::WritePropertyXml(PropertyInfo &aProp, IObject *aObject) |
nothing calls this directly
no test coverage detected