Files
bind9/bin/tests/system/dyndb/driver/util.h
Ondřej Surý c931d8e417 Merge branch '46-just-use-clang-format-to-reformat-sources' into 'master'
Reformat source code with clang-format

Closes #46

See merge request isc-projects/bind9!2156

(cherry picked from commit 7099e79a9b)

4c3b063e Import Linux kernel .clang-format with small modifications
f50b1e06 Use clang-format to reformat the source files
11341c76 Update the definition files for Windows
df6c1f76 Remove tkey_test (which is no-op anyway)
2020-02-12 14:51:18 +00:00

59 lines
1.7 KiB
C

/*
* Memory allocation and error handling utilities.
*
* Copyright (C) 2009-2015 Red Hat ; see COPYRIGHT for license
*/
#ifndef _LD_UTIL_H_
#define _LD_UTIL_H_
#include <isc/mem.h>
#include <dns/types.h>
#include "log.h"
#define CLEANUP_WITH(result_code) \
do { \
result = (result_code); \
goto cleanup; \
} while (0)
#define CHECK(op) \
do { \
result = (op); \
if (result != ISC_R_SUCCESS) \
goto cleanup; \
} while (0)
#define CHECKED_MEM_GET(m, target_ptr, s) \
do { \
(target_ptr) = isc_mem_get((m), (s)); \
if ((target_ptr) == NULL) { \
result = ISC_R_NOMEMORY; \
log_error("Memory allocation failed"); \
goto cleanup; \
} \
} while (0)
#define CHECKED_MEM_GET_PTR(m, target_ptr) \
CHECKED_MEM_GET(m, target_ptr, sizeof(*(target_ptr)))
#define CHECKED_MEM_STRDUP(m, source, target) \
do { \
(target) = isc_mem_strdup((m), (source)); \
if ((target) == NULL) { \
result = ISC_R_NOMEMORY; \
log_error("Memory allocation failed"); \
goto cleanup; \
} \
} while (0)
#define ZERO_PTR(ptr) memset((ptr), 0, sizeof(*(ptr)))
#define MEM_PUT_AND_DETACH(target_ptr) \
isc_mem_putanddetach(&(target_ptr)->mctx, target_ptr, \
sizeof(*(target_ptr)))
#endif /* !_LD_UTIL_H_ */