* modules/allocator, lib/allocator.c: New files.
* lib/allocator.h (stdlib_allocator): New decl.
* lib/careadlinkat.c (_GL_USE_STDLIB_ALLOC, standard_allocator):
Remove. Do not include <stdlib.h>.
(careadlinkat): Use stdlib_allocator instead of rolling our own.
* modules/careadlinkat (Files): Remove lib/allocator.h.
(Depends-on): Add allocator.
2011-04-08 Paul Eggert <eggert@cs.ucla.edu>
+ allocator: New module.
+ * modules/allocator, lib/allocator.c: New files.
+ * lib/allocator.h (stdlib_allocator): New decl.
+ * lib/careadlinkat.c (_GL_USE_STDLIB_ALLOC, standard_allocator):
+ Remove. Do not include <stdlib.h>.
+ (careadlinkat): Use stdlib_allocator instead of rolling our own.
+ * modules/careadlinkat (Files): Remove lib/allocator.h.
+ (Depends-on): Add allocator.
+
stdlib: let modules use system malloc, realloc
* lib/stdlib.in.h (malloc, realloc): Don't #define or add warnings
if !_GL_USE_STDLIB_ALLOC.
--- /dev/null
+#define _GL_USE_STDLIB_ALLOC 1
+#include <config.h>
+#include "allocator.h"
+#include <stdlib.h>
+struct allocator const stdlib_allocator = { malloc, realloc, free, NULL };
void (*die) (void);
};
+/* An allocator using the stdlib functions and a null DIE function. */
+extern struct allocator const stdlib_allocator;
+
#endif
/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */
-#define _GL_USE_STDLIB_ALLOC 1
#include <config.h>
#include "careadlinkat.h"
#include <errno.h>
#include <limits.h>
-#include <stdlib.h>
#include <string.h>
#include <unistd.h>
}
#endif
-/* A standard allocator. For now, only careadlinkat needs this, but
- perhaps it should be moved to the allocator module. */
-static struct allocator const standard_allocator =
- { malloc, realloc, free, NULL };
-
/* Assuming the current directory is FD, get the symbolic link value
of FILENAME as a null-terminated string and put it into a buffer.
If FD is AT_FDCWD, FILENAME is interpreted relative to the current
char stack_buf[1024];
if (! alloc)
- alloc = &standard_allocator;
+ alloc = &stdlib_allocator;
if (! buffer_size)
{
--- /dev/null
+Description:
+Storage allocators.
+
+Files:
+lib/allocator.h
+lib/allocator.c
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+lib_SOURCES += allocator.c
+
+Include:
+"allocator.h"
+
+License:
+LGPLv2+
+
+Maintainer:
+all
Files:
lib/careadlinkat.c
lib/careadlinkat.h
-lib/allocator.h
Depends-on:
+allocator
readlink
ssize_t
unistd