mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-11 17:08:42 +00:00
<rdar://problem/12503640> Fixing an issue where the dynamic type of an Objective-C pointer changed but we still reported the one-true-definition for the previous type. This was causing issues where a variable could be reported as being of an entirely different type after an assignment
llvm-svn: 166119
This commit is contained in:
parent
56a12cea13
commit
13ac0e253d
@ -1265,6 +1265,9 @@ protected:
|
||||
DataExtractor &
|
||||
GetDataExtractor ();
|
||||
|
||||
void
|
||||
ResetCompleteTypeInfo ();
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Sublasses must implement the functions below.
|
||||
//------------------------------------------------------------------
|
||||
|
@ -274,6 +274,13 @@ ValueObject::SetNeedsUpdate ()
|
||||
ClearUserVisibleData(eClearUserVisibleDataItemsValue);
|
||||
}
|
||||
|
||||
void
|
||||
ValueObject::ResetCompleteTypeInfo ()
|
||||
{
|
||||
m_did_calculate_complete_objc_class_type = false;
|
||||
m_override_type = ClangASTType();
|
||||
}
|
||||
|
||||
ClangASTType
|
||||
ValueObject::MaybeCalculateCompleteType ()
|
||||
{
|
||||
|
@ -290,12 +290,14 @@ ValueObjectDynamicValue::UpdateValue ()
|
||||
if (!m_type_sp)
|
||||
{
|
||||
m_type_sp = dynamic_type_sp;
|
||||
ResetCompleteTypeInfo ();
|
||||
}
|
||||
else if (dynamic_type_sp != m_type_sp)
|
||||
{
|
||||
// We are another type, we need to tear down our children...
|
||||
m_type_sp = dynamic_type_sp;
|
||||
SetValueDidChange (true);
|
||||
ResetCompleteTypeInfo ();
|
||||
}
|
||||
|
||||
if (!m_address.IsValid() || m_address != dynamic_address)
|
||||
|
Loading…
Reference in New Issue
Block a user