亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? platformmempool.h

?? 五行MMORPG引擎系統V1.0
?? H
字號:
//內存池管理,針對頻繁創建類對象最適用不過了
// 李亦.2006.5.28
//=============================================================================

#ifndef _PLATFORMMEMPOOL_H_
#define _PLATFORMMEMPOOL_H_

#ifdef _WIN32
#pragma once
#endif


//#ifdef new
//#undef new
//#endif



//-----------------------------------------------------------------------------
// Purpose: Optimized pool memory allocator
//-----------------------------------------------------------------------------

typedef void (*MemoryPoolReportFunc_t)( char const* pMsg, ... );

class PlatformMemPool
{
public:
	// Ways the memory pool can grow when it needs to make a new blob.
	enum
	{
		GROW_NONE=0,		// Don't allow new blobs.
		GROW_FAST=1,		// New blob size is numElements * (i+1)  (ie: the blocks it allocates
							// get larger and larger each time it allocates one).
		GROW_SLOW=2			// New blob size is numElements.
	};

				PlatformMemPool(int blockSize, int numElements, int growMode = GROW_FAST);
				~PlatformMemPool();

	void*		Alloc();	// Allocate the element size you specified in the constructor.
	void*		Alloc( unsigned int amount );
	void		Free(void *pMem);
	
	// Frees everything
	void		Clear();

	// Error reporting... 
	static void SetErrorReportFunc( MemoryPoolReportFunc_t func );


private:
	class CBlob
	{
	public:
		CBlob	*m_pPrev, *m_pNext;
		int		m_NumBytes;		// Number of bytes in this blob.
		char	m_Data[1];
	};


	// Resets the pool
	void		Init();
	void		AddNewBlob();
	void		ReportLeaks();


private:

	int			m_BlockSize;
	int			m_BlocksPerBlob;

	int			m_GrowMode;	// GROW_ enum.

	// FIXME: Change m_ppMemBlob into a growable array?
	CBlob			m_BlobHead;
	void			*m_pHeadOfFreeList;
	int				m_BlocksAllocated;
	int				m_PeakAlloc;
	unsigned short	m_NumBlobs;

	static MemoryPoolReportFunc_t g_ReportFunc;
};



//-----------------------------------------------------------------------------
// Wrapper macro to make an allocator that returns particular typed allocations
// and construction and destruction of objects.
//-----------------------------------------------------------------------------
template< class T >
class CClassMemoryPool : public PlatformMemPool
{
public:
	CClassMemoryPool(int numElements, int growMode = GROW_FAST)	:
		PlatformMemPool( sizeof(T), numElements, growMode ) {}

	T*		Alloc();
	void	Free( T *pMem );
};


template< class T >
T* CClassMemoryPool<T>::Alloc()
{
	T *pRet = (T*)PlatformMemPool::Alloc();
	if ( pRet )
	{
		Construct( pRet );
	}
	return pRet;
}


template< class T >
void CClassMemoryPool<T>::Free(T *pMem)
{
	if ( pMem )
	{
		Destruct( pMem );
	}

	PlatformMemPool::Free( pMem );
}



//-----------------------------------------------------------------------------
// 以下宏定義,能幫我們分配固定的內存塊
// Macros that make it simple to make a class use a fixed-size allocator
// Put DECLARE_FIXEDSIZE_ALLOCATOR in the private section of a class,
// Put DEFINE_FIXEDSIZE_ALLOCATOR in the CPP file
//-----------------------------------------------------------------------------

#define DECLARE_FIXEDSIZE_ALLOCATOR( _class )									\
   public:																		\
      inline void* operator new( dsize_t size ) { return s_Allocator.Alloc(size); }   \
      inline void  operator delete( void* p ) { s_Allocator.Free(p); }		\
      inline void  operator delete( void* p,  const char *pFileName, const U32 nLine ) { s_Allocator.Free(p); }   \
      inline void* operator new( dsize_t size, const char *pFileName, const U32 nLine ) { return s_Allocator.Alloc(size); }   \
  private:																		\
      static   PlatformMemPool   s_Allocator
    
#define DEFINE_FIXEDSIZE_ALLOCATOR( _class, _initsize, _grow )					\
   PlatformMemPool   _class::s_Allocator(sizeof(_class), _initsize, _grow)




//-----------------------------------------------------------------------------
// 以下宏定義,能幫我們分配固定的內存塊,主要是能引用外部定義的內存池
// Macros that make it simple to make a class use a fixed-size allocator
// This version allows us to use a memory pool which is externally defined...
// Put DECLARE_FIXEDSIZE_ALLOCATOR_EXTERNAL in the private section of a class,
// Put DEFINE_FIXEDSIZE_ALLOCATOR_EXTERNAL in the CPP file
//-----------------------------------------------------------------------------

#define DECLARE_FIXEDSIZE_ALLOCATOR_EXTERNAL( _class, _allocator )				\
   public:																		\
      inline void* operator new( dsize_t size )  { return s_pAllocator->Alloc(size); }   \
      inline void* operator new( dsize_t size,  const char *pFileName, const U32 nLine )  { return s_pAllocator->Alloc(size); }   \
      inline void  operator delete( void* p )   { s_pAllocator->Free(p); }		\
   private:																		\
      static   PlatformMemPool*   s_pAllocator
    
#define DEFINE_FIXEDSIZE_ALLOCATOR_EXTERNAL( _class, _allocator )				\
   PlatformMemPool*   _class::s_pAllocator = _allocator




#endif // _PLATFORMMEMPOOL_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品美女一区二区三区| 国产精品久久久久四虎| 亚洲国产成人自拍| 天天色综合天天| 不卡av免费在线观看| 欧美一级生活片| 亚洲蜜臀av乱码久久精品蜜桃| 免费不卡在线观看| 色综合天天综合在线视频| 精品日韩欧美在线| 亚洲成人免费在线| 91首页免费视频| 国产网红主播福利一区二区| 首页国产欧美久久| 欧美性受xxxx| 中文字幕综合网| 成人久久视频在线观看| 亚洲精品在线一区二区| 蜜桃精品视频在线| 欧美日韩视频在线一区二区| 亚洲欧美电影一区二区| 97久久超碰精品国产| 国产精品久久三| 成人一级黄色片| 国产午夜亚洲精品不卡| 激情成人综合网| 日韩三级伦理片妻子的秘密按摩| 日韩av成人高清| 欧美一区二区在线不卡| 青娱乐精品在线视频| 在线播放国产精品二区一二区四区| 亚洲一区在线观看视频| 欧美图区在线视频| 亚洲成人免费视| 91精品国产综合久久香蕉麻豆| 午夜精品久久久久久久久久久| 欧美性生交片4| 日本亚洲电影天堂| 日韩欧美电影一区| 国产一区二区在线观看视频| 国产亚洲制服色| 成人少妇影院yyyy| 亚洲精品中文字幕乱码三区| 色呦呦日韩精品| 亚洲国产一区二区三区青草影视| 欧美日韩国产免费一区二区| 午夜影视日本亚洲欧洲精品| 日韩免费观看高清完整版| 九九精品一区二区| 国产精品麻豆99久久久久久| 一本一道久久a久久精品| 亚洲va韩国va欧美va| 日韩免费福利电影在线观看| 国产精品影视在线| 亚洲九九爱视频| 日韩美女视频一区二区在线观看| 国产自产高清不卡| 国产精品国产三级国产三级人妇 | 久久国产福利国产秒拍| 精品国产污网站| 91社区在线播放| 久久成人羞羞网站| 亚洲男人都懂的| 欧美一区三区二区| 国产成人在线观看| 国产精品日日摸夜夜摸av| av在线播放不卡| 久久精品人人做| 欧美亚洲尤物久久| 久久se精品一区二区| 精品久久久影院| 成人免费电影视频| 亚洲成av人片一区二区三区| 欧美久久久一区| 国内精品免费**视频| 欧美成人一区二区三区在线观看| 日本最新不卡在线| 国产欧美日韩另类视频免费观看| 成人h动漫精品一区二区| 亚洲与欧洲av电影| 久久众筹精品私拍模特| 91久久精品国产91性色tv| 裸体歌舞表演一区二区| 国产精品乱码人人做人人爱| 这里只有精品视频在线观看| 成人美女视频在线看| 亚洲精选免费视频| 精品国产一区二区三区忘忧草| av中文字幕不卡| 美日韩一级片在线观看| 亚洲欧美日韩国产另类专区| 精品免费国产一区二区三区四区| 婷婷中文字幕综合| 一级中文字幕一区二区| 精品国产一区二区亚洲人成毛片 | 亚洲国产精品自拍| 久久精品夜色噜噜亚洲aⅴ| 色婷婷av一区二区三区大白胸 | 国产免费观看久久| 欧美群妇大交群中文字幕| 国产69精品一区二区亚洲孕妇| 国产精品久久久久影院| 日韩免费成人网| 欧美日韩免费在线视频| 国产成人精品免费视频网站| 蜜臀av性久久久久蜜臀av麻豆| 一区二区三区日韩精品视频| 国产欧美综合色| 捆绑调教一区二区三区| 9i看片成人免费高清| 美女精品自拍一二三四| 亚洲视频小说图片| 中文字幕欧美日韩一区| 日韩欧美一区在线| 欧美日韩的一区二区| 97久久人人超碰| 国产高清一区日本| 天天综合天天综合色| 视频一区二区三区在线| 亚洲视频在线一区二区| 国产精品天天摸av网| 久久蜜桃av一区二区天堂| 91精品国产综合久久国产大片| 日本精品一区二区三区四区的功能| 国产成人一级电影| 国内成人自拍视频| 国产夫妻精品视频| 国产成人三级在线观看| 韩国理伦片一区二区三区在线播放| 日本伊人午夜精品| 免费成人在线影院| 免费成人美女在线观看| 青青草精品视频| 国产精品123| 岛国av在线一区| 成人av在线网| 色呦呦一区二区三区| 91久久精品一区二区三区| 91九色最新地址| 不卡电影一区二区三区| 欧美三级日本三级少妇99| 欧美福利视频一区| 精品久久久久一区二区国产| 亚洲精品一区二区在线观看| 久久久噜噜噜久噜久久综合| 国产精品全国免费观看高清| 精品久久久久久最新网址| 国产精品久久久久一区| 亚洲一区二区精品视频| 日韩电影在线免费观看| 国产曰批免费观看久久久| 成人综合日日夜夜| 色婷婷综合久久久中文一区二区| 成人动漫一区二区在线| 91精品国产综合久久香蕉麻豆| 精品国产乱码久久久久久1区2区| 中文字幕av资源一区| 国产精品免费丝袜| 亚洲国产va精品久久久不卡综合| 免费的成人av| 99久久精品免费看国产免费软件| 日韩欧美一区在线| 国产精品国产三级国产普通话99| 亚洲人吸女人奶水| 日韩电影在线观看网站| 国产ts人妖一区二区| 欧美在线free| 日韩一级免费观看| 亚洲视频1区2区| 亚洲18影院在线观看| 综合久久国产九一剧情麻豆| 亚洲国产视频直播| 日本v片在线高清不卡在线观看| 97se狠狠狠综合亚洲狠狠| 91精品国产91久久久久久一区二区| 国产三级一区二区| 亚洲国产wwwccc36天堂| 国产成人aaaa| 91精品国产综合久久久久久久 | 久久99久久精品| 99精品在线观看视频| 欧美亚洲日本国产| 亚洲视频一区二区免费在线观看 | 色婷婷久久99综合精品jk白丝| 欧美日韩电影一区| 亚洲成人在线观看视频| 成人在线视频首页| 精品国产三级a在线观看| 性做久久久久久免费观看| jiyouzz国产精品久久| 精品福利av导航| 亚洲综合区在线| 91在线视频观看| 欧美国产精品一区| 国产在线精品一区二区夜色| 欧美日韩高清在线播放| 亚洲日本青草视频在线怡红院| 91在线看国产| 一区免费观看视频| 丁香激情综合国产|