]> granicus.if.org Git - clang/commitdiff
libclang: some type safety for CXTranslationUnitImpl's internals
authorDmitri Gribenko <gribozavr@gmail.com>
Sat, 26 Jan 2013 21:32:42 +0000 (21:32 +0000)
committerDmitri Gribenko <gribozavr@gmail.com>
Sat, 26 Jan 2013 21:32:42 +0000 (21:32 +0000)
There is no reason to store pointers as 'void*' in CXTranslationUnitImpl, since
it does not affect libclang ABI.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173588 91177308-0d34-0410-b5e6-96231b3b80d8

tools/libclang/CIndex.cpp
tools/libclang/CIndexDiagnostic.cpp
tools/libclang/CXTranslationUnit.h

index 1127c7c20bbbfd9ccdd7b6b9a4b32c1e62080fdd..c4d4a5a45128ab78fa6b080f28a75adb35583a49 100644 (file)
@@ -60,12 +60,12 @@ using namespace clang::cxstring;
 using namespace clang::cxtu;
 using namespace clang::cxindex;
 
-CXTranslationUnit cxtu::MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *TU) {
-  if (!TU)
+CXTranslationUnit cxtu::MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *AU) {
+  if (!AU)
     return 0;
   CXTranslationUnit D = new CXTranslationUnitImpl();
   D->CIdx = CIdx;
-  D->TUData = TU;
+  D->TheASTUnit = AU;
   D->StringPool = createCXStringPool();
   D->Diagnostics = 0;
   D->OverridenCursorsPool = createOverridenCXCursorsPool();
index afccbb81b36140e4ab4c55760821dde8eb355f8e..f48034e30b64676157e96392c7790447162455a1 100644 (file)
@@ -209,7 +209,7 @@ CXDiagnosticSetImpl *cxdiag::lazyCreateDiags(CXTranslationUnit TU,
 extern "C" {
 
 unsigned clang_getNumDiagnostics(CXTranslationUnit Unit) {
-  if (!Unit->TUData)
+  if (!cxtu::getASTUnit(Unit))
     return 0;
   return lazyCreateDiags(Unit, /*checkIfChanged=*/true)->getNumDiagnostics();
 }
@@ -227,7 +227,7 @@ CXDiagnostic clang_getDiagnostic(CXTranslationUnit Unit, unsigned Index) {
 }
   
 CXDiagnosticSet clang_getDiagnosticSetFromTU(CXTranslationUnit Unit) {
-  if (!Unit->TUData)
+  if (!cxtu::getASTUnit(Unit))
     return 0;
   return static_cast<CXDiagnostic>(lazyCreateDiags(Unit));
 }
index 323d4b78aa9432463e1ee4aaf78d4f59bfbbe095..15e89ea849933c8d5500522aad6300f43f4f7808 100644 (file)
 
 #include "clang-c/Index.h"
 
-extern "C" {
+namespace clang {
+  class ASTUnit;
+  class CIndexer;
+} // namespace clang
+
 struct CXTranslationUnitImpl {
   void *CIdx;
-  void *TUData;
+  clang::ASTUnit *TheASTUnit;
   void *StringPool;
   void *Diagnostics;
   void *OverridenCursorsPool;
   void *FormatContext;
   unsigned FormatInMemoryUniqueId;
 };
-}
 
 namespace clang {
   class ASTUnit;
@@ -34,10 +37,10 @@ namespace clang {
 
 namespace cxtu {
 
-CXTranslationUnitImpl *MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *TU);
+CXTranslationUnitImpl *MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *AU);
 
 static inline ASTUnit *getASTUnit(CXTranslationUnit TU) {
-  return static_cast<ASTUnit *>(TU->TUData);
+  return TU->TheASTUnit;
 }
 
 class CXTUOwner {