Misc fixes

This commit is contained in:
Jacob Dufault 2017-04-17 13:40:50 -07:00
parent 7f4d902dcf
commit 26c0bfe71d
5 changed files with 25 additions and 18 deletions

View File

@ -45,7 +45,7 @@ struct Id {
namespace std {
template <typename T>
struct hash<Id<T>> {
size_t operator()(const Id<T>& k) const { return hash<uint64_t>()(k.id); }
size_t operator()(const Id<T>& k) const { return hash<size_t>()(k.id); }
};
}
@ -455,4 +455,4 @@ struct IndexedFile {
};
std::vector<std::unique_ptr<IndexedFile>> Parse(FileConsumer::SharedState* file_consumer_shared, std::string filename, std::vector<std::string> args, bool dump_ast = false);
void IndexInit();
void IndexInit();

View File

@ -13,10 +13,11 @@
struct CompileCommandsEntry {
std::string directory;
std::string filename;
std::string file;
std::string command;
std::vector<std::string> args;
};
MAKE_REFLECT_STRUCT(CompileCommandsEntry, directory, filename, args);
MAKE_REFLECT_STRUCT(CompileCommandsEntry, directory, file, command, args);
namespace {
@ -39,11 +40,11 @@ static const char *kValueArgs[] = {
"-arch",
"-b",
"-gcc-toolchain",
"-imacros",
//"-imacros",
"-imultilib",
"-include",
"-iprefix",
"-isysroot",
//"-include",
//"-iprefix",
//"-isysroot",
"-ivfsoverlay",
"-iwithprefix",
"-iwithprefixbefore",
@ -93,13 +94,15 @@ static const char *kBlacklist[] = {
//"-f",
//"-pipe",
//"-W",
// TODO
"-Wno-unused-lambda-capture",
"/",
"..",
};
CompilationEntry GetCompilationEntryFromCompileCommandEntry(const CompileCommandsEntry& entry) {
CompilationEntry result;
result.filename = NormalizePath(entry.filename);
result.filename = NormalizePath(entry.file);
unsigned int num_args = entry.args.size();
result.args.reserve(num_args);
@ -199,7 +202,7 @@ std::vector<CompilationEntry> LoadFromDirectoryListing(const std::string& projec
std::vector<CompilationEntry> LoadCompilationEntriesFromDirectory(const std::string& project_directory) {
// TODO: Figure out if this function or the clang one is faster.
return LoadFromCompileCommandsJson(project_directory);
//return LoadFromCompileCommandsJson(project_directory);
CXCompilationDatabase_Error cx_db_load_error;
CXCompilationDatabase cx_db = clang_CompilationDatabase_fromDirectory(project_directory.c_str(), &cx_db_load_error);
@ -218,16 +221,16 @@ std::vector<CompilationEntry> LoadCompilationEntriesFromDirectory(const std::str
std::string directory = clang::ToString(clang_CompileCommand_getDirectory(cx_command));
std::string relative_filename = clang::ToString(clang_CompileCommand_getFilename(cx_command));
std::string absolute_filename = directory + "/" + relative_filename;
CompileCommandsEntry entry;
entry.filename = NormalizePath(absolute_filename);
entry.file = NormalizePath(absolute_filename);
entry.directory = directory;
unsigned int num_args = clang_CompileCommand_getNumArgs(cx_command);
entry.args.reserve(num_args);
for (int i = 0; i < num_args; ++i)
entry.args.push_back(clang::ToString(clang_CompileCommand_getArg(cx_command, i)));
result.push_back(GetCompilationEntryFromCompileCommandEntry(entry));
}

View File

@ -71,7 +71,7 @@ void AddMergeableRange(
// time at the cost of some additional memory.
// Build lookup table.
google::dense_hash_map<TId, size_t> id_to_index;
google::dense_hash_map<TId, size_t, std::hash<TId>> id_to_index;
id_to_index.set_empty_key(TId(-1));
id_to_index.resize(dest->size());
for (size_t i = 0; i < dest->size(); ++i)

View File

@ -5,6 +5,8 @@
#include <sparsehash/dense_hash_map>
#include <functional>
using Usr = std::string;
struct QueryFile;
@ -308,7 +310,7 @@ struct IdMap {
SymbolIdx ToSymbol(IndexFuncId id) const;
SymbolIdx ToSymbol(IndexVarId id) const;
private:
google::dense_hash_map<IndexTypeId, QueryTypeId> cached_type_ids_;
google::dense_hash_map<IndexFuncId, QueryFuncId> cached_func_ids_;
google::dense_hash_map<IndexVarId, QueryVarId> cached_var_ids_;
google::dense_hash_map<IndexTypeId, QueryTypeId, std::hash<IndexTypeId>> cached_type_ids_;
google::dense_hash_map<IndexFuncId, QueryFuncId, std::hash<IndexFuncId>> cached_func_ids_;
google::dense_hash_map<IndexVarId, QueryVarId, std::hash<IndexVarId>> cached_var_ids_;
};

View File

@ -2,6 +2,8 @@
#include "position.h"
#include <climits>
namespace {
int GetOffsetForPosition(lsPosition position, const std::string& content) {
@ -168,4 +170,4 @@ std::vector<CXUnsavedFile> WorkingFiles::AsUnsavedFiles() const {
for (auto& file : files)
result.push_back(file->AsUnsavedFile());
return result;
}
}