Skip to content

Commit

Permalink
added support for procedure variables
Browse files Browse the repository at this point in the history
  • Loading branch information
tebe6502 committed Jan 2, 2022
1 parent 3cfbebd commit c9bf325
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/mp.pas
Expand Up @@ -40038,7 +40038,7 @@ procedure CompileActualParameters(var i: integer; IdentIndex: integer; ProcVarIn

for ParamIndex := Ident[IdentIndex].NumParams downto 1 do
if not ( (Ident[IdentIndex].Param[ParamIndex].PassMethod = VARPASSING) or
((Ident[IdentIndex].Param[ParamIndex].DataType in Pointers) and (Ident[IdentIndex].Param[ParamIndex].NumAllocElements = 0) ) or
((Ident[IdentIndex].Param[ParamIndex].DataType in Pointers) and (Ident[IdentIndex].Param[ParamIndex].NumAllocElements and $FFFF = 0) ) or
(Ident[IdentIndex].Param[ParamIndex].DataType in OrdinalTypes + RealTypes)
) then begin yes:=true; Break end;

Expand Down Expand Up @@ -47389,7 +47389,7 @@ function CompileBlock(i: Integer; BlockIdentIndex: Integer; NumParams: Integer;

for ParamIndex := NumParams downto 1 do
if not ( (Param[ParamIndex].PassMethod = VARPASSING) or
((Param[ParamIndex].DataType in Pointers) and (Param[ParamIndex].NumAllocElements = 0)) or
((Param[ParamIndex].DataType in Pointers) and (Param[ParamIndex].NumAllocElements and $FFFF = 0)) or
(Param[ParamIndex].DataType in OrdinalTypes + RealTypes)
) then begin yes:=true; Break end;

Expand All @@ -47411,7 +47411,7 @@ function CompileBlock(i: Integer; BlockIdentIndex: Integer; NumParams: Integer;
else
GenerateAssignment(ASPOINTER, DataSize[Param[ParamIndex].DataType], 0, Param[ParamIndex].Name);

if (Param[ParamIndex].PassMethod <> VARPASSING) and (Param[ParamIndex].DataType in [RECORDTOK, OBJECTTOK] + Pointers) and (Param[ParamIndex].NumAllocElements > 0) then // copy arrays
if (Param[ParamIndex].PassMethod <> VARPASSING) and (Param[ParamIndex].DataType in [RECORDTOK, OBJECTTOK] + Pointers) and (Param[ParamIndex].NumAllocElements and $FFFF > 0) then // copy arrays
if Param[ParamIndex].DataType in [RECORDTOK, OBJECTTOK] then begin

idx := RecordSize(GetIdent(Param[ParamIndex].Name));
Expand Down

0 comments on commit c9bf325

Please sign in to comment.