Fixed crash with StoreToAddress if memory wasn't writable (bug 5252, r=asherkin).
Fixed crash with StoreToAddress if memory wasn't writable (
bug 5252, r=asherkin).
1.1 --- a/core/smn_core.cpp Wed Mar 21 22:04:05 2012 -0500
1.2 +++ b/core/smn_core.cpp Sat Apr 14 00:31:07 2012 +0100
1.3 @@ -43,6 +43,7 @@
1.4 #include "Logger.h"
1.5 #include "ExtensionSys.h"
1.6 #include <sm_trie_tpl.h>
1.7 +#include <sh_memory.h>
1.8
1.9 #if defined PLATFORM_WINDOWS
1.10 #include <windows.h>
1.11 @@ -729,12 +730,15 @@
1.12 switch(size)
1.13 {
1.14 case NumberType_Int8:
1.15 + SourceHook::SetMemAccess(addr, sizeof(uint8_t), SH_MEM_READ|SH_MEM_WRITE|SH_MEM_EXEC);
1.16 *reinterpret_cast<uint8_t*>(addr) = data;
1.17 break;
1.18 case NumberType_Int16:
1.19 + SourceHook::SetMemAccess(addr, sizeof(uint16_t), SH_MEM_READ|SH_MEM_WRITE|SH_MEM_EXEC);
1.20 *reinterpret_cast<uint16_t*>(addr) = data;
1.21 break;
1.22 case NumberType_Int32:
1.23 + SourceHook::SetMemAccess(addr, sizeof(uint32_t), SH_MEM_READ|SH_MEM_WRITE|SH_MEM_EXEC);
1.24 *reinterpret_cast<uint32_t*>(addr) = data;
1.25 break;
1.26 default: