xref: /freebsd/contrib/expat/tests/memcheck.h (revision cc68614da8232d8baaca0ae0d0dd8f890f06623e)
10a48773fSEric van Gyzen /* Interface to allocation functions that will track what has or has
20a48773fSEric van Gyzen    not been freed.
30a48773fSEric van Gyzen                             __  __            _
40a48773fSEric van Gyzen                          ___\ \/ /_ __   __ _| |_
50a48773fSEric van Gyzen                         / _ \\  /| '_ \ / _` | __|
60a48773fSEric van Gyzen                        |  __//  \| |_) | (_| | |_
70a48773fSEric van Gyzen                         \___/_/\_\ .__/ \__,_|\__|
80a48773fSEric van Gyzen                                  |_| XML parser
90a48773fSEric van Gyzen 
10*cc68614dSXin LI    Copyright (c) 2017 Rhodri James <rhodri@wildebeest.org.uk>
11*cc68614dSXin LI    Copyright (c) 2017 Sebastian Pipping <sebastian@pipping.org>
120a48773fSEric van Gyzen    Licensed under the MIT license:
130a48773fSEric van Gyzen 
140a48773fSEric van Gyzen    Permission is  hereby granted,  free of charge,  to any  person obtaining
150a48773fSEric van Gyzen    a  copy  of  this  software   and  associated  documentation  files  (the
160a48773fSEric van Gyzen    "Software"),  to  deal in  the  Software  without restriction,  including
170a48773fSEric van Gyzen    without  limitation the  rights  to use,  copy,  modify, merge,  publish,
180a48773fSEric van Gyzen    distribute, sublicense, and/or sell copies of the Software, and to permit
190a48773fSEric van Gyzen    persons  to whom  the Software  is  furnished to  do so,  subject to  the
200a48773fSEric van Gyzen    following conditions:
210a48773fSEric van Gyzen 
220a48773fSEric van Gyzen    The above copyright  notice and this permission notice  shall be included
230a48773fSEric van Gyzen    in all copies or substantial portions of the Software.
240a48773fSEric van Gyzen 
250a48773fSEric van Gyzen    THE  SOFTWARE  IS  PROVIDED  "AS  IS",  WITHOUT  WARRANTY  OF  ANY  KIND,
260a48773fSEric van Gyzen    EXPRESS  OR IMPLIED,  INCLUDING  BUT  NOT LIMITED  TO  THE WARRANTIES  OF
270a48773fSEric van Gyzen    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
280a48773fSEric van Gyzen    NO EVENT SHALL THE AUTHORS OR  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
290a48773fSEric van Gyzen    DAMAGES OR  OTHER LIABILITY, WHETHER  IN AN  ACTION OF CONTRACT,  TORT OR
300a48773fSEric van Gyzen    OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
310a48773fSEric van Gyzen    USE OR OTHER DEALINGS IN THE SOFTWARE.
320a48773fSEric van Gyzen */
330a48773fSEric van Gyzen 
340a48773fSEric van Gyzen #ifdef __cplusplus
350a48773fSEric van Gyzen extern "C" {
360a48773fSEric van Gyzen #endif
370a48773fSEric van Gyzen 
380a48773fSEric van Gyzen #ifndef XML_MEMCHECK_H
390a48773fSEric van Gyzen #  define XML_MEMCHECK_H 1
400a48773fSEric van Gyzen 
410a48773fSEric van Gyzen /* Allocation declarations */
420a48773fSEric van Gyzen 
430a48773fSEric van Gyzen void *tracking_malloc(size_t size);
440a48773fSEric van Gyzen void tracking_free(void *ptr);
450a48773fSEric van Gyzen void *tracking_realloc(void *ptr, size_t size);
460a48773fSEric van Gyzen 
470a48773fSEric van Gyzen /* End-of-test check to see if unfreed allocations remain. Returns
480a48773fSEric van Gyzen  * TRUE (1) if there is nothing, otherwise prints a report of the
490a48773fSEric van Gyzen  * remaining allocations and returns FALSE (0).
500a48773fSEric van Gyzen  */
510a48773fSEric van Gyzen int tracking_report(void);
520a48773fSEric van Gyzen 
530a48773fSEric van Gyzen #endif /* XML_MEMCHECK_H */
540a48773fSEric van Gyzen 
550a48773fSEric van Gyzen #ifdef __cplusplus
560a48773fSEric van Gyzen }
570a48773fSEric van Gyzen #endif
58