Commit Graph

83 Commits

Author SHA1 Message Date
343b3d36ce alloc/malloc: remember to check memalign return value 2023-07-21 14:19:39 +10:00
161f84ef53 alloc/chunked: remove local fwd decl for std::pmr::memory_resource 2023-05-15 10:29:34 +10:00
50b2105df5 build: clang-tidy fixes 2021-04-19 14:52:22 +10:00
92afaf38ec build: avoid double underscore header guards 2021-04-14 15:35:49 +10:00
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