mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-22 13:09:16 +02:00
* deref implementation after implementation units are loaded and
numbered
This commit is contained in:
parent
545c1b82d5
commit
a0c611cbb5
@ -867,7 +867,6 @@ uses
|
|||||||
procedure tppumodule.load_implementation;
|
procedure tppumodule.load_implementation;
|
||||||
var
|
var
|
||||||
b : byte;
|
b : byte;
|
||||||
oldobjectlibrary : tasmlibrarydata;
|
|
||||||
begin
|
begin
|
||||||
{ read implementation part }
|
{ read implementation part }
|
||||||
repeat
|
repeat
|
||||||
@ -883,18 +882,6 @@ uses
|
|||||||
Message1(unit_f_ppu_invalid_entry,tostr(b));
|
Message1(unit_f_ppu_invalid_entry,tostr(b));
|
||||||
end;
|
end;
|
||||||
until false;
|
until false;
|
||||||
|
|
||||||
{ we can now derefence all pointers to the implementation parts }
|
|
||||||
oldobjectlibrary:=objectlibrary;
|
|
||||||
objectlibrary:=librarydata;
|
|
||||||
aktglobalsymtable:=tstoredsymtable(globalsymtable);
|
|
||||||
tstoredsymtable(globalsymtable).derefimpl;
|
|
||||||
if assigned(localsymtable) then
|
|
||||||
begin
|
|
||||||
aktstaticsymtable:=tstoredsymtable(localsymtable);
|
|
||||||
tstoredsymtable(localsymtable).derefimpl;
|
|
||||||
end;
|
|
||||||
objectlibrary:=oldobjectlibrary;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1139,6 +1126,7 @@ uses
|
|||||||
var
|
var
|
||||||
pu : tused_unit;
|
pu : tused_unit;
|
||||||
load_refs : boolean;
|
load_refs : boolean;
|
||||||
|
oldobjectlibrary : tasmlibrarydata;
|
||||||
begin
|
begin
|
||||||
if current_module<>self then
|
if current_module<>self then
|
||||||
internalerror(200212284);
|
internalerror(200212284);
|
||||||
@ -1213,6 +1201,18 @@ uses
|
|||||||
end;
|
end;
|
||||||
numberunits;
|
numberunits;
|
||||||
|
|
||||||
|
{ we can now derefence all pointers to the implementation parts }
|
||||||
|
oldobjectlibrary:=objectlibrary;
|
||||||
|
objectlibrary:=librarydata;
|
||||||
|
aktglobalsymtable:=tstoredsymtable(globalsymtable);
|
||||||
|
tstoredsymtable(globalsymtable).derefimpl;
|
||||||
|
if assigned(localsymtable) then
|
||||||
|
begin
|
||||||
|
aktstaticsymtable:=tstoredsymtable(localsymtable);
|
||||||
|
tstoredsymtable(localsymtable).derefimpl;
|
||||||
|
end;
|
||||||
|
objectlibrary:=oldobjectlibrary;
|
||||||
|
|
||||||
{ load browser info if stored }
|
{ load browser info if stored }
|
||||||
if ((flags and uf_has_browser)<>0) and load_refs then
|
if ((flags and uf_has_browser)<>0) and load_refs then
|
||||||
begin
|
begin
|
||||||
@ -1507,7 +1507,11 @@ uses
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.48 2003-12-14 18:13:18 peter
|
Revision 1.49 2003-12-22 22:15:43 peter
|
||||||
|
* deref implementation after implementation units are loaded and
|
||||||
|
numbered
|
||||||
|
|
||||||
|
Revision 1.48 2003/12/14 18:13:18 peter
|
||||||
* also check currnet dir when searching source files
|
* also check currnet dir when searching source files
|
||||||
|
|
||||||
Revision 1.47 2003/11/28 17:23:16 peter
|
Revision 1.47 2003/11/28 17:23:16 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user