diff options
author | Mathias Gumz <akira at fluxbox dot org> | 2010-09-14 14:54:08 (GMT) |
---|---|---|
committer | Mathias Gumz <akira at fluxbox dot org> | 2010-09-14 14:54:08 (GMT) |
commit | 75b9a4ed72f89fd74117a1e44eae98702849af57 (patch) | |
tree | 3488bec94fa5398ebdd95e5388191291f3a590f5 | |
parent | 36893ac7f98f8e84e9e97e641a0d598f28ea19b5 (diff) | |
download | fluxbox-75b9a4ed72f89fd74117a1e44eae98702849af57.zip fluxbox-75b9a4ed72f89fd74117a1e44eae98702849af57.tar.bz2 |
bugfix: free the shape-corners on the last used 'Shape'
the global 's_corners' vector was still used on an application shutdown
(including ctrl-c SIGINT). depending on when 's_corners' was created on
the stack this could lead to an exception ('pure virtual called') while
trying to free the 'FbPixmaps' without having a valid
'FbTk::Application::instance()' left.
-rw-r--r-- | src/FbTk/Shape.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/FbTk/Shape.cc b/src/FbTk/Shape.cc index c0489ec..3d41886 100644 --- a/src/FbTk/Shape.cc +++ b/src/FbTk/Shape.cc | |||
@@ -134,7 +134,7 @@ void initCorners(FbWindow& win) { | |||
134 | 134 | ||
135 | void cleanCorners() { | 135 | void cleanCorners() { |
136 | 136 | ||
137 | if (nr_shapes == 0) { | 137 | if (nr_shapes == 1) { |
138 | s_corners.clear(); | 138 | s_corners.clear(); |
139 | } else { | 139 | } else { |
140 | nr_shapes--; // refcounting | 140 | nr_shapes--; // refcounting |