diff options
| author | Daniel Rugerio <[email protected]> | 2025-11-25 11:00:04 -0800 |
|---|---|---|
| committer | Daniel Rugerio <[email protected]> | 2025-12-15 14:00:37 -0800 |
| commit | 6fa87d3bef7972f7fac034adb68cd856f69c8607 (patch) | |
| tree | 90ddf9e506b651c81dd803e0a9cc04af5db24a79 /audio/SoundWire/Samples/SdcaVad/common/NewDelete.cpp | |
| parent | 1d89a1513f519f62226f84a3131916ab2fd0c3ef (diff) | |
New SDCAVAD sample.
Diffstat (limited to 'audio/SoundWire/Samples/SdcaVad/common/NewDelete.cpp')
| -rw-r--r-- | audio/SoundWire/Samples/SdcaVad/common/NewDelete.cpp | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/audio/SoundWire/Samples/SdcaVad/common/NewDelete.cpp b/audio/SoundWire/Samples/SdcaVad/common/NewDelete.cpp new file mode 100644 index 00000000..a9473364 --- /dev/null +++ b/audio/SoundWire/Samples/SdcaVad/common/NewDelete.cpp @@ -0,0 +1,149 @@ +/***************************************************************************** +* NewDelete.cpp - CPP placement new and delete operators implementation +***************************************************************************** +* Copyright (c) Microsoft Corporation All Rights Reserved +* +* Module Name: +* +* NewDelete.cpp +* +* Abstract: +* +* Definition of placement new and delete operators. +* +*/ + +#ifdef _NEW_DELETE_OPERATORS_ + +#include "NewDelete.h" + +#pragma code_seg() +/***************************************************************************** +* Functions +*/ + +/***************************************************************************** +* ::new() +***************************************************************************** +* New function for creating objects with a specified allocation tag. +*/ +PVOID operator new +( + size_t iSize, + POOL_FLAGS poolFlags, + ULONG tag +) +{ + PVOID result = ExAllocatePool2(poolFlags, iSize, tag); + + return result; +} + + +/***************************************************************************** +* ::new() +***************************************************************************** +* New function for creating objects with a specified allocation tag. +*/ +PVOID operator new +( + size_t iSize, + POOL_FLAGS poolFlags +) +{ + PVOID result = ExAllocatePool2(poolFlags, iSize, DEFAULT_POOLTAG); + + return result; +} + + +/***************************************************************************** +* ::delete() +***************************************************************************** +* Delete with tag function. +*/ +void __cdecl operator delete +( + PVOID pVoid, + ULONG tag +) +{ + if (pVoid) + { + ExFreePoolWithTag(pVoid, tag); + } +} + + +/***************************************************************************** +* ::delete() +***************************************************************************** +* Sized Delete function. +*/ +void __cdecl operator delete +( + _Pre_maybenull_ __drv_freesMem(Mem) PVOID pVoid, + _In_ size_t cbSize +) +{ + UNREFERENCED_PARAMETER(cbSize); + + if (pVoid) + { + ExFreePool(pVoid); + } +} + +/***************************************************************************** +* ::delete() +***************************************************************************** +* Sized Delete function. +*/ +void __cdecl operator delete +( + PVOID pVoid +) +{ + if (pVoid) + { + ExFreePool(pVoid); + } +} + + +/***************************************************************************** +* ::delete() +***************************************************************************** +* Sized Array Delete function. +*/ +void __cdecl operator delete[] +( + _Pre_maybenull_ __drv_freesMem(Mem) PVOID pVoid, + _In_ size_t cbSize +) +{ + UNREFERENCED_PARAMETER(cbSize); + + if (pVoid) + { + ExFreePool(pVoid); + } +} + + +/***************************************************************************** +* ::delete() +***************************************************************************** +* Array Delete function. +*/ +void __cdecl operator delete[] +( + _Pre_maybenull_ __drv_freesMem(Mem) PVOID pVoid +) +{ + if (pVoid) + { + ExFreePool(pVoid); + } +} +#endif//_NEW_DELETE_OPERATORS_ |
