Browse Source

* last memory leaks found when compiler
a native atari compiler fixed

pierre 27 years ago
parent
commit
397be1fe09
3 changed files with 23 additions and 5 deletions
  1. 7 1
      compiler/cg68kcal.pas
  2. 8 2
      compiler/cg68kcnv.pas
  3. 8 2
      compiler/cg68kset.pas

+ 7 - 1
compiler/cg68kcal.pas

@@ -511,6 +511,8 @@ implementation
                    p^.methodpointer:=genzeronode(callparan);
                    p^.methodpointer:=genzeronode(callparan);
                    p^.methodpointer^.location.loc:=LOC_REGISTER;
                    p^.methodpointer^.location.loc:=LOC_REGISTER;
                    p^.methodpointer^.location.register:=R_A5;
                    p^.methodpointer^.location.register:=R_A5;
+                   { change dispose type !! }
+                   p^.disposetyp:=dt_mbleft_and_method;
                    { make a reference }
                    { make a reference }
                    new(r);
                    new(r);
                    reset_reference(r^);
                    reset_reference(r^);
@@ -1047,7 +1049,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.9  1998-10-14 11:28:16  florian
+  Revision 1.10  1998-10-15 12:41:16  pierre
+    * last memory leaks found when compiler
+      a native atari compiler fixed
+
+  Revision 1.9  1998/10/14 11:28:16  florian
     * emitpushreferenceaddress gets now the asmlist as parameter
     * emitpushreferenceaddress gets now the asmlist as parameter
     * m68k version compiles with -duseansistrings
     * m68k version compiles with -duseansistrings
 
 

+ 8 - 2
compiler/cg68kcnv.pas

@@ -1026,7 +1026,7 @@ implementation
      procedure second_proc_to_procvar(p,hp : ptree;convtyp : tconverttype);
      procedure second_proc_to_procvar(p,hp : ptree;convtyp : tconverttype);
 
 
      begin
      begin
-        secondpass(hp);
+        { secondpass(hp); already done in secondtypeconv PM }
         clear_location(p^.location);
         clear_location(p^.location);
         p^.location.loc:=LOC_REGISTER;
         p^.location.loc:=LOC_REGISTER;
         del_reference(hp^.location.reference);
         del_reference(hp^.location.reference);
@@ -1142,6 +1142,8 @@ implementation
          else
          else
            internalerror(10061);
            internalerror(10061);
          end;
          end;
+         freelabel(truelabel);
+         freelabel(falselabel);
          truelabel:=oldtruelabel;
          truelabel:=oldtruelabel;
          falselabel:=oldfalselabel;
          falselabel:=oldfalselabel;
      end;
      end;
@@ -1396,7 +1398,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.9  1998-10-14 11:28:17  florian
+  Revision 1.10  1998-10-15 12:41:17  pierre
+    * last memory leaks found when compiler
+      a native atari compiler fixed
+
+  Revision 1.9  1998/10/14 11:28:17  florian
     * emitpushreferenceaddress gets now the asmlist as parameter
     * emitpushreferenceaddress gets now the asmlist as parameter
     * m68k version compiles with -duseansistrings
     * m68k version compiles with -duseansistrings
 
 

+ 8 - 2
compiler/cg68kset.pas

@@ -453,7 +453,9 @@ implementation
                            { the complex one first }
                            { the complex one first }
                            firstcomplex(p);
                            firstcomplex(p);
                            secondpass(p^.left);
                            secondpass(p^.left);
-                           set_location(p^.location,p^.left^.location);
+                           {
+                           unnecessary !! PM
+                           set_location(p^.location,p^.left^.location);}
                            { are too few registers free? }
                            { are too few registers free? }
                            pushed:=maybe_push(p^.right^.registers32,p);
                            pushed:=maybe_push(p^.right^.registers32,p);
                            secondpass(p^.right);
                            secondpass(p^.right);
@@ -812,7 +814,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.6  1998-10-13 16:50:11  pierre
+  Revision 1.7  1998-10-15 12:41:19  pierre
+    * last memory leaks found when compiler
+      a native atari compiler fixed
+
+  Revision 1.6  1998/10/13 16:50:11  pierre
     * undid some changes of Peter that made the compiler wrong
     * undid some changes of Peter that made the compiler wrong
       for m68k (I had to reinsert some ifdefs)
       for m68k (I had to reinsert some ifdefs)
     * removed several memory leaks under m68k
     * removed several memory leaks under m68k