Bläddra i källkod

Fix cycling with -dTest_Double_checksum option

git-svn-id: trunk@34570 -
pierre 8 år sedan
förälder
incheckning
3360410c35
1 ändrade filer med 15 tillägg och 12 borttagningar
  1. 15 12
      compiler/ppu.pas

+ 15 - 12
compiler/ppu.pas

@@ -134,7 +134,7 @@ type
     do_indirect_crc  : boolean;
     do_indirect_crc  : boolean;
     crc_only         : boolean;    { used to calculate interface_crc before implementation }
     crc_only         : boolean;    { used to calculate interface_crc before implementation }
     constructor Create(const fn:string);
     constructor Create(const fn:string);
-    procedure closefile;override;
+    destructor destroy;override;
     function  CheckPPUId:boolean;
     function  CheckPPUId:boolean;
   {read}
   {read}
   { nothing special currently }
   { nothing special currently }
@@ -173,24 +173,27 @@ constructor tppufile.Create(const fn:string);
 begin
 begin
   inherited Create(fn);
   inherited Create(fn);
   crc_only:=false;
   crc_only:=false;
+{$ifdef Test_Double_checksum}
+  if not assigned(crc_test) then
+    new(crc_test);
+  if not assigned(crc_test2) then
+    new(crc_test2);
+{$endif Test_Double_checksum}
 end;
 end;
 
 
-
-procedure tppufile.closefile;
+destructor tppufile.destroy;
 begin
 begin
 {$ifdef Test_Double_checksum}
 {$ifdef Test_Double_checksum}
-  if mode=2 then
-   begin
-     if assigned(crc_test) then
-      dispose(crc_test);
-     if assigned(crc_test2) then
-      dispose(crc_test2);
-   end;
+  if assigned(crc_test) then
+    dispose(crc_test);
+  crc_test:=nil;
+  if assigned(crc_test2) then
+    dispose(crc_test2);
+  crc_test2:=nil;
 {$endif Test_Double_checksum}
 {$endif Test_Double_checksum}
-  inherited closefile;
+  inherited destroy;
 end;
 end;
 
 
-
 function tppufile.CheckPPUId:boolean;
 function tppufile.CheckPPUId:boolean;
 begin
 begin
   CheckPPUId:=((Header.common.Id[1]='P') and
   CheckPPUId:=((Header.common.Id[1]='P') and