diff options
author | Michael Lutz <michi@icosahedron.de> | 2020-12-06 21:11:50 +0100 |
---|---|---|
committer | Michael Lutz <michi@icosahedron.de> | 2020-12-27 13:19:25 +0100 |
commit | b408fe77f792650ef569f9852165759f960fd52f (patch) | |
tree | 6d1f0a134da31bd1d53dee052721d78955d688e6 /src/tar_type.h | |
parent | 358056ec428d1938b8c9219a60c6fb400115f152 (diff) | |
download | openttd-b408fe77f792650ef569f9852165759f960fd52f.tar.xz |
Codechange: Use std::string in file scanners.
Diffstat (limited to 'src/tar_type.h')
-rw-r--r-- | src/tar_type.h | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/src/tar_type.h b/src/tar_type.h index e428bc249..c4e72df85 100644 --- a/src/tar_type.h +++ b/src/tar_type.h @@ -12,30 +12,20 @@ #include <map> #include <string> +#include <array> #include "fileio_type.h" -/** The define of a TarList. */ -struct TarListEntry { - const char *filename; - const char *dirname; - - /* MSVC goes copying around this struct after initialisation, so it tries - * to free filename, which isn't set at that moment... but because it - * initializes the variable with garbage, it's going to segfault. */ - TarListEntry() : filename(nullptr), dirname(nullptr) {} - ~TarListEntry() { free(this->filename); free(this->dirname); } -}; struct TarFileListEntry { - const char *tar_filename; + std::string tar_filename; size_t size; size_t position; }; -typedef std::map<std::string, TarListEntry> TarList; +typedef std::map<std::string, std::string> TarList; ///< Map of tar file to tar directory. typedef std::map<std::string, TarFileListEntry> TarFileList; -extern TarList _tar_list[NUM_SUBDIRS]; +extern std::array<TarList, NUM_SUBDIRS> _tar_list; extern TarFileList _tar_filelist[NUM_SUBDIRS]; #define FOR_ALL_TARS(tar, sd) for (tar = _tar_filelist[sd].begin(); tar != _tar_filelist[sd].end(); tar++) |