2c7eb400c3
debug: move warning code into warn header
2021-04-12 15:53:13 +10:00
fc2d9e77c1
alloc/chunked: actually free the memory at destructor time
2021-04-09 15:40:36 +10:00
03f702df4c
alloc/chunked: add oversize chunk allocation
2021-01-14 07:48:35 +10:00
a5c69c5911
alloc/chunked: add untested initial implementation
2021-01-12 14:58:55 +10:00
bb7a4e41e6
alloc: add chunked allocator
2021-01-11 13:39:19 +10:00
272e8f286a
alloc/easy: add move initialisation for array allocations
2020-03-18 14:18:27 +11:00
442dd12f8f
alloc/foreign: dellocate should take a void pointer
2019-10-02 12:39:32 +10:00
ccdc0b6807
alloc/aligned/direct: deallocate should take a void pointer
2019-10-01 13:14:18 +10:00
8beada1646
debug: split debug headers into components
2019-05-17 12:26:08 +10:00
b61d55ee3c
build: satiate clang-tidy somewhat
2019-01-03 15:48:34 +11:00
bce481db0e
buffer: move buffer code out of 'memory' namespace
2018-12-19 20:22:18 +11:00
4e25f6e3e2
alloc: eliminate 'raw' allocator distinction
2018-12-19 17:55:24 +11:00
6308166179
alloc/aligned/foreign: actually correct the allocated address
2018-12-19 17:35:09 +11:00
39ed7b27e8
alloc: remove unused allocators
2018-12-19 17:34:35 +11:00
10d5c141f2
alloc: rationalise the 'arena' allocator
2018-12-19 17:16:57 +11:00
043dd73677
pointer: rename align as align_up, and add align_down
2018-12-17 14:45:54 +11:00
ddb0e75962
alloc/arena: add mutating accessor to underlying store
2018-11-02 14:29:19 +11:00
179c8bead4
alloc/arena: add inner allocator accessor
2018-10-04 17:57:17 +10:00
1fc7e562c7
alloc/arena: add move operations for owning arenas
2018-10-04 15:36:48 +10:00
591a321f47
alloc/arena: forward reset calls to underlying store of owned arena
2018-10-04 14:53:21 +10:00
6dede936bd
alloc/arena: Add an arena that contains an allocator.
2018-10-01 15:35:06 +10:00
bc03b36ffc
alloc/raw/linear: explain why begin/end members aren't const
2018-09-22 12:40:13 +10:00
2e0b51baa4
alloc/raw/linear: enable move operators
2018-09-21 17:00:56 +10:00
b60aaccf6f
build; fix compilation errors under win32
...
win32 builds are still totally unsupported, untested, and functionally
broken.
2018-08-13 14:52:40 +10:00
f6056153e3
rename root namespace from util to cruft
...
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87
relicense under MPL-2.0
2018-08-04 15:14:06 +10:00
7d315c8095
allow/raw/linear: add typed offset query
2018-05-18 16:51:42 +10:00
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