| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -14,7 +14,7 @@ internal CLRObject(object ob, IntPtr tp) | |||
| 14 | 14 | System.Diagnostics.Debug.Assert(tp != IntPtr.Zero); | |
| 15 | 15 | IntPtr py = Runtime.PyType_GenericAlloc(tp, 0); | |
| 16 | 16 | ||
| 17 | - long flags = Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 17 | + var flags = (TypeFlags)Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 18 | 18 | if ((flags & TypeFlags.Subclass) != 0) | |
| 19 | 19 | { | |
| 20 | 20 | IntPtr dict = Marshal.ReadIntPtr(py, ObjectOffset.TypeDictOffset(tp)); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -344,38 +344,42 @@ public static void FreeModuleDef(IntPtr ptr) | |||
| 344 | 344 | /// Note that the two values reserved for stackless have been put | |
| 345 | 345 | /// to good use as PythonNet specific flags (Managed and Subclass) | |
| 346 | 346 | /// </summary> | |
| 347 | - internal class TypeFlags | ||
| 347 | + // Py_TPFLAGS_* | ||
| 348 | + [Flags] | ||
| 349 | + public enum TypeFlags: int | ||
| 348 | 350 | { | |
| 349 | - public const int HeapType = (1 << 9); | ||
| 350 | - public const int BaseType = (1 << 10); | ||
| 351 | - public const int Ready = (1 << 12); | ||
| 352 | - public const int Readying = (1 << 13); | ||
| 353 | - public const int HaveGC = (1 << 14); | ||
| 351 | + HeapType = (1 << 9), | ||
| 352 | + BaseType = (1 << 10), | ||
| 353 | + Ready = (1 << 12), | ||
| 354 | + Readying = (1 << 13), | ||
| 355 | + HaveGC = (1 << 14), | ||
| 354 | 356 | // 15 and 16 are reserved for stackless | |
| 355 | - public const int HaveStacklessExtension = 0; | ||
| 357 | + HaveStacklessExtension = 0, | ||
| 356 | 358 | /* XXX Reusing reserved constants */ | |
| 357 | - public const int Managed = (1 << 15); // PythonNet specific | ||
| 358 | - public const int Subclass = (1 << 16); // PythonNet specific | ||
| 359 | - public const int HaveIndex = (1 << 17); | ||
| 359 | + /// <remarks>PythonNet specific</remarks> | ||
| 360 | + Managed = (1 << 15), | ||
| 361 | + /// <remarks>PythonNet specific</remarks> | ||
| 362 | + Subclass = (1 << 16), | ||
| 363 | + HaveIndex = (1 << 17), | ||
| 360 | 364 | /* Objects support nb_index in PyNumberMethods */ | |
| 361 | - public const int HaveVersionTag = (1 << 18); | ||
| 362 | - public const int ValidVersionTag = (1 << 19); | ||
| 363 | - public const int IsAbstract = (1 << 20); | ||
| 364 | - public const int HaveNewBuffer = (1 << 21); | ||
| 365 | + HaveVersionTag = (1 << 18), | ||
| 366 | + ValidVersionTag = (1 << 19), | ||
| 367 | + IsAbstract = (1 << 20), | ||
| 368 | + HaveNewBuffer = (1 << 21), | ||
| 365 | 369 | // TODO: Implement FastSubclass functions | |
| 366 | - public const int IntSubclass = (1 << 23); | ||
| 367 | - public const int LongSubclass = (1 << 24); | ||
| 368 | - public const int ListSubclass = (1 << 25); | ||
| 369 | - public const int TupleSubclass = (1 << 26); | ||
| 370 | - public const int StringSubclass = (1 << 27); | ||
| 371 | - public const int UnicodeSubclass = (1 << 28); | ||
| 372 | - public const int DictSubclass = (1 << 29); | ||
| 373 | - public const int BaseExceptionSubclass = (1 << 30); | ||
| 374 | - public const int TypeSubclass = (1 << 31); | ||
| 375 | - | ||
| 376 | - public const int Default = ( | ||
| 370 | + IntSubclass = (1 << 23), | ||
| 371 | + LongSubclass = (1 << 24), | ||
| 372 | + ListSubclass = (1 << 25), | ||
| 373 | + TupleSubclass = (1 << 26), | ||
| 374 | + StringSubclass = (1 << 27), | ||
| 375 | + UnicodeSubclass = (1 << 28), | ||
| 376 | + DictSubclass = (1 << 29), | ||
| 377 | + BaseExceptionSubclass = (1 << 30), | ||
| 378 | + TypeSubclass = (1 << 31), | ||
| 379 | + | ||
| 380 | + Default = ( | ||
| 377 | 381 | HaveStacklessExtension | | |
| 378 | - HaveVersionTag); | ||
| 382 | + HaveVersionTag), | ||
| 379 | 383 | } | |
| 380 | 384 | ||
| 381 | 385 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -92,7 +92,7 @@ internal static ManagedType GetManagedObject(IntPtr ob) | |||
| 92 | 92 | tp = ob; | |
| 93 | 93 | } | |
| 94 | 94 | ||
| 95 | - var flags = Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 95 | + var flags = (TypeFlags)Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 96 | 96 | if ((flags & TypeFlags.Managed) != 0) | |
| 97 | 97 | { | |
| 98 | 98 | IntPtr op = tp == ob | |
@@ -117,7 +117,7 @@ internal static ManagedType GetManagedObjectType(IntPtr ob) | |||
| 117 | 117 | if (ob != IntPtr.Zero) | |
| 118 | 118 | { | |
| 119 | 119 | IntPtr tp = Runtime.PyObject_TYPE(ob); | |
| 120 | - var flags = Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 120 | + var flags = (TypeFlags)Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 121 | 121 | if ((flags & TypeFlags.Managed) != 0) | |
| 122 | 122 | { | |
| 123 | 123 | tp = Marshal.ReadIntPtr(tp, TypeOffset.magic()); | |
@@ -152,7 +152,7 @@ internal static bool IsManagedType(IntPtr ob) | |||
| 152 | 152 | tp = ob; | |
| 153 | 153 | } | |
| 154 | 154 | ||
| 155 | - var flags = Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 155 | + var flags = (TypeFlags)Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 156 | 156 | if ((flags & TypeFlags.Managed) != 0) | |
| 157 | 157 | { | |
| 158 | 158 | return true; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -147,13 +147,13 @@ public static IntPtr tp_new(IntPtr tp, IntPtr args, IntPtr kw) | |||
| 147 | 147 | return IntPtr.Zero; | |
| 148 | 148 | } | |
| 149 | 149 | ||
| 150 | - int flags = TypeFlags.Default; | ||
| 150 | + var flags = TypeFlags.Default; | ||
| 151 | 151 | flags |= TypeFlags.Managed; | |
| 152 | 152 | flags |= TypeFlags.HeapType; | |
| 153 | 153 | flags |= TypeFlags.BaseType; | |
| 154 | 154 | flags |= TypeFlags.Subclass; | |
| 155 | 155 | flags |= TypeFlags.HaveGC; | |
| 156 | - Util.WriteCLong(type, TypeOffset.tp_flags, flags); | ||
| 156 | + Util.WriteCLong(type, TypeOffset.tp_flags, (int)flags); | ||
| 157 | 157 | ||
| 158 | 158 | TypeManager.CopySlot(base_type, type, TypeOffset.tp_dealloc); | |
| 159 | 159 | ||
@@ -285,7 +285,7 @@ public static void tp_dealloc(IntPtr tp) | |||
| 285 | 285 | { | |
| 286 | 286 | // Fix this when we dont cheat on the handle for subclasses! | |
| 287 | 287 | ||
| 288 | - var flags = Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 288 | + var flags = (TypeFlags)Util.ReadCLong(tp, TypeOffset.tp_flags); | ||
| 289 | 289 | if ((flags & TypeFlags.Subclass) == 0) | |
| 290 | 290 | { | |
| 291 | 291 | IntPtr gc = Marshal.ReadIntPtr(tp, TypeOffset.magic()); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -171,9 +171,9 @@ internal static IntPtr CreateType(Type impl) | |||
| 171 | 171 | SlotsHolder slotsHolder = CreateSolotsHolder(type); | |
| 172 | 172 | InitializeSlots(type, impl, slotsHolder); | |
| 173 | 173 | ||
| 174 | - int flags = TypeFlags.Default | TypeFlags.Managed | | ||
| 174 | + var flags = TypeFlags.Default | TypeFlags.Managed | | ||
| 175 | 175 | TypeFlags.HeapType | TypeFlags.HaveGC; | |
| 176 | - Util.WriteCLong(type, TypeOffset.tp_flags, flags); | ||
| 176 | + Util.WriteCLong(type, TypeOffset.tp_flags, (int)flags); | ||
| 177 | 177 | ||
| 178 | 178 | if (Runtime.PyType_Ready(type) != 0) | |
| 179 | 179 | { | |
@@ -286,12 +286,12 @@ internal static IntPtr CreateType(ManagedType impl, Type clrType) | |||
| 286 | 286 | Runtime.XIncref(base_); | |
| 287 | 287 | } | |
| 288 | 288 | ||
| 289 | - const int flags = TypeFlags.Default | ||
| 289 | + const TypeFlags flags = TypeFlags.Default | ||
| 290 | 290 | | TypeFlags.Managed | |
| 291 | 291 | | TypeFlags.HeapType | |
| 292 | 292 | | TypeFlags.BaseType | |
| 293 | 293 | | TypeFlags.HaveGC; | |
| 294 | - Util.WriteCLong(type, TypeOffset.tp_flags, flags); | ||
| 294 | + Util.WriteCLong(type, TypeOffset.tp_flags, (int)flags); | ||
| 295 | 295 | ||
| 296 | 296 | OperatorMethod.FixupSlots(type, clrType); | |
| 297 | 297 | // Leverage followup initialization from the Python runtime. Note | |
@@ -457,11 +457,11 @@ internal static IntPtr CreateMetaType(Type impl, out SlotsHolder slotsHolder) | |||
| 457 | 457 | int size = TypeOffset.magic() + IntPtr.Size; | |
| 458 | 458 | Marshal.WriteIntPtr(type, TypeOffset.tp_basicsize, new IntPtr(size)); | |
| 459 | 459 | ||
| 460 | - const int flags = TypeFlags.Default | ||
| 460 | + const TypeFlags flags = TypeFlags.Default | ||
| 461 | 461 | | TypeFlags.Managed | |
| 462 | 462 | | TypeFlags.HeapType | |
| 463 | 463 | | TypeFlags.HaveGC; | |
| 464 | - Util.WriteCLong(type, TypeOffset.tp_flags, flags); | ||
| 464 | + Util.WriteCLong(type, TypeOffset.tp_flags, (int)flags); | ||
| 465 | 465 | ||
| 466 | 466 | // Slots will inherit from TypeType, it's not neccesary for setting them. | |
| 467 | 467 | // Inheried slots: | |
@@ -562,11 +562,11 @@ internal static IntPtr BasicSubType(string name, IntPtr base_, Type impl) | |||
| 562 | 562 | Marshal.WriteIntPtr(type, TypeOffset.tp_base, base_); | |
| 563 | 563 | Runtime.XIncref(base_); | |
| 564 | 564 | ||
| 565 | - int flags = TypeFlags.Default; | ||
| 565 | + var flags = TypeFlags.Default; | ||
| 566 | 566 | flags |= TypeFlags.Managed; | |
| 567 | 567 | flags |= TypeFlags.HeapType; | |
| 568 | 568 | flags |= TypeFlags.HaveGC; | |
| 569 | - Util.WriteCLong(type, TypeOffset.tp_flags, flags); | ||
| 569 | + Util.WriteCLong(type, TypeOffset.tp_flags, (int)flags); | ||
| 570 | 570 | ||
| 571 | 571 | CopySlot(base_, type, TypeOffset.tp_traverse); | |
| 572 | 572 | CopySlot(base_, type, TypeOffset.tp_clear); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments