--- a/apicompatanamdw/compatanalysercmd/headeranalyser/src/XMLUtils.cpp Mon Sep 20 10:04:46 2010 +0100
+++ b/apicompatanamdw/compatanalysercmd/headeranalyser/src/XMLUtils.cpp Mon Sep 27 14:51:17 2010 +0530
@@ -1390,8 +1390,9 @@
bool ret1=newbaseline.FindNodeById(baselineid);
bool ret2=newcurrent.FindNodeById(currentid);
assert(ret1 && ret2);
- string baselinetype = GetTypeName(newbaseline);
- string currenttype = GetTypeName(newcurrent);
+
+ string baselinetype = GetActualTypeName(newbaseline);
+ string currenttype = GetActualTypeName(newcurrent);
// Test if either of the types is incomplete.
// If either one is incomplete, the size and alignment
@@ -2455,3 +2456,34 @@
#endif
return name;
}
+
+const XMLCh* GetActualTypeValue(const HANodeIterator& node)
+{
+ const XMLCh* retVal = 0;
+ if (Equals(node->getNodeName(),KXMLTypedefString))
+ {
+ HANodeIterator typeMethod(node);
+ bool ret = typeMethod.FindNodeById(node.GetAttribute(KXMLTypeString));
+ return GetActualTypeValue(typeMethod);
+ }
+ else
+ retVal = node.GetAttribute(KXMLNameString);
+
+ return retVal;
+}
+
+string GetActualTypeName(const HANodeIterator& node)
+{
+ string name;
+ if (Equals(node->getNodeName(),KXMLTypedefString))
+ {
+ HANodeIterator typeMethod(node);
+ bool ret = typeMethod.FindNodeById(node.GetAttribute(KXMLTypeString));
+ return GetActualTypeName(typeMethod);
+ }
+ else
+ name = GetTypeName(node);
+
+
+ return name;
+}
\ No newline at end of file