@@ -6576,27 +6576,32 @@ namespace Detours {
65766576 static inline bool __ranges_overlap(const void* a, size_t asz,
65776577 const void* b, size_t bsz) {
65786578 if (asz == 0 || bsz == 0) return false;
6579- const uintptr_t a0 = (uintptr_t)a, a1 = a0 + asz;
6580- const uintptr_t b0 = (uintptr_t)b, b1 = b0 + bsz;
6581- // ������������ ��������� [a0,a1) � [b0,b1)
6579+ const uintptr_t a0 = reinterpret_cast<uintptr_t>(a), a1 = a0 + asz;
6580+ const uintptr_t b0 = reinterpret_cast<uintptr_t>(b), b1 = b0 + bsz;
65826581 return (a0 < b1) && (b0 < a1);
65836582 }
65846583
6585- static inline bool __addr_in_range (const void* base, size_t size, const void* addr) {
6586- const uintptr_t b = ( uintptr_t) base;
6587- const uintptr_t a = ( uintptr_t) addr;
6588- return (a - b) < size; // ��������� ���� ��� a<b
6584+ static inline bool __address_in_range (const void* base, size_t size, const void* addr) {
6585+ const uintptr_t b = reinterpret_cast< uintptr_t>( base) ;
6586+ const uintptr_t a = reinterpret_cast< uintptr_t>( addr) ;
6587+ return (a - b) < size;
65896588 }
65906589
6591- static inline bool __range_intersection(const void* a, size_t asz,
6592- const void* b, size_t bsz,
6593- void** outStart, size_t* outSize) {
6594- const uintptr_t a0 = (uintptr_t)a, a1 = a0 + asz;
6595- const uintptr_t b0 = (uintptr_t)b, b1 = b0 + bsz;
6590+ static inline bool __range_intersection(const void* a, size_t asz, const void* b, size_t bsz, void** outStart, size_t* outSize) {
6591+ const uintptr_t a0 = reinterpret_cast<uintptr_t>(a), a1 = a0 + asz;
6592+ const uintptr_t b0 = reinterpret_cast<uintptr_t>(b), b1 = b0 + bsz;
65966593 const uintptr_t s = (a0 > b0 ? a0 : b0);
65976594 const uintptr_t e = (a1 < b1 ? a1 : b1);
6598- if (e > s) { *outStart = (void*)s; *outSize = (size_t)(e - s); return true; }
6599- *outStart = nullptr; *outSize = 0; return false;
6595+
6596+ if (e > s) {
6597+ *outStart = reinterpret_cast<void*>(s);
6598+ *outSize = static_cast<size_t>(e - s);
6599+ return true;
6600+ }
6601+
6602+ *outStart = nullptr;
6603+ *outSize = 0;
6604+ return false;
66006605 }
66016606
66026607 // ----------------------------------------------------------------
@@ -8433,7 +8438,7 @@ namespace Detours {
84338438 }
84348439
84358440 if (pRecord->m_pPostCallBack) {
8436- if (PostCTX.m_pFaultAddress && __addr_in_range (pRecord->m_pUserAddress, pRecord->m_unUserSize, PostCTX.m_pFaultAddress)) {
8441+ if (PostCTX.m_pFaultAddress && __address_in_range (pRecord->m_pUserAddress, pRecord->m_unUserSize, PostCTX.m_pFaultAddress)) {
84378442 pRecord->m_pPostCallBack(pCTX, PostCTX.m_pExceptionAddress ? PostCTX.m_pExceptionAddress : reinterpret_cast<void*>(Exception.ExceptionAddress), PostCTX.m_unOperation, pRecord->m_pUserAddress, PostCTX.m_pFaultAddress);
84388443 }
84398444 }
@@ -8538,11 +8543,11 @@ namespace Detours {
85388543 continue;
85398544 }
85408545
8541- if (!pRecord->m_bIsVirtual && __addr_in_range (pRecord->m_pAddress, pRecord->m_unSize, pFaultAddress)) {
8546+ if (!pRecord->m_bIsVirtual && __address_in_range (pRecord->m_pAddress, pRecord->m_unSize, pFaultAddress)) {
85428547 vecCommitOpenStack.push_back(pRecord);
85438548 }
85448549
8545- if (__addr_in_range (pRecord->m_pUserAddress, pRecord->m_unUserSize, pFaultAddress)) {
8550+ if (__address_in_range (pRecord->m_pUserAddress, pRecord->m_unUserSize, pFaultAddress)) {
85468551 vecCallBacks.push_back(pRecord);
85478552 }
85488553 }
@@ -86112,11 +86117,12 @@ namespace Detours {
8611286117 auto pRecord = std::make_unique<MEMORY_HOOK_RECORD>();
8611386118 if (!pRecord) {
8611486119 ReleaseSRWLockExclusive(&g_MemoryHookRecordsLock);
86115- for (const auto& pPage : vecInstalled) {
86116- __reg_uninstall_page(pPage);
86117- g_Suspender.Resume();
86118- return false;
86120+ for (const auto& pPageAddress : vecInstalled) {
86121+ __reg_uninstall_page(pPageAddress);
8611986122 }
86123+
86124+ g_Suspender.Resume();
86125+ return false;
8612086126 }
8612186127
8612286128 pRecord->m_bIsVirtual = false;
@@ -86136,8 +86142,8 @@ namespace Detours {
8613686142 auto pPage = std::make_unique<Page>(pPageAddress, false, false);
8613786143 if (!pPage) {
8613886144 ReleaseSRWLockExclusive(&g_MemoryHookRecordsLock);
86139- for (void* b : vecInstalled) {
86140- __reg_uninstall_page(b );
86145+ for (const auto& pInstalledPageAddress : vecInstalled) {
86146+ __reg_uninstall_page(pInstalledPageAddress );
8614186147 }
8614286148
8614386149 g_Suspender.Resume();
@@ -86146,8 +86152,8 @@ namespace Detours {
8614686152
8614786153 if (!__reg_install_page(pPageAddress)) {
8614886154 ReleaseSRWLockExclusive(&g_MemoryHookRecordsLock);
86149- for (void* b : vecInstalled) {
86150- __reg_uninstall_page(b );
86155+ for (const auto& pInstalledPageAddress : vecInstalled) {
86156+ __reg_uninstall_page(pInstalledPageAddress );
8615186157 }
8615286158
8615386159 g_Suspender.Resume();
@@ -86165,8 +86171,8 @@ namespace Detours {
8616586171 auto pRecord = std::make_unique<MEMORY_HOOK_RECORD>();
8616686172 if (!pRecord) {
8616786173 ReleaseSRWLockExclusive(&g_MemoryHookRecordsLock);
86168- for (void* b : vecInstalled) {
86169- __reg_uninstall_page(b );
86174+ for (const auto& pInstalledPageAddress : vecInstalled) {
86175+ __reg_uninstall_page(pInstalledPageAddress );
8617086176 }
8617186177
8617286178 g_Suspender.Resume();
@@ -86182,14 +86188,15 @@ namespace Detours {
8618286188 void* pUserAddress = nullptr;
8618386189 size_t unUserSize = 0;
8618486190 __range_intersection(pAddress, unSize, seg.m_pBaseAddress, seg.m_unSize, &pUserAddress, &unUserSize);
86191+
8618586192 pRecord->m_pUserAddress = pUserAddress;
8618686193 pRecord->m_unUserSize = unUserSize;
8618786194
8618886195 vecNewRecords.emplace_back(std::move(pRecord));
8618986196 }
8619086197
86191- for (auto& rec : vecNewRecords) {
86192- g_MemoryHookRecords.emplace_back(std::move(rec ));
86198+ for (auto& pNewRecord : vecNewRecords) {
86199+ g_MemoryHookRecords.emplace_back(std::move(pNewRecord ));
8619386200 }
8619486201 }
8619586202 ReleaseSRWLockExclusive(&g_MemoryHookRecordsLock);
@@ -86229,15 +86236,14 @@ namespace Detours {
8622986236 continue;
8623086237 }
8623186238
86232- if ((pRecord->m_pCallBack == pCallBack) && __addr_in_range(pRecord->m_pUserAddress, pRecord->m_unUserSize, pAddress))
86233- {
86239+ if ((pRecord->m_pCallBack == pCallBack) && __address_in_range(pRecord->m_pUserAddress, pRecord->m_unUserSize, pAddress)) {
8623486240 AcquireSRWLockExclusive(&pRecord->m_Lock);
8623586241
8623686242 if (!pRecord->m_bPendingDeletion) {
8623786243 if (!pRecord->m_bIsVirtual) {
86238- for (auto& p : pRecord->m_Pages) {
86239- if (p ) {
86240- __reg_uninstall_page(p ->GetPageAddress());
86244+ for (auto& pRecordPage : pRecord->m_Pages) {
86245+ if (pRecordPage ) {
86246+ __reg_uninstall_page(pRecordPage ->GetPageAddress());
8624186247 }
8624286248 }
8624386249 }
0 commit comments