Browse Source

Cleanup of CodeCompleteResults

merge-requests/37/head
eidheim 8 years ago
parent
commit
5f6126f119
  1. 21
      src/code_complete_results.cc
  2. 7
      src/code_complete_results.h

21
src/code_complete_results.cc

@ -18,16 +18,31 @@ clangmm::CodeCompleteResults::CodeCompleteResults(CXTranslationUnit &cx_tu,
files, files,
1, 1,
clang_defaultCodeCompleteOptions()|CXCodeComplete_IncludeBriefComments); clang_defaultCodeCompleteOptions()|CXCodeComplete_IncludeBriefComments);
if(cx_results!=NULL) if(cx_results)
clang_sortCodeCompletionResults(cx_results->Results, cx_results->NumResults); clang_sortCodeCompletionResults(cx_results->Results, cx_results->NumResults);
} }
clangmm::CodeCompleteResults::CodeCompleteResults(CodeCompleteResults &&rhs) : cx_results(rhs.cx_results) {
rhs.cx_results = nullptr;
}
clangmm::CodeCompleteResults &clangmm::CodeCompleteResults::operator=(CodeCompleteResults &&rhs) {
if(this!=&rhs) {
if(cx_results)
clang_disposeCodeCompleteResults(cx_results);
cx_results=rhs.cx_results;
rhs.cx_results=nullptr;
}
return *this;
}
clangmm::CodeCompleteResults::~CodeCompleteResults() { clangmm::CodeCompleteResults::~CodeCompleteResults() {
if(cx_results)
clang_disposeCodeCompleteResults(cx_results); clang_disposeCodeCompleteResults(cx_results);
} }
unsigned clangmm::CodeCompleteResults::size() const { unsigned clangmm::CodeCompleteResults::size() const {
if(cx_results==NULL) if(!cx_results)
return 0; return 0;
return cx_results->NumResults; return cx_results->NumResults;
} }
@ -37,5 +52,7 @@ clangmm::CompletionString clangmm::CodeCompleteResults::get(unsigned i) const {
} }
std::string clangmm::CodeCompleteResults::get_usr() const { std::string clangmm::CodeCompleteResults::get_usr() const {
if(!cx_results)
return std::string();
return to_string(clang_codeCompleteGetContainerUSR(cx_results)); return to_string(clang_codeCompleteGetContainerUSR(cx_results));
} }

7
src/code_complete_results.h

@ -12,9 +12,10 @@ namespace clangmm {
CodeCompleteResults(CXTranslationUnit &cx_tu, const std::string &buffer, CodeCompleteResults(CXTranslationUnit &cx_tu, const std::string &buffer,
unsigned line_num, unsigned column); unsigned line_num, unsigned column);
public: public:
CodeCompleteResults(CodeCompleteResults &&rhs) : cx_results(rhs.cx_results) { CodeCompleteResults(CodeCompleteResults &) = delete;
rhs.cx_results = nullptr; CodeCompleteResults(CodeCompleteResults &&rhs);
} CodeCompleteResults &operator=(const CodeCompleteResults &rhs) = delete;
CodeCompleteResults &operator=(CodeCompleteResults &&rhs);
~CodeCompleteResults(); ~CodeCompleteResults();
CompletionString get(unsigned index) const; CompletionString get(unsigned index) const;
unsigned size() const; unsigned size() const;

Loading…
Cancel
Save