diff options
Diffstat (limited to 'src/assert_safe.h')
-rw-r--r-- | src/assert_safe.h | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/assert_safe.h b/src/assert_safe.h deleted file mode 100644 index 8c261100f..000000000 --- a/src/assert_safe.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#ifndef INCLUDE_assert_safe_h__ -#define INCLUDE_assert_safe_h__ - -/* - * In a debug build, we'll assert(3) for aide in debugging. In release - * builds, we will provide macros that will set an error message that - * indicate a failure and return. Note that memory leaks can occur in - * a release-mode assertion failure -- it is impractical to provide - * safe clean up routines in these very extreme failures, but care - * should be taken to not leak very large objects. - */ - -#if (defined(_DEBUG) || defined(GIT_ASSERT_HARD)) && GIT_ASSERT_HARD != 0 -# include <assert.h> - -# define GIT_ASSERT(expr) assert(expr) -# define GIT_ASSERT_ARG(expr) assert(expr) - -# define GIT_ASSERT_WITH_RETVAL(expr, fail) assert(expr) -# define GIT_ASSERT_ARG_WITH_RETVAL(expr, fail) assert(expr) -#else - -/** Internal consistency check to stop the function. */ -# define GIT_ASSERT(expr) GIT_ASSERT_WITH_RETVAL(expr, -1) - -/** - * Assert that a consumer-provided argument is valid, setting an - * actionable error message and returning -1 if it is not. - */ -# define GIT_ASSERT_ARG(expr) GIT_ASSERT_ARG_WITH_RETVAL(expr, -1) - -/** Internal consistency check to return the `fail` param on failure. */ -# define GIT_ASSERT_WITH_RETVAL(expr, fail) \ - GIT_ASSERT__WITH_RETVAL(expr, GIT_ERROR_INTERNAL, "unrecoverable internal error", fail) - -/** - * Assert that a consumer-provided argument is valid, setting an - * actionable error message and returning the `fail` param if not. - */ -# define GIT_ASSERT_ARG_WITH_RETVAL(expr, fail) \ - GIT_ASSERT__WITH_RETVAL(expr, GIT_ERROR_INVALID, "invalid argument", fail) - -# define GIT_ASSERT__WITH_RETVAL(expr, code, msg, fail) do { \ - if (!(expr)) { \ - git_error_set(code, "%s: '%s'", msg, #expr); \ - return fail; \ - } \ - } while(0) - -#endif /* GIT_ASSERT_HARD */ - -#endif |