e8222123e6
Use syscall instead of mmap and munmap
2018-04-22 08:07:20 +02:00
af45de842e
Take MmapPool from the standard builds
2018-03-29 16:54:56 +02:00
54bcec216e
Deprecate MmapPool for the standard build
...
Mallocator is the default allocator now and should be used instead.
2018-03-06 05:29:15 +01:00
74b085b88d
Sort imports
2017-10-01 19:03:42 +02:00
a576c36d02
Replace memcpy/memmove with copy/copyBackward
2017-09-30 08:15:02 +02:00
1056a2984e
Fix #303
...
Allocation schema is displayed incorrectly in HTML.
Add pre-tag for the schema.
2017-09-27 17:56:15 +02:00
64f2295d1a
Fix #276
...
Add link to the source file for each module.
2017-08-12 17:01:51 +02:00
657f4a60d5
Fix #246
...
Make allocators pure.
* Methods allocating/deallocating memory are pure.
* Allocator.instance is pure (once initialized, it always returns
the same instance).
* defaultAllocator getter property is pure (should be set at the
beginning, and always return the same instance after that).
2017-07-13 16:01:21 +02:00
839c740cb1
Fix mmap flags on linux
2017-07-12 10:04:48 +02:00
2bd612fd19
Make MmapPool allocations pure
2017-07-12 09:30:07 +02:00
fc53779d3f
Fix #245
...
* Remove postcondition for functions calculating alignment
* Put MmapPool invariant into version (none) block
* Check that alignment doesn't overflow
2017-07-11 10:27:24 +02:00
47b394d8c3
Add module documentation. Fix #248
2017-06-24 09:08:19 +02:00
f0d016bcde
Replace in and immutable with const in allocators
2017-06-15 10:27:12 +02:00
e2bed0cfcb
Replace tabs with spaces in mmappool and buffer
2017-05-12 21:02:24 +02:00
5fa9bd7b49
Rename Allocator.expand to reallocateInPlace
...
Rename and extend Allocator.expand to reallocateInPlace. The problem is
that realloc for example doesn't guarante that the shrinking of the
memory block won't cause address change. So not only expanding should
have "in place" version, but the shrinking as well.
2017-01-18 09:33:39 +01:00
48205b2fc9
MmapPool: Add invariant
...
Add invariant to ensure blocks are linked correctly since this error
appeared several times.
2017-01-14 21:48:21 +01:00
c567b88d5d
MmapPool: Fix expand block moving.
...
D dereferences the pointer wrong because of missing difference between .
and -> operators, if trying to write a block over another
block. So use memmove first to move the memory and then update the fields
that should be changed (only size).
2017-01-14 20:39:33 +01:00
4c4e65b373
MmapPool: (p[] is null) != (p[].ptr is null)
2017-01-12 19:47:07 +01:00
d6514cb515
Fix Ddoc
2017-01-07 17:53:57 +01:00
fb843e3473
Fix #3
2017-01-07 09:30:42 +01:00
f3d48234c0
MmapPool: add expand and empty methods.
2017-01-06 23:12:19 +01:00
254b881da6
Fix block size calculation
2017-01-06 11:56:54 +01:00
8e0b742748
MmapPool: Merge blocks on deallocation if possible
2017-01-05 14:25:54 +01:00
a35e04c049
Don't throw in the allocator, return null
2017-01-05 07:42:23 +01:00
4271c8583e
Remove static constructor from the MmapPool
2017-01-05 07:35:29 +01:00
40857e69b7
Add capacity capabilities to the vector
2016-12-18 18:48:25 +01:00
c1fb89af99
Implement insertion into the vector
2016-12-15 15:00:06 +01:00
fa607141e4
Make allocator shared and fix some RefCounted bugs
2016-12-06 21:29:08 +01:00
192ee20bf7
Remove shared from the allocators
2016-11-30 21:20:18 +01:00
cbeb0395f9
Remove @safe from potentially unsafe code
2016-11-30 16:21:20 +01:00
c2afb07ff6
Rename Ullocator to MmapPool and make it Windows compatible
2016-10-05 13:01:37 +02:00