apicompatanamdw/compatanalysercmd/headeranalyser/src/XMLUtils.cpp
changeset 12 a0eee409ff14
parent 0 638b9c697799
--- 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