From 7c02d300ce5274f17b13d8da857217af3343fda7 Mon Sep 17 00:00:00 2001 From: Lasse Holmstedt <lasse.holmstedt@nokia.com> Date: Thu, 2 Feb 2012 15:54:05 +0100 Subject: [PATCH] Don't try to carry over qPrintable() pointers The pointer is out of scope by the time it's sent through wayland. Change-Id: I00e9f050dfa47bf078921600d2bf63502f0b4897 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Ian Monroe <ian.monroe@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> --- src/compositor/wayland_wrapper/wlextendedsurface.cpp | 4 ++-- src/compositor/wayland_wrapper/wlextendedsurface.h | 2 +- src/compositor/wayland_wrapper/wlsurface.cpp | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/compositor/wayland_wrapper/wlextendedsurface.cpp b/src/compositor/wayland_wrapper/wlextendedsurface.cpp index 5ee1f93d..38e4dff4 100644 --- a/src/compositor/wayland_wrapper/wlextendedsurface.cpp +++ b/src/compositor/wayland_wrapper/wlextendedsurface.cpp @@ -94,7 +94,7 @@ ExtendedSurface::~ExtendedSurface() } -void ExtendedSurface::sendGenericProperty(const char *name, const QVariant &variant) +void ExtendedSurface::sendGenericProperty(const QString &name, const QVariant &variant) { QByteArray byteValue; QDataStream ds(&byteValue, QIODevice::WriteOnly); @@ -103,7 +103,7 @@ void ExtendedSurface::sendGenericProperty(const char *name, const QVariant &vari data.size = byteValue.size(); data.data = (void*) byteValue.constData(); data.alloc = 0; - wl_resource_post_event(m_extended_surface_resource,WL_EXTENDED_SURFACE_SET_GENERIC_PROPERTY, name,&data); + wl_resource_post_event(m_extended_surface_resource,WL_EXTENDED_SURFACE_SET_GENERIC_PROPERTY, qPrintable(name), &data); } diff --git a/src/compositor/wayland_wrapper/wlextendedsurface.h b/src/compositor/wayland_wrapper/wlextendedsurface.h index 2bc1f636..5cbabe60 100644 --- a/src/compositor/wayland_wrapper/wlextendedsurface.h +++ b/src/compositor/wayland_wrapper/wlextendedsurface.h @@ -78,7 +78,7 @@ public: ExtendedSurface(struct wl_client *client, uint32_t id, Surface *surface); ~ExtendedSurface(); - void sendGenericProperty(const char *name, const QVariant &variant); + void sendGenericProperty(const QString &name, const QVariant &variant); void sendOnScreenVisibllity(bool visible); void setSubSurface(ExtendedSurface *subSurface,int x, int y); diff --git a/src/compositor/wayland_wrapper/wlsurface.cpp b/src/compositor/wayland_wrapper/wlsurface.cpp index 107a726c..be2eb14b 100644 --- a/src/compositor/wayland_wrapper/wlsurface.cpp +++ b/src/compositor/wayland_wrapper/wlsurface.cpp @@ -607,8 +607,7 @@ void Surface::setWindowProperty(const QString &name, const QVariant &value, bool d->windowProperties.insert(name, value); handle()->windowPropertyChanged(name,value); if (writeUpdateToClient && d->extendedSurface) { - const char *property = qPrintable(name); - d->extendedSurface->sendGenericProperty(property,value); + d->extendedSurface->sendGenericProperty(name, value); } } -- GitLab