ref: 664d76f94e35e77927739b63d50078c540238175
parent: df9dc3e22dc4a39fffb4bb4ceb7d9a0974b5c92b
parent: 2911bfda5c6051a768dd012e98aa6eae7f82b7f0
author: Clownacy <Clownacy@users.noreply.github.com>
date: Mon Jan 6 15:37:02 EST 2020
Merge pull request #90 from GabrielRavier/bugFix/portableValgrindStuff Fix memory bugs
--- a/src/Backends/Rendering/SDLTexture.cpp
+++ b/src/Backends/Rendering/SDLTexture.cpp
@@ -154,7 +154,7 @@
*pitch = surface->width * 3;
- surface->pixels = (unsigned char*)malloc(surface->width * surface->height * 3);
+ surface->pixels = (unsigned char*)calloc(surface->width * surface->height * 3, 1); // Make sure these are initialized
return surface->pixels;
}
@@ -303,6 +303,7 @@
}
SDL_UpdateTexture(glyph->texture, NULL, buffer, width * 4);
+ free(buffer);
glyph->width = width;
glyph->height = height;
--- a/src/Draw.cpp
+++ b/src/Draw.cpp
@@ -160,8 +160,6 @@
{
SDL_Surface *converted_surface = SDL_ConvertSurfaceFormat(surface, SDL_PIXELFORMAT_RGB24, 0);
- SDL_FreeSurface(surface);
-
if (converted_surface == NULL)
return FALSE;
@@ -243,6 +241,7 @@
if (!ScaleAndUploadSurface(surface, surf_no))
{
Backend_FreeSurface(surf[surf_no]);
+ SDL_FreeSurface(surface);
return FALSE;
}
@@ -251,6 +250,7 @@
surface_metadata[surf_no].height = surface->h;
surface_metadata[surf_no].bSystem = FALSE;
strcpy(surface_metadata[surf_no].name, name);
+ SDL_FreeSurface(surface);
return TRUE;
}
@@ -302,6 +302,7 @@
if (!ScaleAndUploadSurface(surface, surf_no))
{
Backend_FreeSurface(surf[surf_no]);
+ SDL_FreeSurface(surface);
return FALSE;
}
@@ -310,6 +311,7 @@
surface_metadata[surf_no].height = surface->h;
surface_metadata[surf_no].bSystem = FALSE;
strcpy(surface_metadata[surf_no].name, name);
+ SDL_FreeSurface(surface);
return TRUE;
}
@@ -327,8 +329,13 @@
SDL_Surface *surface = SDL_LoadBMP_RW(fp, 1);
if (!ScaleAndUploadSurface(surface, surf_no))
+ {
+ SDL_FreeSurface(surface);
return FALSE;
+ }
+ SDL_FreeSurface(surface);
+
surface_metadata[surf_no].type = SURFACE_SOURCE_RESOURCE;
strcpy(surface_metadata[surf_no].name, name);
@@ -366,8 +373,12 @@
}
if (!ScaleAndUploadSurface(surface, surf_no))
+ {
+ SDL_FreeSurface(surface);
return FALSE;
+ }
+ SDL_FreeSurface(surface);
surface_metadata[surf_no].type = SURFACE_SOURCE_FILE;
strcpy(surface_metadata[surf_no].name, name);
--
⑨