aboutsummaryrefslogtreecommitdiff
path: root/src/libhttpd/alloc.c
blob: 1fdd46c6694508803452c7d9d2e3a58b6d5f50d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <u.h>
#include <libc.h>
#include <bin.h>
#include <httpd.h>

/*
 * memory allocators:
 * h routines call canalloc; they should be used by everything else
 * note this memory is wiped out at the start of each new request
 * note: these routines probably shouldn't fatal.
 */
char*
hstrdup(HConnect *c, char *s)
{
	char *t;
	int n;

	n = strlen(s) + 1;
	t = binalloc(&c->bin, n, 0);
	if(t == nil)
		sysfatal("out of memory");
	memmove(t, s, n);
	return t;
}

void*
halloc(HConnect *c, ulong n)
{
	void *p;

	p = binalloc(&c->bin, n, 1);
	if(p == nil)
		sysfatal("out of memory");
	return p;
}