diff options
Diffstat (limited to 'source/Core/ValueObjectVariable.cpp')
| -rw-r--r-- | source/Core/ValueObjectVariable.cpp | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/source/Core/ValueObjectVariable.cpp b/source/Core/ValueObjectVariable.cpp index 3d8b07a36948..2e5bb22a890c 100644 --- a/source/Core/ValueObjectVariable.cpp +++ b/source/Core/ValueObjectVariable.cpp @@ -328,6 +328,12 @@ ValueObjectVariable::GetLocationAsCString ()  bool  ValueObjectVariable::SetValueFromCString (const char *value_str, Error& error)  { +    if (!UpdateValueIfNeeded()) +    { +        error.SetErrorString("unable to update value before writing"); +        return false; +    } +          if (m_resolved_value.GetContextType() == Value::eContextTypeRegisterInfo)      {          RegisterInfo *reg_info = m_resolved_value.GetRegisterInfo(); @@ -360,6 +366,12 @@ ValueObjectVariable::SetValueFromCString (const char *value_str, Error& error)  bool  ValueObjectVariable::SetData (DataExtractor &data, Error &error)  { +    if (!UpdateValueIfNeeded()) +    { +        error.SetErrorString("unable to update value before writing"); +        return false; +    } +          if (m_resolved_value.GetContextType() == Value::eContextTypeRegisterInfo)      {          RegisterInfo *reg_info = m_resolved_value.GetRegisterInfo(); @@ -371,7 +383,7 @@ ValueObjectVariable::SetData (DataExtractor &data, Error &error)              error.SetErrorString("unable to retrieve register info");              return false;          } -        error = reg_value.SetValueFromData(reg_info, data, 0, false); +        error = reg_value.SetValueFromData(reg_info, data, 0, true);          if (error.Fail())              return false;          if (reg_ctx->WriteRegister (reg_info, reg_value))  | 
