diff --git a/Source/buildbindingcsharp.go b/Source/buildbindingcsharp.go index 6900291f..e81f3e44 100644 --- a/Source/buildbindingcsharp.go +++ b/Source/buildbindingcsharp.go @@ -59,9 +59,9 @@ func BuildBindingCSharp(component ComponentDefinition, outputFolder string, outp return err } - CSharpImplFile.WriteCLicenseHeader(component, - fmt.Sprintf("This is an autogenerated CSharp file in order to allow an easy\n use of %s", libraryName), - true) + CSharpImplFile.WriteCLicenseHeader(component, + fmt.Sprintf("This is an autogenerated CSharp file in order to allow an easy\n use of %s", libraryName), + true) err = buildBindingCSharpImplementation(component, CSharpImplFile, namespace, baseName) if len(outputFolderExample) > 0 { @@ -240,9 +240,9 @@ func getCSharpPlainParameters(method ComponentDefinitionMethod, NameSpace string parameters = parameters + fmt.Sprintf("UInt64 size%s, IntPtr data%s", param.ParamName, param.ParamName) case "structarray": parameters = parameters + fmt.Sprintf("UInt64 size%s, IntPtr data%s", param.ParamName, param.ParamName) - + case "struct": + parameters = parameters + "ref " + ParamTypeName + " A" + param.ParamName default: - parameters = parameters + ParamTypeName + " A" + param.ParamName } @@ -377,7 +377,7 @@ func writeCSharpClassMethodImplementation(method ComponentDefinitionMethod, w La case "struct": defineCommands = append(defineCommands, fmt.Sprintf(" Internal.Internal%s int%s = Internal.%sWrapper.convertStructToInternal_%s (A%s);", param.ParamClass, param.ParamName, NameSpace, param.ParamClass, param.ParamName)) - callFunctionParameter = "int" + param.ParamName + callFunctionParameter = "ref int" + param.ParamName initCallParameter = callFunctionParameter case "basicarray": @@ -407,7 +407,7 @@ func writeCSharpClassMethodImplementation(method ComponentDefinitionMethod, w La initCallParameter = callFunctionParameter case "class", "optionalclass": - if (ParamTypeName == "IntPtr") { + if ParamTypeName == "IntPtr" { callFunctionParameter = "A" + param.ParamName } else { defineCommands = append(defineCommands, fmt.Sprintf(" IntPtr A%sHandle = IntPtr.Zero;", param.ParamName)) @@ -415,7 +415,7 @@ func writeCSharpClassMethodImplementation(method ComponentDefinitionMethod, w La defineCommands = append(defineCommands, fmt.Sprintf(" A%sHandle = A%s.GetHandle();", param.ParamName, param.ParamName)) callFunctionParameter = "A" + param.ParamName + "Handle" } - + initCallParameter = callFunctionParameter default: @@ -585,7 +585,7 @@ func writeCSharpClassMethodImplementation(method ComponentDefinitionMethod, w La defineCommands = append(defineCommands, fmt.Sprintf(" IntPtr new%s = IntPtr.Zero;", param.ParamName)) callFunctionParameter = "out new" + param.ParamName initCallParameter = callFunctionParameter - if (ParamTypeName == "IntPtr") { + if ParamTypeName == "IntPtr" { returnCodeLines = append(returnCodeLines, fmt.Sprintf(" return new%s;", param.ParamName)) } else { // TODO: Using plain NameSpace here for calling PolymorphicFactory is most likely incorrect. @@ -1128,7 +1128,7 @@ func buildBindingCSharpImplementation(component ComponentDefinition, w LanguageW } else { writeCSharpClassMethodImplementation(method, w, NameSpace, "Wrapper", true, " ") } - + w.Writeln(" }") w.Writeln("") }