* fix for snapshot failue

* order_overloaded reintrocduced and adapted to operators
This commit is contained in:
pierre 2000-04-27 10:06:04 +00:00
parent e4463fc278
commit 22a6677394
3 changed files with 24 additions and 16 deletions

View File

@ -410,7 +410,7 @@
end;
pd:=pd^.nextoverloaded;
{ do not check defs of operators in other units }
if pd^.procsym<>@self then
if assigned(pd) and (pd^.procsym<>@self) then
pd:=nil;
end;
end;
@ -451,20 +451,22 @@
{$endif DONOTCHAINOPERATORS}
end;
{$ifdef DONOTCHAINOPERATORS}
procedure tprocsym.order_overloaded;
var firstdef,currdef,lastdef : pprocdef;
var firstdef,currdef,lastdef,nextopdef : pprocdef;
begin
if not assigned(definition) then
exit;
firstdef:=definition;
currdef:=definition;
while assigned(currdef) do
while assigned(currdef) and (currdef^.owner=firstdef^.owner) do
begin
currdef^.count:=false;
currdef:=currdef^.nextoverloaded;
end;
nextopdef:=currdef;
definition:=definition^.nextoverloaded;
firstdef^.nextoverloaded:=nil;
while assigned(definition) do
while (definition<>nextopdef) do
begin
currdef:=firstdef;
lastdef:=definition;
@ -488,10 +490,11 @@
while assigned(currdef) do
begin
currdef^.count:=true;
lastdef:=currdef;
currdef:=currdef^.nextoverloaded;
end;
lastdef^.nextoverloaded:=nextopdef;
end;
{$endif DONOTCHAINOPERATORS}
procedure tprocsym.write;
begin
@ -2144,7 +2147,11 @@
{
$Log$
Revision 1.143 2000-04-26 08:54:19 pierre
Revision 1.144 2000-04-27 10:06:04 pierre
* fix for snapshot failue
* order_overloaded reintrocduced and adapted to operators
Revision 1.143 2000/04/26 08:54:19 pierre
* More changes for operator bug
Order_overloaded method removed because it conflicted with
new implementation where the defs are ordered

View File

@ -115,9 +115,7 @@
{ tests, if all procedures definitions are defined and not }
{ only forward }
procedure check_forward;
{$ifdef DONOTCHAINOPERATORS}
procedure order_overloaded;
{$endif DONOTCHAINOPERATORS}
procedure write;virtual;
procedure deref;virtual;
procedure load_references;virtual;
@ -319,7 +317,11 @@
{
$Log$
Revision 1.47 2000-04-26 08:54:19 pierre
Revision 1.48 2000-04-27 10:06:04 pierre
* fix for snapshot failue
* order_overloaded reintrocduced and adapted to operators
Revision 1.47 2000/04/26 08:54:19 pierre
* More changes for operator bug
Order_overloaded method removed because it conflicted with
new implementation where the defs are ordered

View File

@ -1469,13 +1469,11 @@ implementation
end;
{$ifdef DONOTCHAINOPERATORS}
procedure order_overloads(p : Pnamedindexobject);
begin
if psym(p)^.typ=procsym then
pprocsym(p)^.order_overloaded;
end;
{$endif DONOTCHAINOPERATORS}
procedure tsymtable.foreach(proc2call : tnamedindexcallback);
begin
@ -1753,11 +1751,8 @@ implementation
aktlocalsymtable:=@self;
end;
end;
{$ifdef DONOTCHAINOPERATORS}
{ obsolete code DO NOT USE it anymore PM }
{ order procsym overloads }
foreach({$ifndef TP}@{$endif}Order_overloads);
{$endif DONOTCHAINOPERATORS}
{ write definitions }
writedefs;
{ write symbols }
@ -2884,7 +2879,11 @@ implementation
end.
{
$Log$
Revision 1.86 2000-04-26 08:54:19 pierre
Revision 1.87 2000-04-27 10:06:04 pierre
* fix for snapshot failue
* order_overloaded reintrocduced and adapted to operators
Revision 1.86 2000/04/26 08:54:19 pierre
* More changes for operator bug
Order_overloaded method removed because it conflicted with
new implementation where the defs are ordered