Changeset 1554


Ignore:
Timestamp:
1/18/2010 5:38:32 AM (5 years ago)
Author:
lowjoel
Message:

Reviewed the SafeHandle? classes which we subclass. Also, don't implement IDisposable for CryptApi? since we use a global static instance. Addresses #284: Eraser.Util rewrite

Location:
branches/eraser6/CodeReview/Eraser.Util
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/CodeReview/Eraser.Util/Security.cs

    r1552 r1554  
    2626using System.Security.Principal; 
    2727using System.Runtime.InteropServices; 
     28using Microsoft.Win32.SafeHandles; 
    2829 
    2930namespace Eraser.Util 
     
    153154    } 
    154155 
    155     internal sealed class CryptApi : IDisposable 
     156    internal sealed class CryptApi 
    156157    { 
    157158        /// <summary> 
     
    187188        } 
    188189 
    189         #region IDisposable Members 
    190         ~CryptApi() 
    191         { 
    192             Dispose(false); 
    193         } 
    194  
    195         public void Dispose(bool disposing) 
    196         { 
    197             if (disposing) 
    198                 handle.Close(); 
    199         } 
    200  
    201         public void Dispose() 
    202         { 
    203             Dispose(true); 
    204             GC.SuppressFinalize(this); 
    205         } 
    206         #endregion 
    207  
    208190        /// <summary> 
    209191        /// The GenRandom function fills a buffer with cryptographically random bytes. 
     
    230212    } 
    231213 
    232     internal class SafeCryptHandle : SafeHandle 
     214    internal class SafeCryptHandle : SafeHandleZeroOrMinusOneIsInvalid 
    233215    { 
    234216        public SafeCryptHandle() 
    235             : base(IntPtr.Zero, true) 
    236         { 
    237         } 
    238  
    239         public override bool IsInvalid 
    240         { 
    241             get { return handle == IntPtr.Zero; } 
     217            : base(true) 
     218        { 
    242219        } 
    243220 
     
    250227    } 
    251228 
    252     internal class SafeTokenHandle : SafeHandle 
     229    internal class SafeTokenHandle : SafeHandleZeroOrMinusOneIsInvalid 
    253230    { 
    254231        public SafeTokenHandle() 
    255             : base(IntPtr.Zero, true) 
    256         { 
    257         } 
    258  
    259         public override bool IsInvalid 
    260         { 
    261             get { return handle == IntPtr.Zero; } 
     232            : base(true) 
     233        { 
    262234        } 
    263235 
  • branches/eraser6/CodeReview/Eraser.Util/UxThemeApi.cs

    r1547 r1554  
    2727using System.Drawing; 
    2828using System.IO; 
     29using Microsoft.Win32.SafeHandles; 
    2930 
    3031namespace Eraser.Util 
     
    441442    } 
    442443 
    443     internal class SafeThemeHandle : SafeHandle 
     444    internal class SafeThemeHandle : SafeHandleZeroOrMinusOneIsInvalid 
    444445    { 
    445446        public SafeThemeHandle() 
    446             : base(IntPtr.Zero, true) 
    447         { 
    448         } 
    449  
    450         public override bool IsInvalid 
    451         { 
    452             get { return handle == IntPtr.Zero; } 
     447            : base(true) 
     448        { 
    453449        } 
    454450 
Note: See TracChangeset for help on using the changeset viewer.