* fix writing of the method and parameter names for the Variant call description

git-svn-id: trunk@49479 -
(cherry picked from commit 7330a0156c)
This commit is contained in:
svenbarth 2021-06-05 17:43:49 +00:00 committed by Sven Barth
parent 28f86382e5
commit 8b21bf1cce

View File

@ -509,7 +509,7 @@ implementation
{ build up parameters and description }
para:=tcallparanode(parametersnode);
paramssize:=0;
names := #0;
names := '';
while assigned(para) do
begin
{ Skipped parameters are actually (varType=varError, vError=DISP_E_PARAMNOTFOUND).
@ -573,12 +573,11 @@ implementation
if variantdispatch then
begin
{ length-1, because the following names variable *always* starts
with #0 which will be the terminator for methodname }
tcb.emit_pchar_const(pchar(methodname),length(methodname)-1,true);
{ length-1 because we added a null terminator to the string itself
already }
tcb.emit_pchar_const(pchar(names),length(names)-1,true);
tcb.emit_pchar_const(pchar(methodname),length(methodname),true);
if names<>'' then
{ length-1 because we added a null terminator to the string itself
already }
tcb.emit_pchar_const(pchar(names),length(names)-1,true);
end;
{ may be referred from other units in case of inlining -> global