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