mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-02-20 13:54:14 +01:00
Fixed potential crashbug in SH_MCALL on GCC
--HG-- extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/trunk%40554
This commit is contained in:
parent
edc9d1b581
commit
4ce4e008cc
@ -852,6 +852,8 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
|
||||
*reinterpret_cast<void***>( (reinterpret_cast<char*>(ptr) + SH_MFHCls(hookname)::ms_MFI.thisptroffs + SH_MFHCls(hookname)::ms_MFI.vtbloffs) ) + SH_MFHCls(hookname)::ms_MFI.vtblindex); \
|
||||
/* patch mfp */ \
|
||||
*reinterpret_cast<void**>(&mfp) = *reinterpret_cast<void**>(vfnptr); \
|
||||
if (sizeof(mfp) == 2*sizeof(void*)) /* gcc */ \
|
||||
*(reinterpret_cast<void**>(&mfp) + 1) = 0; \
|
||||
return SH_MFHCls(hookname)::CallEC(reinterpret_cast< ::SourceHook::EmptyClass* >(ptr), mfp, vfnptr, SH_GLOB_SHPTR); \
|
||||
} \
|
||||
void __SourceHook_FHM_Reconfigure##hookname(int p_vtblindex, int p_vtbloffs, int p_thisptroffs) \
|
||||
|
@ -852,6 +852,8 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
|
||||
*reinterpret_cast<void***>( (reinterpret_cast<char*>(ptr) + SH_MFHCls(hookname)::ms_MFI.thisptroffs + SH_MFHCls(hookname)::ms_MFI.vtbloffs) ) + SH_MFHCls(hookname)::ms_MFI.vtblindex); \
|
||||
/* patch mfp */ \
|
||||
*reinterpret_cast<void**>(&mfp) = *reinterpret_cast<void**>(vfnptr); \
|
||||
if (sizeof(mfp) == 2*sizeof(void*)) /* gcc */ \
|
||||
*(reinterpret_cast<void**>(&mfp) + 1) = 0; \
|
||||
return SH_MFHCls(hookname)::CallEC(reinterpret_cast< ::SourceHook::EmptyClass* >(ptr), mfp, vfnptr, SH_GLOB_SHPTR); \
|
||||
} \
|
||||
void __SourceHook_FHM_Reconfigure##hookname(int p_vtblindex, int p_vtbloffs, int p_thisptroffs) \
|
||||
|
@ -852,6 +852,8 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
|
||||
*reinterpret_cast<void***>( (reinterpret_cast<char*>(ptr) + SH_MFHCls(hookname)::ms_MFI.thisptroffs + SH_MFHCls(hookname)::ms_MFI.vtbloffs) ) + SH_MFHCls(hookname)::ms_MFI.vtblindex); \
|
||||
/* patch mfp */ \
|
||||
*reinterpret_cast<void**>(&mfp) = *reinterpret_cast<void**>(vfnptr); \
|
||||
if (sizeof(mfp) == 2*sizeof(void*)) /* gcc */ \
|
||||
*(reinterpret_cast<void**>(&mfp) + 1) = 0; \
|
||||
return SH_MFHCls(hookname)::CallEC(reinterpret_cast< ::SourceHook::EmptyClass* >(ptr), mfp, vfnptr, SH_GLOB_SHPTR); \
|
||||
} \
|
||||
void __SourceHook_FHM_Reconfigure##hookname(int p_vtblindex, int p_vtbloffs, int p_thisptroffs) \
|
||||
|
Loading…
x
Reference in New Issue
Block a user