class_ -> class, free more stuff in destroy_shell_surface

This commit is contained in:
emersion 2017-09-27 23:47:39 +02:00
parent 241fec4d87
commit d6c6b7c506
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
3 changed files with 10 additions and 8 deletions

View file

@ -51,7 +51,7 @@ struct wlr_wl_shell_surface {
struct wlr_wl_shell_surface_popup_state *popup_state;
char *title;
char *class_;
char *class;
struct {
struct wl_signal destroy;

View file

@ -25,7 +25,7 @@ void handle_wl_shell_surface(struct wl_listener *listener, void *data) {
struct wlr_wl_shell_surface *surface = data;
wlr_log(L_DEBUG, "new shell surface: title=%s, class=%s",
surface->title, surface->class_);
surface->title, surface->class);
//wlr_wl_shell_surface_ping(surface); // TODO: segfaults
struct roots_wl_shell_surface *roots_surface =

View file

@ -245,17 +245,17 @@ static void shell_surface_set_title(struct wl_client *client,
}
static void shell_surface_set_class(struct wl_client *client,
struct wl_resource *resource, const char *class_) {
wlr_log(L_DEBUG, "new shell surface class: %s", class_);
struct wl_resource *resource, const char *class) {
wlr_log(L_DEBUG, "new shell surface class: %s", class);
struct wlr_wl_shell_surface *surface = wl_resource_get_user_data(resource);
char *tmp = strdup(class_);
char *tmp = strdup(class);
if (tmp == NULL) {
return;
}
free(surface->class_);
surface->class_ = tmp;
free(surface->class);
surface->class = tmp;
wl_signal_emit(&surface->events.set_class, surface);
}
@ -277,8 +277,10 @@ static void destroy_shell_surface(struct wl_resource *resource) {
struct wlr_wl_shell_surface *surface = wl_resource_get_user_data(resource);
wl_signal_emit(&surface->events.destroy, surface);
wl_list_remove(&surface->link);
free(surface->transient_state);
free(surface->popup_state);
free(surface->title);
free(surface->class_);
free(surface->class);
free(surface);
}