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 @@ -98,7 +98,7 @@ namespace CppSharp.Types.Std
var c_str = basicString.Methods.First(m => m.OriginalName == "c_str");
var typePrinter = new CSharpTypePrinter(ctx.Context);
string qualifiedBasicString = GetQualifiedBasicString(basicString);
const string varBasicString = "__basicStringRet";
string varBasicString = $"__basicStringRet{ctx.ParameterIndex}";
ctx.Before.WriteLine($@"var {varBasicString} = {
basicString.Visit(typePrinter)}.{Helpers.CreateInstanceIdentifier}({
ctx.ReturnVarName});");
@ -109,7 +109,7 @@ namespace CppSharp.Types.Std @@ -109,7 +109,7 @@ namespace CppSharp.Types.Std
}
else
{
const string varString = "__stringRet";
string varString = $"__stringRet{ctx.ParameterIndex}";
ctx.Before.WriteLine($@"var {varString} = {
qualifiedBasicString}Extensions.{c_str.Name}({varBasicString});");
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 @@ -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())
{
VirtFuncWithStringParam.PureVirtualFunctionWithStringParams("anyRandomString");
VirtFuncWithStringParam.PureVirtualFunctionWithStringParams("anyRandomString1", "anyRandomString2");
Assert.That(VirtFuncWithStringParam.VirtualFunctionWithStringParam("anyRandomString").Equals(5));
}
}

2
tests/Common/Common.cpp

@ -901,7 +901,7 @@ ImplementsVirtualFunctionsWithStringParams::~ImplementsVirtualFunctionsWithStrin @@ -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 @@ -1336,7 +1336,7 @@ class DLL_API HasVirtualFunctionsWithStringParams
public:
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);
};
@ -1345,7 +1345,7 @@ class DLL_API ImplementsVirtualFunctionsWithStringParams : public HasVirtualFunc @@ -1345,7 +1345,7 @@ class DLL_API ImplementsVirtualFunctionsWithStringParams : public HasVirtualFunc
public:
ImplementsVirtualFunctionsWithStringParams();
~ImplementsVirtualFunctionsWithStringParams();
virtual void PureVirtualFunctionWithStringParams(std::string testString);
virtual void PureVirtualFunctionWithStringParams(std::string testString1, std::string testString2);
};
class DLL_API HasVirtualFunctionWithBoolParams

Loading…
Cancel
Save