Removed xalloc.c/h
This commit is contained in:
parent
1d2a0aada5
commit
b2756d8a49
|
@ -1,7 +1,6 @@
|
||||||
#include "api.h"
|
#include "api.h"
|
||||||
#include "renderer.h"
|
#include "renderer.h"
|
||||||
#include "rencache.h"
|
#include "rencache.h"
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
|
|
||||||
static RenColor checkcolor(lua_State *L, int idx, int def) {
|
static RenColor checkcolor(lua_State *L, int idx, int def) {
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "lib/stb/stb_truetype.h"
|
#include "lib/stb/stb_truetype.h"
|
||||||
#include "xalloc.h"
|
|
||||||
#include "renderer.h"
|
#include "renderer.h"
|
||||||
|
|
||||||
#define MAX_GLYPHSET 256
|
#define MAX_GLYPHSET 256
|
||||||
|
@ -30,6 +29,15 @@ static SDL_Window *window;
|
||||||
static struct { int left, top, right, bottom; } clip;
|
static struct { int left, top, right, bottom; } clip;
|
||||||
|
|
||||||
|
|
||||||
|
static void* check_alloc(void *ptr) {
|
||||||
|
if (!ptr) {
|
||||||
|
fprintf(stderr, "Fatal error: memory allocation failed\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static const char* utf8_to_codepoint(const char *p, unsigned *dst) {
|
static const char* utf8_to_codepoint(const char *p, unsigned *dst) {
|
||||||
unsigned res, n;
|
unsigned res, n;
|
||||||
switch (*p & 0xf0) {
|
switch (*p & 0xf0) {
|
||||||
|
@ -77,7 +85,8 @@ void ren_get_size(int *x, int *y) {
|
||||||
|
|
||||||
RenImage* ren_new_image(int width, int height) {
|
RenImage* ren_new_image(int width, int height) {
|
||||||
assert(width > 0 && height > 0);
|
assert(width > 0 && height > 0);
|
||||||
RenImage *image = xmalloc(sizeof(RenImage) + width * height * sizeof(RenColor));
|
RenImage *image = malloc(sizeof(RenImage) + width * height * sizeof(RenColor));
|
||||||
|
check_alloc(image);
|
||||||
image->pixels = (void*) (image + 1);
|
image->pixels = (void*) (image + 1);
|
||||||
image->width = width;
|
image->width = width;
|
||||||
image->height = height;
|
image->height = height;
|
||||||
|
@ -86,12 +95,12 @@ RenImage* ren_new_image(int width, int height) {
|
||||||
|
|
||||||
|
|
||||||
void ren_free_image(RenImage *image) {
|
void ren_free_image(RenImage *image) {
|
||||||
xfree(image);
|
free(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static GlyphSet* load_glyphset(RenFont *font, int idx) {
|
static GlyphSet* load_glyphset(RenFont *font, int idx) {
|
||||||
GlyphSet *set = xcalloc(1, sizeof(GlyphSet));
|
GlyphSet *set = check_alloc(calloc(1, sizeof(GlyphSet)));
|
||||||
|
|
||||||
/* init image */
|
/* init image */
|
||||||
int width = 128;
|
int width = 128;
|
||||||
|
@ -149,7 +158,7 @@ RenFont* ren_load_font(const char *filename, float size) {
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
|
|
||||||
/* init font */
|
/* init font */
|
||||||
font = xcalloc(1, sizeof(RenFont));
|
font = check_alloc(calloc(1, sizeof(RenFont)));
|
||||||
font->size = size;
|
font->size = size;
|
||||||
|
|
||||||
/* load font into buffer */
|
/* load font into buffer */
|
||||||
|
@ -158,7 +167,7 @@ RenFont* ren_load_font(const char *filename, float size) {
|
||||||
/* get size */
|
/* get size */
|
||||||
fseek(fp, 0, SEEK_END); int buf_size = ftell(fp); fseek(fp, 0, SEEK_SET);
|
fseek(fp, 0, SEEK_END); int buf_size = ftell(fp); fseek(fp, 0, SEEK_SET);
|
||||||
/* load */
|
/* load */
|
||||||
font->data = xmalloc(buf_size);
|
font->data = check_alloc(malloc(buf_size));
|
||||||
int _ = fread(font->data, 1, buf_size, fp); (void) _;
|
int _ = fread(font->data, 1, buf_size, fp); (void) _;
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
fp = NULL;
|
fp = NULL;
|
||||||
|
@ -182,8 +191,8 @@ RenFont* ren_load_font(const char *filename, float size) {
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (fp) { fclose(fp); }
|
if (fp) { fclose(fp); }
|
||||||
if (font) { xfree(font->data); }
|
if (font) { free(font->data); }
|
||||||
xfree(font);
|
free(font);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,11 +202,11 @@ void ren_free_font(RenFont *font) {
|
||||||
GlyphSet *set = font->sets[i];
|
GlyphSet *set = font->sets[i];
|
||||||
if (set) {
|
if (set) {
|
||||||
ren_free_image(set->image);
|
ren_free_image(set->image);
|
||||||
xfree(set);
|
free(set);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xfree(font->data);
|
free(font->data);
|
||||||
xfree(font);
|
free(font);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
40
src/xalloc.c
40
src/xalloc.c
|
@ -1,40 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
|
|
||||||
static void panic(void) {
|
|
||||||
fprintf(stderr, "Fatal error: out of memory\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void* xmalloc(size_t size) {
|
|
||||||
void *ptr = malloc(size);
|
|
||||||
if (!ptr) {
|
|
||||||
panic();
|
|
||||||
}
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void xfree(void *ptr) {
|
|
||||||
free(ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void* xcalloc(size_t nmemb, size_t size) {
|
|
||||||
void *ptr = calloc(nmemb, size);
|
|
||||||
if (!ptr) {
|
|
||||||
panic();
|
|
||||||
}
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void* xrealloc(void *ptr, size_t size) {
|
|
||||||
ptr = realloc(ptr, size);
|
|
||||||
if (!ptr) {
|
|
||||||
panic();
|
|
||||||
}
|
|
||||||
return ptr;
|
|
||||||
}
|
|
11
src/xalloc.h
11
src/xalloc.h
|
@ -1,11 +0,0 @@
|
||||||
#ifndef XALLOC_H
|
|
||||||
#define XALLOC_H
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
void* xmalloc(size_t size);
|
|
||||||
void xfree(void *ptr);
|
|
||||||
void* xcalloc(size_t nmemb, size_t size);
|
|
||||||
void* xrealloc(void *ptr, size_t size);
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue