diff options
Diffstat (limited to 'tools/libclang/CXTranslationUnit.h')
-rw-r--r-- | tools/libclang/CXTranslationUnit.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/tools/libclang/CXTranslationUnit.h b/tools/libclang/CXTranslationUnit.h index 2b8f977..3ad867c 100644 --- a/tools/libclang/CXTranslationUnit.h +++ b/tools/libclang/CXTranslationUnit.h @@ -16,17 +16,37 @@ extern "C" { struct CXTranslationUnitImpl { + void *CIdx; void *TUData; void *StringPool; + void *Diagnostics; }; } namespace clang { class ASTUnit; + class CIndexer; namespace cxtu { -CXTranslationUnitImpl *MakeCXTranslationUnit(ASTUnit *TU); +CXTranslationUnitImpl *MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *TU); + +class CXTUOwner { + CXTranslationUnitImpl *TU; + +public: + CXTUOwner(CXTranslationUnitImpl *tu) : TU(tu) { } + ~CXTUOwner(); + + CXTranslationUnitImpl *getTU() const { return TU; } + + CXTranslationUnitImpl *takeTU() { + CXTranslationUnitImpl *retTU = TU; + TU = 0; + return retTU; + } +}; + }} // end namespace clang::cxtu |