From 48ea80f9ff86cd7d6aa70cb1d03579c0c87b828b Mon Sep 17 00:00:00 2001 From: Enrico Granata Date: Wed, 24 Oct 2012 20:24:39 +0000 Subject: [PATCH] Reimplementing SBValue/ValueObject.GetValueAsUnsigned() in terms of appropriate calls in Scalar - Making sure Scalar does the right thing when casting signed values to unsigned ones. llvm-svn: 166618 --- lldb/source/API/SBValue.cpp | 4 ++-- lldb/source/Core/Scalar.cpp | 18 +++++++++--------- lldb/source/Core/ValueObject.cpp | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp index df92da609661..2e4be07b1fdd 100644 --- a/lldb/source/API/SBValue.cpp +++ b/lldb/source/API/SBValue.cpp @@ -1284,7 +1284,7 @@ SBValue::GetValueAsUnsigned(SBError& error, uint64_t fail_value) Mutex::Locker api_locker (target_sp->GetAPIMutex()); Scalar scalar; if (value_sp->ResolveValue (scalar)) - return scalar.GetRawBits64(fail_value); + return scalar.ULongLong(fail_value); else error.SetErrorString("could not get value"); } @@ -1347,7 +1347,7 @@ SBValue::GetValueAsUnsigned(uint64_t fail_value) Mutex::Locker api_locker (target_sp->GetAPIMutex()); Scalar scalar; if (value_sp->ResolveValue (scalar)) - return scalar.GetRawBits64(fail_value); + return scalar.ULongLong(fail_value); } } } diff --git a/lldb/source/Core/Scalar.cpp b/lldb/source/Core/Scalar.cpp index eaf0bc502b80..58f72ed91930 100644 --- a/lldb/source/Core/Scalar.cpp +++ b/lldb/source/Core/Scalar.cpp @@ -765,11 +765,11 @@ Scalar::UInt(unsigned int fail_value) const { default: case e_void: break; - case e_sint: return (unsigned int)m_data.sint; + case e_sint: case e_uint: return (unsigned int)m_data.uint; - case e_slong: return (unsigned int)m_data.slong; + case e_slong: case e_ulong: return (unsigned int)m_data.ulong; - case e_slonglong: return (unsigned int)m_data.slonglong; + case e_slonglong: case e_ulonglong: return (unsigned int)m_data.ulonglong; case e_float: return (unsigned int)m_data.flt; case e_double: return (unsigned int)m_data.dbl; @@ -808,11 +808,11 @@ Scalar::ULong(unsigned long fail_value) const { default: case e_void: break; - case e_sint: return (unsigned long)m_data.sint; + case e_sint: case e_uint: return (unsigned long)m_data.uint; - case e_slong: return (unsigned long)m_data.slong; + case e_slong: case e_ulong: return (unsigned long)m_data.ulong; - case e_slonglong: return (unsigned long)m_data.slonglong; + case e_slonglong: case e_ulonglong: return (unsigned long)m_data.ulonglong; case e_float: return (unsigned long)m_data.flt; case e_double: return (unsigned long)m_data.dbl; @@ -902,11 +902,11 @@ Scalar::ULongLong(unsigned long long fail_value) const { default: case e_void: break; - case e_sint: return (unsigned long long)m_data.sint; + case e_sint: case e_uint: return (unsigned long long)m_data.uint; - case e_slong: return (unsigned long long)m_data.slong; + case e_slong: case e_ulong: return (unsigned long long)m_data.ulong; - case e_slonglong: return (unsigned long long)m_data.slonglong; + case e_slonglong: case e_ulonglong: return (unsigned long long)m_data.ulonglong; case e_float: return (unsigned long long)m_data.flt; case e_double: return (unsigned long long)m_data.dbl; diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp index 86b7e8981d4f..f608f85f3cdc 100644 --- a/lldb/source/Core/ValueObject.cpp +++ b/lldb/source/Core/ValueObject.cpp @@ -1294,7 +1294,7 @@ ValueObject::GetValueAsUnsigned (uint64_t fail_value, bool *success) { if (success) *success = true; - return scalar.GetRawBits64(fail_value); + return scalar.ULongLong(fail_value); } // fallthrough, otherwise... } @@ -1681,7 +1681,7 @@ ValueObject::SetValueFromCString (const char *value_str, Error& error) Process *process = exe_ctx.GetProcessPtr(); if (process) { - addr_t target_addr = m_value.GetScalar().GetRawBits64(LLDB_INVALID_ADDRESS); + addr_t target_addr = m_value.GetScalar().ULongLong(LLDB_INVALID_ADDRESS); size_t bytes_written = process->WriteScalarToMemory (target_addr, new_scalar, byte_size,