Browse Source

Added parameter index to managed marshal variables

pull/1099/head
Matthew Albrecht 8 years ago committed by João Matos
parent
commit
f8ccbb80c0
  1. 4
      src/Generator/Types/Std/Stdlib.cs
  2. 2
      tests/Common/Common.Tests.cs
  3. 2
      tests/Common/Common.cpp
  4. 4
      tests/Common/Common.h

4
src/Generator/Types/Std/Stdlib.cs

@ -98,7 +98,7 @@ namespace CppSharp.Types.Std
var c_str = basicString.Methods.First(m => m.OriginalName == "c_str"); var c_str = basicString.Methods.First(m => m.OriginalName == "c_str");
var typePrinter = new CSharpTypePrinter(ctx.Context); var typePrinter = new CSharpTypePrinter(ctx.Context);
string qualifiedBasicString = GetQualifiedBasicString(basicString); string qualifiedBasicString = GetQualifiedBasicString(basicString);
const string varBasicString = "__basicStringRet"; string varBasicString = $"__basicStringRet{ctx.ParameterIndex}";
ctx.Before.WriteLine($@"var {varBasicString} = { ctx.Before.WriteLine($@"var {varBasicString} = {
basicString.Visit(typePrinter)}.{Helpers.CreateInstanceIdentifier}({ basicString.Visit(typePrinter)}.{Helpers.CreateInstanceIdentifier}({
ctx.ReturnVarName});"); ctx.ReturnVarName});");
@ -109,7 +109,7 @@ namespace CppSharp.Types.Std
} }
else else
{ {
const string varString = "__stringRet"; string varString = $"__stringRet{ctx.ParameterIndex}";
ctx.Before.WriteLine($@"var {varString} = { ctx.Before.WriteLine($@"var {varString} = {
qualifiedBasicString}Extensions.{c_str.Name}({varBasicString});"); qualifiedBasicString}Extensions.{c_str.Name}({varBasicString});");
ctx.Before.WriteLine($"{varBasicString}.Dispose(false);"); ctx.Before.WriteLine($"{varBasicString}.Dispose(false);");

2
tests/Common/Common.Tests.cs

@ -804,7 +804,7 @@ This is a very long string. This is a very long string. This is a very long stri
{ {
using (var VirtFuncWithStringParam = new ImplementsVirtualFunctionsWithStringParams()) using (var VirtFuncWithStringParam = new ImplementsVirtualFunctionsWithStringParams())
{ {
VirtFuncWithStringParam.PureVirtualFunctionWithStringParams("anyRandomString"); VirtFuncWithStringParam.PureVirtualFunctionWithStringParams("anyRandomString1", "anyRandomString2");
Assert.That(VirtFuncWithStringParam.VirtualFunctionWithStringParam("anyRandomString").Equals(5)); Assert.That(VirtFuncWithStringParam.VirtualFunctionWithStringParam("anyRandomString").Equals(5));
} }
} }

2
tests/Common/Common.cpp

@ -901,7 +901,7 @@ ImplementsVirtualFunctionsWithStringParams::~ImplementsVirtualFunctionsWithStrin
{ {
} }
void ImplementsVirtualFunctionsWithStringParams::PureVirtualFunctionWithStringParams(std::string testString) void ImplementsVirtualFunctionsWithStringParams::PureVirtualFunctionWithStringParams(std::string testString1, std::string testString2)
{ {
} }

4
tests/Common/Common.h

@ -1336,7 +1336,7 @@ class DLL_API HasVirtualFunctionsWithStringParams
public: public:
HasVirtualFunctionsWithStringParams(); HasVirtualFunctionsWithStringParams();
~HasVirtualFunctionsWithStringParams(); ~HasVirtualFunctionsWithStringParams();
virtual void PureVirtualFunctionWithStringParams(std::string testString) = 0; virtual void PureVirtualFunctionWithStringParams(std::string testString1, std::string testString2) = 0;
virtual int VirtualFunctionWithStringParam(std::string testString); virtual int VirtualFunctionWithStringParam(std::string testString);
}; };
@ -1345,7 +1345,7 @@ class DLL_API ImplementsVirtualFunctionsWithStringParams : public HasVirtualFunc
public: public:
ImplementsVirtualFunctionsWithStringParams(); ImplementsVirtualFunctionsWithStringParams();
~ImplementsVirtualFunctionsWithStringParams(); ~ImplementsVirtualFunctionsWithStringParams();
virtual void PureVirtualFunctionWithStringParams(std::string testString); virtual void PureVirtualFunctionWithStringParams(std::string testString1, std::string testString2);
}; };
class DLL_API HasVirtualFunctionWithBoolParams class DLL_API HasVirtualFunctionWithBoolParams

Loading…
Cancel
Save