3789853d98
Fix one Mallocator test
...
Test that if the reallocation fails, the pointer doesn't change.
2017-06-15 10:37:50 +02:00
f0d016bcde
Replace in and immutable with const in allocators
2017-06-15 10:27:12 +02:00
70e96c62b3
Make Unique.get and RefCounted.get return inout
...
Also revert the renaming of Scoped to Unique. And rename the whole
module to memory.smartref.
2017-06-14 22:11:57 +02:00
8443f1b385
Make test functions nogc
2017-06-11 09:45:33 +02:00
c9050c1a8e
Rename Scoped to Unique. Improve unit tests
...
Renaming to avoid confusing with Phobos Scoped.
2017-06-11 09:41:18 +02:00
f5c6c5b483
Add Payload template for memory.types
2017-05-13 08:43:49 +02:00
ba2d086fb8
Add memory.types.Scoped
2017-05-13 08:27:51 +02:00
e2bed0cfcb
Replace tabs with spaces in mmappool and buffer
2017-05-12 21:02:24 +02:00
eb360bda38
Add unittest to check RefCounted calles struct destructors
2017-04-16 20:52:24 +02:00
628153e2e8
Make RefCounted work with dynamic arrays
2017-04-16 20:14:04 +02:00
7aa9ac9f4a
Add internal finalize method for finalizing an object without deallocating
2017-04-16 20:13:20 +02:00
402fdfae89
math.mp: Fix initialization issues after resizing
2017-03-23 15:36:17 +01:00
7892c1a930
Remove Init template parameter from memory.resize()
2017-03-22 08:51:00 +01:00
85380ac3fc
Remove makeArray import
2017-03-19 06:54:59 +01:00
b90c56395c
Remove resizeArray alias
2017-03-19 06:10:27 +01:00
d0ada39fa7
Add Mallocator as an alternative allocator
2017-03-18 08:07:01 +01:00
241767df13
Move DefaultAllocator mixin to tanya.memory
...
Since it depends on defaultAllocator property defined in the module.
2017-02-03 13:07:40 +01: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
48e355b87f
Vector: allow insert multiple items in insertBack
2017-01-02 12:47:41 +01:00
200fff3714
Fix #1
2016-12-22 22:05:48 +01:00
e32af2d09e
Add scalar type template parameter for buffers
2016-12-19 21:24:28 +01:00
f1bc4dc2e2
Add length and opCmp to the Queue
2016-12-19 16:33:16 +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
f437dafa6b
Fix dispose for structs
2016-12-13 10:58:11 +01:00
b20f367aa8
Array support for refCounted factory function
2016-12-11 11:42:09 +01:00
a2dadda511
Fix subtraction of numbers with different signs
2016-12-08 18:30:22 +01:00
9362287938
Fix error with assignin long numbers to Integer
2016-12-08 14:43:50 +01:00
c8e6d44f7b
Implement own dispose
2016-12-07 11:01:51 +01:00
fa607141e4
Make allocator shared and fix some RefCounted bugs
2016-12-06 21:29:08 +01:00
b3fdd6fd4a
Implement unary operation for multiple precision integers
2016-12-05 22:06:06 +01:00
1c5796eb96
Add RefCounted
2016-12-04 14:05:53 +01:00
b78ecdf4c5
Make tanya.memory.allocator compatible with dmd < 2.072
2016-12-01 20:04:04 +01:00
9fdcef86e7
Replace defaultAllocator with theAllocator
2016-11-30 21:54:31 +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
721bb110e5
Use dispose from std.experimental
2016-10-05 13:12:50 +02:00
9241ec503c
Add Mallocator (malloc allocator)
2016-10-05 13:04:25 +02:00
c2afb07ff6
Rename Ullocator to MmapPool and make it Windows compatible
2016-10-05 13:01:37 +02:00
698660c4c8
Make allocators shared
2016-10-04 18:19:48 +02:00