コード例 #1
0
ファイル: sheap.cpp プロジェクト: kolyden/mirror
inline
void *Heap::AllocSz(size_t& sz)
{
	Stat(sz);
	if(sz <= 224) {
		if(sz == 0) sz = 1;
		int k = ((int)sz - 1) >> 4;
		sz = (k + 1) << 4;
		return Allok(k);
	}
	if(sz <= 576) {
		int k;
		if(sz <= 368)
			if(sz <= 288)
				sz = 288, k = 14;
			else
				sz = 368, k = 15;
		else
			if(sz <= 448)
				sz = 448, k = 16;
			else
				sz = 576, k = 17;
		return Allok(k);
	}
	return LAlloc(sz);
}
コード例 #2
0
ファイル: sheap.cpp プロジェクト: kolyden/mirror
inline
void *Heap::Alloc(size_t sz)
{
	Stat(sz);
	if(sz <= 224) {
		if(sz == 0) sz = 1;
		return Allok(((int)sz - 1) >> 4);
	}
	if(sz <= 576)
		return Allok(sz <= 368 ? sz <= 288 ? 14 : 15 : sz <= 448 ? 16 : 17);
	return LAlloc(sz);
}
コード例 #3
0
ファイル: sheap.cpp プロジェクト: koz4k/soccer
force_inline
void *Heap::AllocSz(size_t& sz)
{
	Stat(sz);
	if(sz <= 384) {
		if(sz == 0)
			sz = 1;
		int k = ((int)sz - 1) >> 5;
		sz = (k + 1) << 5;
		return Allok(k);
	}
	if(sz <= 992) {
		if(sz <= 448) {
			sz = 448;
			return Allok(12);
		}
		if(sz <= 576) {
			sz = 576;
			return Allok(13);
		}
		if(sz <= 672) {
			sz = 672;
			return Allok(14);
		}
		if(sz <= 800) {
			sz = 800;
			return Allok(15);
		}
		sz = 992;
		return Allok(16);
	}
	return LAlloc(sz);
}
コード例 #4
0
ファイル: sheap.cpp プロジェクト: koz4k/soccer
force_inline
void *Heap::Alloc48()
{
	Stat(48);
	return Allok(KLASS_48);
}
コード例 #5
0
ファイル: sheap.cpp プロジェクト: koz4k/soccer
force_inline
void *Heap::Alloc32()
{
	Stat(32);
	return Allok(KLASS_32);
}
コード例 #6
0
ファイル: sheap.cpp プロジェクト: kolyden/mirror
inline
void *Heap::Alloc48()
{
	Stat(48);
	return Allok(2);
}
コード例 #7
0
ファイル: sheap.cpp プロジェクト: kolyden/mirror
inline
void *Heap::Alloc32()
{
	Stat(32);
	return Allok(1);
}