From 06d1c1aa7c757349538d3aaf2b407aca6a1f77f8 Mon Sep 17 00:00:00 2001 From: eidheim Date: Fri, 5 Jun 2015 12:05:52 +0200 Subject: [PATCH] Changed the last fix to instead return the correct number of chunks in clang::CompletionString::get_num_chunks(). --- src/CompletionString.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/CompletionString.cc b/src/CompletionString.cc index 074fec8..a3c17eb 100644 --- a/src/CompletionString.cc +++ b/src/CompletionString.cc @@ -7,16 +7,21 @@ CompletionString(const CXCompletionString &str) { int clang::CompletionString:: get_num_chunks() { - return clang_getNumCompletionChunks(str_); + if (clang_getCompletionAvailability(str_) == CXAvailability_Available) + return clang_getNumCompletionChunks(str_); + else + return 0; } std::vector clang::CompletionString:: get_chunks() { std::vector res; - for (auto i = 0; i < get_num_chunks(); i++) { - res.emplace_back(clang_getCString(clang_getCompletionChunkText(str_, i)), - static_cast - (clang_getCompletionChunkKind(str_, i))); + if (clang_getCompletionAvailability(str_) == CXAvailability_Available) { + for (auto i = 0; i < get_num_chunks(); i++) { + res.emplace_back(clang_getCString(clang_getCompletionChunkText(str_, i)), + static_cast + (clang_getCompletionChunkKind(str_, i))); + } } return res; }