add gfx2mem.c/.h: GFX2_malloc() to log allocation failures
This commit is contained in:
parent
91e028794a
commit
0c2ee6659a
@ -799,7 +799,7 @@ OBJS = main.o init.o graph.o $(APIOBJ) misc.o special.o \
|
||||
fileformats.o miscfileformats.o libraw2crtc.o \
|
||||
brush_ops.o buttons_effects.o layers.o \
|
||||
oldies.o tiles.o colorred.o unicode.o gfx2surface.o \
|
||||
gfx2log.o tifformat.o
|
||||
gfx2log.o gfx2mem.o tifformat.o
|
||||
ifndef NORECOIL
|
||||
OBJS += loadrecoil.o recoil.o
|
||||
endif
|
||||
|
||||
32
src/gfx2mem.c
Normal file
32
src/gfx2mem.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* vim:expandtab:ts=2 sw=2:
|
||||
*/
|
||||
/* Grafx2 - The Ultimate 256-color bitmap paint program
|
||||
|
||||
Copyright 2019 Thomas Bernard
|
||||
Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud)
|
||||
|
||||
Grafx2 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; version 2
|
||||
of the License.
|
||||
|
||||
Grafx2 is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Grafx2; if not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include "gfx2mem.h"
|
||||
#include "gfx2log.h"
|
||||
|
||||
void * GFX2_malloc_and_log(size_t size, const char * file, unsigned line)
|
||||
{
|
||||
void * p = malloc(size);
|
||||
if (p == NULL)
|
||||
GFX2_Log(GFX2_ERROR, "%s:%u Failed to allocate %lu bytes",
|
||||
file, line, (unsigned long)size);
|
||||
return p;
|
||||
}
|
||||
30
src/gfx2mem.h
Normal file
30
src/gfx2mem.h
Normal file
@ -0,0 +1,30 @@
|
||||
/* vim:expandtab:ts=2 sw=2:
|
||||
*/
|
||||
/* Grafx2 - The Ultimate 256-color bitmap paint program
|
||||
|
||||
Copyright 2019 Thomas Bernard
|
||||
Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud)
|
||||
|
||||
Grafx2 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; version 2
|
||||
of the License.
|
||||
|
||||
Grafx2 is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Grafx2; if not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
#ifndef GFX2MEM_H_DEFINED
|
||||
#define GFX2MEM_H_DEFINED
|
||||
|
||||
/// malloc() memory and log in case of error
|
||||
void * GFX2_malloc_and_log(size_t size, const char * file, unsigned line);
|
||||
|
||||
/// malloc() memory and log in case of error
|
||||
#define GFX2_malloc(size) GFX2_malloc_and_log((size), __FILE__, __LINE__)
|
||||
|
||||
#endif
|
||||
Loading…
x
Reference in New Issue
Block a user