|
@@ -64,7 +64,6 @@ interface
|
|
constructor create(dt:tdeftyp);
|
|
constructor create(dt:tdeftyp);
|
|
constructor ppuload(dt:tdeftyp;ppufile:tcompilerppufile);
|
|
constructor ppuload(dt:tdeftyp;ppufile:tcompilerppufile);
|
|
destructor destroy;override;
|
|
destructor destroy;override;
|
|
- procedure reset;virtual;
|
|
|
|
function getcopy : tstoreddef;virtual;
|
|
function getcopy : tstoreddef;virtual;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);virtual;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);virtual;
|
|
procedure buildderef;override;
|
|
procedure buildderef;override;
|
|
@@ -77,6 +76,7 @@ interface
|
|
function is_publishable : boolean;override;
|
|
function is_publishable : boolean;override;
|
|
function needs_inittable : boolean;override;
|
|
function needs_inittable : boolean;override;
|
|
function rtti_mangledname(rt:trttitype):string;override;
|
|
function rtti_mangledname(rt:trttitype):string;override;
|
|
|
|
+ function in_currentunit: boolean;
|
|
{ regvars }
|
|
{ regvars }
|
|
function is_intregable : boolean;
|
|
function is_intregable : boolean;
|
|
function is_fpuregable : boolean;
|
|
function is_fpuregable : boolean;
|
|
@@ -172,7 +172,6 @@ interface
|
|
symtable : TSymtable;
|
|
symtable : TSymtable;
|
|
cloneddef : tabstractrecorddef;
|
|
cloneddef : tabstractrecorddef;
|
|
cloneddefderef : tderef;
|
|
cloneddefderef : tderef;
|
|
- procedure reset;override;
|
|
|
|
function GetSymtable(t:tGetSymtable):TSymtable;override;
|
|
function GetSymtable(t:tGetSymtable):TSymtable;override;
|
|
function is_packed:boolean;
|
|
function is_packed:boolean;
|
|
end;
|
|
end;
|
|
@@ -303,7 +302,6 @@ interface
|
|
function find_procdef_bytype(pt:tproctypeoption): tprocdef;
|
|
function find_procdef_bytype(pt:tproctypeoption): tprocdef;
|
|
function find_destructor: tprocdef;
|
|
function find_destructor: tprocdef;
|
|
function implements_any_interfaces: boolean;
|
|
function implements_any_interfaces: boolean;
|
|
- procedure reset; override;
|
|
|
|
{ dispinterface support }
|
|
{ dispinterface support }
|
|
function get_next_dispid: longint;
|
|
function get_next_dispid: longint;
|
|
{ enumerator support }
|
|
{ enumerator support }
|
|
@@ -333,7 +331,6 @@ interface
|
|
function is_publishable : boolean;override;
|
|
function is_publishable : boolean;override;
|
|
function rtti_mangledname(rt:trttitype):string;override;
|
|
function rtti_mangledname(rt:trttitype):string;override;
|
|
procedure register_created_object_type;override;
|
|
procedure register_created_object_type;override;
|
|
- procedure reset;override;
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
tarraydef = class(tstoreddef)
|
|
tarraydef = class(tstoreddef)
|
|
@@ -517,7 +514,9 @@ interface
|
|
{$ifdef oldregvars}
|
|
{$ifdef oldregvars}
|
|
regvarinfo: pregvarinfo;
|
|
regvarinfo: pregvarinfo;
|
|
{$endif oldregvars}
|
|
{$endif oldregvars}
|
|
- { position in aasmoutput list }
|
|
|
|
|
|
+ { First/last assembler symbol/instruction in aasmoutput list.
|
|
|
|
+ Note: initialised after compiling the code for the procdef, but
|
|
|
|
+ not saved to/restored from ppu. Used when inserting debug info }
|
|
procstarttai,
|
|
procstarttai,
|
|
procendtai : tai;
|
|
procendtai : tai;
|
|
import_nr : word;
|
|
import_nr : word;
|
|
@@ -541,7 +540,6 @@ interface
|
|
procedure buildderefimpl;override;
|
|
procedure buildderefimpl;override;
|
|
procedure deref;override;
|
|
procedure deref;override;
|
|
procedure derefimpl;override;
|
|
procedure derefimpl;override;
|
|
- procedure reset;override;
|
|
|
|
function GetSymtable(t:tGetSymtable):TSymtable;override;
|
|
function GetSymtable(t:tGetSymtable):TSymtable;override;
|
|
function GetTypeName : string;override;
|
|
function GetTypeName : string;override;
|
|
function mangledname : string;
|
|
function mangledname : string;
|
|
@@ -1040,8 +1038,14 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
- procedure Tstoreddef.reset;
|
|
|
|
|
|
+ function tstoreddef.in_currentunit: boolean;
|
|
|
|
+ var
|
|
|
|
+ st: tsymtable;
|
|
begin
|
|
begin
|
|
|
|
+ st:=owner;
|
|
|
|
+ while not(st.symtabletype in [globalsymtable,staticsymtable]) do
|
|
|
|
+ st:=st.defowner.owner;
|
|
|
|
+ result:=st.iscurrentunit;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -2184,13 +2188,6 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
- procedure tclassrefdef.reset;
|
|
|
|
- begin
|
|
|
|
- tobjectdef(pointeddef).classref_created_in_current_module:=false;
|
|
|
|
- inherited reset;
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
procedure tclassrefdef.register_created_object_type;
|
|
procedure tclassrefdef.register_created_object_type;
|
|
begin
|
|
begin
|
|
tobjectdef(pointeddef).register_created_classref_type;
|
|
tobjectdef(pointeddef).register_created_classref_type;
|
|
@@ -2591,13 +2588,6 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
- procedure tabstractrecorddef.reset;
|
|
|
|
- begin
|
|
|
|
- inherited reset;
|
|
|
|
- tstoredsymtable(symtable).reset_all_defs;
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
function tabstractrecorddef.is_packed:boolean;
|
|
function tabstractrecorddef.is_packed:boolean;
|
|
begin
|
|
begin
|
|
result:=tabstractrecordsymtable(symtable).is_packed;
|
|
result:=tabstractrecordsymtable(symtable).is_packed;
|
|
@@ -3280,14 +3270,6 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
- procedure tprocdef.reset;
|
|
|
|
- begin
|
|
|
|
- inherited reset;
|
|
|
|
- procstarttai:=nil;
|
|
|
|
- procendtai:=nil;
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
function tprocdef.fullprocname(showhidden:boolean):string;
|
|
function tprocdef.fullprocname(showhidden:boolean):string;
|
|
var
|
|
var
|
|
s : string;
|
|
s : string;
|
|
@@ -4651,14 +4633,6 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
- procedure tobjectdef.reset;
|
|
|
|
- begin
|
|
|
|
- inherited reset;
|
|
|
|
- created_in_current_module:=false;
|
|
|
|
- maybe_created_in_current_module:=false;
|
|
|
|
- classref_created_in_current_module:=false;
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
function tobjectdef.get_next_dispid: longint;
|
|
function tobjectdef.get_next_dispid: longint;
|
|
begin
|
|
begin
|
|
inc(fcurrent_dispid);
|
|
inc(fcurrent_dispid);
|