Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4680 right-hear 1
#include "fitz.h"
2
 
3
void *
4
fz_malloc(int size)
5
{
6
	void *p = malloc(size);
7
	if (!p)
8
	{
9
		fprintf(stderr, "fatal error: out of memory\n");
10
		abort();
11
	}
12
	return p;
13
}
14
 
15
void *
16
fz_calloc(int count, int size)
17
{
18
	void *p;
19
 
20
	if (count == 0 || size == 0)
21
		return 0;
22
 
23
	if (count < 0 || size < 0 || count > INT_MAX / size)
24
	{
25
		fprintf(stderr, "fatal error: out of memory (integer overflow)\n");
26
		abort();
27
	}
28
 
29
	p = malloc(count * size);
30
	if (!p)
31
	{
32
		fprintf(stderr, "fatal error: out of memory\n");
33
		abort();
34
	}
35
	return p;
36
}
37
 
38
void *
39
fz_realloc(void *p, int count, int size)
40
{
41
	void *np;
42
 
43
	if (count == 0 || size == 0)
44
	{
45
		fz_free(p);
46
		return 0;
47
	}
48
 
49
	if (count < 0 || size < 0 || count > INT_MAX / size)
50
	{
51
		fprintf(stderr, "fatal error: out of memory (integer overflow)\n");
52
		abort();
53
	}
54
 
55
	np = realloc(p, count * size);
56
	if (np == NULL)
57
	{
58
		fprintf(stderr, "fatal error: out of memory\n");
59
		abort();
60
	}
61
	return np;
62
}
63
 
64
void
65
fz_free(void *p)
66
{
67
	free(p);
68
}
69
 
70
char *
71
fz_strdup(char *s)
72
{
73
	int len = strlen(s) + 1;
74
	char *ns = fz_malloc(len);
75
	memcpy(ns, s, len);
76
	return ns;
77
}