File diff r24528:a7298f737f00 → r24529:3dec691db49a
src/tar_type.h
Show inline comments
 
@@ -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++)