1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-02-23 05:07:13 +01:00
Sandu Liviu Catalin 4a6bfc086c Major plugin refactor and cleanup.
Switched to POCO library for unified platform/library interface.
Deprecated the external module API. It was creating more problems than solving.
Removed most built-in libraries in favor of system libraries for easier maintenance.
Cleaned and secured code with help from static analyzers.
2021-01-30 08:51:39 +02:00

86 lines
1.9 KiB
C

/*
* << Haru Free PDF Library >> -- hpdf_mmgr.h
*
* URL: http://libharu.org
*
* Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
* Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation.
* It is provided "as is" without express or implied warranty.
*
*/
#ifndef _HPDF_MMGR_H
#define _HPDF_MMGR_H
#include "hpdf_types.h"
#include "hpdf_error.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _HPDF_MPool_Node_Rec *HPDF_MPool_Node;
typedef struct _HPDF_MPool_Node_Rec {
HPDF_BYTE* buf;
HPDF_UINT size;
HPDF_UINT used_size;
HPDF_MPool_Node next_node;
} HPDF_MPool_Node_Rec;
typedef struct _HPDF_MMgr_Rec *HPDF_MMgr;
typedef struct _HPDF_MMgr_Rec {
HPDF_Error error;
HPDF_Alloc_Func alloc_fn;
HPDF_Free_Func free_fn;
HPDF_MPool_Node mpool;
HPDF_UINT buf_size;
#ifdef HPDF_MEM_DEBUG
HPDF_UINT alloc_cnt;
HPDF_UINT free_cnt;
#endif
} HPDF_MMgr_Rec;
/* HPDF_mpool_new
*
* create new HPDF_mpool object. when memory allocation goes wrong,
* it returns NULL and error handling function will be called.
* if buf_size is non-zero, mmgr is configured to be using memory-pool
*/
HPDF_MMgr
HPDF_MMgr_New (HPDF_Error error,
HPDF_UINT buf_size,
HPDF_Alloc_Func alloc_fn,
HPDF_Free_Func free_fn);
void
HPDF_MMgr_Free (HPDF_MMgr mmgr);
void*
HPDF_GetMem (HPDF_MMgr mmgr,
HPDF_UINT size);
void
HPDF_FreeMem (HPDF_MMgr mmgr,
void *aptr);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _HPDF_MMGR_H */