38e1a19e37
alloc: all allocators should take a type for alloc/dealloc
2018-05-10 13:53:06 +10:00
2620e2ed33
alloc: return views rather than raw pointers
2018-05-10 12:54:45 +10:00
4116442e40
debug: don't rely on format for output
...
debug is relied upon by a great deal of other units so it's very
difficult to include other popular headers like format.hpp without
triggering cyclic dependencies.
2018-05-10 12:44:03 +10:00
497d3ca970
build: update for gcc-8.1 warnings
2018-05-03 18:32:08 +10:00
e7b12e7792
alloc/raw/linear: add offset overload for views
2018-04-20 15:08:06 +10:00
09b9c1dc8b
alloc/raw/linear: don't align by default
2018-04-20 15:08:06 +10:00
cbce5803b5
allocator: return a view, not a pointer. for safety.
2018-04-20 15:08:06 +10:00
6389839f4e
alloc/allocator: add make_allocator convenience function
2018-04-09 18:34:22 +10:00
d00d724296
alloc/allocator: take type into account for sizes and ptrs
2018-03-07 17:57:10 +11:00
87fc5df03d
alloc/allocator: add forgotten type parameter for forward call
2018-03-07 17:56:42 +11:00
3867b9e74e
alloc/forwarding: add statically typed forwarding allocator
2018-03-07 16:24:39 +11:00
b23c274742
alloc/foreign: don't use a null base pointer
...
We can't use null for the proxy view passed to the successor allocators
because it triggers undefined behaviour.
2018-03-05 15:58:36 +11:00
15fad39e8a
alloc/foreign: add warning about non-trivial child allocators
2018-03-02 12:45:52 +11:00
950ac2229f
alloc/foreign: correctly rebase 'offset'
2018-03-02 12:45:27 +11:00
c2265b9ed2
alloc: add aligned::foreign allocator
...
sometimes we need to ensure memory allocation has a particular alignment
in an _offset_ buffer (which we have no control over, eg renderdoc's
OpenGL buffers).
this applies an offset to various operations that make the
aligned::direct allocator correctly align allocations for buffers that
aren't themselves aligned.
2018-03-02 12:21:38 +11:00
35537b07ca
alloc/aligned: add accessor for alignment
2018-03-01 14:43:37 +11:00
7af076e2de
alloc: prefer std::byte representations for iterators
...
this allows the users to more easily walk the byte ranges (or perform
simply pointer arithmetic), without as much danger of using the values
in an expression inadvertantly.
2018-02-28 17:55:56 +11:00
2941a5a3e1
alloc/raw: add 'data' accessor
2018-02-28 16:19:27 +11:00
0e3fa05f05
build: migrate from ipp files to pure hpp files
...
ipp files weren't a great way of keeping things clean, and IDEs have a
little trouble dealing with the split configuration. this simplifies
debugging a great deal.
2018-02-28 11:49:13 +11:00
82a8446e10
build: silence various type conversion warnings
2018-01-18 11:56:42 +11:00
1d11f05918
cast: move casting functions into util::cast namespace
2018-01-16 15:11:15 +11:00
0351313c36
Merge branch 'master' into coord
2017-11-23 17:24:11 +11:00
34788756d2
build: don't use './' as an include prefix
...
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
f06eab9a3a
a/r/aligned: add forgotten headers and namespace qualifiers
2017-09-21 15:06:35 +10:00
0e97044adf
allow/raw: rename base as begin
2017-08-31 13:48:33 +10:00
0f4fece00f
alloc/raw/linear: add constructor from range types
2017-08-30 15:13:43 +10:00
cfc8cb5691
allow/raw/stack: remove unused ipp file
2017-08-29 16:59:54 +10:00
9d5e599246
alloc: seperate out the raw allocators from the adapters
2017-08-29 16:53:11 +10:00
417175b2dd
alloc/arena: add descriptive comment for arena
2017-08-29 12:28:59 +10:00
25e19b5810
build: use explicit constructors
2017-05-23 12:50:51 +10:00
faf7e68671
alloc/stack: fix allocation record offset calculation
2017-01-05 17:06:13 +11:00
9a798446b5
build: remove unnecessary includes
...
discovered with include-what-you-use
2016-10-12 15:08:22 +11:00
98350fedab
build: silence unused var/func warnings
2016-10-11 21:43:07 +11:00
972b409160
alloc: duplicate methods with optional args
2016-10-10 20:59:26 +11:00
2c4f6f5526
alloc/aligned: rename Successor to ChildT
2016-10-10 19:26:40 +11:00
3dc31a9d10
alloc/aligned: add allocator with forced alignment
2016-10-10 18:19:09 +11:00
e7bf2330ed
alloc: use nested namespace decl
2016-10-10 17:58:59 +11:00
fef1dc8300
alloc/dynamic: add missing override specifiers
2016-06-28 15:57:23 +10:00
350dd96b2d
alloc: add base and offset methods
2016-06-22 19:51:18 +10:00
ea0d107859
alloc/linear: warn on null src pointers
2016-05-18 10:26:55 +10:00
1f432c13b7
build: avoid type truncation warnings
...
discovered with clang's -Wshorten-64-to-32
2016-05-12 17:39:33 +10:00
ab330cc520
add ref-qualifiers to avoid dangling refs/ptrs
2016-03-17 18:05:28 +11:00
7adf63413d
build: tighten up some unneeded headers
2016-02-25 13:17:14 +11:00
226e212826
alloc/fwd: add forward decleration header
2016-02-10 14:05:44 +11:00
bbc06efa24
alloc/dynamic: add virtual allocator interface
2016-02-10 14:05:09 +11:00
80e29f81b9
alloc/null: add missing interface members
2016-02-10 14:04:08 +11:00
d232f1c871
alloc: rename 'size' to 'used'
2015-11-30 16:08:07 +11:00
96769c582e
alloc/arena: argument forwarding for acquire
2015-11-24 16:52:14 +11:00
5601c1e9c4
alloc/stack: add capacity/size/remain implementations
2015-11-24 16:49:11 +11:00
8ea208daea
alloc/linear: add capacity/size/remain implementations
2015-11-24 16:48:46 +11:00