diff --git a/src/wayland/surface_interface.cpp b/src/wayland/surface_interface.cpp index fb33b1f820..2b79fa54d6 100644 --- a/src/wayland/surface_interface.cpp +++ b/src/wayland/surface_interface.cpp @@ -57,24 +57,6 @@ SurfaceInterfacePrivate::SurfaceInterfacePrivate(SurfaceInterface *q) { } -SurfaceInterfacePrivate::~SurfaceInterfacePrivate() -{ - wl_resource *resource; - wl_resource *tmp; - - wl_resource_for_each_safe (resource, tmp, ¤t->frameCallbacks) { - wl_resource_destroy(resource); - } - wl_resource_for_each_safe (resource, tmp, &pending->frameCallbacks) { - wl_resource_destroy(resource); - } - for (const auto &stash : std::as_const(stashed)) { - wl_resource_for_each_safe (resource, tmp, &stash->frameCallbacks) { - wl_resource_destroy(resource); - } - } -} - void SurfaceInterfacePrivate::addChild(SubSurfaceInterface *child) { // protocol is not precise on how to handle the addition of new sub surfaces @@ -545,6 +527,16 @@ SurfaceState::SurfaceState() wl_list_init(&frameCallbacks); } +SurfaceState::~SurfaceState() +{ + wl_resource *resource; + wl_resource *tmp; + + wl_resource_for_each_safe (resource, tmp, &frameCallbacks) { + wl_resource_destroy(resource); + } +} + void SurfaceState::mergeInto(SurfaceState *target) { target->serial = serial; diff --git a/src/wayland/surface_interface_p.h b/src/wayland/surface_interface_p.h index 853a807aff..26e432326b 100644 --- a/src/wayland/surface_interface_p.h +++ b/src/wayland/surface_interface_p.h @@ -30,6 +30,7 @@ class FractionalScaleV1Interface; struct SurfaceState { SurfaceState(); + ~SurfaceState(); void mergeInto(SurfaceState *target); @@ -95,7 +96,6 @@ public: } explicit SurfaceInterfacePrivate(SurfaceInterface *q); - ~SurfaceInterfacePrivate() override; void addChild(SubSurfaceInterface *subsurface); void removeChild(SubSurfaceInterface *subsurface);