File tree Expand file tree Collapse file tree 2 files changed +31
-1
lines changed
Expand file tree Collapse file tree 2 files changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ public PyObject MoveToPyObject()
4747 /// </summary>
4848 public NewReference Move ( )
4949 {
50- var result = new NewReference ( this ) ;
50+ var result = DangerousFromPointer ( this . DangerousGetAddress ( ) ) ;
5151 this . pointer = default ;
5252 return result ;
5353 }
Original file line number Diff line number Diff line change 33"""Test CLR class constructor support."""
44
55import pytest
6+ import sys
67
78import System
89
@@ -69,3 +70,32 @@ def test_default_constructor_fallback():
6970
7071 with pytest .raises (TypeError ):
7172 ob = DefaultConstructorMatching ("2" )
73+
74+ def test_constructor_leak ():
75+ from System import Uri
76+ from Python .Runtime import Runtime
77+
78+ uri = Uri ("http://www.python.org" )
79+ Runtime .TryCollectingGarbage (20 )
80+ ref_count = sys .getrefcount (uri )
81+
82+ # check disabled due to GC uncertainty
83+ # assert ref_count == 1
84+
85+
86+
87+ def test_string_constructor ():
88+ from System import String , Char , Array
89+
90+ ob = String ('A' , 10 )
91+ assert ob == 'A' * 10
92+
93+ arr = Array [Char ](10 )
94+ for i in range (10 ):
95+ arr [i ] = Char (str (i ))
96+
97+ ob = String (arr )
98+ assert ob == "0123456789"
99+
100+ ob = String (arr , 5 , 4 )
101+ assert ob == "5678"
You can’t perform that action at this time.
0 commit comments