mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 17:09:10 +02:00
* fixed memory leaks
This commit is contained in:
parent
aad3a801bd
commit
4b17f6f0ff
@ -118,7 +118,11 @@ uses
|
|||||||
{$else Delphi}
|
{$else Delphi}
|
||||||
dos,
|
dos,
|
||||||
{$endif Delphi}
|
{$endif Delphi}
|
||||||
cobjects,globals;
|
cobjects,globals
|
||||||
|
{$ifdef heaptrc}
|
||||||
|
,fmodule
|
||||||
|
{$endif heaptrc}
|
||||||
|
;
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
TINPUTFILE
|
TINPUTFILE
|
||||||
@ -564,7 +568,10 @@ uses
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2000-09-24 15:06:16 peter
|
Revision 1.3 2000-10-14 21:52:54 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.2 2000/09/24 15:06:16 peter
|
||||||
* use defines.inc
|
* use defines.inc
|
||||||
|
|
||||||
Revision 1.1 2000/08/27 16:11:50 peter
|
Revision 1.1 2000/08/27 16:11:50 peter
|
||||||
|
@ -702,6 +702,7 @@ implementation
|
|||||||
secondpass(hightree);
|
secondpass(hightree);
|
||||||
emit_mov_loc_ref(hightree.location,href,S_L,true);
|
emit_mov_loc_ref(hightree.location,href,S_L,true);
|
||||||
hightree.free;
|
hightree.free;
|
||||||
|
hightree:=nil;
|
||||||
end;
|
end;
|
||||||
emitrangecheck(right,left.resulttype);
|
emitrangecheck(right,left.resulttype);
|
||||||
end;
|
end;
|
||||||
@ -1016,7 +1017,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.1 2000-10-14 10:14:49 peter
|
Revision 1.2 2000-10-14 21:52:54 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.1 2000/10/14 10:14:49 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
}
|
}
|
@ -55,8 +55,9 @@ implementation
|
|||||||
globtype,globals,systems,verbose,
|
globtype,globals,systems,verbose,
|
||||||
cutils,cobjects,
|
cutils,cobjects,
|
||||||
aasm,cpubase,cpuasm,
|
aasm,cpubase,cpuasm,
|
||||||
|
symconst,
|
||||||
{$ifdef GDB}
|
{$ifdef GDB}
|
||||||
gdb,symconst,
|
gdb,
|
||||||
{$endif GDB}
|
{$endif GDB}
|
||||||
types,
|
types,
|
||||||
ncon,nld,
|
ncon,nld,
|
||||||
@ -1148,6 +1149,7 @@ implementation
|
|||||||
secondpass(hightree);
|
secondpass(hightree);
|
||||||
push_value_para(hightree,false,false,0,4);
|
push_value_para(hightree,false,false,0,4);
|
||||||
hightree.free;
|
hightree.free;
|
||||||
|
hightree:=nil;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@ -1313,7 +1315,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2000-10-14 10:14:50 peter
|
Revision 1.3 2000-10-14 21:52:54 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.2 2000/10/14 10:14:50 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.1 2000/10/01 19:58:40 peter
|
Revision 1.1 2000/10/01 19:58:40 peter
|
||||||
|
@ -44,6 +44,7 @@ interface
|
|||||||
tasmnode = class(tnode)
|
tasmnode = class(tnode)
|
||||||
p_asm : paasmoutput;
|
p_asm : paasmoutput;
|
||||||
constructor create(p : paasmoutput);virtual;
|
constructor create(p : paasmoutput);virtual;
|
||||||
|
destructor destroy;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -311,6 +312,12 @@ implementation
|
|||||||
p_asm:=p;
|
p_asm:=p;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor tasmnode.destroy;
|
||||||
|
begin
|
||||||
|
if assigned(p_asm) then
|
||||||
|
dispose(p_asm,done);
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
function tasmnode.pass_1 : tnode;
|
function tasmnode.pass_1 : tnode;
|
||||||
begin
|
begin
|
||||||
@ -327,7 +334,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.1 2000-10-14 10:14:50 peter
|
Revision 1.2 2000-10-14 21:52:54 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.1 2000/10/14 10:14:50 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
}
|
}
|
@ -76,6 +76,7 @@ interface
|
|||||||
inlineprocsym : pprocsym;
|
inlineprocsym : pprocsym;
|
||||||
retoffset,para_offset,para_size : longint;
|
retoffset,para_offset,para_size : longint;
|
||||||
constructor create(callp,code : tnode);virtual;
|
constructor create(callp,code : tnode);virtual;
|
||||||
|
destructor destroy;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
end;
|
end;
|
||||||
@ -1239,6 +1240,7 @@ interface
|
|||||||
tcallparanode(left).left);
|
tcallparanode(left).left);
|
||||||
tcallparanode(left).left:=nil;
|
tcallparanode(left).left:=nil;
|
||||||
left.free;
|
left.free;
|
||||||
|
left:=nil;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -1487,6 +1489,12 @@ interface
|
|||||||
{$ENDIF NEWST}
|
{$ENDIF NEWST}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor tprocinlinenode.destroy;
|
||||||
|
begin
|
||||||
|
inlinetree.free;
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
function tprocinlinenode.getcopy : tnode;
|
function tprocinlinenode.getcopy : tnode;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -1521,7 +1529,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 2000-10-14 10:14:50 peter
|
Revision 1.10 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.9 2000/10/14 10:14:50 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.8 2000/10/01 19:48:24 peter
|
Revision 1.8 2000/10/01 19:48:24 peter
|
||||||
|
@ -183,12 +183,15 @@ implementation
|
|||||||
{split a range into p2 and p3 }
|
{split a range into p2 and p3 }
|
||||||
if p.left.nodetype=arrayconstructorrangen then
|
if p.left.nodetype=arrayconstructorrangen then
|
||||||
begin
|
begin
|
||||||
p2:=tarrayconstructorrangenode(p.left).left.getcopy;
|
p2:=tarrayconstructorrangenode(p.left).left;
|
||||||
p3:=tarrayconstructorrangenode(p.left).right.getcopy;
|
p3:=tarrayconstructorrangenode(p.left).right;
|
||||||
|
tarrayconstructorrangenode(p.left).left:=nil;
|
||||||
|
tarrayconstructorrangenode(p.left).right:=nil;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
p2:=p.left.getcopy;
|
p2:=p.left;
|
||||||
|
p.left:=nil;
|
||||||
p3:=nil;
|
p3:=nil;
|
||||||
end;
|
end;
|
||||||
firstpass(p2);
|
firstpass(p2);
|
||||||
@ -843,8 +846,8 @@ implementation
|
|||||||
else
|
else
|
||||||
hp:=genloadcallnode(pprocsym(tcallnode(left).symtableprocentry),
|
hp:=genloadcallnode(pprocsym(tcallnode(left).symtableprocentry),
|
||||||
tcallnode(left).symtableproc);
|
tcallnode(left).symtableproc);
|
||||||
left.free;
|
|
||||||
firstpass(hp);
|
firstpass(hp);
|
||||||
|
left.free;
|
||||||
left:=hp;
|
left:=hp;
|
||||||
aprocdef:=pprocdef(left.resulttype);
|
aprocdef:=pprocdef(left.resulttype);
|
||||||
(* end
|
(* end
|
||||||
@ -1160,7 +1163,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.7 2000-10-14 10:14:50 peter
|
Revision 1.8 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.7 2000/10/14 10:14:50 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.6 2000/10/01 19:48:24 peter
|
Revision 1.6 2000/10/01 19:48:24 peter
|
||||||
|
@ -66,6 +66,7 @@ interface
|
|||||||
stringtype : tstringtype;
|
stringtype : tstringtype;
|
||||||
constructor createstr(const s : string;st:tstringtype);virtual;
|
constructor createstr(const s : string;st:tstringtype);virtual;
|
||||||
constructor createpchar(s : pchar;l : longint);virtual;
|
constructor createpchar(s : pchar;l : longint);virtual;
|
||||||
|
destructor destroy;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
function getpcharcopy : pchar;
|
function getpcharcopy : pchar;
|
||||||
@ -75,6 +76,7 @@ interface
|
|||||||
value_set : pconstset;
|
value_set : pconstset;
|
||||||
lab_set : pasmlabel;
|
lab_set : pasmlabel;
|
||||||
constructor create(s : pconstset;settype : psetdef);virtual;
|
constructor create(s : pconstset;settype : psetdef);virtual;
|
||||||
|
destructor destroy;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
end;
|
end;
|
||||||
@ -124,7 +126,7 @@ interface
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
cobjects,verbose,globals,systems,
|
cutils,cobjects,verbose,globals,systems,
|
||||||
types,hcodegen,pass_1,cpubase,nld;
|
types,hcodegen,pass_1,cpubase,nld;
|
||||||
|
|
||||||
function genordinalconstnode(v : tconstexprint;def : pdef) : tordconstnode;
|
function genordinalconstnode(v : tconstexprint;def : pdef) : tordconstnode;
|
||||||
@ -500,6 +502,12 @@ implementation
|
|||||||
lab_str:=nil;
|
lab_str:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor tstringconstnode.destroy;
|
||||||
|
begin
|
||||||
|
ansistringdispose(value_str,len);
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
function tstringconstnode.getcopy : tnode;
|
function tstringconstnode.getcopy : tnode;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -561,6 +569,13 @@ implementation
|
|||||||
value_set:=nil;
|
value_set:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor tsetconstnode.destroy;
|
||||||
|
begin
|
||||||
|
if assigned(value_set) then
|
||||||
|
dispose(value_set);
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
function tsetconstnode.getcopy : tnode;
|
function tsetconstnode.getcopy : tnode;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -613,7 +628,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 2000-10-14 10:14:50 peter
|
Revision 1.9 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.8 2000/10/14 10:14:50 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.7 2000/09/28 19:49:52 florian
|
Revision 1.7 2000/09/28 19:49:52 florian
|
||||||
|
@ -108,6 +108,7 @@ interface
|
|||||||
exceptsymtable : psymtable;
|
exceptsymtable : psymtable;
|
||||||
excepttype : pobjectdef;
|
excepttype : pobjectdef;
|
||||||
constructor create(l,r:tnode);virtual;
|
constructor create(l,r:tnode);virtual;
|
||||||
|
destructor destroy;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
end;
|
end;
|
||||||
@ -193,9 +194,7 @@ implementation
|
|||||||
destructor tloopnode.destroy;
|
destructor tloopnode.destroy;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if assigned(t1) then
|
|
||||||
t1.free;
|
t1.free;
|
||||||
if assigned(t2) then
|
|
||||||
t2.free;
|
t2.free;
|
||||||
inherited destroy;
|
inherited destroy;
|
||||||
end;
|
end;
|
||||||
@ -881,6 +880,13 @@ implementation
|
|||||||
excepttype:=nil;
|
excepttype:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor tonnode.destroy;
|
||||||
|
begin
|
||||||
|
if assigned(exceptsymtable) then
|
||||||
|
dispose(exceptsymtable,done);
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
function tonnode.getcopy : tnode;
|
function tonnode.getcopy : tnode;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -976,7 +982,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2000-10-14 10:14:50 peter
|
Revision 1.7 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.6 2000/10/14 10:14:50 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.5 2000/10/01 19:48:24 peter
|
Revision 1.5 2000/10/01 19:48:24 peter
|
||||||
|
@ -91,13 +91,13 @@ interface
|
|||||||
{$IFDEF NEWST}
|
{$IFDEF NEWST}
|
||||||
withsymtables : Pcollection;
|
withsymtables : Pcollection;
|
||||||
withreference : preference;
|
withreference : preference;
|
||||||
|
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
withsymtable : pwithsymtable;
|
withsymtable : pwithsymtable;
|
||||||
tablecount : longint;
|
tablecount : longint;
|
||||||
withreference:preference;
|
withreference:preference;
|
||||||
{$ENDIF NEWST}
|
{$ENDIF NEWST}
|
||||||
constructor create(symtable : pwithsymtable;l,r : tnode;count : longint);virtual;
|
constructor create(symtable : pwithsymtable;l,r : tnode;count : longint);virtual;
|
||||||
|
destructor destroy;override;
|
||||||
function getcopy : tnode;override;
|
function getcopy : tnode;override;
|
||||||
function pass_1 : tnode;override;
|
function pass_1 : tnode;override;
|
||||||
end;
|
end;
|
||||||
@ -423,7 +423,7 @@ implementation
|
|||||||
|
|
||||||
{ it could also be a procvar, not only pprocsym ! }
|
{ it could also be a procvar, not only pprocsym ! }
|
||||||
if tcallnode(left).symtableprocentry^.typ=varsym then
|
if tcallnode(left).symtableprocentry^.typ=varsym then
|
||||||
hp3:=pabstractprocdef(pvarsym(tloadnode(left).symtableentry)^.vartype.def)
|
hp3:=pabstractprocdef(pvarsym(tcallnode(left).symtableprocentry)^.vartype.def)
|
||||||
else
|
else
|
||||||
hp3:=pabstractprocdef(pprocsym(tcallnode(left).symtableprocentry)^.definition);
|
hp3:=pabstractprocdef(pprocsym(tcallnode(left).symtableprocentry)^.definition);
|
||||||
|
|
||||||
@ -829,6 +829,28 @@ implementation
|
|||||||
set_file_line(l);
|
set_file_line(l);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor twithnode.destroy;
|
||||||
|
var
|
||||||
|
symt : psymtable;
|
||||||
|
i : longint;
|
||||||
|
begin
|
||||||
|
{$IFDEF NEWST}
|
||||||
|
dispose(withsymtables,done);
|
||||||
|
{$ELSE}
|
||||||
|
symt:=withsymtable;
|
||||||
|
for i:=1 to tablecount do
|
||||||
|
begin
|
||||||
|
if assigned(symt) then
|
||||||
|
begin
|
||||||
|
withsymtable:=pwithsymtable(symt^.next);
|
||||||
|
dispose(symt,done);
|
||||||
|
end;
|
||||||
|
symt:=withsymtable;
|
||||||
|
end;
|
||||||
|
{$ENDIF NEWST}
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
function twithnode.getcopy : tnode;
|
function twithnode.getcopy : tnode;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -882,7 +904,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2000-10-14 10:14:51 peter
|
Revision 1.7 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.6 2000/10/14 10:14:51 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.5 2000/10/01 19:48:24 peter
|
Revision 1.5 2000/10/01 19:48:24 peter
|
||||||
|
@ -62,9 +62,10 @@
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
{ reference info }
|
{ reference info }
|
||||||
if (location.loc in [LOC_MEM,LOC_REFERENCE]) and
|
{if (location.loc in [LOC_MEM,LOC_REFERENCE]) and
|
||||||
assigned(location.reference.symbol) then
|
assigned(location.reference.symbol) then
|
||||||
dispose(location.reference.symbol,done);
|
dispose(location.reference.symbol,done);}
|
||||||
|
|
||||||
{$ifdef EXTDEBUG}
|
{$ifdef EXTDEBUG}
|
||||||
if firstpasscount>maxfirstpasscount then
|
if firstpasscount>maxfirstpasscount then
|
||||||
maxfirstpasscount:=firstpasscount;
|
maxfirstpasscount:=firstpasscount;
|
||||||
@ -264,6 +265,12 @@
|
|||||||
left:=l;
|
left:=l;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor tunarynode.destroy;
|
||||||
|
begin
|
||||||
|
left.free;
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
function tunarynode.docompare(p : tnode) : boolean;
|
function tunarynode.docompare(p : tnode) : boolean;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -345,6 +352,12 @@
|
|||||||
right:=r
|
right:=r
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor tbinarynode.destroy;
|
||||||
|
begin
|
||||||
|
right.free;
|
||||||
|
inherited destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure tbinarynode.concattolist(l : plinkedlist);
|
procedure tbinarynode.concattolist(l : plinkedlist);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -489,7 +502,10 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 2000-10-14 10:14:51 peter
|
Revision 1.10 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.9 2000/10/14 10:14:51 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.8 2000/10/01 19:48:24 peter
|
Revision 1.8 2000/10/01 19:48:24 peter
|
||||||
|
@ -258,6 +258,7 @@
|
|||||||
tunarynode = class(tparentnode)
|
tunarynode = class(tparentnode)
|
||||||
left : tnode;
|
left : tnode;
|
||||||
constructor create(tt : tnodetype;l : tnode);
|
constructor create(tt : tnodetype;l : tnode);
|
||||||
|
destructor destroy;override;
|
||||||
procedure concattolist(l : plinkedlist);override;
|
procedure concattolist(l : plinkedlist);override;
|
||||||
function ischild(p : tnode) : boolean;override;
|
function ischild(p : tnode) : boolean;override;
|
||||||
procedure det_resulttype;override;
|
procedure det_resulttype;override;
|
||||||
@ -274,6 +275,7 @@
|
|||||||
tbinarynode = class(tunarynode)
|
tbinarynode = class(tunarynode)
|
||||||
right : tnode;
|
right : tnode;
|
||||||
constructor create(tt : tnodetype;l,r : tnode);
|
constructor create(tt : tnodetype;l,r : tnode);
|
||||||
|
destructor destroy;override;
|
||||||
procedure concattolist(l : plinkedlist);override;
|
procedure concattolist(l : plinkedlist);override;
|
||||||
function ischild(p : tnode) : boolean;override;
|
function ischild(p : tnode) : boolean;override;
|
||||||
procedure det_resulttype;override;
|
procedure det_resulttype;override;
|
||||||
@ -302,7 +304,10 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.12 2000-10-14 10:14:51 peter
|
Revision 1.13 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.12 2000/10/14 10:14:51 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.11 2000/10/01 19:48:24 peter
|
Revision 1.11 2000/10/01 19:48:24 peter
|
||||||
|
@ -323,6 +323,8 @@ interface
|
|||||||
begin
|
begin
|
||||||
if assigned(Data) then
|
if assigned(Data) then
|
||||||
dispose(Data,done);
|
dispose(Data,done);
|
||||||
|
if assigned(relocsect) then
|
||||||
|
dispose(relocsect,done);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -473,7 +475,11 @@ interface
|
|||||||
sec : tsection;
|
sec : tsection;
|
||||||
begin
|
begin
|
||||||
writetodisk;
|
writetodisk;
|
||||||
|
{ free memory }
|
||||||
dispose(syms,done);
|
dispose(syms,done);
|
||||||
|
dispose(symtabsect,done);
|
||||||
|
dispose(strtabsect,done);
|
||||||
|
dispose(shstrtabsect,done);
|
||||||
for sec:=low(tsection) to high(tsection) do
|
for sec:=low(tsection) to high(tsection) do
|
||||||
if assigned(sects[sec]) then
|
if assigned(sects[sec]) then
|
||||||
dispose(sects[sec],done);
|
dispose(sects[sec],done);
|
||||||
@ -1050,7 +1056,10 @@ interface
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.7 2000-09-24 15:06:20 peter
|
Revision 1.8 2000-10-14 21:52:55 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.7 2000/09/24 15:06:20 peter
|
||||||
* use defines.inc
|
* use defines.inc
|
||||||
|
|
||||||
Revision 1.6 2000/08/27 16:11:51 peter
|
Revision 1.6 2000/08/27 16:11:51 peter
|
||||||
|
@ -36,7 +36,7 @@ interface
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
globtype,globals,files;
|
globtype,globals,fmodule;
|
||||||
|
|
||||||
procedure ppextra_info(p : pointer);
|
procedure ppextra_info(p : pointer);
|
||||||
var pl : plongint;
|
var pl : plongint;
|
||||||
@ -70,7 +70,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.3 2000-09-24 15:06:24 peter
|
Revision 1.4 2000-10-14 21:52:56 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.3 2000/09/24 15:06:24 peter
|
||||||
* use defines.inc
|
* use defines.inc
|
||||||
|
|
||||||
Revision 1.2 2000/07/13 11:32:45 michael
|
Revision 1.2 2000/07/13 11:32:45 michael
|
||||||
|
@ -874,7 +874,9 @@ implementation
|
|||||||
if (pd^.deftype<>pointerdef) then
|
if (pd^.deftype<>pointerdef) then
|
||||||
begin
|
begin
|
||||||
Message1(type_e_pointer_type_expected,pd^.typename);
|
Message1(type_e_pointer_type_expected,pd^.typename);
|
||||||
|
p.free;
|
||||||
p:=factor(false);
|
p:=factor(false);
|
||||||
|
p.free;
|
||||||
consume(_RKLAMMER);
|
consume(_RKLAMMER);
|
||||||
new_dispose_statement:=cerrornode.create;
|
new_dispose_statement:=cerrornode.create;
|
||||||
exit;
|
exit;
|
||||||
@ -883,6 +885,7 @@ implementation
|
|||||||
if ppointerdef(pd)^.pointertype.def^.deftype<>objectdef then
|
if ppointerdef(pd)^.pointertype.def^.deftype<>objectdef then
|
||||||
begin
|
begin
|
||||||
Message(parser_e_pointer_to_class_expected);
|
Message(parser_e_pointer_to_class_expected);
|
||||||
|
p.free;
|
||||||
new_dispose_statement:=factor(false);
|
new_dispose_statement:=factor(false);
|
||||||
consume_all_until(_RKLAMMER);
|
consume_all_until(_RKLAMMER);
|
||||||
consume(_RKLAMMER);
|
consume(_RKLAMMER);
|
||||||
@ -912,6 +915,7 @@ implementation
|
|||||||
Message(parser_e_expr_have_to_be_constructor_call)
|
Message(parser_e_expr_have_to_be_constructor_call)
|
||||||
else
|
else
|
||||||
Message(parser_e_expr_have_to_be_destructor_call);
|
Message(parser_e_expr_have_to_be_destructor_call);
|
||||||
|
p.free;
|
||||||
new_dispose_statement:=cerrornode.create;
|
new_dispose_statement:=cerrornode.create;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -960,7 +964,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
if (tcallnode(p2).procdefinition^.proctypeoption<>potype_constructor) then
|
if (tcallnode(p2).procdefinition^.proctypeoption<>potype_constructor) then
|
||||||
Message(parser_e_expr_have_to_be_constructor_call);
|
Message(parser_e_expr_have_to_be_constructor_call);
|
||||||
p2:=cassignmentnode.create(p.getcopy,cnewnode.create(p2));
|
p2:=cassignmentnode.create(p,cnewnode.create(p2));
|
||||||
tassignmentnode(p2).right.resulttype:=pd2;
|
tassignmentnode(p2).right.resulttype:=pd2;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -1254,7 +1258,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.10 2000-10-14 10:14:52 peter
|
Revision 1.11 2000-10-14 21:52:56 peter
|
||||||
|
* fixed memory leaks
|
||||||
|
|
||||||
|
Revision 1.10 2000/10/14 10:14:52 peter
|
||||||
* moehrendorf oct 2000 rewrite
|
* moehrendorf oct 2000 rewrite
|
||||||
|
|
||||||
Revision 1.9 2000/10/01 19:48:25 peter
|
Revision 1.9 2000/10/01 19:48:25 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user