* use also an FNV hash to shorten interface wrapper names

This commit is contained in:
florian 2024-09-13 22:12:20 +02:00
parent aec11012e8
commit 84da5e619c

View File

@ -735,7 +735,7 @@ implementation
realintfdef: tobjectdef; realintfdef: tobjectdef;
tmpstr : AnsiString; tmpstr : AnsiString;
hs : TSymStr; hs : TSymStr;
crc : DWord; hash : QWord;
begin begin
realintfdef:=AImplIntf.IntfDef; realintfdef:=AImplIntf.IntfDef;
while realintfdef.is_unique_objpasdef do while realintfdef.is_unique_objpasdef do
@ -744,9 +744,9 @@ implementation
tmpstr:=_class.objname^+'_$_'+make_mangledname('',realintfdef.owner,'')+'_$$_'+realintfdef.objname^+'_$_'+tostr(i)+'_$_'+pd.mangledname; tmpstr:=_class.objname^+'_$_'+make_mangledname('',realintfdef.owner,'')+'_$$_'+realintfdef.objname^+'_$_'+tostr(i)+'_$_'+pd.mangledname;
if length(tmpstr)>50 then if length(tmpstr)>50 then
begin begin
crc:=0; hash:=0;
crc:=UpdateCrc32(crc,tmpstr[51],length(tmpstr)-50); hash:=UpdateFnv64(hash,tmpstr[51],length(tmpstr)-50);
hs:=copy(tmpstr,1,50)+'$CRC'+hexstr(crc,8); hs:=copy(tmpstr,1,50)+'$H'+Base64Mangle(hash);
end end
else else
hs:=tmpstr; hs:=tmpstr;