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