/*
 *  Copyright (C)  2000-2001 Marc Wandschneider <mw@kiltdown.org>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation.
 *
 *  For more information look at the file COPYRIGHT in this package
 *
 */


#ifndef _LALLOC_H_

#ifdef K_DEBUG

/**
 * function prototypes
 */
#define localAlloc(s)            localAllocImpl(__FILE__, __LINE__, (s))
#define localReAlloc(p, s)       localReAllocImpl(__FILE__, __LINE__, (p), (s))

#define localFree(ptr)           localFreeImpl(__FILE__, __LINE__, (void *)(ptr))

/**
 * Use these functions all the time !!!
 */
BOOL    lallocInit();            // this should be nearly 1st call in program
void    lallocTerm();            // this should be near last call in program
void   *localAllocImpl(char *, int, size_t);
void    localFreeImpl(const char *, int, void *);
void   *localReAllocImpl(char *, int, void *, size_t);

#else // K_DEBUG

#include <stdlib.h>


#define lallocInit()
#define lallocTerm()
#define localAlloc(s)            malloc(s)
#define localFree(p)             free((void *)p)
#define localReAlloc(p, s)       realloc((p), (s))


#endif // K_DEBUG

/**
 * makes sure the given buffer is big enough for the requested size.
 */
bool ensureBufferSize(char **checkMe, int *myMaxSize, int neededSize, int incr);




#define _LALLOC_H_
#endif // _LALLOC_H_



syntax highlighted by Code2HTML, v. 0.9.1