Commit 85f31689 authored by SR_team's avatar SR_team 💬

Add constexpr for pushing args

parent f2b254bc
......@@ -153,7 +153,7 @@ namespace SRHook {
// Копирование флагов в класс
pusha<uint8_t, uint8_t, uint8_t>( 0x9C, 0x58, 0xA3, &cpu_offset->EFLAGS );
if ( sizeof...( Args ) ) {
if constexpr ( sizeof...( Args ) ) {
// Копирование аргументов со стека
push<uint8_t>( 0x52 ); // push edx
for ( int i = sizeof...( Args ) - 1; i >= 0; --i ) {
......@@ -166,7 +166,7 @@ namespace SRHook {
pusha<uint8_t>( 0xB9, (uint32_t)this ); // mov ecx, this
auto relAddr = getRelAddr( (size_t)code + codeLength, (size_t)fn2void( &Hook<Args...>::before ) );
pusha<uint8_t>( 0xE8, relAddr ); // call before
if ( sizeof...( Args ) ) push<uint8_t>( 0x5A ); // pop edx
if constexpr ( sizeof...( Args ) ) push<uint8_t>( 0x5A ); // pop edx
// Пропуск оригинального кода
pusha<uint8_t, uint8_t>( 0x85, 0xC0 ); // test eax, eax
......@@ -204,7 +204,7 @@ namespace SRHook {
pusha<uint8_t, uint8_t, uint8_t>( 0x9C, 0x58, 0xA3, &cpu_offset->EFLAGS );
// j_after
if ( sizeof...( Args ) ) {
if constexpr ( sizeof...( Args ) ) {
// Копирование аргументов со стека
push<uint8_t>( 0x52 ); // push edx
for ( int i = sizeof...( Args ) - 1; i >= 0; --i ) {
......@@ -217,7 +217,7 @@ namespace SRHook {
pusha<uint8_t>( 0xB9, (uint32_t)this ); // mov ecx, this
relAddr = getRelAddr( (size_t)code + codeLength, (size_t)fn2void( &Hook<Args...>::after ) );
pusha<uint8_t>( 0xE8, relAddr ); // call after
if ( sizeof...( Args ) ) push<uint8_t>( 0x5A ); // pop edx
if constexpr ( sizeof...( Args ) ) push<uint8_t>( 0x5A ); // pop edx
// j_restore
// Восстановление флагов из класса
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment