aboutsummaryrefslogtreecommitdiff
path: root/src/MenuCreator.hh
diff options
context:
space:
mode:
authorPavel Labath <pavelo@centrum.sk>2011-07-02 15:21:24 (GMT)
committerPaul Tagliamonte <paultag@fluxbox.org>2012-04-07 02:11:29 (GMT)
commit34649e86c5cbe9c9f231c049a0844afdda5a7db9 (patch)
tree6e9696e36565e993185c9d265ca6542b77788fd9 /src/MenuCreator.hh
parent0b0ee8dc504016ffad85ec1dd35875d273cf0179 (diff)
downloadfluxbox_paul-34649e86c5cbe9c9f231c049a0844afdda5a7db9.zip
fluxbox_paul-34649e86c5cbe9c9f231c049a0844afdda5a7db9.tar.bz2
Store menus if smart pointers (RefCount)
This was originally intended to be a bugfix for an memory error reported by valgrind (accessing freed memory). While debugging it, I found the menu ownership semantics confusing (setInternalMenu() et al.), so I decided to get rid of it and store it in smart pointers everywhere. Looking back, I'm not sure if this was worth all the trouble, but the good news is that the valgrind error disappeared. :)
Diffstat (limited to 'src/MenuCreator.hh')
-rw-r--r--src/MenuCreator.hh3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/MenuCreator.hh b/src/MenuCreator.hh
index 60f931d..cdbba0c 100644
--- a/src/MenuCreator.hh
+++ b/src/MenuCreator.hh
@@ -24,6 +24,7 @@
24#define MENUCREATOR_HH 24#define MENUCREATOR_HH
25 25
26#include "FbTk/FbString.hh" 26#include "FbTk/FbString.hh"
27#include "FbTk/RefCount.hh"
27 28
28#include <list> 29#include <list>
29#include <memory> 30#include <memory>
@@ -44,7 +45,7 @@ namespace MenuCreator {
44 void 45 void
45 createMenu(FbTk::Menu &inject_into, lua::state &l, FbTk::AutoReloadHelper *reloader = NULL); 46 createMenu(FbTk::Menu &inject_into, lua::state &l, FbTk::AutoReloadHelper *reloader = NULL);
46 FbMenu *createMenu(const std::string &label, int screen_num); 47 FbMenu *createMenu(const std::string &label, int screen_num);
47 FbMenu *createMenuType(const std::string &label, int screen_num); 48 FbTk::RefCount<FbMenu> createMenuType(const std::string &label, int screen_num);
48 void createFromFile(const std::string &filename, 49 void createFromFile(const std::string &filename,
49 FbTk::Menu &inject_into, 50 FbTk::Menu &inject_into,
50 FbTk::AutoReloadHelper *reloader = NULL); 51 FbTk::AutoReloadHelper *reloader = NULL);