DEADSOFTWARE

Fix memory leaks
[d2df-sdl.git] / src / game / g_textures.pas
index 26a06f9a2a89067c31cd9df5574ea03481ed446d..78cfee512125cacdde9d939961dddeca0b4184ff 100644 (file)
@@ -119,8 +119,9 @@ function g_Texture_Light (): Integer;
 implementation
 
 uses
+  {$INCLUDE ../nogl/noGLuses.inc}
   g_game, e_log, g_basic, g_console, wadreader,
-  g_language, GL, utils, xstreams;
+  g_language, utils, xstreams;
 
 type
   _TTexture = record
@@ -221,13 +222,8 @@ begin
   if WAD.GetResource(g_ExtractFilePathName(Resource), TextureData, ResourceLength) then
   begin
     if e_CreateTextureMem(TextureData, ResourceLength, ID) then
-    begin
       result := true;
-    end
-    else
-    begin
-      FreeMem(TextureData);
-    end;
+    FreeMem(TextureData)
   end
   else
   begin
@@ -272,11 +268,8 @@ begin
       e_GetTextureSize(texturesArray[find_id].ID, @texturesArray[find_id].width, @texturesArray[find_id].height);
       texturesArray[find_id].used := true;
       texturesArray[find_id].Name := textureName;
-    end
-    else
-    begin
-      FreeMem(TextureData);
     end;
+    FreeMem(TextureData)
   end
   else
   begin
@@ -541,10 +534,12 @@ begin
 
   if not CreateFramesMem(TextureData, ResourceLength, ID, Name, mWidth, mHeight, mCount, BackAnimation) then
   begin
+    FreeMem(TextureData);
     WAD.Free();
     exit;
   end;
 
+  FreeMem(TextureData);
   WAD.Free();
 
   result := true;