@@ -736,7 +736,7 @@ public virtual void GenerateFunctionCall(Function function)
736736 ReturnType = param . QualifiedType
737737 } ;
738738
739- var marshal = new NAPIMarshalNativeToManagedPrinter ( ctx ) ;
739+ var marshal = GetMarshalNativeToManagedPrinter ( ctx ) ;
740740 param . Visit ( marshal ) ;
741741
742742 if ( ! string . IsNullOrWhiteSpace ( marshal . Context . Before ) )
@@ -761,7 +761,7 @@ public virtual void GenerateFunctionCallReturnMarshal(Function function)
761761 ReturnType = function . ReturnType
762762 } ;
763763
764- var marshal = new NAPIMarshalNativeToManagedPrinter ( ctx ) ;
764+ var marshal = GetMarshalNativeToManagedPrinter ( ctx ) ;
765765 function . ReturnType . Visit ( marshal ) ;
766766
767767 if ( ! string . IsNullOrWhiteSpace ( marshal . Context . Before ) )
@@ -811,6 +811,16 @@ public List<ParamMarshal> GenerateFunctionParamsMarshal(IEnumerable<Parameter> @
811811 return marshals ;
812812 }
813813
814+ public virtual MarshalPrinter < MarshalContext > GetMarshalManagedToNativePrinter ( MarshalContext ctx )
815+ {
816+ return new NAPIMarshalManagedToNativePrinter ( ctx ) ;
817+ }
818+
819+ public virtual MarshalPrinter < MarshalContext > GetMarshalNativeToManagedPrinter ( MarshalContext ctx )
820+ {
821+ return new NAPIMarshalNativeToManagedPrinter ( ctx ) ;
822+ }
823+
814824 public virtual ParamMarshal GenerateFunctionParamMarshal ( Parameter param , int paramIndex ,
815825 Function function = null )
816826 {
@@ -830,7 +840,7 @@ public virtual ParamMarshal GenerateFunctionParamMarshal(Parameter param, int pa
830840 Function = function
831841 } ;
832842
833- var marshal = new NAPIMarshalManagedToNativePrinter ( ctx ) ;
843+ var marshal = GetMarshalManagedToNativePrinter ( ctx ) ;
834844 effectiveParam . Visit ( marshal ) ;
835845
836846 if ( string . IsNullOrEmpty ( marshal . Context . Return ) )
0 commit comments