| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | 
							- //
 
- // Author:
 
- //   Jb Evain (jbevain@gmail.com)
 
- //
 
- // Copyright (c) 2008 - 2015 Jb Evain
 
- // Copyright (c) 2008 - 2011 Novell, Inc.
 
- //
 
- // Licensed under the MIT/X11 license.
 
- //
 
- using System;
 
- namespace ILRuntime.Mono {
 
- 	static class Disposable {
 
- 		public static Disposable<T> Owned<T> (T value) where T : class, IDisposable
 
- 		{
 
- 			return new Disposable<T> (value, owned: true);
 
- 		}
 
- 		public static Disposable<T> NotOwned<T> (T value) where T : class, IDisposable
 
- 		{
 
- 			return new Disposable<T> (value, owned: false);
 
- 		}
 
- 	}
 
- 	struct Disposable<T> : IDisposable where T : class, IDisposable {
 
- 		internal readonly T value;
 
- 		readonly bool owned;
 
- 		public Disposable (T value, bool owned)
 
- 		{
 
- 			this.value = value;
 
- 			this.owned = owned;
 
- 		}
 
- 		public void Dispose ()
 
- 		{
 
- 			if (value != null && owned)
 
- 				value.Dispose ();
 
- 		}
 
- 	}
 
- }
 
 
  |