Foxit PDF SDK

类 | 宏定义 | 函数
fx_memory.h 文件参考

内存管理相关定义和类的头文件。 更多...

浏览源代码.

## 类
struct | FXMEM_FoxitMgr
| Foxit内存管理器。 更多...
struct | FX_MEMCONFIG
| 固定内存配置结构。 更多...
struct | FXMEM_Debugger
| 内存调试器接口。所有函数都必须实现。 更多...
struct | FXMEM_SystemMgr
| 系统级内存管理器。应用程序可以实现自己的系统内存管理器。 更多...
struct | FXMEM_SystemMgr2
| 固定内存管理器。 更多...
struct | IFX_Allocator
| Foxit分配器接口。 更多...

## 宏定义
#define | FXMEM_DISCARDABLE 4
| 分配可丢弃内存的标志。
#define | FXMEM_MOVABLE 2
| 分配可移动内存的标志。
#define | FXMEM_NONLEAVE 1
| 内存分配失败时不调用OOM处理程序的标志。

## 函数
FXMEM_FoxitMgr * | FXMEM_CreateFixedMgr (void *pMemory, size_t size, FXMEM_SystemMgr2 *pExtender)
| 从预分配的固定内存缓冲区创建Foxit管理器。 更多...
FXMEM_FoxitMgr * | FXMEM_CreateFoxitMgr (FXMEM_SystemMgr *pSystemMgr)
| 创建Foxit管理器。必须提供系统管理器用于实际分配。 更多...
FXMEM_FoxitMgr * | FXMEM_CreateMemoryMgr (size_t size, FX_BOOL extensible)
| 创建固定内存管理器作为默认实现。 更多...
FXMEM_FoxitMgr * | FXMEM_CreatePyMgr ()
| 创建Python管理器。一个快速、专用的小块内存分配器，用于 在通用malloc之上使用——基于以前的技术。 更多...
void | FXMEM_DestroyFoxitMgr (FXMEM_FoxitMgr *pFoxitMgr)
| 销毁Foxit管理器实例。如果平台支持自动收集， 那么所有分配的内存块将被释放。 更多...
size_t | FXMEM_GetBlockSizeInFixedMgr (FXMEM_FoxitMgr *pFoxitMgr, void *ptr)
| 获取 ptr 指向的内存块的大小。 更多...
FXMEM_FoxitMgr * | FXMEM_GetDefaultMgr ()
| 获取当前模块的默认内存管理器。 更多...
void | FXMEM_ResetSystemMgr ()
| 重置当前模块的Foxit系统内存管理器。 更多...
void | FXMEM_SetDefaultMgr (FXMEM_FoxitMgr *pFoxitMgr)
| 为当前编译模块（EXE、DLL等）设置默认Foxit管理器。 更多...
int | FXMEM_SetPyConfig (size_t lowByteRange, size_t highByteRange)
| 设置Python内存的配置。 更多...

## 基本内存操作
typedef void(* | FPDF_OOM_Handler) (FXMEM_FoxitMgr *pFoxitMgr, void *param)
| 内存不足处理程序的原型。 更多...
void * | FXMEM_Alloc (FXMEM_FoxitMgr *pFoxitMgr, size_t size, int flags)
| Foxit基本内存分配函数。 更多...
void * | FXMEM_AllocDebug (FXMEM_FoxitMgr *pFoxitMgr, size_t size, int flags, FX_LPCSTR file, int line)
| Foxit调试模式基本内存分配函数。 更多...
void | FXMEM_CollectAll (FXMEM_FoxitMgr *pFoxitMgr)
| 释放由Foxit管理器分配的所有内存块。此函数仅在嵌入式系统上支持。 更多...
void | FXMEM_Free (FXMEM_FoxitMgr *pFoxitMgr, void *pointer, int flags)
| Foxit基本内存释放函数。 更多...
void | FXMEM_OutputDebugTag (FXMEM_FoxitMgr *pFoxitMgr, FX_LPCSTR tag)
| 输出内存调试标签。 更多...
void | FXMEM_PurgeMgr (FXMEM_FoxitMgr *pFoxitMgr)
| 释放所有多余的内存而不触及任何使用中的内存。 这对于可扩展固定内存管理器（FXMEM_SystemMgr2）很有用， 因为我们从不释放那些额外的内存池，直到内存管理器被销毁。 更多...
void * | FXMEM_Realloc (FXMEM_FoxitMgr *pFoxitMgr, void *pointer, size_t new_size, int flags)
| Foxit基本内存重分配函数。 更多...
void * | FXMEM_ReallocDebug (FXMEM_FoxitMgr *pFoxitMgr, void *pointer, size_t new_size, int flags, FX_LPCSTR file, int line)
| Foxit调试模式基本内存重分配函数。 更多...
void | FXMEM_ReportOOM (FXMEM_FoxitMgr *pFoxitMgr)
| 报告内存不足（OOM）。 更多...
void | FXMEM_SetOOMHandler (FXMEM_FoxitMgr *pFoxitMgr, FPDF_OOM_Handler pOOMReportFunc, void *param)
| 为Foxit内存管理器设置内存不足处理程序。 更多...
void | FXMEM_UseDebugger (FXMEM_FoxitMgr *pFoxitMgr, FXMEM_Debugger *pDebugger)
| 使用捕获所有内存活动的内存调试器。对参数 pDebugger 使用 NULL 停止调试。 更多...

## 以下基本内存函数使用当前模块的默认Foxit管理器
#define | _FXMEM_NO64_
#define | FX_Alloc(type, size)
| Foxit内存分配操作的宏。
#define | FX_Allocator_Alloc(fxAllocator, type, size) ((fxAllocator) ? (type*)(fxAllocator)->m_Alloc((fxAllocator), (size) * sizeof(type)) : (FX_Alloc(type, size)))
| 在分配器上进行发布模式分配。
#define | FX_Allocator_Free(fxAllocator, ptr) ((fxAllocator) ? (fxAllocator)->m_Free((fxAllocator), (ptr)) : (FX_Free(ptr)))
| 在分配器上释放内存块。
#define | FX_Allocator_Realloc(fxAllocator, type, ptr, new_size) ((fxAllocator) ? (type*)(fxAllocator)->m_Realloc((fxAllocator), (ptr), (new_size) * sizeof(type)) : (FX_Realloc(type, ptr, new_size)))
| 在分配器上进行发布模式重分配。
#define | FX_AllocNL(type, size)
| 带非离开属性的Foxit内存分配操作宏（OOM时返回NULL）。
#define | FX_FIXEDMEM_MIDBLOCKSIZE (4096)
| 中等数据块大小，4KB。
#define | FX_FIXEDMEM_PAGESIZE (4096 * 16)
| 内存页大小，64KB。
#define | FX_Free(pointer) FXMEM_DefaultFree(pointer, 0)
| Foxit内存释放操作的宏。
#define | FX_Realloc(type, ptr, size)
| Foxit内存重分配操作的宏。
#define | FX_ReallocNL(type, ptr, size)
| 带非离开属性的Foxit内存重分配操作宏（OOM时返回NULL）。
void * | FXMEM_DefaultAlloc (size_t byte_size, int flags)
| 使用当前模块默认Foxit内存管理器的默认分配函数。 更多...
void * | FXMEM_DefaultAlloc2 (size_t units, size_t unit_size, int flags)
| 使用当前模块默认Foxit内存管理器的默认分配函数。 更多...
void * | FXMEM_DefaultAllocDebug (size_t size, int flags, FX_LPCSTR file, int line)
| 使用当前模块默认Foxit内存管理器的默认调试模式分配函数。 更多...
void * | FXMEM_DefaultAllocDebug2 (size_t units, size_t unit_size, int flags, FX_LPCSTR file, int line)
| 使用当前模块默认Foxit内存管理器的默认调试模式分配函数。 更多...
void | FXMEM_DefaultFree (void *pointer, int flags)
| 使用当前模块默认Foxit内存管理器的默认释放函数。 更多...
void * | FXMEM_DefaultRealloc (void *pointer, size_t new_size, int flags)
| 使用当前模块默认Foxit内存管理器的默认重分配函数。 更多...
void * | FXMEM_DefaultRealloc2 (void *pointer, size_t units, size_t unit_size, int flags)
| 使用当前模块默认Foxit内存管理器的默认重分配函数。 更多...
void * | FXMEM_DefaultReallocDebug (void *pointer, size_t new_size, int flags, FX_LPCSTR file, int line)
| 使用当前模块默认Foxit内存管理器的默认调试模式重分配函数。 更多...
void * | FXMEM_DefaultReallocDebug2 (void *pointer, size_t units, size_t unit_size, int flags, FX_LPCSTR file, int line)
| 使用当前模块默认Foxit内存管理器的默认调试模式重分配函数。 更多...
IFX_Allocator * | FXMEM_GetDefAllocator ()
| 获取库使用的默认分配器。 更多...
void | FXMEM_SetConfig (const FX_MEMCONFIG *memConfig)
| 设置固定内存的配置。 更多...

## 详细描述

内存管理相关定义和类的头文件。

Copyright (C) 2003-2026, Foxit Software Inc.. All Rights Reserved.

http://www.foxitsoftware.com

The following code is copyrighted and is the proprietary of Foxit Software Inc.. It is not allowed to distribute any parts of Foxit PDF SDK to third party or public without permission unless an agreement is signed between Foxit Software Inc. and customers to explicitly grant customers permissions.