utils: 添加 p_strdup_nullable 辅助函数

This commit is contained in:
2026-03-23 09:55:47 +08:00
parent 577c5bc3b2
commit 38572bd5f7
3 changed files with 11 additions and 6 deletions

View File

@@ -93,7 +93,7 @@ wm_layout_id_t wm_layout_register(wm_layout_registry_t *registry,
r->id = id;
r->name = p_strdup(name);
r->symbol = p_strdup(symbol);
r->description = description ? p_strdup(description) : nullptr;
r->description = p_strdup_nullable(description);
r->fn = fn;
registry->slot_count++;

View File

@@ -19,7 +19,7 @@ void wm_state_init(wm_state_t *state, const wm_output_info_t *outputs,
output->id = (wm_output_id_t)i;
output->current_workspace_id = WM_WORKSPACE_ID_INVALID;
output->name = p_strdup(output_info->name);
output->name = p_strdup_nullable(output_info->name);
output->geometry = output_info->geometry;
output->workarea = output_info->geometry;
}
@@ -451,7 +451,7 @@ bool wm_state_window_set_title(wm_state_t *state, wm_window_id_t window_id,
if (!window) return false;
p_delete(&window->title);
if (title) window->title = p_strdup(title);
window->title = p_strdup_nullable(title);
return true;
}
@@ -462,7 +462,7 @@ bool wm_state_window_set_app_id(wm_state_t *state, wm_window_id_t window_id,
if (!window) return false;
p_delete(&window->app_id);
if (app_id) window->app_id = p_strdup(app_id);
window->app_id = p_strdup_nullable(app_id);
return true;
}
@@ -472,7 +472,7 @@ bool wm_state_window_set_class(wm_state_t *state, wm_window_id_t window_id,
if (!window) return false;
p_delete(&window->class_name);
if (class_name) window->class_name = p_strdup(class_name);
window->class_name = p_strdup_nullable(class_name);
return true;
}
@@ -482,7 +482,7 @@ bool wm_state_window_set_instance(wm_state_t *state, wm_window_id_t window_id,
if (!window) return false;
p_delete(&window->instance_name);
if (instance_name) window->instance_name = p_strdup(instance_name);
window->instance_name = p_strdup_nullable(instance_name);
return true;
}

View File

@@ -36,6 +36,11 @@ static inline char *p_strdup(const char *text) {
return r;
}
static inline char *p_strdup_nullable(const char *text) {
if (!text) return nullptr;
return p_strdup(text);
}
static inline void *__attribute__((malloc)) xmalloc(ssize_t size) {
void *ptr;