Browse Source

Let's hope I finally smashed those mem leaks

Bart van Strien 15 years ago
parent
commit
7e318cc9b2
2 changed files with 14 additions and 11 deletions
  1. 13 10
      src/modules/font/FontData.cpp
  2. 1 1
      src/modules/graphics/opengl/Font.cpp

+ 13 - 10
src/modules/font/FontData.cpp

@@ -1,14 +1,14 @@
 /**
 /**
 * Copyright (c) 2006-2010 LOVE Development Team
 * Copyright (c) 2006-2010 LOVE Development Team
-* 
+*
 * This software is provided 'as-is', without any express or implied
 * This software is provided 'as-is', without any express or implied
 * warranty.  In no event will the authors be held liable for any damages
 * warranty.  In no event will the authors be held liable for any damages
 * arising from the use of this software.
 * arising from the use of this software.
-* 
+*
 * Permission is granted to anyone to use this software for any purpose,
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 * freely, subject to the following restrictions:
-* 
+*
 * 1. The origin of this software must not be misrepresented; you must not
 * 1. The origin of this software must not be misrepresented; you must not
 *    claim that you wrote the original software. If you use this software
 *    claim that you wrote the original software. If you use this software
 *    in a product, an acknowledgment in the product documentation would be
 *    in a product, an acknowledgment in the product documentation would be
@@ -25,7 +25,7 @@ namespace love
 {
 {
 namespace font
 namespace font
 {
 {
-	
+
 	FontData::FontData(Rasterizer * raster)
 	FontData::FontData(Rasterizer * raster)
 		: raster(raster)
 		: raster(raster)
 	{
 	{
@@ -34,12 +34,15 @@ namespace font
 			data[i] = raster->getGlyphData(i);
 			data[i] = raster->getGlyphData(i);
 		}
 		}
 	}
 	}
-	
+
 	FontData::~FontData()
 	FontData::~FontData()
 	{
 	{
+		for (unsigned int i = 0; i < MAX_CHARS; i++) {
+			data[i]->release();
+		}
 		delete[] data;
 		delete[] data;
 	}
 	}
-	
+
 	void * FontData::getData() const
 	void * FontData::getData() const
 	{
 	{
 		return (void *)data;
 		return (void *)data;
@@ -49,16 +52,16 @@ namespace font
 	{
 	{
 		return MAX_CHARS;
 		return MAX_CHARS;
 	}
 	}
-	
+
 	GlyphData * FontData::getGlyphData(unsigned short glyph) const
 	GlyphData * FontData::getGlyphData(unsigned short glyph) const
 	{
 	{
 		return data[glyph];
 		return data[glyph];
 	}
 	}
-	
+
 	int FontData::getHeight() const
 	int FontData::getHeight() const
 	{
 	{
 		return raster->getHeight();
 		return raster->getHeight();
 	}
 	}
-	
+
 } // font
 } // font
-} // love
+} // love

+ 1 - 1
src/modules/graphics/opengl/Font.cpp

@@ -50,7 +50,7 @@ namespace opengl
 	{
 	{
 		for(unsigned int i = 0; i < MAX_CHARS; i++)
 		for(unsigned int i = 0; i < MAX_CHARS; i++)
 		{
 		{
-			delete glyphs[i];
+			glyphs[i]->release();
 		}
 		}
 		delete[] glyphs;
 		delete[] glyphs;
 	}
 	}