diff --git a/src/Makefile b/src/Makefile index af4f9ead..d52def45 100644 --- a/src/Makefile +++ b/src/Makefile @@ -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 diff --git a/src/gfx2mem.c b/src/gfx2mem.c new file mode 100644 index 00000000..1156c586 --- /dev/null +++ b/src/gfx2mem.c @@ -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 +*/ +#include +#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; +} diff --git a/src/gfx2mem.h b/src/gfx2mem.h new file mode 100644 index 00000000..537b559f --- /dev/null +++ b/src/gfx2mem.h @@ -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 +*/ +#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