aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-04-20 03:46:09 +0100
committerJustin Clark-Casey (justincc)2012-04-20 03:46:33 +0100
commitcba64ebc79eaec9cd432d90b8cc48e22272d31f0 (patch)
tree232d1330acf8215d7e0b1f9bd8e85be175ff4906
parentRemember to dispose of the bitmap opened from a file in GatekeeperServiceConn... (diff)
downloadopensim-SC_OLD-cba64ebc79eaec9cd432d90b8cc48e22272d31f0.zip
opensim-SC_OLD-cba64ebc79eaec9cd432d90b8cc48e22272d31f0.tar.gz
opensim-SC_OLD-cba64ebc79eaec9cd432d90b8cc48e22272d31f0.tar.bz2
opensim-SC_OLD-cba64ebc79eaec9cd432d90b8cc48e22272d31f0.tar.xz
Explicitly dispose of bitmaps opened from files in GenericSystemDrawing and JPEG.cs
-rw-r--r--OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs28
-rw-r--r--OpenSim/Region/CoreModules/World/Terrain/FileLoaders/JPEG.cs21
2 files changed, 31 insertions, 18 deletions
diff --git a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
index cd46276..3921bf9 100644
--- a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
+++ b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
@@ -59,7 +59,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders
59 /// <returns>A terrain channel generated from the image.</returns> 59 /// <returns>A terrain channel generated from the image.</returns>
60 public virtual ITerrainChannel LoadFile(string filename) 60 public virtual ITerrainChannel LoadFile(string filename)
61 { 61 {
62 return LoadBitmap(new Bitmap(filename)); 62 using (Bitmap b = new Bitmap(filename))
63 return LoadBitmap(b);
63 } 64 }
64 65
65 public virtual ITerrainChannel LoadFile(string filename, int offsetX, int offsetY, int fileWidth, int fileHeight, int w, int h) 66 public virtual ITerrainChannel LoadFile(string filename, int offsetX, int offsetY, int fileWidth, int fileHeight, int w, int h)
@@ -75,13 +76,15 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders
75 retval[x, y] = bitmap.GetPixel(offsetX * retval.Width + x, (bitmap.Height - (retval.Height * (offsetY + 1))) + retval.Height - y - 1).GetBrightness() * 128; 76 retval[x, y] = bitmap.GetPixel(offsetX * retval.Width + x, (bitmap.Height - (retval.Height * (offsetY + 1))) + retval.Height - y - 1).GetBrightness() * 128;
76 } 77 }
77 } 78 }
79
78 return retval; 80 return retval;
79 } 81 }
80 } 82 }
81 83
82 public virtual ITerrainChannel LoadStream(Stream stream) 84 public virtual ITerrainChannel LoadStream(Stream stream)
83 { 85 {
84 return LoadBitmap(new Bitmap(stream)); 86 using (Bitmap b = new Bitmap(stream))
87 return LoadBitmap(b);
85 } 88 }
86 89
87 protected virtual ITerrainChannel LoadBitmap(Bitmap bitmap) 90 protected virtual ITerrainChannel LoadBitmap(Bitmap bitmap)
@@ -227,16 +230,21 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders
227 /// <returns>A System.Drawing.Bitmap containing a coloured image</returns> 230 /// <returns>A System.Drawing.Bitmap containing a coloured image</returns>
228 protected static Bitmap CreateBitmapFromMap(ITerrainChannel map) 231 protected static Bitmap CreateBitmapFromMap(ITerrainChannel map)
229 { 232 {
230 Bitmap gradientmapLd = new Bitmap("defaultstripe.png"); 233 int pallete;
231 234 Bitmap bmp;
232 int pallete = gradientmapLd.Height; 235 Color[] colours;
233
234 Bitmap bmp = new Bitmap(map.Width, map.Height);
235 Color[] colours = new Color[pallete];
236 236
237 for (int i = 0; i < pallete; i++) 237 using (Bitmap gradientmapLd = new Bitmap("defaultstripe.png"))
238 { 238 {
239 colours[i] = gradientmapLd.GetPixel(0, i); 239 pallete = gradientmapLd.Height;
240
241 bmp = new Bitmap(map.Width, map.Height);
242 colours = new Color[pallete];
243
244 for (int i = 0; i < pallete; i++)
245 {
246 colours[i] = gradientmapLd.GetPixel(0, i);
247 }
240 } 248 }
241 249
242 for (int y = 0; y < map.Height; y++) 250 for (int y = 0; y < map.Height; y++)
diff --git a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/JPEG.cs b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/JPEG.cs
index 699d67a..9cc767a 100644
--- a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/JPEG.cs
+++ b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/JPEG.cs
@@ -99,16 +99,21 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders
99 99
100 private static Bitmap CreateBitmapFromMap(ITerrainChannel map) 100 private static Bitmap CreateBitmapFromMap(ITerrainChannel map)
101 { 101 {
102 Bitmap gradientmapLd = new Bitmap("defaultstripe.png"); 102 int pallete;
103 Bitmap bmp;
104 Color[] colours;
103 105
104 int pallete = gradientmapLd.Height; 106 using (Bitmap gradientmapLd = new Bitmap("defaultstripe.png"))
105
106 Bitmap bmp = new Bitmap(map.Width, map.Height);
107 Color[] colours = new Color[pallete];
108
109 for (int i = 0; i < pallete; i++)
110 { 107 {
111 colours[i] = gradientmapLd.GetPixel(0, i); 108 pallete = gradientmapLd.Height;
109
110 bmp = new Bitmap(map.Width, map.Height);
111 colours = new Color[pallete];
112
113 for (int i = 0; i < pallete; i++)
114 {
115 colours[i] = gradientmapLd.GetPixel(0, i);
116 }
112 } 117 }
113 118
114 for (int y = 0; y < map.Height; y++) 119 for (int y = 0; y < map.Height; y++)