Merge pull request #732 from luoliwoshang/c/clang/freetoken

c/clang:free tokens
This commit is contained in:
xushiwei
2024-08-20 11:44:32 +08:00
committed by GitHub
2 changed files with 10 additions and 0 deletions

View File

@@ -1758,6 +1758,14 @@ func (t *TranslationUnit) Tokenize(ran SourceRange, tokens **Token, numTokens *c
t.wrapTokenize(&ran, tokens, numTokens) t.wrapTokenize(&ran, tokens, numTokens)
} }
// CINDEX_LINKAGE void clang_disposeTokens(CXTranslationUnit TU, CXToken *Tokens, unsigned NumTokens);
/**
* Free the given set of tokens.
*/
// llgo:link (*TranslationUnit).DisposeTokens C.clang_disposeTokens
func (t *TranslationUnit) DisposeTokens(tokens *Token, numTokens c.Uint) {}
/** /**
* Determine the spelling of the given token. * Determine the spelling of the given token.
* *

View File

@@ -105,6 +105,8 @@ func printMacro(cursor clang.Cursor, unit *clang.TranslationUnit) {
var numTokens c.Uint var numTokens c.Uint
var tokens *clang.Token var tokens *clang.Token
unit.Tokenize(ran, &tokens, &numTokens) unit.Tokenize(ran, &tokens, &numTokens)
defer unit.DisposeTokens(tokens, numTokens)
tokensSlice := unsafe.Slice(tokens, int(numTokens)) tokensSlice := unsafe.Slice(tokens, int(numTokens))
for _, tok := range tokensSlice { for _, tok := range tokensSlice {
tokStr := unit.Token(tok) tokStr := unit.Token(tok)