Changing the NSDate data formatter to use GetData().uint64[] instead of relying on SBValue.GetValueAsUnsigned() to reinterpret a double as a uint64_t

llvm-svn: 166610
This commit is contained in:
Enrico Granata 2012-10-24 19:05:32 +00:00
parent f4d5a7908d
commit 7b3d205ee3
1 changed files with 3 additions and 3 deletions

View File

@ -108,7 +108,7 @@ class NSUntaggedDate_SummaryProvider:
value = self.valobj.CreateChildAtOffset("value", value = self.valobj.CreateChildAtOffset("value",
self.offset(), self.offset(),
self.sys_params.types_cache.double) self.sys_params.types_cache.double)
value_double = struct.unpack('d', struct.pack('Q', value.GetValueAsUnsigned(0)))[0] value_double = struct.unpack('d', struct.pack('Q', value.GetData().uint64[0]))[0]
if value_double == -63114076800.0: if value_double == -63114076800.0:
return '0001-12-30 00:00:00 +0000' return '0001-12-30 00:00:00 +0000'
return xcode_format_count(osx_to_python_time(value_double)) return xcode_format_count(osx_to_python_time(value_double))
@ -138,7 +138,7 @@ class NSCalendarDate_SummaryProvider:
value = self.valobj.CreateChildAtOffset("value", value = self.valobj.CreateChildAtOffset("value",
self.offset(), self.offset(),
self.sys_params.types_cache.double) self.sys_params.types_cache.double)
value_double = struct.unpack('d', struct.pack('Q', value.GetValueAsUnsigned(0)))[0] value_double = struct.unpack('d', struct.pack('Q', value.GetData().uint64[0]))[0]
return xcode_format_count(osx_to_python_time(value_double)) return xcode_format_count(osx_to_python_time(value_double))
class NSTimeZoneClass_SummaryProvider: class NSTimeZoneClass_SummaryProvider:
@ -255,7 +255,7 @@ def NSTimeZone_SummaryProvider (valobj,dict):
def CFAbsoluteTime_SummaryProvider (valobj,dict): def CFAbsoluteTime_SummaryProvider (valobj,dict):
logger = lldb.formatters.Logger.Logger() logger = lldb.formatters.Logger.Logger()
try: try:
value_double = struct.unpack('d', struct.pack('Q', valobj.GetValueAsUnsigned(0)))[0] value_double = struct.unpack('d', struct.pack('Q', valobj.GetData().uint64[0]))[0]
return xcode_format_count(osx_to_python_time(value_double)) return xcode_format_count(osx_to_python_time(value_double))
except: except:
return 'Summary Unavailable' return 'Summary Unavailable'