* fixed protected checking in withsymtable

This commit is contained in:
peter 2004-02-13 15:40:58 +00:00
parent 4f6d200630
commit f619982607

View File

@ -1823,21 +1823,33 @@ implementation
function searchsym(const s : stringid;var srsym:tsym;var srsymtable:tsymtable):boolean;
var
speedvalue : cardinal;
topclass : tobjectdef;
begin
speedvalue:=getspeedvalue(s);
srsymtable:=symtablestack;
while assigned(srsymtable) do
begin
srsym:=tsym(srsymtable.speedsearch(s,speedvalue));
if assigned(srsym) and
(not assigned(current_procinfo) or
Tsym(srsym).is_visible_for_object(current_procinfo.procdef._class)) then
srsym:=tsym(srsymtable.speedsearch(s,speedvalue));
if assigned(srsym) then
begin
searchsym:=true;
exit;
end
else
srsymtable:=srsymtable.next;
topclass:=nil;
if (srsymtable.symtabletype=withsymtable) and
assigned(srsymtable.defowner) and
(srsymtable.defowner.deftype=objectdef) then
topclass:=tobjectdef(srsymtable.defowner)
else
begin
if assigned(current_procinfo) then
topclass:=current_procinfo.procdef._class;
end;
if (not assigned(topclass)) or
Tsym(srsym).is_visible_for_object(topclass) then
begin
searchsym:=true;
exit;
end;
end;
srsymtable:=srsymtable.next;
end;
searchsym:=false;
end;
@ -2410,7 +2422,10 @@ implementation
end.
{
$Log$
Revision 1.136 2004-02-11 19:59:06 peter
Revision 1.137 2004-02-13 15:40:58 peter
* fixed protected checking in withsymtable
Revision 1.136 2004/02/11 19:59:06 peter
* fix compilation without GDB
Revision 1.135 2004/02/06 22:37:00 daniel