Memory.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // Memory.cpp: implementation of the CMemory class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Memory.h"
  6. //////////////////////////////////////////////////////////////////////
  7. // Construction/Destruction
  8. //////////////////////////////////////////////////////////////////////
  9. CMemory::CMemory()
  10. {
  11. }
  12. CMemory::~CMemory()
  13. {
  14. }
  15. BOOL CMemory::Initialize()
  16. {
  17. return TRUE;
  18. }
  19. BOOL CMemory::Uninitialize()
  20. {
  21. return TRUE;
  22. }
  23. void* CMemory::Alloc(unsigned len)
  24. {
  25. assert(len > 0);
  26. if (len > 0)
  27. {
  28. BYTE* pRef = (BYTE*)malloc(len + 1);
  29. *pRef = 1;
  30. return pRef + 1;
  31. }
  32. return NULL;
  33. }
  34. void CMemory::Reuse(void* p)
  35. {
  36. assert(p);
  37. if (p)
  38. {
  39. BYTE* pRef = (BYTE*)p - 1;
  40. (*pRef) ++;
  41. }
  42. }
  43. void CMemory::Free(void* p)
  44. {
  45. assert(p);
  46. if (p)
  47. {
  48. BYTE* pRef = (BYTE*)p - 1;
  49. if (-- (*pRef) == 0)
  50. free(pRef);
  51. }
  52. }
  53. unsigned CMemory::Size(void* p)
  54. {
  55. assert(p);
  56. if (p)
  57. {
  58. BYTE* pRef = (BYTE*)p - 1;
  59. return _msize(p) - 1;
  60. }
  61. return 0;
  62. }