Skip to content

Commit 9145cd5

Browse files
committed
Clean-up simple classes
1 parent 8a50e13 commit 9145cd5

32 files changed

+265
-293
lines changed

src/runtime/arrayobject.cs

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections;
3-
using System.Reflection;
43

54
namespace Python.Runtime
65
{
@@ -22,13 +21,13 @@ internal override bool CanSubclass()
2221

2322
public static IntPtr tp_new(IntPtr tp, IntPtr args, IntPtr kw)
2423
{
25-
ArrayObject self = GetManagedObject(tp) as ArrayObject;
24+
var self = GetManagedObject(tp) as ArrayObject;
2625
if (Runtime.PyTuple_Size(args) != 1)
2726
{
2827
return Exceptions.RaiseTypeError("array expects 1 argument");
2928
}
3029
IntPtr op = Runtime.PyTuple_GetItem(args, 0);
31-
Object result;
30+
object result;
3231

3332
if (!Converter.ToManaged(op, self.type, out result, true))
3433
{
@@ -44,11 +43,11 @@ public static IntPtr tp_new(IntPtr tp, IntPtr args, IntPtr kw)
4443

4544
public static IntPtr mp_subscript(IntPtr ob, IntPtr idx)
4645
{
47-
CLRObject obj = (CLRObject)ManagedType.GetManagedObject(ob);
48-
Array items = obj.inst as Array;
46+
var obj = (CLRObject)GetManagedObject(ob);
47+
var items = obj.inst as Array;
4948
Type itemType = obj.inst.GetType().GetElementType();
5049
int rank = items.Rank;
51-
int index = 0;
50+
int index;
5251
object value;
5352

5453
// Note that CLR 1.0 only supports int indexes - methods to
@@ -62,7 +61,7 @@ public static IntPtr mp_subscript(IntPtr ob, IntPtr idx)
6261

6362
if (rank == 1)
6463
{
65-
index = (int)Runtime.PyInt_AsLong(idx);
64+
index = Runtime.PyInt_AsLong(idx);
6665

6766
if (Exceptions.ErrorOccurred())
6867
{
@@ -84,7 +83,7 @@ public static IntPtr mp_subscript(IntPtr ob, IntPtr idx)
8483
return IntPtr.Zero;
8584
}
8685

87-
return Converter.ToPython(items.GetValue(index), itemType);
86+
return Converter.ToPython(value, itemType);
8887
}
8988

9089
// Multi-dimensional arrays can be indexed a la: list[1, 2, 3].
@@ -97,12 +96,12 @@ public static IntPtr mp_subscript(IntPtr ob, IntPtr idx)
9796

9897
int count = Runtime.PyTuple_Size(idx);
9998

100-
Array args = Array.CreateInstance(typeof(Int32), count);
99+
Array args = new int[count];
101100

102-
for (int i = 0; i < count; i++)
101+
for (var i = 0; i < count; i++)
103102
{
104103
IntPtr op = Runtime.PyTuple_GetItem(idx, i);
105-
index = (int)Runtime.PyInt_AsLong(op);
104+
index = Runtime.PyInt_AsLong(op);
106105

107106
if (Exceptions.ErrorOccurred())
108107
{
@@ -137,11 +136,11 @@ public static IntPtr mp_subscript(IntPtr ob, IntPtr idx)
137136

138137
public static int mp_ass_subscript(IntPtr ob, IntPtr idx, IntPtr v)
139138
{
140-
CLRObject obj = (CLRObject)ManagedType.GetManagedObject(ob);
141-
Array items = obj.inst as Array;
139+
var obj = (CLRObject)GetManagedObject(ob);
140+
var items = obj.inst as Array;
142141
Type itemType = obj.inst.GetType().GetElementType();
143142
int rank = items.Rank;
144-
int index = 0;
143+
int index;
145144
object value;
146145

147146
if (items.IsReadOnly)
@@ -157,7 +156,7 @@ public static int mp_ass_subscript(IntPtr ob, IntPtr idx, IntPtr v)
157156

158157
if (rank == 1)
159158
{
160-
index = (int)Runtime.PyInt_AsLong(idx);
159+
index = Runtime.PyInt_AsLong(idx);
161160

162161
if (Exceptions.ErrorOccurred())
163162
{
@@ -191,12 +190,12 @@ public static int mp_ass_subscript(IntPtr ob, IntPtr idx, IntPtr v)
191190

192191
int count = Runtime.PyTuple_Size(idx);
193192

194-
Array args = Array.CreateInstance(typeof(Int32), count);
193+
Array args = new int[count];
195194

196-
for (int i = 0; i < count; i++)
195+
for (var i = 0; i < count; i++)
197196
{
198197
IntPtr op = Runtime.PyTuple_GetItem(idx, i);
199-
index = (int)Runtime.PyInt_AsLong(op);
198+
index = Runtime.PyInt_AsLong(op);
200199

201200
if (Exceptions.ErrorOccurred())
202201
{
@@ -232,9 +231,9 @@ public static int mp_ass_subscript(IntPtr ob, IntPtr idx, IntPtr v)
232231

233232
public static int sq_contains(IntPtr ob, IntPtr v)
234233
{
235-
CLRObject obj = (CLRObject)ManagedType.GetManagedObject(ob);
234+
var obj = (CLRObject)GetManagedObject(ob);
236235
Type itemType = obj.inst.GetType().GetElementType();
237-
IList items = obj.inst as IList;
236+
var items = obj.inst as IList;
238237
object value;
239238

240239
if (!Converter.ToManaged(v, itemType, out value, false))
@@ -257,8 +256,8 @@ public static int sq_contains(IntPtr ob, IntPtr v)
257256

258257
public static int mp_length(IntPtr ob)
259258
{
260-
CLRObject self = (CLRObject)ManagedType.GetManagedObject(ob);
261-
Array items = self.inst as Array;
259+
var self = (CLRObject)GetManagedObject(ob);
260+
var items = self.inst as Array;
262261
return items.Length;
263262
}
264263
}

src/runtime/assemblymanager.cs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@ internal class AssemblyManager
1818
// modified from event handlers below, potentially triggered from different .NET threads
1919
// therefore this should be a ConcurrentDictionary
2020
static ConcurrentDictionary<string, ConcurrentDictionary<Assembly, string>> namespaces;
21+
2122
//static Dictionary<string, Dictionary<string, string>> generics;
2223
static AssemblyLoadEventHandler lhandler;
2324
static ResolveEventHandler rhandler;
25+
2426
// updated only under GIL?
2527
static Dictionary<string, int> probed;
28+
2629
// modified from event handlers below, potentially triggered from different .NET threads
2730
static AssemblyList assemblies;
2831
internal static List<string> pypath;
@@ -47,14 +50,14 @@ internal static void Initialize()
4750

4851
AppDomain domain = AppDomain.CurrentDomain;
4952

50-
lhandler = new AssemblyLoadEventHandler(AssemblyLoadHandler);
53+
lhandler = AssemblyLoadHandler;
5154
domain.AssemblyLoad += lhandler;
5255

53-
rhandler = new ResolveEventHandler(ResolveHandler);
56+
rhandler = ResolveHandler;
5457
domain.AssemblyResolve += rhandler;
5558

5659
Assembly[] items = domain.GetAssemblies();
57-
foreach (var a in items)
60+
foreach (Assembly a in items)
5861
{
5962
try
6063
{
@@ -63,7 +66,7 @@ internal static void Initialize()
6366
}
6467
catch (Exception ex)
6568
{
66-
Debug.WriteLine(string.Format("Error scanning assembly {0}. {1}", a, ex));
69+
Debug.WriteLine("Error scanning assembly {0}. {1}", a, ex);
6770
}
6871
}
6972
}
@@ -89,7 +92,7 @@ internal static void Shutdown()
8992
// Python runtime is initialized.
9093
//===================================================================
9194

92-
static void AssemblyLoadHandler(Object ob, AssemblyLoadEventArgs args)
95+
private static void AssemblyLoadHandler(object ob, AssemblyLoadEventArgs args)
9396
{
9497
Assembly assembly = args.LoadedAssembly;
9598
assemblies.Add(assembly);
@@ -105,7 +108,7 @@ static void AssemblyLoadHandler(Object ob, AssemblyLoadEventArgs args)
105108
// we loaded from Python which also needs to be found on PYTHONPATH.
106109
//===================================================================
107110

108-
static Assembly ResolveHandler(Object ob, ResolveEventArgs args)
111+
private static Assembly ResolveHandler(object ob, ResolveEventArgs args)
109112
{
110113
string name = args.Name.ToLower();
111114
foreach (Assembly a in assemblies)
@@ -205,7 +208,7 @@ public static Assembly LoadAssembly(string name)
205208
{
206209
assembly = Assembly.Load(name);
207210
}
208-
catch (System.Exception)
211+
catch (Exception)
209212
{
210213
//if (!(e is System.IO.FileNotFoundException))
211214
//{
@@ -230,7 +233,7 @@ public static Assembly LoadAssemblyPath(string name)
230233
{
231234
assembly = Assembly.LoadFrom(path);
232235
}
233-
catch
236+
catch (Exception)
234237
{
235238
}
236239
}
@@ -248,7 +251,9 @@ public static Assembly LoadAssemblyFullPath(string name)
248251
if (Path.IsPathRooted(name))
249252
{
250253
if (!Path.HasExtension(name))
254+
{
251255
name = name + ".dll";
256+
}
252257
if (File.Exists(name))
253258
{
254259
try
@@ -294,13 +299,13 @@ public static Assembly FindLoadedAssembly(string name)
294299
public static bool LoadImplicit(string name, bool warn = true)
295300
{
296301
string[] names = name.Split('.');
297-
bool loaded = false;
298-
string s = "";
302+
var loaded = false;
303+
var s = "";
299304
Assembly lastAssembly = null;
300305
HashSet<Assembly> assembliesSet = null;
301-
for (int i = 0; i < names.Length; i++)
306+
for (var i = 0; i < names.Length; i++)
302307
{
303-
s = (i == 0) ? names[0] : s + "." + names[i];
308+
s = i == 0 ? names[0] : s + "." + names[i];
304309
if (!probed.ContainsKey(s))
305310
{
306311
if (assembliesSet == null)
@@ -328,7 +333,7 @@ public static bool LoadImplicit(string name, bool warn = true)
328333
// Deprecation warning
329334
if (warn && loaded)
330335
{
331-
string deprWarning = String.Format(
336+
string deprWarning = string.Format(
332337
"\nThe module was found, but not in a referenced namespace.\n" +
333338
"Implicit loading is deprecated. Please use clr.AddReference(\"{0}\").",
334339
Path.GetFileNameWithoutExtension(lastAssembly.Location));
@@ -353,17 +358,16 @@ internal static void ScanAssembly(Assembly assembly)
353358
// the assembly.
354359

355360
Type[] types = assembly.GetTypes();
356-
for (int i = 0; i < types.Length; i++)
361+
foreach (Type t in types)
357362
{
358-
Type t = types[i];
359363
string ns = t.Namespace ?? "";
360364
if (!namespaces.ContainsKey(ns))
361365
{
362366
string[] names = ns.Split('.');
363-
string s = "";
364-
for (int n = 0; n < names.Length; n++)
367+
var s = "";
368+
for (var n = 0; n < names.Length; n++)
365369
{
366-
s = (n == 0) ? names[0] : s + "." + names[n];
370+
s = n == 0 ? names[0] : s + "." + names[n];
367371
namespaces.TryAdd(s, new ConcurrentDictionary<Assembly, string>());
368372
}
369373
}
@@ -382,7 +386,7 @@ internal static void ScanAssembly(Assembly assembly)
382386

383387
public static AssemblyName[] ListAssemblies()
384388
{
385-
List<AssemblyName> names = new List<AssemblyName>(assemblies.Count);
389+
var names = new List<AssemblyName>(assemblies.Count);
386390
foreach (Assembly assembly in assemblies)
387391
{
388392
names.Add(assembly.GetName());
@@ -397,7 +401,7 @@ public static AssemblyName[] ListAssemblies()
397401

398402
public static bool IsValidNamespace(string name)
399403
{
400-
return !String.IsNullOrEmpty(name) && namespaces.ContainsKey(name);
404+
return !string.IsNullOrEmpty(name) && namespaces.ContainsKey(name);
401405
}
402406

403407
//===================================================================
@@ -406,10 +410,7 @@ public static bool IsValidNamespace(string name)
406410

407411
public static IEnumerable<Assembly> GetAssemblies(string nsname)
408412
{
409-
if (!namespaces.ContainsKey(nsname))
410-
return new List<Assembly>();
411-
412-
return namespaces[nsname].Keys;
413+
return !namespaces.ContainsKey(nsname) ? new List<Assembly>() : namespaces[nsname].Keys;
413414
}
414415

415416
//===================================================================
@@ -419,7 +420,7 @@ public static IEnumerable<Assembly> GetAssemblies(string nsname)
419420
public static List<string> GetNames(string nsname)
420421
{
421422
//Dictionary<string, int> seen = new Dictionary<string, int>();
422-
List<string> names = new List<string>(8);
423+
var names = new List<string>(8);
423424

424425
List<string> g = GenericUtil.GetGenericBaseNames(nsname);
425426
if (g != null)
@@ -435,9 +436,8 @@ public static List<string> GetNames(string nsname)
435436
foreach (Assembly a in namespaces[nsname].Keys)
436437
{
437438
Type[] types = a.GetTypes();
438-
for (int i = 0; i < types.Length; i++)
439+
foreach (Type t in types)
439440
{
440-
Type t = types[i];
441441
if ((t.Namespace ?? "") == nsname)
442442
{
443443
names.Add(t.Name);

src/runtime/clrobject.cs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
using System;
2-
using System.Collections;
3-
using System.Reflection;
42
using System.Runtime.InteropServices;
53

64
namespace Python.Runtime
75
{
86
internal class CLRObject : ManagedType
97
{
10-
internal Object inst;
8+
internal object inst;
119

12-
internal CLRObject(Object ob, IntPtr tp) : base()
10+
internal CLRObject(object ob, IntPtr tp)
1311
{
1412
IntPtr py = Runtime.PyType_GenericAlloc(tp, 0);
1513

16-
int flags = (int)Marshal.ReadIntPtr(tp, TypeOffset.tp_flags);
14+
var flags = (int)Marshal.ReadIntPtr(tp, TypeOffset.tp_flags);
1715
if ((flags & TypeFlags.Subclass) != 0)
1816
{
1917
IntPtr dict = Marshal.ReadIntPtr(py, ObjectOffset.DictOffset(tp));
@@ -26,9 +24,9 @@ internal CLRObject(Object ob, IntPtr tp) : base()
2624

2725
GCHandle gc = GCHandle.Alloc(this);
2826
Marshal.WriteIntPtr(py, ObjectOffset.magic(tp), (IntPtr)gc);
29-
this.tpHandle = tp;
30-
this.pyHandle = py;
31-
this.gcHandle = gc;
27+
tpHandle = tp;
28+
pyHandle = py;
29+
gcHandle = gc;
3230
inst = ob;
3331

3432
// Fix the BaseException args (and __cause__ in case of Python 3)
@@ -37,35 +35,35 @@ internal CLRObject(Object ob, IntPtr tp) : base()
3735
}
3836

3937

40-
internal static CLRObject GetInstance(Object ob, IntPtr pyType)
38+
internal static CLRObject GetInstance(object ob, IntPtr pyType)
4139
{
4240
return new CLRObject(ob, pyType);
4341
}
4442

4543

46-
internal static CLRObject GetInstance(Object ob)
44+
internal static CLRObject GetInstance(object ob)
4745
{
4846
ClassBase cc = ClassManager.GetClass(ob.GetType());
4947
return GetInstance(ob, cc.tpHandle);
5048
}
5149

5250

53-
internal static IntPtr GetInstHandle(Object ob, IntPtr pyType)
51+
internal static IntPtr GetInstHandle(object ob, IntPtr pyType)
5452
{
5553
CLRObject co = GetInstance(ob, pyType);
5654
return co.pyHandle;
5755
}
5856

5957

60-
internal static IntPtr GetInstHandle(Object ob, Type type)
58+
internal static IntPtr GetInstHandle(object ob, Type type)
6159
{
6260
ClassBase cc = ClassManager.GetClass(type);
6361
CLRObject co = GetInstance(ob, cc.tpHandle);
6462
return co.pyHandle;
6563
}
6664

6765

68-
internal static IntPtr GetInstHandle(Object ob)
66+
internal static IntPtr GetInstHandle(object ob)
6967
{
7068
CLRObject co = GetInstance(ob);
7169
return co.pyHandle;

0 commit comments

Comments
 (0)