Skip to content

Commit 6d4c104

Browse files
authored
Fix marshalling declaration using CLR types in skeleton generator (#63)
1 parent 227a1fb commit 6d4c104

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

source/MetadataProcessor.Core/nanoSkeletonGenerator.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)