Merge pull request #24669 from dtardon/nested-asserts

Use nested ASSERT_PTR
This commit is contained in:
Yu Watanabe
2022-09-14 20:27:07 +09:00
committed by GitHub
5 changed files with 13 additions and 42 deletions

View File

@@ -1373,13 +1373,9 @@ void job_shutdown_magic(Job *j) {
int job_get_timeout(Job *j, usec_t *timeout) {
usec_t x = USEC_INFINITY, y = USEC_INFINITY;
Unit *u;
Unit *u = ASSERT_PTR(ASSERT_PTR(j)->unit);
int r;
assert(j);
u = ASSERT_PTR(j->unit);
if (j->timer_event_source) {
r = sd_event_source_get_time(j->timer_event_source, &x);
if (r < 0)

View File

@@ -1448,11 +1448,7 @@ int unit_load_fragment_and_dropin(Unit *u, bool fragment_required) {
}
void unit_add_to_target_deps_queue(Unit *u) {
Manager *m;
assert(u);
m = ASSERT_PTR(u->manager);
Manager *m = ASSERT_PTR(ASSERT_PTR(u)->manager);
if (u->in_target_deps_queue)
return;

View File

@@ -81,18 +81,13 @@
#endif
/* This passes the argument through after (if asserts are enabled) checking that it is not null. */
#define ASSERT_PTR(expr) \
({ \
typeof(expr) _expr_ = (expr); \
assert(_expr_); \
_expr_; \
})
#define ASSERT_SE_PTR(expr) \
({ \
typeof(expr) _expr_ = (expr); \
assert_se(_expr_); \
_expr_; \
#define ASSERT_PTR(expr) _ASSERT_PTR(expr, UNIQ_T(_expr_, UNIQ), assert)
#define ASSERT_SE_PTR(expr) _ASSERT_PTR(expr, UNIQ_T(_expr_, UNIQ), assert_se)
#define _ASSERT_PTR(expr, var, check) \
({ \
typeof(expr) var = (expr); \
check(var); \
var; \
})
#define ASSERT_NONNEG(expr) \

View File

@@ -95,13 +95,9 @@ static int idle_time_cb(sd_event_source *s, uint64_t usec, void *userdata) {
}
static int connection_release(Connection *c) {
Context *context;
Context *context = ASSERT_PTR(ASSERT_PTR(c)->context);
int r;
assert(c);
context = ASSERT_PTR(c->context);
connection_free(c);
if (arg_exit_idle_time < USEC_INFINITY && set_isempty(context->connections)) {

View File

@@ -241,16 +241,12 @@ static ssize_t udev_event_subst_format(
size_t l,
bool *ret_truncated) {
sd_device *parent, *dev;
sd_device *parent, *dev = ASSERT_PTR(ASSERT_PTR(event)->dev);
const char *val = NULL;
bool truncated = false;
char *s = dest;
int r;
assert(event);
dev = ASSERT_PTR(event->dev);
switch (type) {
case FORMAT_SUBST_DEVPATH:
r = sd_device_get_devpath(dev, &val);
@@ -942,13 +938,9 @@ static int rename_netif(UdevEvent *event) {
}
static int update_devnode(UdevEvent *event) {
sd_device *dev;
sd_device *dev = ASSERT_PTR(ASSERT_PTR(event)->dev);
int r;
assert(event);
dev = ASSERT_PTR(event->dev);
r = sd_device_get_devnum(dev, NULL);
if (r == -ENOENT)
return 0;
@@ -990,13 +982,9 @@ static int event_execute_rules_on_remove(
Hashmap *properties_list,
UdevRules *rules) {
sd_device *dev;
sd_device *dev = ASSERT_PTR(ASSERT_PTR(event)->dev);
int r;
assert(event);
dev = ASSERT_PTR(event->dev);
r = device_read_db_internal(dev, true);
if (r < 0)
log_device_debug_errno(dev, r, "Failed to read database under /run/udev/data/: %m");