Merge pull request #90 from GabrielRavier/bugFix/portableValgrindStuff

Fix memory bugs
This commit is contained in:
Clownacy 2020-01-06 20:37:02 +00:00 committed by GitHub
commit 664d76f94e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View file

@ -154,7 +154,7 @@ unsigned char* Backend_LockSurface(Backend_Surface *surface, unsigned int *pitch
*pitch = surface->width * 3; *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; return surface->pixels;
} }
@ -303,6 +303,7 @@ Backend_Glyph* Backend_LoadGlyph(const unsigned char *pixels, unsigned int width
} }
SDL_UpdateTexture(glyph->texture, NULL, buffer, width * 4); SDL_UpdateTexture(glyph->texture, NULL, buffer, width * 4);
free(buffer);
glyph->width = width; glyph->width = width;
glyph->height = height; glyph->height = height;

View file

@ -160,8 +160,6 @@ static BOOL ScaleAndUploadSurface(SDL_Surface *surface, SurfaceID surf_no)
{ {
SDL_Surface *converted_surface = SDL_ConvertSurfaceFormat(surface, SDL_PIXELFORMAT_RGB24, 0); SDL_Surface *converted_surface = SDL_ConvertSurfaceFormat(surface, SDL_PIXELFORMAT_RGB24, 0);
SDL_FreeSurface(surface);
if (converted_surface == NULL) if (converted_surface == NULL)
return FALSE; return FALSE;
@ -243,6 +241,7 @@ BOOL MakeSurface_Resource(const char *name, SurfaceID surf_no)
if (!ScaleAndUploadSurface(surface, surf_no)) if (!ScaleAndUploadSurface(surface, surf_no))
{ {
Backend_FreeSurface(surf[surf_no]); Backend_FreeSurface(surf[surf_no]);
SDL_FreeSurface(surface);
return FALSE; return FALSE;
} }
@ -251,6 +250,7 @@ BOOL MakeSurface_Resource(const char *name, SurfaceID surf_no)
surface_metadata[surf_no].height = surface->h; surface_metadata[surf_no].height = surface->h;
surface_metadata[surf_no].bSystem = FALSE; surface_metadata[surf_no].bSystem = FALSE;
strcpy(surface_metadata[surf_no].name, name); strcpy(surface_metadata[surf_no].name, name);
SDL_FreeSurface(surface);
return TRUE; return TRUE;
} }
@ -302,6 +302,7 @@ BOOL MakeSurface_File(const char *name, SurfaceID surf_no)
if (!ScaleAndUploadSurface(surface, surf_no)) if (!ScaleAndUploadSurface(surface, surf_no))
{ {
Backend_FreeSurface(surf[surf_no]); Backend_FreeSurface(surf[surf_no]);
SDL_FreeSurface(surface);
return FALSE; return FALSE;
} }
@ -310,6 +311,7 @@ BOOL MakeSurface_File(const char *name, SurfaceID surf_no)
surface_metadata[surf_no].height = surface->h; surface_metadata[surf_no].height = surface->h;
surface_metadata[surf_no].bSystem = FALSE; surface_metadata[surf_no].bSystem = FALSE;
strcpy(surface_metadata[surf_no].name, name); strcpy(surface_metadata[surf_no].name, name);
SDL_FreeSurface(surface);
return TRUE; return TRUE;
} }
@ -327,7 +329,12 @@ BOOL ReloadBitmap_Resource(const char *name, SurfaceID surf_no)
SDL_Surface *surface = SDL_LoadBMP_RW(fp, 1); SDL_Surface *surface = SDL_LoadBMP_RW(fp, 1);
if (!ScaleAndUploadSurface(surface, surf_no)) if (!ScaleAndUploadSurface(surface, surf_no))
{
SDL_FreeSurface(surface);
return FALSE; return FALSE;
}
SDL_FreeSurface(surface);
surface_metadata[surf_no].type = SURFACE_SOURCE_RESOURCE; surface_metadata[surf_no].type = SURFACE_SOURCE_RESOURCE;
strcpy(surface_metadata[surf_no].name, name); strcpy(surface_metadata[surf_no].name, name);
@ -366,8 +373,12 @@ BOOL ReloadBitmap_File(const char *name, SurfaceID surf_no)
} }
if (!ScaleAndUploadSurface(surface, surf_no)) if (!ScaleAndUploadSurface(surface, surf_no))
{
SDL_FreeSurface(surface);
return FALSE; return FALSE;
}
SDL_FreeSurface(surface);
surface_metadata[surf_no].type = SURFACE_SOURCE_FILE; surface_metadata[surf_no].type = SURFACE_SOURCE_FILE;
strcpy(surface_metadata[surf_no].name, name); strcpy(surface_metadata[surf_no].name, name);