~bulldog98/kubuntu-packaging/kdeplasma-addons

« back to all changes in this revision

Viewing changes to debian/patches/kubuntu_Fix-assignment-operator-and-add-copy-constructor.diff

  • Committer: Jonathan Kolberg
  • Date: 2011-09-04 09:59:10 UTC
  • Revision ID: bulldog98@kubuntu-de.org-20110904095910-vr5sm8zlrzomcjaf
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
From 67b5c56e564f5052238bab38342a85e5f4af570b Mon Sep 17 00:00:00 2001
2
 
From: Christoph Feck <christoph@maxiom.de>
3
 
Date: Sat, 30 Jul 2011 19:15:28 +0200
4
 
Subject: [PATCH] Fix assignment operator and add copy constructor
5
 
 
6
 
This fixes the crash in Grid Desktop and Grouping Desktop.
7
 
Thanks to Aaron Seigo for investigation and patch review.
8
 
 
9
 
BUG: 278222
10
 
FIXED-IN: 4.7.1
11
 
---
12
 
 containments/groupingdesktop/lib/groupinfo.cpp |   17 +++++++++++------
13
 
 containments/groupingdesktop/lib/groupinfo.h   |    3 ++-
14
 
 2 files changed, 13 insertions(+), 7 deletions(-)
15
 
 
16
 
diff --git a/containments/groupingdesktop/lib/groupinfo.cpp b/containments/groupingdesktop/lib/groupinfo.cpp
17
 
index 2106cca..c945551 100644
18
 
--- a/containments/groupingdesktop/lib/groupinfo.cpp
19
 
+++ b/containments/groupingdesktop/lib/groupinfo.cpp
20
 
@@ -43,6 +43,12 @@ GroupInfo::GroupInfo(const QString &name, const QString &prettyName)
21
 
     d->prettyName = prettyName;
22
 
 }
23
 
 
24
 
+GroupInfo::GroupInfo(const GroupInfo &other)
25
 
+          : d(new GroupInfoPrivate())
26
 
+{
27
 
+    *d = *other.d;
28
 
+}
29
 
+
30
 
 GroupInfo::~GroupInfo()
31
 
 {
32
 
     delete d;
33
 
@@ -78,13 +84,12 @@ QString GroupInfo::icon() const
34
 
     return d->icon;
35
 
 }
36
 
 
37
 
-GroupInfo GroupInfo::operator=(const GroupInfo &gi)
38
 
+GroupInfo &GroupInfo::operator=(const GroupInfo &gi)
39
 
 {
40
 
-    GroupInfo g(gi.name(), gi.prettyName());
41
 
-    g.setFormFactors(gi.formFactors());
42
 
-    g.setIcon(gi.icon());
43
 
-
44
 
-    return g;
45
 
+    if (this != &gi) {
46
 
+        *d = *gi.d;
47
 
+    }
48
 
+    return *this;
49
 
 }
50
 
 
51
 
 bool GroupInfo::operator==(const GroupInfo &gi) const
52
 
diff --git a/containments/groupingdesktop/lib/groupinfo.h b/containments/groupingdesktop/lib/groupinfo.h
53
 
index f8cc66f..320c800 100644
54
 
--- a/containments/groupingdesktop/lib/groupinfo.h
55
 
+++ b/containments/groupingdesktop/lib/groupinfo.h
56
 
@@ -31,6 +31,7 @@ class GroupInfo
57
 
 {
58
 
     public:
59
 
         explicit GroupInfo(const QString &name, const QString &prettyName = QString());
60
 
+        GroupInfo(const GroupInfo &other);
61
 
         ~GroupInfo();
62
 
         void setFormFactors(QSet<Plasma::FormFactor> formFactors);
63
 
         void setIcon(const QString &icon);
64
 
@@ -40,7 +41,7 @@ class GroupInfo
65
 
         QSet<Plasma::FormFactor> formFactors() const;
66
 
         QString icon() const;
67
 
 
68
 
-        GroupInfo operator=(const GroupInfo &gi);
69
 
+        GroupInfo &operator=(const GroupInfo &gi);
70
 
         bool operator==(const GroupInfo &gi) const;
71
 
         bool operator<(const GroupInfo &gi) const;
72
 
 
73
 
1.7.5.4
74