mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 21:33:09 +00:00
Minor cleanup of env_node_t
Mark some fields const that don't need to change. Trying to get ready to improve locking here.
This commit is contained in:
parent
372291ad02
commit
2f1e572756
1 changed files with 6 additions and 6 deletions
12
src/env.cpp
12
src/env.cpp
|
@ -81,9 +81,10 @@ class env_node_t {
|
||||||
/// or does it redefine any variables to not be exported?
|
/// or does it redefine any variables to not be exported?
|
||||||
bool exportv = false;
|
bool exportv = false;
|
||||||
/// Pointer to next level.
|
/// Pointer to next level.
|
||||||
std::shared_ptr<env_node_t> next;
|
const std::shared_ptr<env_node_t> next;
|
||||||
|
|
||||||
env_node_t(bool is_new_scope) : new_scope(is_new_scope) {}
|
env_node_t(bool is_new_scope, std::shared_ptr<env_node_t> next_scope)
|
||||||
|
: new_scope(is_new_scope), next(std::move(next_scope)) {}
|
||||||
|
|
||||||
maybe_t<env_var_t> find_entry(const wcstring &key) {
|
maybe_t<env_var_t> find_entry(const wcstring &key) {
|
||||||
auto it = env.find(key);
|
auto it = env.find(key);
|
||||||
|
@ -107,7 +108,7 @@ struct var_stack_t {
|
||||||
env_node_ref_t top;
|
env_node_ref_t top;
|
||||||
|
|
||||||
// Bottom node on the function stack.
|
// Bottom node on the function stack.
|
||||||
env_node_ref_t global_env;
|
const env_node_ref_t global_env;
|
||||||
|
|
||||||
// Exported variable array used by execv.
|
// Exported variable array used by execv.
|
||||||
maybe_t<null_terminated_array_t<char>> export_array;
|
maybe_t<null_terminated_array_t<char>> export_array;
|
||||||
|
@ -129,7 +130,7 @@ struct var_stack_t {
|
||||||
// Pushes a new node onto our stack
|
// Pushes a new node onto our stack
|
||||||
// Optionally creates a new scope for the node
|
// Optionally creates a new scope for the node
|
||||||
void push(bool new_scope) {
|
void push(bool new_scope) {
|
||||||
auto node = std::make_shared<env_node_t>(new_scope);
|
auto node = std::make_shared<env_node_t>(new_scope, this->top);
|
||||||
|
|
||||||
// Copy local-exported variables.
|
// Copy local-exported variables.
|
||||||
auto top_node = top;
|
auto top_node = top;
|
||||||
|
@ -141,7 +142,6 @@ struct var_stack_t {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
node->next = this->top;
|
|
||||||
this->top = std::move(node);
|
this->top = std::move(node);
|
||||||
if (new_scope && local_scope_exports(this->top)) {
|
if (new_scope && local_scope_exports(this->top)) {
|
||||||
this->mark_changed_exported();
|
this->mark_changed_exported();
|
||||||
|
@ -193,7 +193,7 @@ struct var_stack_t {
|
||||||
|
|
||||||
/// Returns the global variable set.
|
/// Returns the global variable set.
|
||||||
static env_node_ref_t globals() {
|
static env_node_ref_t globals() {
|
||||||
static env_node_ref_t s_globals{std::make_shared<env_node_t>(false)};
|
static env_node_ref_t s_globals{std::make_shared<env_node_t>(false, nullptr)};
|
||||||
return s_globals;
|
return s_globals;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue