File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,8 +53,7 @@ public static void LoadSpecificArgs()
5353 /// More complex version of StartAndStopTwice test
5454 /// </summary>
5555 [ Test ]
56- [ Ignore ( "GH#376: System.OverflowException : Arithmetic operation resulted in an overflow" ) ]
57- //[Ignore("System.ArgumentException : Cannot pass a GCHandle across AppDomains")]
56+ [ Ignore ( "System.ArgumentException : Cannot pass a GCHandle across AppDomains" ) ]
5857 public void ReInitialize ( )
5958 {
6059 var code = "from System import Int32\n " ;
Original file line number Diff line number Diff line change @@ -11,8 +11,19 @@ internal CLRObject(object ob, IntPtr tp)
1111 {
1212 IntPtr py = Runtime . PyType_GenericAlloc ( tp , 0 ) ;
1313
14- var flags = ( long ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
15- if ( ( flags & TypeFlags . Subclass ) != 0 )
14+ bool bFlag ;
15+ if ( Runtime . Is32Bit )
16+ {
17+ var flags = ( int ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
18+ bFlag = ( flags & TypeFlags . Subclass ) != 0 ;
19+ }
20+ else
21+ {
22+ var flags = ( float ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
23+ bFlag = ( flags & TypeFlags . Subclass ) != 0 ;
24+ }
25+
26+ if ( bFlag )
1627 {
1728 IntPtr dict = Marshal . ReadIntPtr ( py , ObjectOffset . DictOffset ( tp ) ) ;
1829 if ( dict == IntPtr . Zero )
Original file line number Diff line number Diff line change @@ -28,8 +28,19 @@ internal static ManagedType GetManagedObject(IntPtr ob)
2828 tp = ob ;
2929 }
3030
31- var flags = ( long ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
32- if ( ( flags & TypeFlags . Managed ) != 0 )
31+ bool bFlag ;
32+ if ( Runtime . Is32Bit )
33+ {
34+ var flags = ( int ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
35+ bFlag = ( flags & TypeFlags . Managed ) != 0 ;
36+ }
37+ else
38+ {
39+ var flags = ( float ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
40+ bFlag = ( flags & TypeFlags . Managed ) != 0 ;
41+ }
42+
43+ if ( bFlag )
3344 {
3445 IntPtr op = tp == ob
3546 ? Marshal . ReadIntPtr ( tp , TypeOffset . magic ( ) )
@@ -63,8 +74,19 @@ internal static bool IsManagedType(IntPtr ob)
6374 tp = ob ;
6475 }
6576
66- var flags = ( long ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
67- if ( ( flags & TypeFlags . Managed ) != 0 )
77+ bool bFlag ;
78+ if ( Runtime . Is32Bit )
79+ {
80+ var flags = ( int ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
81+ bFlag = ( flags & TypeFlags . Managed ) != 0 ;
82+ }
83+ else
84+ {
85+ var flags = ( float ) Marshal . ReadIntPtr ( tp , TypeOffset . tp_flags ) ;
86+ bFlag = ( flags & TypeFlags . Managed ) != 0 ;
87+ }
88+
89+ if ( bFlag )
6890 {
6991 return true ;
7092 }
You can’t perform that action at this time.
0 commit comments