| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -52,62 +52,53 @@ static Converter() | |||
| 52 | 52 | /// </summary> | |
| 53 | 53 | internal static Type GetTypeByAlias(IntPtr op) | |
| 54 | 54 | { | |
| 55 | - if (op == Runtime.PyStringType || | ||
| 56 | - op == Runtime.PyUnicodeType) | ||
| 57 | - { | ||
| 55 | + if (op == Runtime.PyStringType) | ||
| 58 | 56 | return stringType; | |
| 59 | - } | ||
| 60 | - else if (op == Runtime.PyIntType) | ||
| 61 | - { | ||
| 57 | + | ||
| 58 | + if (op == Runtime.PyUnicodeType) | ||
| 59 | + return stringType; | ||
| 60 | + | ||
| 61 | + if (op == Runtime.PyIntType) | ||
| 62 | 62 | return int32Type; | |
| 63 | - } | ||
| 64 | - else if (op == Runtime.PyLongType) | ||
| 65 | - { | ||
| 63 | + | ||
| 64 | + if (op == Runtime.PyLongType) | ||
| 66 | 65 | return int64Type; | |
| 67 | - } | ||
| 68 | - else if (op == Runtime.PyFloatType) | ||
| 69 | - { | ||
| 66 | + | ||
| 67 | + if (op == Runtime.PyFloatType) | ||
| 70 | 68 | return doubleType; | |
| 71 | - } | ||
| 72 | - else if (op == Runtime.PyBoolType) | ||
| 73 | - { | ||
| 69 | + | ||
| 70 | + if (op == Runtime.PyBoolType) | ||
| 74 | 71 | return boolType; | |
| 75 | - } | ||
| 72 | + | ||
| 76 | 73 | return null; | |
| 77 | 74 | } | |
| 78 | 75 | ||
| 79 | 76 | internal static IntPtr GetPythonTypeByAlias(Type op) | |
| 80 | 77 | { | |
| 81 | 78 | if (op == stringType) | |
| 82 | - { | ||
| 83 | 79 | return Runtime.PyUnicodeType; | |
| 84 | - } | ||
| 85 | 80 | ||
| 86 | - else if (Runtime.IsPython3 && (op == int16Type || | ||
| 87 | - op == int32Type || | ||
| 88 | - op == int64Type)) | ||
| 89 | - { | ||
| 81 | + if (op == int16Type) | ||
| 90 | 82 | return Runtime.PyIntType; | |
| 91 | - } | ||
| 92 | 83 | ||
| 93 | - else if (op == int16Type || | ||
| 94 | - op == int32Type) | ||
| 95 | - { | ||
| 84 | + if (op == int32Type) | ||
| 96 | 85 | return Runtime.PyIntType; | |
| 97 | - } | ||
| 98 | - else if (op == int64Type) | ||
| 99 | - { | ||
| 86 | + | ||
| 87 | + if (op == int64Type && Runtime.IsPython2) | ||
| 100 | 88 | return Runtime.PyLongType; | |
| 101 | - } | ||
| 102 | - else if (op == doubleType || | ||
| 103 | - op == singleType) | ||
| 104 | - { | ||
| 89 | + | ||
| 90 | + if (op == int64Type) | ||
| 91 | + return Runtime.PyIntType; | ||
| 92 | + | ||
| 93 | + if (op == doubleType) | ||
| 105 | 94 | return Runtime.PyFloatType; | |
| 106 | - } | ||
| 107 | - else if (op == boolType) | ||
| 108 | - { | ||
| 95 | + | ||
| 96 | + if (op == singleType) | ||
| 97 | + return Runtime.PyFloatType; | ||
| 98 | + | ||
| 99 | + if (op == boolType) | ||
| 109 | 100 | return Runtime.PyBoolType; | |
| 110 | - } | ||
| 101 | + | ||
| 111 | 102 | return IntPtr.Zero; | |
| 112 | 103 | } | |
| 113 | 104 | ||
@@ -329,27 +320,27 @@ internal static bool ToManagedValue(IntPtr value, Type obType, | |||
| 329 | 320 | return ToPrimitive(value, stringType, out result, setError); | |
| 330 | 321 | } | |
| 331 | 322 | ||
| 332 | - else if (Runtime.PyBool_Check(value)) | ||
| 323 | + if (Runtime.PyBool_Check(value)) | ||
| 333 | 324 | { | |
| 334 | 325 | return ToPrimitive(value, boolType, out result, setError); | |
| 335 | 326 | } | |
| 336 | 327 | ||
| 337 | - else if (Runtime.PyInt_Check(value)) | ||
| 328 | + if (Runtime.PyInt_Check(value)) | ||
| 338 | 329 | { | |
| 339 | 330 | return ToPrimitive(value, int32Type, out result, setError); | |
| 340 | 331 | } | |
| 341 | 332 | ||
| 342 | - else if (Runtime.PyLong_Check(value)) | ||
| 333 | + if (Runtime.PyLong_Check(value)) | ||
| 343 | 334 | { | |
| 344 | 335 | return ToPrimitive(value, int64Type, out result, setError); | |
| 345 | 336 | } | |
| 346 | 337 | ||
| 347 | - else if (Runtime.PyFloat_Check(value)) | ||
| 338 | + if (Runtime.PyFloat_Check(value)) | ||
| 348 | 339 | { | |
| 349 | 340 | return ToPrimitive(value, doubleType, out result, setError); | |
| 350 | 341 | } | |
| 351 | 342 | ||
| 352 | - else if (Runtime.PySequence_Check(value)) | ||
| 343 | + if (Runtime.PySequence_Check(value)) | ||
| 353 | 344 | { | |
| 354 | 345 | return ToArray(value, typeof(object[]), out result, setError); | |
| 355 | 346 | } | |
@@ -371,31 +362,31 @@ internal static bool ToManagedValue(IntPtr value, Type obType, | |||
| 371 | 362 | return true; | |
| 372 | 363 | } | |
| 373 | 364 | ||
| 374 | - else if (value == Runtime.PyBoolType) | ||
| 365 | + if (value == Runtime.PyBoolType) | ||
| 375 | 366 | { | |
| 376 | 367 | result = boolType; | |
| 377 | 368 | return true; | |
| 378 | 369 | } | |
| 379 | 370 | ||
| 380 | - else if (value == Runtime.PyIntType) | ||
| 371 | + if (value == Runtime.PyIntType) | ||
| 381 | 372 | { | |
| 382 | 373 | result = int32Type; | |
| 383 | 374 | return true; | |
| 384 | 375 | } | |
| 385 | 376 | ||
| 386 | - else if (value == Runtime.PyLongType) | ||
| 377 | + if (value == Runtime.PyLongType) | ||
| 387 | 378 | { | |
| 388 | 379 | result = int64Type; | |
| 389 | 380 | return true; | |
| 390 | 381 | } | |
| 391 | 382 | ||
| 392 | - else if (value == Runtime.PyFloatType) | ||
| 383 | + if (value == Runtime.PyFloatType) | ||
| 393 | 384 | { | |
| 394 | 385 | result = doubleType; | |
| 395 | 386 | return true; | |
| 396 | 387 | } | |
| 397 | 388 | ||
| 398 | - else if (value == Runtime.PyListType || value == Runtime.PyTupleType) | ||
| 389 | + if (value == Runtime.PyListType || value == Runtime.PyTupleType) | ||
| 399 | 390 | { | |
| 400 | 391 | result = typeof(object[]); | |
| 401 | 392 | return true; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -170,6 +170,9 @@ internal MethodBase[] GetMethods() | |||
| 170 | 170 | /// Precedence algorithm largely lifted from jython - the concerns are | |
| 171 | 171 | /// generally the same so we'll start w/this and tweak as necessary. | |
| 172 | 172 | /// </summary> | |
| 173 | + /// <remarks> | ||
| 174 | + /// TODO: Add link to specific Jython Section/Code/File | ||
| 175 | + /// </remarks> | ||
| 173 | 176 | internal static int GetPrecedence(MethodBase mi) | |
| 174 | 177 | { | |
| 175 | 178 | ParameterInfo[] pi = mi.GetParameters(); | |
@@ -198,61 +201,49 @@ internal static int ArgPrecedence(Type t) | |||
| 198 | 201 | ||
| 199 | 202 | TypeCode tc = Type.GetTypeCode(t); | |
| 200 | 203 | // TODO: Clean up | |
| 201 | - if (tc == TypeCode.Object) | ||
| 204 | + switch (tc) | ||
| 202 | 205 | { | |
| 203 | - return 1; | ||
| 204 | - } | ||
| 205 | - if (tc == TypeCode.UInt64) | ||
| 206 | - { | ||
| 207 | - return 10; | ||
| 208 | - } | ||
| 209 | - if (tc == TypeCode.UInt32) | ||
| 210 | - { | ||
| 211 | - return 11; | ||
| 212 | - } | ||
| 213 | - if (tc == TypeCode.UInt16) | ||
| 214 | - { | ||
| 215 | - return 12; | ||
| 216 | - } | ||
| 217 | - if (tc == TypeCode.Int64) | ||
| 218 | - { | ||
| 219 | - return 13; | ||
| 220 | - } | ||
| 221 | - if (tc == TypeCode.Int32) | ||
| 222 | - { | ||
| 223 | - return 14; | ||
| 224 | - } | ||
| 225 | - if (tc == TypeCode.Int16) | ||
| 226 | - { | ||
| 227 | - return 15; | ||
| 228 | - } | ||
| 229 | - if (tc == TypeCode.Char) | ||
| 230 | - { | ||
| 231 | - return 16; | ||
| 232 | - } | ||
| 233 | - if (tc == TypeCode.SByte) | ||
| 234 | - { | ||
| 235 | - return 17; | ||
| 236 | - } | ||
| 237 | - if (tc == TypeCode.Byte) | ||
| 238 | - { | ||
| 239 | - return 18; | ||
| 240 | - } | ||
| 241 | - if (tc == TypeCode.Single) | ||
| 242 | - { | ||
| 243 | - return 20; | ||
| 244 | - } | ||
| 245 | - if (tc == TypeCode.Double) | ||
| 246 | - { | ||
| 247 | - return 21; | ||
| 248 | - } | ||
| 249 | - if (tc == TypeCode.String) | ||
| 250 | - { | ||
| 251 | - return 30; | ||
| 252 | - } | ||
| 253 | - if (tc == TypeCode.Boolean) | ||
| 254 | - { | ||
| 255 | - return 40; | ||
| 206 | + case TypeCode.Object: | ||
| 207 | + return 1; | ||
| 208 | + | ||
| 209 | + case TypeCode.UInt64: | ||
| 210 | + return 10; | ||
| 211 | + | ||
| 212 | + case TypeCode.UInt32: | ||
| 213 | + return 11; | ||
| 214 | + | ||
| 215 | + case TypeCode.UInt16: | ||
| 216 | + return 12; | ||
| 217 | + | ||
| 218 | + case TypeCode.Int64: | ||
| 219 | + return 13; | ||
| 220 | + | ||
| 221 | + case TypeCode.Int32: | ||
| 222 | + return 14; | ||
| 223 | + | ||
| 224 | + case TypeCode.Int16: | ||
| 225 | + return 15; | ||
| 226 | + | ||
| 227 | + case TypeCode.Char: | ||
| 228 | + return 16; | ||
| 229 | + | ||
| 230 | + case TypeCode.SByte: | ||
| 231 | + return 17; | ||
| 232 | + | ||
| 233 | + case TypeCode.Byte: | ||
| 234 | + return 18; | ||
| 235 | + | ||
| 236 | + case TypeCode.Single: | ||
| 237 | + return 20; | ||
| 238 | + | ||
| 239 | + case TypeCode.Double: | ||
| 240 | + return 21; | ||
| 241 | + | ||
| 242 | + case TypeCode.String: | ||
| 243 | + return 30; | ||
| 244 | + | ||
| 245 | + case TypeCode.Boolean: | ||
| 246 | + return 40; | ||
| 256 | 247 | } | |
| 257 | 248 | ||
| 258 | 249 | if (t.IsArray) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -55,8 +55,7 @@ public static IntPtr mp_subscript(IntPtr tp, IntPtr idx) | |||
| 55 | 55 | return Exceptions.RaiseTypeError("No match found for given type params"); | |
| 56 | 56 | } | |
| 57 | 57 | ||
| 58 | - var mb = new MethodBinding(self.m, self.target); | ||
| 59 | - mb.info = mi; | ||
| 58 | + var mb = new MethodBinding(self.m, self.target) { info = mi }; | ||
| 60 | 59 | Runtime.XIncref(mb.pyHandle); | |
| 61 | 60 | return mb.pyHandle; | |
| 62 | 61 | } | |
@@ -76,22 +75,21 @@ public static IntPtr tp_getattro(IntPtr ob, IntPtr key) | |||
| 76 | 75 | } | |
| 77 | 76 | ||
| 78 | 77 | string name = Runtime.GetManagedString(key); | |
| 79 | - if (name == "__doc__") | ||
| 78 | + switch (name) | ||
| 80 | 79 | { | |
| 81 | - IntPtr doc = self.m.GetDocString(); | ||
| 82 | - Runtime.XIncref(doc); | ||
| 83 | - return doc; | ||
| 80 | + case "__doc__": | ||
| 81 | + IntPtr doc = self.m.GetDocString(); | ||
| 82 | + Runtime.XIncref(doc); | ||
| 83 | + return doc; | ||
| 84 | + // FIXME: deprecate __overloads__ soon... | ||
| 85 | + case "__overloads__": | ||
| 86 | + case "Overloads": | ||
| 87 | + var om = new OverloadMapper(self.m, self.target); | ||
| 88 | + Runtime.XIncref(om.pyHandle); | ||
| 89 | + return om.pyHandle; | ||
| 90 | + default: | ||
| 91 | + return Runtime.PyObject_GenericGetAttr(ob, key); | ||
| 84 | 92 | } | |
| 85 | - | ||
| 86 | - // FIXME: deprecate __overloads__ soon... | ||
| 87 | - if (name == "__overloads__" || name == "Overloads") | ||
| 88 | - { | ||
| 89 | - var om = new OverloadMapper(self.m, self.target); | ||
| 90 | - Runtime.XIncref(om.pyHandle); | ||
| 91 | - return om.pyHandle; | ||
| 92 | - } | ||
| 93 | - | ||
| 94 | - return Runtime.PyObject_GenericGetAttr(ob, key); | ||
| 95 | 93 | } | |
| 96 | 94 | ||
| 97 | 95 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments