Releases: Reloaded-Project/Reloaded.Memory.Buffers
Releases · Reloaded-Project/Reloaded.Memory.Buffers
Minor #3 Patch #1
Changes
- Exposed the
SetAlignment
function, allowing the user to manually set alignment of a buffer before the next write. - Added a note to ExecuteWithLock that it operates on a per thread basis.
Minor #3
Features
Execute with lock.
The new function ExecuteWithLock
of MemoryBuffer
allows you to execute arbitrary code while keeping the buffer locked.
This can be used in certain special cases, such as for example guaranteeing a certain write address.
BugFixes
- Fixed potential bug where the buffer may refuse to let go of a mutex when there isn't sufficient space.
Minor #2
Changelog
- Add extra READ_WRITE_EXECUTE Page condition check in MemoryBufferSearcher's FindBuffers, allowing for faster finding of existing MemoryBuffers.
- If cache is disabled for searching, only new found buffers will be considered for candidates of MemoryBufferSearcher GetBuffers' return. (i.e. Completely ignore cached values)
- MemoryBufferSearcher will now replace buffer references instead of inserting if they don't exist as it is faster (microoptimization).
- Replace locks with systemwide Mutex allowing for general threading safety improvements. Not only multiple threads but now multiple programs can now concurrently perform allocation/deallocation of memory/buffers/privatebuffers safely.
- Implement Allocate and Free in MemoryBufferHelper, allowing for thread safe pure memory allocations in specified regions.
- Implement greater use of IDisposable under the hood.
- Readme improvements.
Patch #1
Minor #1
This update brings you the new implementation of PrivateMemoryBuffer
.
The PrivateMemoryBuffer
is a MemoryBuffer
at heart, directly inheriting from MemoryBuffer
. The catch is that it is not shared and can be disposed by you from unmanaged memory once you are done using it.