diff options
Diffstat (limited to 'src/emu/diimage.cpp')
-rw-r--r-- | src/emu/diimage.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp index 6cc9b0fb41a..392da316dbb 100644 --- a/src/emu/diimage.cpp +++ b/src/emu/diimage.cpp @@ -161,27 +161,29 @@ image_error_t device_image_interface::set_image_filename(const char *filename) zippath_parent(m_working_directory, filename); m_basename.assign(m_image_name); - size_t loc1 = m_image_name.find_last_of('\\'); - size_t loc2 = m_image_name.find_last_of('/'); - size_t loc3 = m_image_name.find_last_of(':'); - size_t loc = MAX(loc1,MAX(loc2, loc3)); - if (loc != -1) { + int loc1 = m_image_name.find_last_of('\\'); + int loc2 = m_image_name.find_last_of('/'); + int loc3 = m_image_name.find_last_of(':'); + int loc = MAX(loc1,MAX(loc2,loc3)); + if (loc!=-1) { if (loc == loc3) { // temp workaround for softlists now that m_image_name contains the part name too (e.g. list:gamename:cart) m_basename = m_basename.substr(0, loc); - size_t tmploc = m_basename.find_last_of(':'); - m_basename = m_basename.substr(tmploc + 1, loc - tmploc); + std::string tmpstr = std::string(m_basename); + int tmploc = tmpstr.find_last_of(':'); + m_basename = m_basename.substr(tmploc + 1,loc-tmploc); } else - m_basename = m_basename.substr(loc + 1); + m_basename = m_basename.substr(loc + 1, m_basename.length() - loc); } - m_basename_noext = m_basename; + m_basename_noext = m_basename.assign(m_basename); m_filetype = ""; loc = m_basename_noext.find_last_of('.'); - if (loc != -1) { - m_basename_noext = m_basename_noext.substr(0, loc); - m_filetype = m_basename.substr(loc + 1); + if (loc!=-1) { + m_basename_noext = m_basename_noext.substr(0,loc); + m_filetype = m_basename.assign(m_basename); + m_filetype = m_filetype.substr(loc + 1, m_filetype.length() - loc); } return IMAGE_ERROR_SUCCESS; @@ -1379,7 +1381,7 @@ std::string device_image_interface::software_get_default_slot(const char *defaul ui_menu *device_image_interface::get_selection_menu(running_machine &machine, render_container *container) { - return global_alloc_clear<ui_menu_control_device_image>(machine, container, this); + return auto_alloc_clear(machine, <ui_menu_control_device_image>(machine, container, this)); } /* ----------------------------------------------------------------------- */ |