@@ -135,6 +135,7 @@ private void GenerateStubs()
135135 {
136136 // get the parameter type
137137 var parameterType = item . ParameterType . ToNativeTypeAsString ( ) ;
138+ var parameterTypeClr = item . ParameterType . ToCLRTypeAsString ( ) ;
138139
139140 // compose the function declaration
140141 declaration . Append ( $ "{ parameterType } param{ parameterIndex . ToString ( ) } , ") ;
@@ -161,7 +162,7 @@ private void GenerateStubs()
161162 $ "{ parameterType } { parameterDeclaration . Name } ;" + Environment . NewLine +
162163 $ " UINT8 heapblock{ parameterIndex . ToString ( ) } [CLR_RT_HEAP_BLOCK_SIZE];";
163164
164- parameterDeclaration . MarshallingDeclaration = $ "Interop_Marshal_{ parameterType } _ByRef( stack, heapblock{ ( parameterIndex + ( m . IsStatic ? 0 : 1 ) ) . ToString ( ) } , { parameterDeclaration . Name } )";
165+ parameterDeclaration . MarshallingDeclaration = $ "Interop_Marshal_{ parameterTypeClr } _ByRef( stack, heapblock{ ( parameterIndex + ( m . IsStatic ? 0 : 1 ) ) . ToString ( ) } , { parameterDeclaration . Name } )";
165166
166167 }
167168 else if ( item . ParameterType . IsArray )
@@ -171,7 +172,7 @@ private void GenerateStubs()
171172
172173 parameterDeclaration . Type = parameterType ;
173174 parameterDeclaration . Declaration = $ "{ parameterType } { parameterDeclaration . Name } ;";
174- parameterDeclaration . MarshallingDeclaration = $ "Interop_Marshal_{ item . ParameterType . GetElementType ( ) . ToCLRTypeAsString ( ) } _ARRAY( stack, { ( parameterIndex + ( m . IsStatic ? 0 : 1 ) ) . ToString ( ) } , { parameterDeclaration . Name } )";
175+ parameterDeclaration . MarshallingDeclaration = $ "Interop_Marshal_{ parameterTypeClr } _ARRAY( stack, { ( parameterIndex + ( m . IsStatic ? 0 : 1 ) ) . ToString ( ) } , { parameterDeclaration . Name } )";
175176 }
176177 else
177178 {
@@ -180,7 +181,7 @@ private void GenerateStubs()
180181
181182 parameterDeclaration . Type = parameterType ;
182183 parameterDeclaration . Declaration = $ "{ parameterType } { parameterDeclaration . Name } ;";
183- parameterDeclaration . MarshallingDeclaration = $ "Interop_Marshal_{ parameterType } ( stack, { ( parameterIndex + ( m . IsStatic ? 0 : 1 ) ) . ToString ( ) } , { parameterDeclaration . Name } )";
184+ parameterDeclaration . MarshallingDeclaration = $ "Interop_Marshal_{ parameterTypeClr } ( stack, { ( parameterIndex + ( m . IsStatic ? 0 : 1 ) ) . ToString ( ) } , { parameterDeclaration . Name } )";
184185 }
185186 newMethod . ParameterDeclaration . Add ( parameterDeclaration ) ;
186187 parameterIndex ++ ;
0 commit comments