コード例 #1
0
ファイル: CsPackageLoader.cpp プロジェクト: wdmchaft/Psybrus
//////////////////////////////////////////////////////////////////////////
// markupResources
void CsPackageLoader::markupResources()
{
	// Use this to advance as we need.
	BcU8* pCurrPackageData = reinterpret_cast< BcU8* >( pPackageData_ ) + Header_.ResourceDataStart_;

	// Allocate chunks.
	for( BcU32 ChunkIdx = 0; ChunkIdx <= Header_.TotalChunks_; ++ChunkIdx )
	{
		CsPackageChunkHeader& ChunkHeader( pChunkHeaders_[ ChunkIdx ] );
		CsPackageChunkData& ChunkData( pChunkData_[ ChunkIdx ] );

		if( ChunkHeader.Flags_ & csPCF_MANAGED )
		{
			ChunkData.Managed_ = BcTrue;
			ChunkData.pUnpackedData_ = pCurrPackageData;

			// Advance package data.
 			pCurrPackageData += BcCalcAlignment( ChunkHeader.UnpackedBytes_, ChunkHeader.RequiredAlignment_ );

#if PSY_DEBUG
			// Clear memory.
			BcMemSet( ChunkData.pUnpackedData_, 0x11, ChunkHeader.UnpackedBytes_ );
#endif
		}
		else
		{
			ChunkData.Managed_ = BcFalse;
		}
	}
}
コード例 #2
0
ファイル: BcMemory.cpp プロジェクト: kolhammer/Psybrus
void* operator new[]( size_t Size)
{
	initHeap();
	void* pMem = malloc( Size );
#ifdef PSY_DEBUG // neilogd: stamp 0x69 over uninitialised memory.
	BcMemSet( pMem, 0x69, Size );
#endif
#ifdef MEM_DEBUG
	BcU32 BreakID = -1;
	if( gAllocID == BreakID )
	{
		BcBreakpoint;
	}

	BcPrintf( "PsyNew: %p - %u\n", pMem, gAllocID++ );
	printBacktrace();
#endif
	return pMem;
}