index 0e383c3a565d8317103f87a0170500f4945f7eff..bcb7da293ab8dfda54a19c0c3142d53e657302d7 100644 (file)
procedure g_DeleteFile (wad: String; backupPostfix: String = '.bak');
var newwad: String;
begin
+ SFSGCCollect;
+ SFSGCCollect;
+ SFSGCCollect;
if Backup then
begin
if FileExists(wad) then
begin
newwad := wad + backupPostfix;
if FileExists(newwad) then
- ASSERT(DeleteFile(newwad));
- ASSERT(RenameFile(wad, newwad))
+ ASSERT(DeleteFile(newwad), 'Can''t delete file ' + newwad);
+ ASSERT(RenameFile(wad, newwad), 'Can''t rename file ' + wad + ' -> ' + newwad)
end
end
else
begin
if FileExists(wad) then
- ASSERT(DeleteFile(wad))
+ ASSERT(DeleteFile(wad), 'Can''t delete file ' + newwad)
end
end;
var f: TWADEditor_1;
begin
res := 1; (* error *)
- wad := utf2win(wad);
section := utf2win(NoTrailing(section));
name := utf2win(name);
ASSERT(name <> '');
path := NoTrailing(list.Files[i].path);
if (path <> section) or (list.Files[i].name <> name) then
begin
- g_ReadResource(wad, path, list.Files[i].name, data0, len0);
+ g_ReadResource(wad, win2utf(path), win2utf(list.Files[i].name), data0, len0);
ASSERT(data0 <> nil);
if path = '' then
path := list.Files[i].name
ts.Free;
g_DeleteFile(wad);
- ASSERT(RenameFile(tmp, wad));
+ ASSERT(RenameFile(tmp, wad), 'Can''t rename file ' + tmp + ' -> ' + wad);
res := 0
end;
path := NoTrailing(list.Files[i].path);
if (path <> section) or (list.Files[i].name <> name) then
begin
- g_ReadResource(wad, path, list.Files[i].name, data0, len0);
+ g_ReadResource(wad, win2utf(path), win2utf(list.Files[i].name), data0, len0);
ASSERT(data0 <> nil);
if path = '' then
path := list.Files[i].name
ts.Free;
g_DeleteFile(wad);
- ASSERT(RenameFile(tmp, wad));
+ ASSERT(RenameFile(tmp, wad), 'Can''t rename file ' + tmp + ' -> ' + wad);
res := 0
end;
for i := 0 to len - 1 do
data[i] := stream1.ReadByte();
stream1.Destroy
+ //stream0.Destroy (* leads to memory corruption, it destroyed with stream1? *)
+ end
+ else
+ begin
+ stream0.Destroy
end
end
- end
- else
- begin
- stream0.Destroy
+ else
+ begin
+ stream0.Destroy
+ end
end
end;
SFSGCCollect