-#ifndef _IO_H_
-#define _IO_H_
+#ifndef IMAGER_IMIO_H_
+#define IMAGER_IMIO_H_
#include <stdio.h>
#include <sys/stat.h>
#ifndef _MSC_VER
#define myrealloc(x,y) (myrealloc_file_line((x),(y), __FILE__, __LINE__))
#define myfree(x) (myfree_file_line((x), __FILE__, __LINE__))
-void malloc_state ();
+void malloc_state (void);
void* mymalloc_file_line (size_t size, char* file, int line);
void myfree_file_line (void *p, char*file, int line);
void* myrealloc_file_line(void *p, size_t newsize, char* file,int line);
#endif /* IMAGER_MALLOC_DEBUG */
+
+typedef struct i_mempool {
+ void **p;
+ unsigned int alloc;
+ unsigned int used;
+} i_mempool;
+
+void i_mempool_init(i_mempool *mp);
+void i_mempool_extend(i_mempool *mp);
+void *i_mempool_alloc(i_mempool *mp, size_t size);
+void i_mempool_destroy(i_mempool *mp);
+
+
+
#ifdef _MSC_VER
#undef min
#undef max
#endif
+extern unsigned long i_utf8_advance(char const **p, int *len);
+
/* XXX Shouldn't these go away? */
-int min(int a,int b);
-int max(int x,int y);
+int i_min(int a,int b);
+int i_max(int x,int y);
#endif