r176732 - [libclang] Change clang_findReferencesInFile and clang_findIncludesInFile to return an enum,
Argyrios Kyrtzidis
akyrtzi at gmail.com
Fri Mar 8 14:47:41 PST 2013
Author: akirtzidis
Date: Fri Mar 8 16:47:41 2013
New Revision: 176732
URL: http://llvm.org/viewvc/llvm-project?rev=176732&view=rev
Log:
[libclang] Change clang_findReferencesInFile and clang_findIncludesInFile to return an enum,
as suggested by Jordan.
Modified:
cfe/trunk/include/clang-c/Index.h
cfe/trunk/tools/libclang/CIndexHigh.cpp
Modified: cfe/trunk/include/clang-c/Index.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=176732&r1=176731&r2=176732&view=diff
==============================================================================
--- cfe/trunk/include/clang-c/Index.h (original)
+++ cfe/trunk/include/clang-c/Index.h Fri Mar 8 16:47:41 2013
@@ -5006,6 +5006,23 @@ typedef struct {
enum CXVisitorResult (*visit)(void *context, CXCursor, CXSourceRange);
} CXCursorAndRangeVisitor;
+typedef enum {
+ /**
+ * \brief Function returned successfully.
+ */
+ CXResult_Success = 0,
+ /**
+ * \brief One of the parameters was invalid for the function.
+ */
+ CXResult_Invalid = 1,
+ /**
+ * \brief The function was terminated by a callback (e.g. it returned
+ * CXVisit_Break)
+ */
+ CXResult_VisitBreak = 2
+
+} CXResult;
+
/**
* \brief Find references of a declaration in a specific file.
*
@@ -5018,13 +5035,10 @@ typedef struct {
* The CXSourceRange will point inside the file; if the reference is inside
* a macro (and not a macro argument) the CXSourceRange will be invalid.
*
- * \returns
- * 1 : if a parameter was invalid
- * -1 : if the callback returned CXVisit_Break,
- * otherwise returns 0.
+ * \returns one of the CXResult enumerators.
*/
-CINDEX_LINKAGE int clang_findReferencesInFile(CXCursor cursor, CXFile file,
- CXCursorAndRangeVisitor visitor);
+CINDEX_LINKAGE CXResult clang_findReferencesInFile(CXCursor cursor, CXFile file,
+ CXCursorAndRangeVisitor visitor);
/**
* \brief Find #import/#include directives in a specific file.
@@ -5036,13 +5050,11 @@ CINDEX_LINKAGE int clang_findReferencesI
* \param visitor callback that will receive pairs of CXCursor/CXSourceRange for
* each directive found.
*
- * \returns
- * 1 : if a parameter was invalid
- * -1 : if the callback returned CXVisit_Break,
- * otherwise returns 0.
+ * \returns one of the CXResult enumerators.
*/
-CINDEX_LINKAGE int clang_findIncludesInFile(CXTranslationUnit TU, CXFile file,
- CXCursorAndRangeVisitor visitor);
+CINDEX_LINKAGE CXResult clang_findIncludesInFile(CXTranslationUnit TU,
+ CXFile file,
+ CXCursorAndRangeVisitor visitor);
#ifdef __has_feature
# if __has_feature(blocks)
@@ -5051,12 +5063,12 @@ typedef enum CXVisitorResult
(^CXCursorAndRangeVisitorBlock)(CXCursor, CXSourceRange);
CINDEX_LINKAGE
-int clang_findReferencesInFileWithBlock(CXCursor, CXFile,
- CXCursorAndRangeVisitorBlock);
+CXResult clang_findReferencesInFileWithBlock(CXCursor, CXFile,
+ CXCursorAndRangeVisitorBlock);
CINDEX_LINKAGE
-int clang_findIncludesInFileWithBlock(CXTranslationUnit, CXFile,
- CXCursorAndRangeVisitorBlock);
+CXResult clang_findIncludesInFileWithBlock(CXTranslationUnit, CXFile,
+ CXCursorAndRangeVisitorBlock);
# endif
#endif
Modified: cfe/trunk/tools/libclang/CIndexHigh.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndexHigh.cpp?rev=176732&r1=176731&r2=176732&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CIndexHigh.cpp (original)
+++ cfe/trunk/tools/libclang/CIndexHigh.cpp Fri Mar 8 16:47:41 2013
@@ -409,29 +409,29 @@ static bool findIncludesInFile(CXTransla
extern "C" {
-int clang_findReferencesInFile(CXCursor cursor, CXFile file,
- CXCursorAndRangeVisitor visitor) {
+CXResult clang_findReferencesInFile(CXCursor cursor, CXFile file,
+ CXCursorAndRangeVisitor visitor) {
LogRef Log = Logger::make(LLVM_FUNCTION_NAME);
if (clang_Cursor_isNull(cursor)) {
if (Log)
*Log << "Null cursor";
- return 1;
+ return CXResult_Invalid;
}
if (cursor.kind == CXCursor_NoDeclFound) {
if (Log)
*Log << "Got CXCursor_NoDeclFound";
- return 1;
+ return CXResult_Invalid;
}
if (!file) {
if (Log)
*Log << "Null file";
- return 1;
+ return CXResult_Invalid;
}
if (!visitor.visit) {
if (Log)
*Log << "Null visitor";
- return 1;
+ return CXResult_Invalid;
}
if (Log)
@@ -439,7 +439,7 @@ int clang_findReferencesInFile(CXCursor
ASTUnit *CXXUnit = cxcursor::getCursorASTUnit(cursor);
if (!CXXUnit)
- return 1;
+ return CXResult_Invalid;
ASTUnit::ConcurrencyCheck Check(*CXXUnit);
@@ -449,8 +449,8 @@ int clang_findReferencesInFile(CXCursor
cursor,
static_cast<const FileEntry *>(file),
visitor))
- return -1; // visitation break;
- return 0;
+ return CXResult_VisitBreak;
+ return CXResult_Success;
}
// We are interested in semantics of identifiers so for C++ constructor exprs
@@ -467,35 +467,35 @@ int clang_findReferencesInFile(CXCursor
if (!clang_isDeclaration(refCursor.kind)) {
if (Log)
*Log << "cursor is not referencing a declaration";
- return 1;
+ return CXResult_Invalid;
}
if (findIdRefsInFile(cxcursor::getCursorTU(cursor),
refCursor,
static_cast<const FileEntry *>(file),
visitor))
- return -1; //visitation break;
- return 0;
+ return CXResult_VisitBreak;
+ return CXResult_Success;
}
-int clang_findIncludesInFile(CXTranslationUnit TU, CXFile file,
+CXResult clang_findIncludesInFile(CXTranslationUnit TU, CXFile file,
CXCursorAndRangeVisitor visitor) {
LogRef Log = Logger::make(LLVM_FUNCTION_NAME);
if (!TU) {
if (Log)
*Log << "Null CXTranslationUnit";
- return 1;
+ return CXResult_Invalid;
}
if (!file) {
if (Log)
*Log << "Null file";
- return 1;
+ return CXResult_Invalid;
}
if (!visitor.visit) {
if (Log)
*Log << "Null visitor";
- return 1;
+ return CXResult_Invalid;
}
if (Log)
@@ -503,13 +503,13 @@ int clang_findIncludesInFile(CXTranslati
ASTUnit *CXXUnit = cxtu::getASTUnit(TU);
if (!CXXUnit)
- return 1;
+ return CXResult_Invalid;
ASTUnit::ConcurrencyCheck Check(*CXXUnit);
if (findIncludesInFile(TU, static_cast<const FileEntry *>(file), visitor))
- return -1; //visitation break;
- return 0;
+ return CXResult_VisitBreak;
+ return CXResult_Success;
}
static enum CXVisitorResult _visitCursorAndRange(void *context,
@@ -519,17 +519,17 @@ static enum CXVisitorResult _visitCursor
return INVOKE_BLOCK2(block, cursor, range);
}
-int clang_findReferencesInFileWithBlock(CXCursor cursor,
- CXFile file,
- CXCursorAndRangeVisitorBlock block) {
+CXResult clang_findReferencesInFileWithBlock(CXCursor cursor,
+ CXFile file,
+ CXCursorAndRangeVisitorBlock block) {
CXCursorAndRangeVisitor visitor = { block,
block ? _visitCursorAndRange : 0 };
return clang_findReferencesInFile(cursor, file, visitor);
}
-int clang_findIncludesInFileWithBlock(CXTranslationUnit TU,
- CXFile file,
- CXCursorAndRangeVisitorBlock block) {
+CXResult clang_findIncludesInFileWithBlock(CXTranslationUnit TU,
+ CXFile file,
+ CXCursorAndRangeVisitorBlock block) {
CXCursorAndRangeVisitor visitor = { block,
block ? _visitCursorAndRange : 0 };
return clang_findIncludesInFile(TU, file, visitor);
More information about the cfe-commits
mailing list