<rdar://problem/10212450>

Don't parse function types all the time, only parse them lazily.

llvm-svn: 140842
diff --git a/lldb/source/Symbol/Function.cpp b/lldb/source/Symbol/Function.cpp
index 85c4839..f0b57f9 100644
--- a/lldb/source/Symbol/Function.cpp
+++ b/lldb/source/Symbol/Function.cpp
@@ -449,6 +449,27 @@
 Type*
 Function::GetType()
 {
+    if (m_type == NULL)
+    {
+        SymbolContext sc;
+        
+        CalculateSymbolContext (&sc);
+        
+        if (!sc.module_sp)
+            return NULL;
+        
+        SymbolVendor *sym_vendor = sc.module_sp->GetSymbolVendor();
+        
+        if (sym_vendor == NULL)
+            return NULL;
+        
+        SymbolFile *sym_file = sym_vendor->GetSymbolFile();
+        
+        if (sym_file == NULL)
+            return NULL;
+        
+        return sym_file->ResolveTypeUID(m_type_uid);
+    }
     return m_type;
 }