summaryrefslogtreecommitdiff
path: root/src/ai
diff options
context:
space:
mode:
authorMichael Lutz <michi@icosahedron.de>2019-04-02 21:31:24 +0200
committerMichael Lutz <michi@icosahedron.de>2019-04-09 22:45:15 +0200
commitc7b9987d081ae4e0103309b18c93deecc395dec9 (patch)
treee5b1f9553d6399e2eed9c05a2d91673205f9c912 /src/ai
parentd3e113eb5f618ce0174fa0dfa2591cb96e999350 (diff)
downloadopenttd-c7b9987d081ae4e0103309b18c93deecc395dec9.tar.xz
Codechange: Switch DropDownList to directly use std::vector, thus making AutoDeleteSmallVector obsolete.
DropDownListItem are strongly managed using std::unique_ptr to ensure leak-free handling. Appropriate use of move-semantics make intent a lot clearer than parameter comments and allows the compiler to generate copy-free code for most situations.
Diffstat (limited to 'src/ai')
-rw-r--r--src/ai/ai_gui.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp
index 2730070c3..eaf2a9d83 100644
--- a/src/ai/ai_gui.cpp
+++ b/src/ai/ai_gui.cpp
@@ -479,12 +479,12 @@ struct AISettingsWindow : public Window {
this->clicked_dropdown = true;
this->closing_dropdown = false;
- DropDownList *list = new DropDownList();
+ DropDownList list;
for (int i = config_item.min_value; i <= config_item.max_value; i++) {
- list->push_back(new DropDownListCharStringItem(config_item.labels->Find(i)->second, i, false));
+ list.emplace_back(new DropDownListCharStringItem(config_item.labels->Find(i)->second, i, false));
}
- ShowDropDownListAt(this, list, old_val, -1, wi_rect, COLOUR_ORANGE, true);
+ ShowDropDownListAt(this, std::move(list), old_val, -1, wi_rect, COLOUR_ORANGE, true);
}
}
} else if (IsInsideMM(x, 0, SETTING_BUTTON_WIDTH)) {