CSPspEmu.Core.Memory.NormalPspMemory.AllocateMemory C# (CSharp) Метод

AllocateMemory() защищенный Метод

protected AllocateMemory ( ) : void
Результат void
		protected void AllocateMemory()
		{
			if (ScratchPadPtr == null)
			{
				NullPtr = null;

#if USE_ARRAY_BYTES
				//if (ScratchPad != null)
				{
					ScratchPad = new byte[ScratchPadSize];
					FrameBuffer = new byte[FrameBufferSize];
					Main = new byte[MainSize];
					Vectors = new byte[VectorsSize];
#if ENABLE_LOG_MEMORY
					LogMain = new uint[MainSize];
#else
					LogMain = new uint[0];
#endif
				}

				ScratchPadHandle = GCHandle.Alloc(ScratchPad, GCHandleType.Pinned);
				FrameBufferHandle = GCHandle.Alloc(FrameBuffer, GCHandleType.Pinned);
				MainHandle = GCHandle.Alloc(Main, GCHandleType.Pinned);
				VectorsHandle = GCHandle.Alloc(Vectors, GCHandleType.Pinned);
				LogMainHandle = GCHandle.Alloc(LogMain, GCHandleType.Pinned);

				ScratchPadPtr = (byte*)ScratchPadHandle.AddrOfPinnedObject().ToPointer();
				FrameBufferPtr = (byte*)FrameBufferHandle.AddrOfPinnedObject().ToPointer();
				MainPtr = (byte*)MainHandle.AddrOfPinnedObject().ToPointer();
				VectorsPtr = (byte*)VectorsHandle.AddrOfPinnedObject().ToPointer();
				LogMainPtr = (uint*)LogMainHandle.AddrOfPinnedObject().ToPointer();
#else
				ScratchPadPtr = (byte*)(Marshal.AllocHGlobal(ScratchPadSize).ToPointer());
				FrameBufferPtr = (byte*)(Marshal.AllocHGlobal(FrameBufferSize).ToPointer());
				MainPtr = (byte*)(Marshal.AllocHGlobal(MainSize).ToPointer());
				LogMainPtr = (uint*)(Marshal.AllocHGlobal(MainSize * 4).ToPointer());

				/*
				PointerUtils.Memset(ScratchPadPtr, 0, ScratchPadSize);
				PointerUtils.Memset(FrameBufferPtr, 0, FrameBufferSize);
				PointerUtils.Memset(MainPtr, 0, MainSize);
				PointerUtils.Memset((byte*)LogMainPtr, 0, MainSize * 4);
				*/
#endif

				//GCHandle.Alloc();
			}
		}