@@ -2391,7 +2391,7 @@ bool SwiftLanguageRuntime::GetDynamicTypeAndAddress_Existential(
2391
2391
bool SwiftLanguageRuntime::GetDynamicTypeAndAddress_ExistentialMetatype (
2392
2392
ValueObject &in_value, CompilerType meta_type,
2393
2393
lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name,
2394
- Address &address) {
2394
+ Address &address, Value::ValueType &value_type ) {
2395
2395
// Resolve the dynamic type of the metatype.
2396
2396
AddressType address_type;
2397
2397
lldb::addr_t ptr = in_value.GetPointerValue (&address_type);
@@ -2437,6 +2437,7 @@ bool SwiftLanguageRuntime::GetDynamicTypeAndAddress_ExistentialMetatype(
2437
2437
tss->GetTypeSystemSwiftTypeRef ()->RemangleAsType (dem, wrapped, flavor);
2438
2438
class_type_or_name.SetCompilerType (meta_type);
2439
2439
address.SetRawAddress (ptr);
2440
+ value_type = Value::ValueType::LoadAddress;
2440
2441
return true ;
2441
2442
}
2442
2443
@@ -3114,10 +3115,10 @@ bool SwiftLanguageRuntime::GetDynamicTypeAndAddress(
3114
3115
success = GetDynamicTypeAndAddress_Class (in_value, val_type, use_dynamic,
3115
3116
class_type_or_name, address,
3116
3117
static_value_type, local_buffer);
3117
- else if (type_info.AllSet (eTypeIsMetatype | eTypeIsProtocol))
3118
+ else if (type_info.AllSet (eTypeIsMetatype | eTypeIsProtocol)) {
3118
3119
success = GetDynamicTypeAndAddress_ExistentialMetatype (
3119
- in_value, val_type, use_dynamic, class_type_or_name, address);
3120
- else if (type_info.AnySet (eTypeIsProtocol)) {
3120
+ in_value, val_type, use_dynamic, class_type_or_name, address, static_value_type );
3121
+ } else if (type_info.AnySet (eTypeIsProtocol)) {
3121
3122
if (type_info.AnySet (eTypeIsObjC))
3122
3123
success = GetDynamicTypeAndAddress_Class (in_value, val_type, use_dynamic,
3123
3124
class_type_or_name, address,
0 commit comments