@@ -56,6 +56,10 @@ protected override Bitmap GetThumbnailImage(uint width)
5656 return bitmap ;
5757 }
5858 }
59+ finally
60+ {
61+ SelectedItemStream . Close ( ) ;
62+ }
5963 }
6064 }
6165
@@ -111,13 +115,16 @@ public static Bitmap GetBreedThumbnailImage(Stream SelectedItemStream)
111115 {
112116 byte [ ] data = new byte [ SelectedItemStream . Length ] ;
113117 SelectedItemStream . Read ( data , 0 , data . Length ) ;
118+ SelectedItemStream . Close ( ) ;
114119 var asm = AsmResolver . PE . PEImage . FromBytes ( data ) ;
115120 var breedStringTable = asm . Resources . GetDirectory ( ResourceType . String )
116121 . GetDirectory ( 63 ) . GetData ( 1033 ) . Contents . WriteIntoArray ( ) ;
117- var binaryReader = new BinaryReader ( new MemoryStream ( breedStringTable . SkipWhile ( x => x == 0x0 ) . ToArray ( ) ) , Encoding . Unicode ) ;
118- var nameLength = binaryReader . ReadInt16 ( ) ;
119- var name = new string ( binaryReader . ReadChars ( nameLength ) ) . ToUpper ( ) ;
120- binaryReader . Close ( ) ;
122+ string name ;
123+ using ( var binaryReader = new BinaryReader ( new MemoryStream ( breedStringTable . SkipWhile ( x => x == 0x0 ) . ToArray ( ) ) , Encoding . Unicode ) )
124+ {
125+ var nameLength = binaryReader . ReadInt16 ( ) ;
126+ name = new string ( binaryReader . ReadChars ( nameLength ) ) . ToUpper ( ) ;
127+ }
121128 var bmpResourceDir = ( IResourceDirectory ) asm . Resources . Entries . Where ( x => x . Name == "BMP" ) . First ( ) ;
122129 bmpResourceDir = ( IResourceDirectory ) bmpResourceDir . Entries . Where ( x => x . Name == name ) . First ( ) ;
123130 var bmpResource = ( IResourceData ) bmpResourceDir . Entries . First ( ) ;
@@ -148,6 +155,7 @@ protected override Bitmap GetThumbnailImage(uint width)
148155 {
149156 byte [ ] data = new byte [ SelectedItemStream . Length ] ;
150157 SelectedItemStream . Read ( data , 0 , data . Length ) ;
158+ SelectedItemStream . Close ( ) ;
151159 return Helper . GetThumbnail ( data , "toy" ) ;
152160 }
153161
@@ -161,6 +169,7 @@ protected override Bitmap GetThumbnailImage(uint width)
161169 {
162170 byte [ ] data = new byte [ SelectedItemStream . Length ] ;
163171 SelectedItemStream . Read ( data , 0 , data . Length ) ;
172+ SelectedItemStream . Close ( ) ;
164173 return Helper . GetThumbnail ( data , "clo" ) ;
165174 }
166175 }
0 commit comments