diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2017-09-15 19:04:22 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2017-09-15 19:04:22 -0400 |
commit | 98d3ff017559dca74323291d1473e30aacb6ab27 (patch) | |
tree | 03635ca95713e18e717ab5eecf7d437bb2f8dc97 /src/osd/modules/render/d3d/d3dhlsl.cpp | |
parent | 971335373540157f9d9a67db272fcc84cd9aa628 (diff) |
Use std::unique_ptr to manage instances of slider_state (nw)
Diffstat (limited to 'src/osd/modules/render/d3d/d3dhlsl.cpp')
-rw-r--r-- | src/osd/modules/render/d3d/d3dhlsl.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/osd/modules/render/d3d/d3dhlsl.cpp b/src/osd/modules/render/d3d/d3dhlsl.cpp index 63045dc1fce..6a72e6f5369 100644 --- a/src/osd/modules/render/d3d/d3dhlsl.cpp +++ b/src/osd/modules/render/d3d/d3dhlsl.cpp @@ -1807,10 +1807,9 @@ static void get_vector(const char *data, int count, float *out, bool report_erro // be done in a more ideal way. //============================================================ -slider_state* shaders::slider_alloc(running_machine &machine, int id, const char *title, int32_t minval, int32_t defval, int32_t maxval, int32_t incval, void *arg) +std::unique_ptr<slider_state> shaders::slider_alloc(int id, const char *title, int32_t minval, int32_t defval, int32_t maxval, int32_t incval, void *arg) { - int size = sizeof(slider_state) + strlen(title); - slider_state *state = reinterpret_cast<slider_state *>(auto_alloc_array_clear(machine, uint8_t, size)); + auto state = make_unique_clear<slider_state>(); state->minval = minval; state->defval = defval; @@ -1822,7 +1821,7 @@ slider_state* shaders::slider_alloc(running_machine &machine, int id, const char state->arg = arg; state->id = id; - strcpy(state->description, title); + state->description = title; return state; } @@ -2126,6 +2125,7 @@ void *shaders::get_slider_option(int id, int index) void shaders::init_slider_list() { m_sliders.clear(); + m_core_sliders.clear(); for (slider* slider : internal_sliders) { @@ -2184,7 +2184,7 @@ void shaders::init_slider_list() break; } - slider_state* core_slider = slider_alloc(*machine, desc->id, name.c_str(), desc->minval, desc->defval, desc->maxval, desc->step, slider_arg); + std::unique_ptr<slider_state> core_slider = slider_alloc(desc->id, name.c_str(), desc->minval, desc->defval, desc->maxval, desc->step, slider_arg); ui::menu_item item; item.text = core_slider->description; @@ -2193,6 +2193,7 @@ void shaders::init_slider_list() item.ref = core_slider; item.type = ui::menu_item_type::SLIDER; m_sliders.push_back(item); + m_core_sliders.push_back(std::move(core_slider)); } } } |