This means making memory allocations on the heap that are not too "far away" and can be used to set 5-byte jumps (1 OP code for JMP instructions and 4 to the "close" memory location on the heap, which then redirects with a long jump to the actual stub)
Or simply to allow overriding some game's memory structures, like assets.
Current workaround for assets is to use a constexpr table with the various sizes for the assets to figure out at compile time the static buffer size which holds the reallocated asset
Port BOIII tactical heap memory allocation code
This means making memory allocations on the heap that are not too "far away" and can be used to set 5-byte jumps (1 OP code for JMP instructions and 4 to the "close" memory location on the heap, which then redirects with a long jump to the actual stub)
Or simply to allow overriding some game's memory structures, like assets.
Current workaround for assets is to use a constexpr table with the various sizes for the assets to figure out at compile time the static buffer size which holds the reallocated asset
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Port BOIII tactical heap memory allocation code
This means making memory allocations on the heap that are not too "far away" and can be used to set 5-byte jumps (1 OP code for JMP instructions and 4 to the "close" memory location on the heap, which then redirects with a long jump to the actual stub)
Or simply to allow overriding some game's memory structures, like assets.
Current workaround for assets is to use a constexpr table with the various sizes for the assets to figure out at compile time the static buffer size which holds the reallocated asset