Switch from std::list to std::vector in a few places to reduce compiled code size

This commit is contained in:
ridiculousfish 2012-07-24 22:31:31 -07:00
parent eba75dbc2e
commit 62c49f13ce
5 changed files with 7 additions and 12 deletions

View file

@ -142,7 +142,7 @@ struct io_stack_elem_t {
wcstring out; wcstring out;
wcstring err; wcstring err;
}; };
static std::stack<io_stack_elem_t> io_stack; static std::stack<io_stack_elem_t, std::vector<io_stack_elem_t> > io_stack;
/** /**
The file from which builtin functions should attempt to read, use The file from which builtin functions should attempt to read, use

View file

@ -964,7 +964,7 @@ void history_tests_t::test_history(void) {
path_list_t paths; path_list_t paths;
size_t count = rand() % 6; size_t count = rand() % 6;
while (count--) { while (count--) {
paths.push_front(random_string()); paths.push_back(random_string());
} }
/* Record this item */ /* Record this item */

View file

@ -637,13 +637,11 @@ history_item_t history_t::decode_item_fish_2_0(const char *base, size_t len) {
/* Skip the leading dash-space and then store this path it */ /* Skip the leading dash-space and then store this path it */
line.erase(0, 2); line.erase(0, 2);
unescape_yaml(line); unescape_yaml(line);
paths.push_front(str2wcstring(line)); paths.push_back(str2wcstring(line));
} }
} }
} }
/* Reverse the paths, since we pushed them to the front each time */
done: done:
paths.reverse();
return history_item_t(cmd, when, paths); return history_item_t(cmd, when, paths);
} }
@ -1243,7 +1241,7 @@ int file_detection_context_t::perform_file_detection(bool test_all) {
for (path_list_t::const_iterator iter = potential_paths.begin(); iter != potential_paths.end(); ++iter) { for (path_list_t::const_iterator iter = potential_paths.begin(); iter != potential_paths.end(); ++iter) {
if (path_is_valid(*iter, working_directory)) { if (path_is_valid(*iter, working_directory)) {
/* Push the original (possibly relative) path */ /* Push the original (possibly relative) path */
valid_paths.push_front(*iter); valid_paths.push_back(*iter);
} else { } else {
/* Not a valid path */ /* Not a valid path */
result = 0; result = 0;
@ -1251,7 +1249,6 @@ int file_detection_context_t::perform_file_detection(bool test_all) {
break; break;
} }
} }
valid_paths.reverse();
return result; return result;
} }
@ -1305,7 +1302,7 @@ void history_t::add_with_file_detection(const wcstring &str)
if (token_cstr) { if (token_cstr) {
wcstring potential_path = token_cstr; wcstring potential_path = token_cstr;
if (unescape_string(potential_path, false) && string_could_be_path(potential_path)) { if (unescape_string(potential_path, false) && string_could_be_path(potential_path)) {
potential_paths.push_front(potential_path); potential_paths.push_back(potential_path);
} }
} }
} }
@ -1317,7 +1314,6 @@ void history_t::add_with_file_detection(const wcstring &str)
file_detection_context_t *context = new file_detection_context_t(this, str); file_detection_context_t *context = new file_detection_context_t(this, str);
/* Store the potential paths. Reverse them to put them in the same order as in the command. */ /* Store the potential paths. Reverse them to put them in the same order as in the command. */
potential_paths.reverse();
context->potential_paths.swap(potential_paths); context->potential_paths.swap(potential_paths);
iothread_perform(threaded_perform_file_detection, perform_file_detection_done, context); iothread_perform(threaded_perform_file_detection, perform_file_detection_done, context);
} }

View file

@ -11,10 +11,9 @@
#include <vector> #include <vector>
#include <utility> #include <utility>
#include <list> #include <list>
#include <tr1/memory>
#include <set> #include <set>
typedef std::list<wcstring> path_list_t; typedef std::vector<wcstring> path_list_t;
enum history_search_type_t { enum history_search_type_t {
/** The history searches for strings containing the given string */ /** The history searches for strings containing the given string */

View file

@ -345,7 +345,7 @@ static int is_interactive_read;
static int end_loop = 0; static int end_loop = 0;
/** The stack containing names of files that are being parsed */ /** The stack containing names of files that are being parsed */
static std::stack<const wchar_t *, std::list<const wchar_t *> > current_filename; static std::stack<const wchar_t *, std::vector<const wchar_t *> > current_filename;
/** /**