File tree Expand file tree Collapse file tree 4 files changed +50
-1
lines changed Expand file tree Collapse file tree 4 files changed +50
-1
lines changed Original file line number Diff line number Diff line change @@ -564,8 +564,10 @@ public override void CLIMarshalToManaged(MarshalContext ctx)
564
564
ctx . Before . WriteLine (
565
565
"auto {0} = gcnew System::Collections::Generic::List<{1}>();" ,
566
566
tmpVarName , managedType ) ;
567
+
568
+ string retVarName = ctx . ReturnType . Type . Desugar ( ) . IsPointer ( ) ? $ "*{ ctx . ReturnVarName } " : ctx . ReturnVarName ;
567
569
ctx . Before . WriteLine ( "for(auto _element : {0})" ,
568
- ctx . ReturnVarName ) ;
570
+ retVarName ) ;
569
571
ctx . Before . WriteOpenBraceAndIndent ( ) ;
570
572
{
571
573
var elementCtx = new MarshalContext ( ctx . Context , ctx . Indentation )
Original file line number Diff line number Diff line change @@ -53,4 +53,17 @@ public void TestChangePassedMappedTypeNonConstRefParam()
53
53
Assert . AreEqual ( "ChangePassedMappedTypeNonConstRefParam" , val ) ;
54
54
}
55
55
}
56
+
57
+ [ Test ]
58
+ public void TestVectorPointerGetter ( )
59
+ {
60
+ using ( VectorPointerGetter v = new VectorPointerGetter ( ) )
61
+ {
62
+ var list = v . VecPtr ;
63
+
64
+ Assert . AreEqual ( 1 , list . Count ) ;
65
+
66
+ Assert . AreEqual ( "VectorPointerGetter" , list [ 0 ] ) ;
67
+ }
68
+ }
56
69
}
Original file line number Diff line number Diff line change @@ -43,3 +43,24 @@ void TestMappedTypeNonConstRefParamConsumer::ChangePassedMappedTypeNonConstRefPa
43
43
{
44
44
v = " ChangePassedMappedTypeNonConstRefParam" ;
45
45
}
46
+
47
+ VectorPointerGetter::VectorPointerGetter ()
48
+ {
49
+ vecPtr = new std::vector<std::string>();
50
+ vecPtr->push_back (" VectorPointerGetter" );
51
+ }
52
+
53
+ VectorPointerGetter::~VectorPointerGetter ()
54
+ {
55
+ if (vecPtr)
56
+ {
57
+ auto tempVec = vecPtr;
58
+ delete vecPtr;
59
+ tempVec = nullptr ;
60
+ }
61
+ }
62
+
63
+ std::vector<std::string>* VectorPointerGetter::GetVecPtr ()
64
+ {
65
+ return vecPtr;
66
+ }
Original file line number Diff line number Diff line change 7
7
#include " NestedEnumInClassTest/NestedEnumConsumer.h"
8
8
9
9
#include < ostream>
10
+ #include < vector>
10
11
11
12
// Tests for C++ types
12
13
struct DLL_API Types
@@ -77,3 +78,15 @@ class DLL_API TestMappedTypeNonConstRefParamConsumer
77
78
public:
78
79
void ChangePassedMappedTypeNonConstRefParam (TestMappedTypeNonConstRefParam&);
79
80
};
81
+
82
+ class DLL_API VectorPointerGetter
83
+ {
84
+ public:
85
+ VectorPointerGetter ();
86
+ ~VectorPointerGetter ();
87
+
88
+ std::vector<std::string>* GetVecPtr ();
89
+
90
+ private:
91
+ std::vector<std::string>* vecPtr;
92
+ };
You can’t perform that action at this time.
0 commit comments