From e22d40c071a836bf3170c67176cea410f8cc162e Mon Sep 17 00:00:00 2001 From: RaphaelIT7 <64648134+RaphaelIT7@users.noreply.github.com> Date: Wed, 26 Nov 2025 01:05:20 +0100 Subject: [PATCH 1/2] gmod: fix C++17 memoverride failure --- gmod/src/public/tier0/memoverride.cpp | 48 +++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gmod/src/public/tier0/memoverride.cpp b/gmod/src/public/tier0/memoverride.cpp index 9b3655f3..5e098ccd 100644 --- a/gmod/src/public/tier0/memoverride.cpp +++ b/gmod/src/public/tier0/memoverride.cpp @@ -465,6 +465,54 @@ void __cdecl operator delete[] ( void *pMem ) throw() } #endif +// RaphaelIT7: due to __cpp_aligned_new which exists seamingly from C++17 & higher +// we need to override these too as else we might try to delete unaligned memory as aligned memory! + +void *__cdecl operator new( size_t nSize, std::align_val_t align ) +{ + return AllocUnattributed( nSize ); +} + +void *__cdecl operator new[] ( size_t nSize, std::align_val_t align ) +{ + return AllocUnattributed( nSize ); +} + +void operator delete( void* pMem, std::align_val_t align ) noexcept +{ +#if !defined(USE_LIGHT_MEM_DEBUG) && !defined(USE_MEM_DEBUG) + g_pMemAlloc->Free( pMem ); +#else + g_pMemAlloc->Free( pMem, ::g_pszModule, 0 ); +#endif +} + +void operator delete[]( void* pMem, std::align_val_t align ) noexcept +{ +#if !defined(USE_LIGHT_MEM_DEBUG) && !defined(USE_MEM_DEBUG) + g_pMemAlloc->Free( pMem ); +#else + g_pMemAlloc->Free( pMem, ::g_pszModule, 0 ); +#endif +} + +void operator delete( void* pMem, size_t sz, std::align_val_t align ) noexcept +{ +#if !defined(USE_LIGHT_MEM_DEBUG) && !defined(USE_MEM_DEBUG) + g_pMemAlloc->Free( pMem ); +#else + g_pMemAlloc->Free( pMem, ::g_pszModule, 0 ); +#endif +} + +void operator delete[]( void* pMem, size_t sz, std::align_val_t align ) noexcept +{ +#if !defined(USE_LIGHT_MEM_DEBUG) && !defined(USE_MEM_DEBUG) + g_pMemAlloc->Free( pMem ); +#else + g_pMemAlloc->Free( pMem, ::g_pszModule, 0 ); +#endif +} //----------------------------------------------------------------------------- // Override some debugging allocation methods in MSVC From 628c9a6d59aa4c1325f8716c4bd1c1ac4a6eb453 Mon Sep 17 00:00:00 2001 From: RaphaelIT7 <64648134+RaphaelIT7@users.noreply.github.com> Date: Wed, 26 Nov 2025 01:06:12 +0100 Subject: [PATCH 2/2] repo: update git ignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4f545d02..b37dff73 100644 --- a/.gitignore +++ b/.gitignore @@ -56,4 +56,6 @@ config.cfg mp/game - +# In case you mklink/symlink vphysics_jolt or just build it inside of here directly +gmod/game/bin/** +gmod/src/vphysics_jolt