23#ifndef MEMORY_DEBUGGING_INCLUDED
24#define MEMORY_DEBUGGING_INCLUDED
36#include <valgrind/valgrind.h>
38#define MEM_MALLOCLIKE_BLOCK(p1, p2, p3, p4) \
39 VALGRIND_MALLOCLIKE_BLOCK(p1, p2, p3, p4)
40#define MEM_FREELIKE_BLOCK(p1, p2) VALGRIND_FREELIKE_BLOCK(p1, p2)
41#include <valgrind/memcheck.h>
43#define MEM_UNDEFINED(a, len) VALGRIND_MAKE_MEM_UNDEFINED(a, len)
44#define MEM_DEFINED_IF_ADDRESSABLE(a, len) \
45 VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE(a, len)
46#define MEM_NOACCESS(a, len) VALGRIND_MAKE_MEM_NOACCESS(a, len)
47#define MEM_CHECK_ADDRESSABLE(a, len) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a, len)
51#define MEM_MALLOCLIKE_BLOCK(p1, p2, p3, p4) \
54#define MEM_FREELIKE_BLOCK(p1, p2) \
57#define MEM_UNDEFINED(a, len) ((void)0)
58#define MEM_DEFINED_IF_ADDRESSABLE(a, len) ((void)0)
59#define MEM_NOACCESS(a, len) ((void)0)
60#define MEM_CHECK_ADDRESSABLE(a, len) ((void)0)
64#if !defined(NDEBUG) || defined(HAVE_VALGRIND)
78inline void TRASH(
void *,
size_t) {}
#define MEM_CHECK_ADDRESSABLE(a, len)
Definition: memory_debugging.h:60
void TRASH(void *ptr, size_t length)
Put bad content in memory to be sure it will segfault if dereferenced.
Definition: memory_debugging.h:70
#define MEM_UNDEFINED(a, len)
Definition: memory_debugging.h:57
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75