* object_options are always written for object syms

This commit is contained in:
peter 1998-08-20 12:53:26 +00:00
parent 3c007d3646
commit f656c1bb73
2 changed files with 23 additions and 15 deletions

View File

@ -2214,16 +2214,17 @@
name:=stringdup(readstring); name:=stringdup(readstring);
childof:=pobjectdef(readdefref); childof:=pobjectdef(readdefref);
options:=readlong; options:=readlong;
oldread_member:=read_member; oldread_member:=read_member;
read_member:=true; read_member:=true;
if (options and (oo_hasprivate or oo_hasprotected))<>0 then object_options:=true;
object_options:=true;
publicsyms:=new(psymtable,loadasstruct(objectsymtable)); publicsyms:=new(psymtable,loadasstruct(objectsymtable));
object_options:=false; object_options:=false;
read_member:=oldread_member;
publicsyms^.defowner:=@self; publicsyms^.defowner:=@self;
publicsyms^.datasize:=savesize; publicsyms^.datasize:=savesize;
publicsyms^.name := stringdup(name^); publicsyms^.name := stringdup(name^);
read_member:=oldread_member;
{ handles the predefined class tobject } { handles the predefined class tobject }
{ the last TOBJECT which is loaded gets } { the last TOBJECT which is loaded gets }
@ -2349,16 +2350,16 @@
var var
oldread_member : boolean; oldread_member : boolean;
begin begin
oldread_member:=read_member;
read_member:=true;
tdef.write; tdef.write;
writelong(size); writelong(size);
writestring(name^); writestring(name^);
writedefref(childof); writedefref(childof);
writelong(options); writelong(options);
current_ppu^.writeentry(ibobjectdef); current_ppu^.writeentry(ibobjectdef);
if (options and (oo_hasprivate or oo_hasprotected))<>0 then
object_options:=true; oldread_member:=read_member;
read_member:=true;
object_options:=true;
publicsyms^.writeasstruct; publicsyms^.writeasstruct;
object_options:=false; object_options:=false;
read_member:=oldread_member; read_member:=oldread_member;
@ -2530,7 +2531,10 @@
{ {
$Log$ $Log$
Revision 1.23 1998-08-19 00:42:42 peter Revision 1.24 1998-08-20 12:53:26 peter
* object_options are always written for object syms
Revision 1.23 1998/08/19 00:42:42 peter
+ subrange types for enums + subrange types for enums
+ checking for bounds type with ranges + checking for bounds type with ranges

View File

@ -1463,20 +1463,21 @@
inherited done; inherited done;
end; end;
procedure ttypesym.deref; procedure ttypesym.deref;
begin begin
resolvedef(definition); resolvedef(definition);
if assigned(definition) then if assigned(definition) then
if definition^.sym=nil then begin
if definition^.sym=nil then
definition^.sym:=@self; definition^.sym:=@self;
if definition^.deftype=recorddef then if definition^.deftype=recorddef then
precdef(definition)^.symtable^.name:=stringdup('record '+name); precdef(definition)^.symtable^.name:=stringdup('record '+name);
{if definition^.deftype=objectdef then end;
pobjectdef(definition)^.publicsyms^.name:=stringdup('object '+name);
done in tobjectdef.load }
end; end;
procedure ttypesym.write; procedure ttypesym.write;
begin begin
@ -1553,7 +1554,10 @@
{ {
$Log$ $Log$
Revision 1.32 1998-08-20 09:26:46 pierre Revision 1.33 1998-08-20 12:53:27 peter
* object_options are always written for object syms
Revision 1.32 1998/08/20 09:26:46 pierre
+ funcret setting in underproc testing + funcret setting in underproc testing
compile with _dTEST_FUNCRET compile with _dTEST_FUNCRET