BsManagedDataBlock.cpp 944 B

123456789101112131415161718192021222324252627282930313233
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsManagedDataBlock.h"
  4. #include "BsException.h"
  5. namespace BansheeEngine
  6. {
  7. ManagedDataBlock::ManagedDataBlock(UINT8* data, UINT32 size)
  8. :mData(data), mSize(size), mManaged(false), mIsDataOwner(true)
  9. { }
  10. ManagedDataBlock::ManagedDataBlock(UINT32 size)
  11. :mSize(size), mManaged(true), mIsDataOwner(true)
  12. {
  13. mData = (UINT8*)bs_alloc(size);
  14. }
  15. ManagedDataBlock::ManagedDataBlock(const ManagedDataBlock& source)
  16. {
  17. mData = source.mData;
  18. mSize = source.mSize;
  19. mManaged = source.mManaged;
  20. mIsDataOwner = true;
  21. source.mIsDataOwner = false;
  22. }
  23. ManagedDataBlock::~ManagedDataBlock()
  24. {
  25. if(mManaged && mIsDataOwner)
  26. bs_free(mData);
  27. }
  28. }