mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
udev/cdrom_id: use a macro to initialize context
c was initialized unconditionally, but one has to look at the function body to understand this. Let's make the whole thing shorter and more direct.
This commit is contained in:
@@ -102,6 +102,12 @@ typedef struct Context {
|
||||
uint64_t media_session_last_offset;
|
||||
} Context;
|
||||
|
||||
#define CONTEXT_EMPTY { \
|
||||
.fd = -1, \
|
||||
.media_feature = _FEATURE_INVALID, \
|
||||
.media_state = _MEDIA_STATE_INVALID, \
|
||||
}
|
||||
|
||||
static void context_clear(Context *c) {
|
||||
if (!c)
|
||||
return;
|
||||
@@ -110,16 +116,6 @@ static void context_clear(Context *c) {
|
||||
free(c->drive_features);
|
||||
}
|
||||
|
||||
static void context_init(Context *c) {
|
||||
assert(c);
|
||||
|
||||
*c = (Context) {
|
||||
.fd = -1,
|
||||
.media_feature = _FEATURE_INVALID,
|
||||
.media_state = _MEDIA_STATE_INVALID,
|
||||
};
|
||||
}
|
||||
|
||||
static bool drive_has_feature(const Context *c, Feature f) {
|
||||
assert(c);
|
||||
|
||||
@@ -954,7 +950,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
static int run(int argc, char *argv[]) {
|
||||
_cleanup_(context_clear) Context c;
|
||||
_cleanup_(context_clear) Context c = CONTEXT_EMPTY;
|
||||
int r;
|
||||
|
||||
log_set_target(LOG_TARGET_AUTO);
|
||||
@@ -962,8 +958,6 @@ static int run(int argc, char *argv[]) {
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
|
||||
context_init(&c);
|
||||
|
||||
r = parse_argv(argc, argv);
|
||||
if (r <= 0)
|
||||
return r;
|
||||
|
||||
Reference in New Issue
Block a user