cppAlloc.cpp
上传用户:ykzxjx
上传日期:2022-04-03
资源大小:1175k
文件大小:2k
开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Copyright (C) 1999 - 2000 Mark Roddy
  3. //
  4. // Hollis Technology Solutions
  5. // 94 Dow Road
  6. // Hollis, NH 03049
  7. // info@hollistech.com
  8. // www.hollistech.com
  9. //
  10. // This library is free software; you can redistribute it and/or
  11. // modify it under the terms of the GNU Lesser General Public
  12. // License as published by the Free Software Foundation; either
  13. // version 2 of the License, or (at your option) any later version.
  14. //
  15. // This library is distributed in the hope that it will be useful,
  16. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  18. // Lesser General Public License for more details.
  19. //
  20. // You should have received a copy of the GNU Lesser General Public
  21. // License along with this library; if not, write to the Free Software
  22. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  23. //
  24. // www.fsf.org
  25. //
  26. //
  27. // Synopsis: 
  28. // 
  29. //
  30. // Version Information:
  31. //
  32. // $Header: /cpprun/sys/cpplib/cppAlloc.cpp 2     1/01/00 11:00p Markr $ 
  33. //
  34. ///////////////////////////////////////////////////////////////////////////////
  35. #define HTS_UNIQUE_FILE_ID 0x1204000
  36. #include "hstcpp_internal.h"
  37. PVOID __cdecl malloc(ULONG x,  ULONG id, POOL_TYPE pool)
  38. {
  39.     PVOID buffer = ExAllocatePoolWithTag(pool, x, id);
  40.     if (buffer) {
  41.         //
  42.         // clear our buffer to zero
  43.         //
  44.         RtlZeroMemory(buffer, x);
  45.     }
  46.     return buffer;
  47. }
  48. void __cdecl free(PVOID x)
  49. {
  50.     if (x != NULL) {
  51.         ExFreePool(x);
  52.     }
  53. }
  54. void * __cdecl operator new(size_t size)
  55. {
  56.     return malloc(size, 'ppcO', NonPagedPool);
  57. }
  58. void * __cdecl operator new(size_t size,  void *location)
  59. {
  60.     return location;
  61. }
  62. void *__cdecl operator new( size_t size, ULONG tag, POOL_TYPE pool)
  63. {
  64.     return malloc(size, tag, pool);
  65. }
  66. void __cdecl operator delete(void * pVoid)
  67. {
  68.     free(pVoid);
  69. }
  70. ///////////////////////////////////////////////////////////////////////////////
  71. // 
  72. // Change History Log
  73. //
  74. // $Log: /cpprun/sys/cpplib/cppAlloc.cpp $
  75. // 
  76. // 2     1/01/00 11:00p Markr
  77. // 
  78. // 1     12/16/99 11:45p Markr
  79. //
  80. ///////////////////////////////////////////////////////////////////////////////