diff --git a/include/cubescript/cubescript.hh b/include/cubescript/cubescript.hh index 7b97d962..5dfe3ae3 100644 --- a/include/cubescript/cubescript.hh +++ b/include/cubescript/cubescript.hh @@ -9,11 +9,11 @@ #include "cubescript_conf.hh" #include +#include #include #include #include #include -#include #include #include #include diff --git a/include/cubescript/cubescript_conf.hh b/include/cubescript/cubescript_conf.hh index 923595cc..e79c2751 100644 --- a/include/cubescript/cubescript_conf.hh +++ b/include/cubescript/cubescript_conf.hh @@ -2,12 +2,8 @@ #define LIBCUBESCRIPT_CUBESCRIPT_CONF_HH #include -#include -#include -#include -#include -#include -#include +#include +#include /* do not modify */ namespace cscript { diff --git a/src/cs_util.hh b/src/cs_util.hh index daf1cb22..70c3bce5 100644 --- a/src/cs_util.hh +++ b/src/cs_util.hh @@ -4,11 +4,12 @@ #include #include #include +#include namespace cscript { template -using CsMap = ostd::Map; +using CsMap = std::unordered_map; template using CsVector = std::vector; diff --git a/src/cubescript.cc b/src/cubescript.cc index e19006c7..a36f65a6 100644 --- a/src/cubescript.cc +++ b/src/cubescript.cc @@ -398,7 +398,7 @@ CsState::~CsState() { if (!p_state) { return; } - for (auto &p: p_state->idents.iter()) { + for (auto &p: p_state->idents) { CsIdent *i = p.second; CsAlias *a = i->get_alias(); if (a) { @@ -464,7 +464,7 @@ void CsState::clear_override(CsIdent &id) { } void CsState::clear_overrides() { - for (auto &p: p_state->idents.iter()) { + for (auto &p: p_state->idents) { clear_override(*(p.second)); } } @@ -511,23 +511,23 @@ CsIdent *CsState::force_ident(CsValue &v) { } CsIdent *CsState::get_ident(ostd::ConstCharRange name) { - CsIdent **id = p_state->idents.at(name); - if (!id) { - return nullptr; + auto id = p_state->idents.find(name); + if (id != p_state->idents.end()) { + return id->second; } - return *id; + return nullptr; } CsAlias *CsState::get_alias(ostd::ConstCharRange name) { - CsIdent **id = p_state->idents.at(name); - if (!id || !(*id)->is_alias()) { + auto id = get_ident(name); + if (!id || !id->is_alias()) { return nullptr; } - return static_cast(*id); + return static_cast(id); } bool CsState::have_ident(ostd::ConstCharRange name) { - return p_state->idents.at(name) != nullptr; + return p_state->idents.find(name) != p_state->idents.end(); } CsIdentRange CsState::get_idents() {