mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-03 08:51:39 +01:00
* Allow %o, let %p handle object pointers and class pointers. Fixes issue #40762
This commit is contained in:
parent
23bbf87c10
commit
a2deb9cbf1
@ -371,9 +371,34 @@ begin
|
||||
SetLength(hs,Prec);
|
||||
ToAdd:=hs;
|
||||
end;
|
||||
'P' : Begin
|
||||
CheckArg(vtpointer,true);
|
||||
ToAdd:=TFormatString(HexStr(ptruint(Args[DoArg].VPointer),sizeof(Ptruint)*2));
|
||||
'O' :
|
||||
begin
|
||||
if CheckArg(vtClass,false) then
|
||||
begin
|
||||
if (Args[DoArg].VClass=Nil) then
|
||||
ToAdd:='<Nil>'
|
||||
else
|
||||
ToAdd:=TFormatString(Args[DoArg].VClass.ClassName);
|
||||
end
|
||||
else
|
||||
begin
|
||||
CheckArg(vtObject,True);
|
||||
if (Args[DoArg].VObject=Nil) then
|
||||
ToAdd:='<Nil>'
|
||||
else
|
||||
ToAdd:=TFormatString(Args[DoArg].VObject.ToString);
|
||||
end
|
||||
end;
|
||||
'P' : begin
|
||||
if CheckArg(vtObject,false) then
|
||||
ToAdd:=TFormatString(HexStr(ptruint(Args[DoArg].VObject),sizeof(Ptruint)*2))
|
||||
else if CheckArg(vtClass,false) then
|
||||
ToAdd:=TFormatString(HexStr(ptruint(Args[DoArg].VClass),sizeof(Ptruint)*2))
|
||||
else
|
||||
begin
|
||||
CheckArg(vtpointer,true);
|
||||
ToAdd:=TFormatString(HexStr(ptruint(Args[DoArg].VPointer),sizeof(Ptruint)*2));
|
||||
end;
|
||||
// Insert ':'. Is this needed in 32 bit ? No it isn't.
|
||||
// Insert(':',ToAdd,5);
|
||||
end;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user