Commit 18980c3

Nick committed on
Fix small memory leak
commit 18980c304728082586040792878fd187e56776f6 parent fe42f47
2 changed files +9−6
Modifiedsymparser.pas +7−4
@@ -18,19 +18,22 @@ procedure WordPokeSymbol(Symbol: String; Value: Word);
18 function PeekSymbol(Symbol: String): Integer; 18 function PeekSymbol(Symbol: String): Integer;
19 procedure PokeSymbol(Symbol: String; Value: Byte); 19 procedure PokeSymbol(Symbol: String; Value: Byte);
20 20
21 function ParseSymFile(F: String): TSymbolMap; 21 procedure ParseSymFile(F: String);
22 22
23 implementation 23 implementation
24 24
25 uses machine; 25 uses machine;
26 26
27 function ParseSymFile(F: String): TSymbolMap; 27 procedure ParseSymFile(F: String);
28 var 28 var
29 SL: TStringList; 29 SL: TStringList;
30 SA: TStringArray; 30 SA: TStringArray;
31 S: String; 31 S: String;
32 begin 32 begin
33 Result := TSymbolMap.Create; 33 if Assigned(SymbolTable) then
34 SymbolTable.Free;
35
36 SymbolTable := TSymbolMap.Create;
34 SL := TStringList.Create; 37 SL := TStringList.Create;
35 try 38 try
36 SL.LoadFromFile(F); 39 SL.LoadFromFile(F);
@@ -41,7 +44,7 @@ begin
41 44
42 for S in SL do begin 45 for S in SL do begin
43 SA := S.Split(' '); 46 SA := S.Split(' ');
44 Result.Add(SA[1], StrToInt('x'+SA[0].Substring(3))); 47 SymbolTable.Add(SA[1], StrToInt('x'+SA[0].Substring(3)));
45 end; 48 end;
46 finally 49 finally
47 SL.Free; 50 SL.Free;
Modifiedtracker.pas +2−2
@@ -919,7 +919,7 @@ var
919 begin 919 begin
920 if RenderPreviewROM(Song) then begin 920 if RenderPreviewROM(Song) then begin
921 // Load the new symbol table 921 // Load the new symbol table
922 SymbolTable := ParseSymFile('hUGEDriver/preview.sym'); 922 ParseSymFile('hUGEDriver/preview.sym');
923 923
924 // Start emulation on the rendered preview binary 924 // Start emulation on the rendered preview binary
925 LockPlayback; 925 LockPlayback;
@@ -2293,7 +2293,7 @@ procedure TfrmTracker.ToolButton10Click(Sender: TObject);
2293 begin 2293 begin
2294 if RenderPreviewROM(Song) then begin 2294 if RenderPreviewROM(Song) then begin
2295 StopPlayback; 2295 StopPlayback;
2296 SymbolTable := ParseSymFile('hUGEDriver/preview.sym'); 2296 ParseSymFile('hUGEDriver/preview.sym');
2297 frmRenderToWave.ShowModal; 2297 frmRenderToWave.ShowModal;
2298 StartPlayback; 2298 StartPlayback;
2299 HaltPlayback; 2299 HaltPlayback;