@@ -2808,6 +2808,7 @@ public void GenerateFunctionCall(string functionName, List<Parameter> parameters
2808
2808
2809
2809
var originalFunction = function . OriginalFunction ?? function ;
2810
2810
2811
+ var names = new List < string > ( ) ;
2811
2812
if ( originalFunction . HasIndirectReturnTypeParameter )
2812
2813
{
2813
2814
var indirectRetType = originalFunction . Parameters . First (
@@ -2825,8 +2826,8 @@ public void GenerateFunctionCall(string functionName, List<Parameter> parameters
2825
2826
Class retClass ;
2826
2827
type . TryGetClass ( out retClass ) ;
2827
2828
var @class = retClass . OriginalClass ?? retClass ;
2828
- WriteLine ( $@ "var { Helpers . ReturnIdentifier } = new {
2829
- TypePrinter . PrintNative ( @class ) } ( );" ) ;
2829
+ WriteLine ( $@ "var { Helpers . ReturnIdentifier } = Marshal.AllocHGlobal( {
2830
+ @class . Layout . GetSize ( ) } );" ) ;
2830
2831
}
2831
2832
else
2832
2833
{
@@ -2839,13 +2840,15 @@ public void GenerateFunctionCall(string functionName, List<Parameter> parameters
2839
2840
2840
2841
WriteLine ( "{0} {1};" , typeMap . CSharpSignatureType ( typePrinterContext ) ,
2841
2842
Helpers . ReturnIdentifier ) ;
2843
+ names . Add ( $ "new IntPtr(&{ Helpers . ReturnIdentifier } )") ;
2842
2844
}
2843
2845
else
2844
2846
WriteLine ( "var {0} = {1};" , construct ) ;
2845
2847
}
2848
+ if ( names . Count == 0 )
2849
+ names . Add ( Helpers . ReturnIdentifier ) ;
2846
2850
}
2847
2851
2848
- var names = new List < string > ( ) ;
2849
2852
foreach ( var param in @params )
2850
2853
{
2851
2854
if ( param . Param == operatorParam && needsInstance )
@@ -2862,12 +2865,6 @@ public void GenerateFunctionCall(string functionName, List<Parameter> parameters
2862
2865
2863
2866
var needsFixedThis = needsInstance && isValueType ;
2864
2867
2865
- if ( originalFunction . HasIndirectReturnTypeParameter )
2866
- {
2867
- var name = string . Format ( "new IntPtr(&{0})" , Helpers . ReturnIdentifier ) ;
2868
- names . Insert ( 0 , name ) ;
2869
- }
2870
-
2871
2868
if ( needsInstance )
2872
2869
{
2873
2870
var instanceIndex = GetInstanceParamIndex ( method ) ;
0 commit comments