Browse Source

webidl: wasmjob: fixed multi used functions

mattias 3 years ago
parent
commit
0ea798d862

+ 7 - 5
packages/webidl/src/webidltopas.pp

@@ -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;

+ 3 - 3
packages/webidl/src/webidltopas2js.pp

@@ -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;

+ 3 - 3
packages/webidl/src/webidltowasmjob.pp

@@ -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);