webidl: wasmjob: fixed multi used functions

This commit is contained in:
mattias 2022-07-27 00:10:37 +02:00
parent 4809c1fa64
commit 0ea798d862
3 changed files with 13 additions and 11 deletions

View File

@ -135,7 +135,7 @@ type
function WriteDictionaryDefs(aList: TIDLDefinitionList): Integer; virtual;
function WriteForwardClassDefs(aList: TIDLDefinitionList): Integer; virtual;
function WriteInterfaceDefs(aList: TIDLDefinitionList): Integer; virtual;
function WriteMethodDefs(aParent: TIDLDefinition; aList: TIDLDefinitionList): Integer; virtual;
function WriteMethodDefs(aParent: TIDLInterfaceDefinition; aList: TIDLDefinitionList): Integer; virtual;
function WriteUtilityMethods(Intf: TIDLInterfaceDefinition): Integer; virtual;
function WriteTypeDefsAndCallbacks(aList: TIDLDefinitionList): Integer; virtual;
function WriteEnumDefs(aList: TIDLDefinitionList): Integer; virtual;
@ -149,7 +149,7 @@ type
// Definitions. Return true if a definition was written.
function WriteForwardClassDef(D: TIDLStructuredDefinition): Boolean; virtual;
function WriteFunctionTypeDefinition(aDef: TIDLFunctionDefinition): Boolean; virtual;
function WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean; virtual;
function WriteFunctionDefinition(aParent: TIDLInterfaceDefinition; aDef: TIDLFunctionDefinition): Boolean; virtual;
function WriteTypeDef(aDef: TIDLTypeDefDefinition): Boolean; virtual;
function WriteRecordDef(aDef: TIDLRecordDefinition): Boolean; virtual;
function WriteEnumDef(aDef: TIDLEnumDefinition): Boolean; virtual;
@ -489,7 +489,7 @@ begin
Undent;
end;
function TBaseWebIDLToPas.WriteMethodDefs(aParent: TIDLDefinition;
function TBaseWebIDLToPas.WriteMethodDefs(aParent: TIDLInterfaceDefinition;
aList: TIDLDefinitionList): Integer;
Var
@ -501,7 +501,7 @@ begin
for D in aList do
if D is TIDLFunctionDefinition then
if Not (foCallBack in FD.Options) then
if WriteFunctionDefinition(FD) then
if WriteFunctionDefinition(aParent,FD) then
Inc(Result);
end;
@ -1333,10 +1333,12 @@ begin
AddLn('%s = function %s: %s;',[FN,Args,RT])
end;
function TBaseWebIDLToPas.WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean;
function TBaseWebIDLToPas.WriteFunctionDefinition(
aParent: TIDLInterfaceDefinition; aDef: TIDLFunctionDefinition): Boolean;
begin
Result:=true;
if aDef=nil then exit;
if aParent=nil then ;
end;
function TBaseWebIDLToPas.WriteDictionaryDefs(aList: TIDLDefinitionList): Integer;

View File

@ -50,7 +50,7 @@ type
function GetInterfaceDefHead(Intf: TIDLInterfaceDefinition): String;
override;
// Code generation routines. Return the number of actually written defs.
function WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean;
function WriteFunctionDefinition(aParent: TIDLInterfaceDefinition; aDef: TIDLFunctionDefinition): Boolean;
override;
function WritePrivateReadOnlyFields(aParent: TIDLDefinition; aList: TIDLDefinitionList): Integer;
override;
@ -157,8 +157,8 @@ begin
Result:=Result+' ('+aParentName+')';
end;
function TWebIDLToPas2js.WriteFunctionDefinition(aDef: TIDLFunctionDefinition
): Boolean;
function TWebIDLToPas2js.WriteFunctionDefinition(
aParent: TIDLInterfaceDefinition; aDef: TIDLFunctionDefinition): Boolean;
Var
FN,RT,Suff,Args: String;

View File

@ -96,7 +96,7 @@ type
aField: TIDLDictionaryMemberDefinition): Boolean; override;
function WriteForwardClassDef(D: TIDLStructuredDefinition): Boolean;
override;
function WriteFunctionDefinition(aDef: TIDLFunctionDefinition): Boolean;
function WriteFunctionDefinition(aParent: TIDLInterfaceDefinition; aDef: TIDLFunctionDefinition): Boolean;
override;
function WriteFunctionTypeDefinition(aDef: TIDLFunctionDefinition
): Boolean; override;
@ -420,7 +420,7 @@ begin
end;
function TWebIDLToPasWasmJob.WriteFunctionDefinition(
aDef: TIDLFunctionDefinition): Boolean;
aParent: TIDLInterfaceDefinition; aDef: TIDLFunctionDefinition): Boolean;
var
ArgNames: TStringList;
@ -511,7 +511,7 @@ begin
end;
end;
aClassName:=GetName(aDef.Parent);
aClassName:=GetName(aParent);
AddFuncBody:=not FWritingPasInterface;
Overloads:=GetOverloads(ADef);