diff options
author | ridiculousfish <corydoras@ridiculousfish.com> | 2013-02-11 23:16:50 -0800 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2013-02-11 23:16:50 -0800 |
commit | 2a7fc9c3a507de45e1aa723068fb373567b869a1 (patch) | |
tree | 638983462e567356b3dbfd227a79adb48d6cc41b /env_universal_common.cpp | |
parent | be23c0755e898ee3709c4635885342a9c1f77061 (diff) |
Clean up env_var_table_t. Switch from storing var_uni_entry_t* to var_uni_entry_t. Various other cleanups.
Diffstat (limited to 'env_universal_common.cpp')
-rw-r--r-- | env_universal_common.cpp | 61 |
1 files changed, 16 insertions, 45 deletions
diff --git a/env_universal_common.cpp b/env_universal_common.cpp index c7fc2cb3..52df1ae8 100644 --- a/env_universal_common.cpp +++ b/env_universal_common.cpp @@ -106,7 +106,7 @@ static void parse_message(wchar_t *msg, /** The table of all universal variables */ -typedef std::map<wcstring, var_uni_entry_t*> env_var_table_t; +typedef std::map<wcstring, var_uni_entry_t> env_var_table_t; env_var_table_t env_universal_var; /** @@ -416,18 +416,6 @@ void env_universal_common_init(void (*cb)(fish_message_type_t type, const wchar_ callback = cb; } - -void env_universal_common_destroy() -{ - env_var_table_t::iterator iter; - - for (iter = env_universal_var.begin(); iter != env_universal_var.end(); ++iter) - { - var_uni_entry_t* value = iter->second; - delete value; - } -} - /** Read one byte of date form the specified connection */ @@ -550,13 +538,7 @@ void read_message(connection_t *src) */ void env_universal_common_remove(const wcstring &name) { - env_var_table_t::iterator result = env_universal_var.find(name); - if (result != env_universal_var.end()) - { - var_uni_entry_t* v = result->second; - env_universal_var.erase(result); - delete v; - } + env_universal_var.erase(name); } /** @@ -576,18 +558,13 @@ static bool match(const wchar_t *msg, const wchar_t *cmd) void env_universal_common_set(const wchar_t *key, const wchar_t *val, bool exportv) { - var_uni_entry_t *entry; - CHECK(key,); CHECK(val,); - entry = new var_uni_entry_t; - - entry->exportv=exportv; - entry->val = val; - env_universal_common_remove(key); + var_uni_entry_t &entry = env_universal_var[key]; + entry.exportv=exportv; + entry.val = val; - env_universal_var[key] = entry; if (callback) { callback(exportv?SET_EXPORT:SET, key, val); @@ -909,31 +886,27 @@ void env_universal_common_get_names(wcstring_list_t &lst, env_var_table_t::const_iterator iter; for (iter = env_universal_var.begin(); iter != env_universal_var.end(); ++iter) { - const wcstring& key = iter->first; - const var_uni_entry_t *e = iter->second; - if ((e->exportv && show_exported) || - (!e->exportv && show_unexported)) + const wcstring &key = iter->first; + const var_uni_entry_t &e = iter->second; + if ((e.exportv && show_exported) || (! e.exportv && show_unexported)) { lst.push_back(key); } - } } -wchar_t *env_universal_common_get(const wcstring &name) +const wchar_t *env_universal_common_get(const wcstring &name) { env_var_table_t::const_iterator result = env_universal_var.find(name); - if (result != env_universal_var.end()) { - const var_uni_entry_t *e = result->second; - if (e) - return const_cast<wchar_t*>(e->val.c_str()); + const var_uni_entry_t &e = result->second; + return const_cast<wchar_t*>(e.val.c_str()); } - return 0; + return NULL; } bool env_universal_common_get_export(const wcstring &name) @@ -941,9 +914,8 @@ bool env_universal_common_get_export(const wcstring &name) env_var_table_t::const_iterator result = env_universal_var.find(name); if (result != env_universal_var.end()) { - const var_uni_entry_t *e = result->second; - if (e != NULL) - return e->exportv; + const var_uni_entry_t &e = result->second; + return e.exportv; } return false; } @@ -951,13 +923,12 @@ bool env_universal_common_get_export(const wcstring &name) void enqueue_all(connection_t *c) { env_var_table_t::const_iterator iter; - for (iter = env_universal_var.begin(); iter != env_universal_var.end(); ++iter) { const wcstring &key = iter->first; - const var_uni_entry_t *val = iter->second; + const var_uni_entry_t &entry = iter->second; - message_t *msg = create_message(val->exportv?SET_EXPORT:SET, key.c_str(), val->val.c_str()); + message_t *msg = create_message(entry.exportv ? SET_EXPORT : SET, key.c_str(), entry.val.c_str()); msg->count=1; c->unsent->push(msg); } |