IfFailRet(pModule->GetMetaDataInterface(IID_IMetaDataImport, &pMDUnknown));
IfFailRet(pMDUnknown->QueryInterface(IID_IMetaDataImport, (LPVOID*) &pMD));
- std::string baseTypeName;
- ToRelease<ICorDebugType> pBaseType;
- if(SUCCEEDED(pType->GetBase(&pBaseType)) && pBaseType != NULL && SUCCEEDED(TypePrinter::GetTypeOfValue(pBaseType, baseTypeName)))
- {
- if(baseTypeName == "System.Enum")
- return S_OK;
- else if(baseTypeName != "System.Object" && baseTypeName != "System.ValueType")
- {
- // Add fields of base class
- IfFailRet(WalkMembers(pInputValue, pILFrame, pBaseType, cb));
- }
- }
-
std::string className;
TypePrinter::GetTypeOfValue(pType, className);
if (className == "decimal") // TODO: implement mechanism for walking over custom type fields
}
pMD->CloseEnum(propEnum);
+ std::string baseTypeName;
+ ToRelease<ICorDebugType> pBaseType;
+ if(SUCCEEDED(pType->GetBase(&pBaseType)) && pBaseType != NULL && SUCCEEDED(TypePrinter::GetTypeOfValue(pBaseType, baseTypeName)))
+ {
+ if(baseTypeName == "System.Enum")
+ return S_OK;
+ else if(baseTypeName != "System.Object" && baseTypeName != "System.ValueType")
+ {
+ // Add fields of base class
+ IfFailRet(WalkMembers(pInputValue, pILFrame, pBaseType, cb));
+ }
+ }
+
return S_OK;
}
static void FixupInheritedFieldNames(std::vector<VarObjValue> &members)
{
std::unordered_set<std::string> names;
- for (auto it = members.rbegin(); it != members.rend(); ++it)
+ for (auto &it : members)
{
- auto r = names.insert(it->name);
+ auto r = names.insert(it.name);
if (!r.second)
{
- it->name += " (" + it->owningType + ")";
+ it.name += " (" + it.owningType + ")";
}
}
}