From 940d8bad624c08adeb73dfc0fde7ec059664ca95 Mon Sep 17 00:00:00 2001 From: ClemensF Date: Fri, 27 Jul 2012 18:47:57 +0200 Subject: [PATCH] Improved MemoryStream handling in TileImageLoader --- MapControl/TileImageLoader.cs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/MapControl/TileImageLoader.cs b/MapControl/TileImageLoader.cs index 59abec08..4f4008f3 100644 --- a/MapControl/TileImageLoader.cs +++ b/MapControl/TileImageLoader.cs @@ -247,14 +247,22 @@ namespace MapControl } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + using (Stream responseStream = response.GetResponseStream()) { - using (Stream responseStream = response.GetResponseStream()) + if (response.ContentLength > 0) { - buffer = new byte[(int)response.ContentLength]; - - using (MemoryStream memoryStream = new MemoryStream(buffer)) + using (MemoryStream memoryStream = new MemoryStream((int)response.ContentLength)) { responseStream.CopyTo(memoryStream); + buffer = memoryStream.GetBuffer(); + } + } + else + { + using (MemoryStream memoryStream = new MemoryStream()) + { + responseStream.CopyTo(memoryStream); + buffer = memoryStream.ToArray(); } } } @@ -263,8 +271,6 @@ namespace MapControl } catch (WebException ex) { - buffer = null; - if (ex.Status == WebExceptionStatus.ProtocolError) { TraceInformation("{0} - {1}", tile.Uri, ((HttpWebResponse)ex.Response).StatusCode); @@ -280,8 +286,6 @@ namespace MapControl } catch (Exception ex) { - buffer = null; - TraceWarning("{0} - {1}", tile.Uri, ex.Message); }