summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-04-12 21:46:48 -0700
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-04-12 21:46:48 -0700
commitf04b56e178a93960c89c5ca1b7d6ebdd19416cb8 (patch)
treeadbd01bf680e2cfbd55d890b0c3edc783f3cb5ce /docs
parent5edeaf67658a3ab27e9ace87ccff37aba8352607 (diff)
Permit custom allocation function to throw
Ensure that all the necessary cleanup is performed in case the allocation fails with an exception - files are closed, buffers are reclaimed, etc. Any test that triggers a simulated out-of-memory condition is ran once again with a throwing allocation function. Unobserved std::bad_alloc count as test failures and require CHECK_ALLOC_FAIL macro. Fixes #17.
Diffstat (limited to 'docs')
-rw-r--r--docs/manual.adoc2
1 files changed, 1 insertions, 1 deletions
diff --git a/docs/manual.adoc b/docs/manual.adoc
index bab2f80..9d75ea1 100644
--- a/docs/manual.adoc
+++ b/docs/manual.adoc
@@ -497,7 +497,7 @@ allocation_function get_memory_allocation_function();
deallocation_function get_memory_deallocation_function();
----
-Allocation function is called with the size (in bytes) as an argument and should return a pointer to a memory block with alignment that is suitable for storage of primitive types (usually a maximum of `void*` and `double` types alignment is sufficient) and size that is greater than or equal to the requested one. If the allocation fails, the function has to return null pointer (throwing an exception from allocation function results in undefined behavior).
+Allocation function is called with the size (in bytes) as an argument and should return a pointer to a memory block with alignment that is suitable for storage of primitive types (usually a maximum of `void*` and `double` types alignment is sufficient) and size that is greater than or equal to the requested one. If the allocation fails, the function has to either return null pointer or to throw an exception.
Deallocation function is called with the pointer that was returned by some call to allocation function; it is never called with a null pointer. If memory management functions are not thread-safe, library thread safety is not guaranteed.