summaryrefslogtreecommitdiff
path: root/src/fileio.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-07-23 21:42:55 +0000
committerrubidium <rubidium@openttd.org>2008-07-23 21:42:55 +0000
commit81c50c6c325adcf771f000190d53ab911d83d2f6 (patch)
tree5f7e724fed8e39f3f83257b35a23af0c6089b3ab /src/fileio.cpp
parenta050a7852518c4443e41021dead24f8fc3bfb726 (diff)
downloadopenttd-81c50c6c325adcf771f000190d53ab911d83d2f6.tar.xz
(svn r13810) -Fix: small memory leak when tar files would be found.
Diffstat (limited to 'src/fileio.cpp')
-rw-r--r--src/fileio.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/fileio.cpp b/src/fileio.cpp
index 1f96e7318..c1dafab91 100644
--- a/src/fileio.cpp
+++ b/src/fileio.cpp
@@ -337,7 +337,7 @@ FILE *FioFOpenFileSp(const char *filename, const char *mode, Searchpath sp, Subd
FILE *FioFOpenFileTar(TarFileListEntry *entry, size_t *filesize)
{
- FILE *f = fopen(entry->tar->filename, "rb");
+ FILE *f = fopen(entry->tar_filename, "rb");
assert(f != NULL);
fseek(f, entry->position, SEEK_SET);
@@ -513,9 +513,8 @@ static bool TarListAddFile(const char *filename)
FILE *f = fopen(filename, "rb");
assert(f != NULL);
- TarListEntry *tar_entry = MallocT<TarListEntry>(1);
- tar_entry->filename = strdup(filename);
- _tar_list.insert(TarList::value_type(filename, tar_entry));
+ const char *dupped_filename = strdup(filename);
+ _tar_list[filename].filename = dupped_filename;
TarLinkList links; ///< Temporary list to collect links
@@ -575,9 +574,9 @@ static bool TarListAddFile(const char *filename)
/* Store this entry in the list */
TarFileListEntry entry;
- entry.tar = tar_entry;
- entry.size = skip;
- entry.position = pos;
+ entry.tar_filename = dupped_filename;
+ entry.size = skip;
+ entry.position = pos;
/* Convert to lowercase and our PATHSEPCHAR */
SimplifyFileName(name);