mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 16:49:20 +02:00
* some memory leaks fixed (thanks to Peter for heaptrc !)
This commit is contained in:
parent
0bccbc5fde
commit
3048845e68
@ -294,6 +294,7 @@ type
|
|||||||
{ label functions }
|
{ label functions }
|
||||||
const
|
const
|
||||||
nextlabelnr : longint = 1;
|
nextlabelnr : longint = 1;
|
||||||
|
countlabelref : boolean = true;
|
||||||
{ convert label to string}
|
{ convert label to string}
|
||||||
function lab2str(l : plabel) : string;
|
function lab2str(l : plabel) : string;
|
||||||
{ make l as a new label }
|
{ make l as a new label }
|
||||||
@ -793,7 +794,9 @@ uses
|
|||||||
else
|
else
|
||||||
lab2str:=target_asm.labelprefix+tostr(l^.nb);
|
lab2str:=target_asm.labelprefix+tostr(l^.nb);
|
||||||
end;
|
end;
|
||||||
inc(l^.refcount);
|
{ inside the WriteTree we must not count the refs PM }
|
||||||
|
if countlabelref then
|
||||||
|
inc(l^.refcount);
|
||||||
l^.is_used:=true;
|
l^.is_used:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -872,7 +875,10 @@ uses
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.19 1998-10-01 20:19:11 jonas
|
Revision 1.20 1998-10-06 17:16:31 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.19 1998/10/01 20:19:11 jonas
|
||||||
+ ait_marker support
|
+ ait_marker support
|
||||||
|
|
||||||
Revision 1.18 1998/09/20 17:11:25 jonas
|
Revision 1.18 1998/09/20 17:11:25 jonas
|
||||||
|
@ -558,6 +558,7 @@ ait_stab_function_name : ;
|
|||||||
AsmWriteLn(#9'ASSUME'#9'CS:_CODE,ES:DGROUP,DS:DGROUP,SS:DGROUP');
|
AsmWriteLn(#9'ASSUME'#9'CS:_CODE,ES:DGROUP,DS:DGROUP,SS:DGROUP');
|
||||||
AsmLn;
|
AsmLn;
|
||||||
|
|
||||||
|
countlabelref:=false;
|
||||||
WriteTree(externals);
|
WriteTree(externals);
|
||||||
{ INTEL ASM doesn't support stabs
|
{ INTEL ASM doesn't support stabs
|
||||||
WriteTree(debuglist);}
|
WriteTree(debuglist);}
|
||||||
@ -567,6 +568,7 @@ ait_stab_function_name : ;
|
|||||||
WriteTree(consts);
|
WriteTree(consts);
|
||||||
WriteTree(rttilist);
|
WriteTree(rttilist);
|
||||||
WriteTree(bsssegment);
|
WriteTree(bsssegment);
|
||||||
|
countlabelref:=true;
|
||||||
|
|
||||||
AsmWriteLn(#9'END');
|
AsmWriteLn(#9'END');
|
||||||
AsmLn;
|
AsmLn;
|
||||||
@ -580,7 +582,10 @@ ait_stab_function_name : ;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.15 1998-10-01 20:19:06 jonas
|
Revision 1.16 1998-10-06 17:16:33 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.15 1998/10/01 20:19:06 jonas
|
||||||
+ ait_marker support
|
+ ait_marker support
|
||||||
|
|
||||||
Revision 1.14 1998/09/20 17:11:21 jonas
|
Revision 1.14 1998/09/20 17:11:21 jonas
|
||||||
|
@ -551,6 +551,7 @@ ait_stab_function_name : ;
|
|||||||
AsmWriteLn('BITS 32');
|
AsmWriteLn('BITS 32');
|
||||||
AsmLn;
|
AsmLn;
|
||||||
|
|
||||||
|
countlabelref:=false;
|
||||||
WriteTree(externals);
|
WriteTree(externals);
|
||||||
{ Nasm doesn't support stabs
|
{ Nasm doesn't support stabs
|
||||||
WriteTree(debuglist);}
|
WriteTree(debuglist);}
|
||||||
@ -560,6 +561,7 @@ ait_stab_function_name : ;
|
|||||||
WriteTree(consts);
|
WriteTree(consts);
|
||||||
WriteTree(rttilist);
|
WriteTree(rttilist);
|
||||||
WriteTree(bsssegment);
|
WriteTree(bsssegment);
|
||||||
|
countlabelref:=true;
|
||||||
|
|
||||||
AsmLn;
|
AsmLn;
|
||||||
{$ifdef EXTDEBUG}
|
{$ifdef EXTDEBUG}
|
||||||
@ -571,7 +573,10 @@ ait_stab_function_name : ;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 1998-10-01 20:19:07 jonas
|
Revision 1.10 1998-10-06 17:16:34 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.9 1998/10/01 20:19:07 jonas
|
||||||
+ ait_marker support
|
+ ait_marker support
|
||||||
|
|
||||||
Revision 1.8 1998/09/20 17:11:22 jonas
|
Revision 1.8 1998/09/20 17:11:22 jonas
|
||||||
|
@ -641,6 +641,7 @@ ait_stab_function_name : funcname:=pai_stab_function_name(hp)^.str;
|
|||||||
{$endif GDB}
|
{$endif GDB}
|
||||||
AsmStartSize:=AsmSize;
|
AsmStartSize:=AsmSize;
|
||||||
|
|
||||||
|
countlabelref:=false;
|
||||||
{ there should be nothing but externals so we don't need to process
|
{ there should be nothing but externals so we don't need to process
|
||||||
WriteTree(externals); }
|
WriteTree(externals); }
|
||||||
|
|
||||||
@ -653,6 +654,7 @@ ait_stab_function_name : funcname:=pai_stab_function_name(hp)^.str;
|
|||||||
Writetree(importssection);
|
Writetree(importssection);
|
||||||
Writetree(exportssection);
|
Writetree(exportssection);
|
||||||
Writetree(resourcesection);
|
Writetree(resourcesection);
|
||||||
|
countlabelref:=true;
|
||||||
|
|
||||||
AsmLn;
|
AsmLn;
|
||||||
{$ifdef EXTDEBUG}
|
{$ifdef EXTDEBUG}
|
||||||
@ -664,7 +666,10 @@ ait_stab_function_name : funcname:=pai_stab_function_name(hp)^.str;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.13 1998-10-01 20:19:08 jonas
|
Revision 1.14 1998-10-06 17:16:36 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.13 1998/10/01 20:19:08 jonas
|
||||||
+ ait_marker support
|
+ ait_marker support
|
||||||
|
|
||||||
Revision 1.12 1998/09/28 16:57:09 pierre
|
Revision 1.12 1998/09/28 16:57:09 pierre
|
||||||
|
@ -619,6 +619,7 @@ ait_stab_function_name : funcname:=pai_stab_function_name(hp)^.str;
|
|||||||
{ to get symify to work }
|
{ to get symify to work }
|
||||||
AsmWriteLn(#9'.file "'+FixFileName(n+e)+'"');
|
AsmWriteLn(#9'.file "'+FixFileName(n+e)+'"');
|
||||||
|
|
||||||
|
countlabelref:=false;
|
||||||
{ there should be nothing but externals so we don't need to process
|
{ there should be nothing but externals so we don't need to process
|
||||||
WriteTree(externals); }
|
WriteTree(externals); }
|
||||||
|
|
||||||
@ -631,6 +632,7 @@ ait_stab_function_name : funcname:=pai_stab_function_name(hp)^.str;
|
|||||||
Writetree(importssection);
|
Writetree(importssection);
|
||||||
Writetree(exportssection);
|
Writetree(exportssection);
|
||||||
Writetree(resourcesection);
|
Writetree(resourcesection);
|
||||||
|
countlabelref:=true;
|
||||||
|
|
||||||
AsmLn;
|
AsmLn;
|
||||||
{$ifdef EXTDEBUG}
|
{$ifdef EXTDEBUG}
|
||||||
@ -642,7 +644,10 @@ ait_stab_function_name : funcname:=pai_stab_function_name(hp)^.str;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.11 1998-10-01 20:19:09 jonas
|
Revision 1.12 1998-10-06 17:16:37 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.11 1998/10/01 20:19:09 jonas
|
||||||
+ ait_marker support
|
+ ait_marker support
|
||||||
|
|
||||||
Revision 1.10 1998/09/28 16:57:11 pierre
|
Revision 1.10 1998/09/28 16:57:11 pierre
|
||||||
|
@ -500,6 +500,7 @@ ait_labeled_instruction :
|
|||||||
comment(v_info,'Start writing motorola-styled assembler output for '+current_module^.mainsource^);
|
comment(v_info,'Start writing motorola-styled assembler output for '+current_module^.mainsource^);
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
|
countlabelref:=false;
|
||||||
WriteTree(externals);
|
WriteTree(externals);
|
||||||
{ WriteTree(debuglist);}
|
{ WriteTree(debuglist);}
|
||||||
WriteTree(codesegment);
|
WriteTree(codesegment);
|
||||||
@ -510,6 +511,7 @@ ait_labeled_instruction :
|
|||||||
Writetree(importssection);
|
Writetree(importssection);
|
||||||
Writetree(exportssection);
|
Writetree(exportssection);
|
||||||
Writetree(resourcesection);
|
Writetree(resourcesection);
|
||||||
|
countlabelref:=true;
|
||||||
|
|
||||||
AsmLn;
|
AsmLn;
|
||||||
AsmWriteLn(#9'END');
|
AsmWriteLn(#9'END');
|
||||||
@ -524,7 +526,10 @@ ait_labeled_instruction :
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 1998-10-01 20:19:10 jonas
|
Revision 1.10 1998-10-06 17:16:38 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.9 1998/10/01 20:19:10 jonas
|
||||||
+ ait_marker support
|
+ ait_marker support
|
||||||
|
|
||||||
Revision 1.8 1998/09/16 01:08:08 carl
|
Revision 1.8 1998/09/16 01:08:08 carl
|
||||||
|
@ -580,6 +580,8 @@ implementation
|
|||||||
{$endif SUPPORT_MMX}
|
{$endif SUPPORT_MMX}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
freelabel(truelabel);
|
||||||
|
freelabel(falselabel);
|
||||||
truelabel:=otlabel;
|
truelabel:=otlabel;
|
||||||
falselabel:=oflabel;
|
falselabel:=oflabel;
|
||||||
{ push from right to left }
|
{ push from right to left }
|
||||||
@ -1442,6 +1444,8 @@ implementation
|
|||||||
addr_correction:=-addr_correction;
|
addr_correction:=-addr_correction;
|
||||||
st^.foreach(correct_address);
|
st^.foreach(correct_address);
|
||||||
aktprocsym:=oldprocsym;
|
aktprocsym:=oldprocsym;
|
||||||
|
freelabel(aktexitlabel);
|
||||||
|
freelabel(aktexit2label);
|
||||||
aktexitlabel:=oldexitlabel;
|
aktexitlabel:=oldexitlabel;
|
||||||
aktexit2label:=oldexit2label;
|
aktexit2label:=oldexit2label;
|
||||||
quickexitlabel:=oldquickexitlabel;
|
quickexitlabel:=oldquickexitlabel;
|
||||||
@ -1453,7 +1457,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.32 1998-10-01 09:22:52 peter
|
Revision 1.33 1998-10-06 17:16:39 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.32 1998/10/01 09:22:52 peter
|
||||||
* fixed value openarray
|
* fixed value openarray
|
||||||
* ungettemp of arrayconstruct
|
* ungettemp of arrayconstruct
|
||||||
|
|
||||||
|
@ -983,6 +983,8 @@ implementation
|
|||||||
else
|
else
|
||||||
internalerror(10061);
|
internalerror(10061);
|
||||||
end;
|
end;
|
||||||
|
freelabel(truelabel);
|
||||||
|
freelabel(falselabel);
|
||||||
truelabel:=oldtruelabel;
|
truelabel:=oldtruelabel;
|
||||||
falselabel:=oldfalselabel;
|
falselabel:=oldfalselabel;
|
||||||
end;
|
end;
|
||||||
@ -1310,7 +1312,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.26 1998-10-02 07:20:35 florian
|
Revision 1.27 1998-10-06 17:16:40 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.26 1998/10/02 07:20:35 florian
|
||||||
* range checking in units doesn't work if the units are smartlinked, fixed
|
* range checking in units doesn't work if the units are smartlinked, fixed
|
||||||
|
|
||||||
Revision 1.25 1998/09/30 12:14:24 peter
|
Revision 1.25 1998/09/30 12:14:24 peter
|
||||||
|
@ -97,6 +97,9 @@ implementation
|
|||||||
secondpass(p^.left);
|
secondpass(p^.left);
|
||||||
maketojumpbool(p^.left);
|
maketojumpbool(p^.left);
|
||||||
emitl(A_LABEL,lbreak);
|
emitl(A_LABEL,lbreak);
|
||||||
|
freelabel(lloop);
|
||||||
|
freelabel(lcont);
|
||||||
|
freelabel(lbreak);
|
||||||
truelabel:=otlabel;
|
truelabel:=otlabel;
|
||||||
falselabel:=oflabel;
|
falselabel:=oflabel;
|
||||||
|
|
||||||
@ -145,6 +148,8 @@ implementation
|
|||||||
emitl(A_LABEL,falselabel);
|
emitl(A_LABEL,falselabel);
|
||||||
if not(assigned(p^.right)) then
|
if not(assigned(p^.right)) then
|
||||||
emitl(A_LABEL,truelabel);
|
emitl(A_LABEL,truelabel);
|
||||||
|
freelabel(truelabel);
|
||||||
|
freelabel(falselabel);
|
||||||
truelabel:=otlabel;
|
truelabel:=otlabel;
|
||||||
falselabel:=oflabel;
|
falselabel:=oflabel;
|
||||||
end;
|
end;
|
||||||
@ -346,6 +351,9 @@ implementation
|
|||||||
if temptovalue then
|
if temptovalue then
|
||||||
ungetiftemp(temp1);
|
ungetiftemp(temp1);
|
||||||
|
|
||||||
|
freelabel(aktcontinuelabel);
|
||||||
|
freelabel(aktbreaklabel);
|
||||||
|
freelabel(l3);
|
||||||
aktcontinuelabel:=oldclabel;
|
aktcontinuelabel:=oldclabel;
|
||||||
aktbreaklabel:=oldblabel;
|
aktbreaklabel:=oldblabel;
|
||||||
end;
|
end;
|
||||||
@ -436,6 +444,8 @@ implementation
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
do_jmp:
|
do_jmp:
|
||||||
|
freelabel(truelabel);
|
||||||
|
freelabel(falselabel);
|
||||||
truelabel:=otlabel;
|
truelabel:=otlabel;
|
||||||
falselabel:=oflabel;
|
falselabel:=oflabel;
|
||||||
emitl(A_JMP,aktexit2label);
|
emitl(A_JMP,aktexit2label);
|
||||||
@ -609,6 +619,10 @@ do_jmp:
|
|||||||
else
|
else
|
||||||
emitcall('FPC_RERAISE',true);
|
emitcall('FPC_RERAISE',true);
|
||||||
emitl(A_LABEL,endexceptlabel);
|
emitl(A_LABEL,endexceptlabel);
|
||||||
|
freelabel(exceptlabel);
|
||||||
|
freelabel(doexceptlabel);
|
||||||
|
freelabel(endexceptlabel);
|
||||||
|
freelabel(lastonlabel);
|
||||||
endexceptlabel:=oldendexceptlabel;
|
endexceptlabel:=oldendexceptlabel;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -724,7 +738,10 @@ do_jmp:
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.19 1998-09-28 12:13:53 peter
|
Revision 1.20 1998-10-06 17:16:42 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.19 1998/09/28 12:13:53 peter
|
||||||
* fixed repeat continue until true;
|
* fixed repeat continue until true;
|
||||||
|
|
||||||
Revision 1.18 1998/09/26 15:03:04 florian
|
Revision 1.18 1998/09/26 15:03:04 florian
|
||||||
|
@ -508,6 +508,8 @@ implementation
|
|||||||
newreference(p^.left^.location.reference))));
|
newreference(p^.left^.location.reference))));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
freelabel(truelabel);
|
||||||
|
freelabel(falselabel);
|
||||||
truelabel:=otlabel;
|
truelabel:=otlabel;
|
||||||
falselabel:=oflabel;
|
falselabel:=oflabel;
|
||||||
end;
|
end;
|
||||||
@ -731,7 +733,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.22 1998-10-01 09:22:53 peter
|
Revision 1.23 1998-10-06 17:16:44 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.22 1998/10/01 09:22:53 peter
|
||||||
* fixed value openarray
|
* fixed value openarray
|
||||||
* ungettemp of arrayconstruct
|
* ungettemp of arrayconstruct
|
||||||
|
|
||||||
|
@ -120,7 +120,11 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
{ Free memory }
|
{ Free memory }
|
||||||
DoneSymtable;
|
DoneSymtable;
|
||||||
|
DoneGlobals;
|
||||||
|
linker.done;
|
||||||
CompilerInited:=false;
|
CompilerInited:=false;
|
||||||
|
doneparser;
|
||||||
|
DoneImport;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -212,13 +216,18 @@ begin
|
|||||||
Compile:=0
|
Compile:=0
|
||||||
else
|
else
|
||||||
Compile:=1;
|
Compile:=1;
|
||||||
|
{ no message possible after this !! }
|
||||||
|
DoneVerbose;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 1998-09-01 09:00:27 peter
|
Revision 1.9 1998-10-06 17:16:46 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.8 1998/09/01 09:00:27 peter
|
||||||
- removed tempheap creation/restore
|
- removed tempheap creation/restore
|
||||||
|
|
||||||
Revision 1.7 1998/09/01 07:54:17 pierre
|
Revision 1.7 1998/09/01 07:54:17 pierre
|
||||||
|
@ -185,7 +185,7 @@ unit files;
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
dos,verbose,systems;
|
dos,verbose,symtable,systems;
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
TINPUTFILE
|
TINPUTFILE
|
||||||
@ -882,6 +882,8 @@ unit files;
|
|||||||
stringdispose(modulename);
|
stringdispose(modulename);
|
||||||
stringdispose(mainsource);
|
stringdispose(mainsource);
|
||||||
stringdispose(asmprefix);
|
stringdispose(asmprefix);
|
||||||
|
if assigned(symtable) then
|
||||||
|
dispose(punitsymtable(symtable),done);
|
||||||
inherited done;
|
inherited done;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -925,7 +927,10 @@ unit files;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.50 1998-09-30 16:43:34 peter
|
Revision 1.51 1998-10-06 17:16:47 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.50 1998/09/30 16:43:34 peter
|
||||||
* fixed unit interdependency with circular uses
|
* fixed unit interdependency with circular uses
|
||||||
|
|
||||||
Revision 1.49 1998/09/28 16:57:20 pierre
|
Revision 1.49 1998/09/28 16:57:20 pierre
|
||||||
|
@ -273,6 +273,7 @@ implementation
|
|||||||
dispose(datasegment,done);
|
dispose(datasegment,done);
|
||||||
dispose(debuglist,done);
|
dispose(debuglist,done);
|
||||||
dispose(externals,done);
|
dispose(externals,done);
|
||||||
|
dispose(internals,done);
|
||||||
dispose(consts,done);
|
dispose(consts,done);
|
||||||
dispose(rttilist,done);
|
dispose(rttilist,done);
|
||||||
if assigned(importssection) then
|
if assigned(importssection) then
|
||||||
@ -383,7 +384,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.17 1998-09-17 09:42:37 peter
|
Revision 1.18 1998-10-06 17:16:50 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.17 1998/09/17 09:42:37 peter
|
||||||
+ pass_2 for cg386
|
+ pass_2 for cg386
|
||||||
* Message() -> CGMessage() for pass_1/pass_2
|
* Message() -> CGMessage() for pass_1/pass_2
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@ var
|
|||||||
importlib : pimportlib;
|
importlib : pimportlib;
|
||||||
|
|
||||||
procedure InitImport;
|
procedure InitImport;
|
||||||
|
procedure DoneImport;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -137,6 +138,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure DoneImport;
|
||||||
|
begin
|
||||||
|
if assigned(importlib) then
|
||||||
|
dispose(importlib,done);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure InitImport;
|
procedure InitImport;
|
||||||
begin
|
begin
|
||||||
{$ifdef i386}
|
{$ifdef i386}
|
||||||
@ -156,7 +163,10 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.4 1998-09-30 12:16:47 peter
|
Revision 1.5 1998-10-06 17:16:51 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.4 1998/09/30 12:16:47 peter
|
||||||
* remove extension if one is specified
|
* remove extension if one is specified
|
||||||
|
|
||||||
Revision 1.3 1998/06/04 23:51:43 peter
|
Revision 1.3 1998/06/04 23:51:43 peter
|
||||||
|
@ -119,6 +119,9 @@ end;
|
|||||||
|
|
||||||
Destructor TLinker.Done;
|
Destructor TLinker.Done;
|
||||||
begin
|
begin
|
||||||
|
ObjectFiles.Done;
|
||||||
|
SharedLibFiles.Done;
|
||||||
|
StaticLibFiles.Done;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -502,7 +505,10 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.26 1998-09-29 15:23:05 peter
|
Revision 1.27 1998-10-06 17:16:52 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.26 1998/09/29 15:23:05 peter
|
||||||
* remove also the end files for smartlinking
|
* remove also the end files for smartlinking
|
||||||
|
|
||||||
Revision 1.25 1998/09/10 15:25:31 daniel
|
Revision 1.25 1998/09/10 15:25:31 daniel
|
||||||
|
@ -29,6 +29,7 @@ unit parser;
|
|||||||
|
|
||||||
procedure compile(const filename:string;compile_system:boolean);
|
procedure compile(const filename:string;compile_system:boolean);
|
||||||
procedure initparser;
|
procedure initparser;
|
||||||
|
procedure doneparser;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -76,6 +77,11 @@ unit parser;
|
|||||||
stacksize:=target_info.stacksize;
|
stacksize:=target_info.stacksize;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure doneparser;
|
||||||
|
begin
|
||||||
|
loaded_units.done;
|
||||||
|
usedunits.done;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure default_macros;
|
procedure default_macros;
|
||||||
var
|
var
|
||||||
@ -361,7 +367,10 @@ unit parser;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.54 1998-10-05 21:33:23 peter
|
Revision 1.55 1998-10-06 17:16:53 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.54 1998/10/05 21:33:23 peter
|
||||||
* fixed 161,165,166,167,168
|
* fixed 161,165,166,167,168
|
||||||
|
|
||||||
Revision 1.53 1998/09/30 16:43:36 peter
|
Revision 1.53 1998/09/30 16:43:36 peter
|
||||||
|
@ -880,6 +880,7 @@ unit pmodules;
|
|||||||
end;
|
end;
|
||||||
consume(SEMICOLON);
|
consume(SEMICOLON);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ global switches are read, so further changes aren't allowed }
|
{ global switches are read, so further changes aren't allowed }
|
||||||
current_module^.in_global:=false;
|
current_module^.in_global:=false;
|
||||||
{ set implementation flag }
|
{ set implementation flag }
|
||||||
@ -1001,7 +1002,10 @@ unit pmodules;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.59 1998-10-05 21:33:26 peter
|
Revision 1.60 1998-10-06 17:16:54 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.59 1998/10/05 21:33:26 peter
|
||||||
* fixed 161,165,166,167,168
|
* fixed 161,165,166,167,168
|
||||||
|
|
||||||
Revision 1.58 1998/09/30 16:43:37 peter
|
Revision 1.58 1998/09/30 16:43:37 peter
|
||||||
|
@ -2207,6 +2207,8 @@
|
|||||||
dispose(parast,done);
|
dispose(parast,done);
|
||||||
if assigned(localst) then
|
if assigned(localst) then
|
||||||
dispose(localst,done);
|
dispose(localst,done);
|
||||||
|
if assigned(code) and ((options and poinline) <> 0) then
|
||||||
|
disposetree(ptree(code));
|
||||||
if
|
if
|
||||||
{$ifdef tp}
|
{$ifdef tp}
|
||||||
not(use_big) and
|
not(use_big) and
|
||||||
@ -3073,7 +3075,10 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.54 1998-10-05 21:33:28 peter
|
Revision 1.55 1998-10-06 17:16:55 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.54 1998/10/05 21:33:28 peter
|
||||||
* fixed 161,165,166,167,168
|
* fixed 161,165,166,167,168
|
||||||
|
|
||||||
Revision 1.53 1998/10/05 12:48:39 pierre
|
Revision 1.53 1998/10/05 12:48:39 pierre
|
||||||
|
@ -1596,7 +1596,7 @@
|
|||||||
begin
|
begin
|
||||||
if definition^.sym=nil then
|
if definition^.sym=nil then
|
||||||
definition^.sym:=@self;
|
definition^.sym:=@self;
|
||||||
if definition^.deftype=recorddef then
|
if (definition^.deftype=recorddef) and assigned(precdef(definition)^.symtable) then
|
||||||
precdef(definition)^.symtable^.name:=stringdup('record '+name);
|
precdef(definition)^.symtable^.name:=stringdup('record '+name);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -1719,7 +1719,10 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.49 1998-10-01 09:22:55 peter
|
Revision 1.50 1998-10-06 17:16:56 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.49 1998/10/01 09:22:55 peter
|
||||||
* fixed value openarray
|
* fixed value openarray
|
||||||
* ungettemp of arrayconstruct
|
* ungettemp of arrayconstruct
|
||||||
|
|
||||||
|
@ -77,6 +77,7 @@ procedure Message2(w:tmsgconst;const s1,s2:string);
|
|||||||
procedure Message3(w:tmsgconst;const s1,s2,s3:string);
|
procedure Message3(w:tmsgconst;const s1,s2,s3:string);
|
||||||
|
|
||||||
procedure InitVerbose;
|
procedure InitVerbose;
|
||||||
|
procedure DoneVerbose;
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -403,6 +404,12 @@ begin
|
|||||||
Status.MaxErrorCount:=50;
|
Status.MaxErrorCount:=50;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure DoneVerbose;
|
||||||
|
begin
|
||||||
|
if not(msg=nil) then
|
||||||
|
dispose(msg,Done);
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
{$ifndef EXTERN_MSG}
|
{$ifndef EXTERN_MSG}
|
||||||
msg:=new(pmessage,Init(@msgtxt,ord(endmsgconst)));
|
msg:=new(pmessage,Init(@msgtxt,ord(endmsgconst)));
|
||||||
@ -413,7 +420,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.22 1998-10-05 13:51:36 peter
|
Revision 1.23 1998-10-06 17:17:01 pierre
|
||||||
|
* some memory leaks fixed (thanks to Peter for heaptrc !)
|
||||||
|
|
||||||
|
Revision 1.22 1998/10/05 13:51:36 peter
|
||||||
* if maxerrorcount is reached display a msg
|
* if maxerrorcount is reached display a msg
|
||||||
|
|
||||||
Revision 1.21 1998/09/28 16:57:30 pierre
|
Revision 1.21 1998/09/28 16:57:30 pierre
|
||||||
|
Loading…
Reference in New Issue
Block a user