HL-HDF
hlhdf_alloc.c File Reference

Allocation routines for keeping track on memory. More...

#include "hlhdf_alloc.h"
#include "hlhdf_debug.h"
#include <stdlib.h>
#include <string.h>

Classes

struct  HlhdfHeapEntry_t
 Keeps track on one allocation. More...
 
struct  HlhdfHeap_t
 A linked list where each entry corresponds to one allocation. More...
 

Typedefs

typedef struct HlhdfHeapEntry_t HlhdfHeapEntry_t
 Keeps track on one allocation.
 
typedef struct HlhdfHeap_t HlhdfHeap_t
 A linked list where each entry corresponds to one allocation.
 

Functions

void * hlhdf_alloc_malloc (const char *filename, int lineno, size_t sz)
 Allocates memory and keeps track on if it is released, overwritten and similar.
 
void * hlhdf_alloc_calloc (const char *filename, int lineno, size_t npts, size_t sz)
 Same as calloc but debugged.
 
void * hlhdf_alloc_realloc (const char *filename, int lineno, void *ptr, size_t sz)
 Same as realloc but debugged.
 
char * hlhdf_alloc_strdup (const char *filename, int lineno, const char *str)
 Same as strdup but debugged.
 
void hlhdf_alloc_free (const char *filename, int lineno, void *ptr)
 Releases the memory.
 
void hlhdf_alloc_dump_heap (void)
 Dumps all blocks that not has been released.
 
void hlhdf_alloc_print_statistics (void)
 Prints the statistics for the heap.
 

Detailed Description

Allocation routines for keeping track on memory.

Author
Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
Date
2009-06-26

Typedef Documentation

◆ HlhdfHeap_t

typedef struct HlhdfHeap_t HlhdfHeap_t

A linked list where each entry corresponds to one allocation.

◆ HlhdfHeapEntry_t

typedef struct HlhdfHeapEntry_t HlhdfHeapEntry_t

Keeps track on one allocation.

Function Documentation

◆ hlhdf_alloc_calloc()

void * hlhdf_alloc_calloc ( const char * filename,
int lineno,
size_t npts,
size_t sz )

Same as calloc but debugged.

Parameters
[in]filenamethe name of the file the allocation occurs in
[in]linenothe linenumber
[in]nptsnumber of points
[in]szthe number of bytes to be allocated

◆ hlhdf_alloc_dump_heap()

void hlhdf_alloc_dump_heap ( void )

Dumps all blocks that not has been released.

◆ hlhdf_alloc_free()

void hlhdf_alloc_free ( const char * filename,
int lineno,
void * ptr )

Releases the memory.

Parameters
[in]filenamethe name of the file the allocation occurs in
[in]linenothe linenumber
[in]ptrthe pointer that should be freed

◆ hlhdf_alloc_malloc()

void * hlhdf_alloc_malloc ( const char * filename,
int lineno,
size_t sz )

Allocates memory and keeps track on if it is released, overwritten and similar.

Parameters
[in]filenamethe name of the file the allocation occurs in
[in]linenothe linenumber
[in]szthe number of bytes to be allocated

◆ hlhdf_alloc_print_statistics()

void hlhdf_alloc_print_statistics ( void )

Prints the statistics for the heap.

◆ hlhdf_alloc_realloc()

void * hlhdf_alloc_realloc ( const char * filename,
int lineno,
void * ptr,
size_t sz )

Same as realloc but debugged.

Parameters
[in]filenamethe name of the file the allocation occurs in
[in]linenothe linenumber
[in]ptrthe original pointer
[in]szthe number of bytes to be allocated

◆ hlhdf_alloc_strdup()

char * hlhdf_alloc_strdup ( const char * filename,
int lineno,
const char * str )

Same as strdup but debugged.

Parameters
[in]filenamethe name of the file the allocation occurs in
[in]linenothe linenumber
[in]strthe number of bytes to be allocated