Fix a few memory leaks

This commit is contained in:
David Sansome 2010-05-28 19:51:51 +00:00
parent 2c9a29e226
commit 3365c7c217
6 changed files with 13 additions and 9 deletions

View File

@ -96,6 +96,10 @@ Player::Player(PlaylistManager* playlists, LastFMService* lastfm,
#endif #endif
} }
Player::~Player() {
delete engine_;
}
EngineBase* Player::createEngine(Engine::Type engine) { EngineBase* Player::createEngine(Engine::Type engine) {
switch(engine) { switch(engine) {

View File

@ -54,6 +54,7 @@ class Player : public QObject {
public: public:
Player(PlaylistManager* playlists, LastFMService* lastfm, Engine::Type engine, Player(PlaylistManager* playlists, LastFMService* lastfm, Engine::Type engine,
QObject* parent = 0); QObject* parent = 0);
~Player();
EngineBase* createEngine(Engine::Type engine); EngineBase* createEngine(Engine::Type engine);
void Init(); void Init();

View File

@ -609,20 +609,21 @@ GstEngine::PluginDetailsList
PluginDetailsList ret; PluginDetailsList ret;
GstRegistry* registry = gst_registry_get_default(); GstRegistry* registry = gst_registry_get_default();
GList* features = GList* const features =
gst_registry_get_feature_list(registry, GST_TYPE_ELEMENT_FACTORY); gst_registry_get_feature_list(registry, GST_TYPE_ELEMENT_FACTORY);
while (features) { GList* p = features;
GstElementFactory* factory = GST_ELEMENT_FACTORY(features->data); while (p) {
GstElementFactory* factory = GST_ELEMENT_FACTORY(p->data);
if (QString(factory->details.klass).contains(classname)) { if (QString(factory->details.klass).contains(classname)) {
PluginDetails details; PluginDetails details;
details.name = QString::fromUtf8(GST_PLUGIN_FEATURE_NAME(features->data)); details.name = QString::fromUtf8(GST_PLUGIN_FEATURE_NAME(p->data));
details.long_name = QString::fromUtf8(factory->details.longname); details.long_name = QString::fromUtf8(factory->details.longname);
details.description = QString::fromUtf8(factory->details.description); details.description = QString::fromUtf8(factory->details.description);
details.author = QString::fromUtf8(factory->details.author); details.author = QString::fromUtf8(factory->details.author);
ret << details; ret << details;
} }
features = g_list_next ( features ); p = g_list_next(p);
} }
gst_plugin_feature_list_free(features); gst_plugin_feature_list_free(features);

View File

@ -23,7 +23,8 @@ const char* Library::kDirsTable = "directories";
const char* Library::kSubdirsTable = "subdirectories"; const char* Library::kSubdirsTable = "subdirectories";
Library::Library(Database *db, QObject *parent) Library::Library(Database *db, QObject *parent)
: backend_(new LibraryBackend(db, kSongsTable, kDirsTable, kSubdirsTable, this)), : QObject(parent),
backend_(new LibraryBackend(db, kSongsTable, kDirsTable, kSubdirsTable, this)),
model_(new LibraryModel(backend_, parent)), model_(new LibraryModel(backend_, parent)),
watcher_factory_(new BackgroundThreadFactoryImplementation<LibraryWatcher, LibraryWatcher>), watcher_factory_(new BackgroundThreadFactoryImplementation<LibraryWatcher, LibraryWatcher>),
watcher_(NULL) watcher_(NULL)

View File

@ -36,8 +36,6 @@ SystemTrayIcon::SystemTrayIcon(QObject* parent)
#endif #endif
} }
SystemTrayIcon::~SystemTrayIcon() {}
bool SystemTrayIcon::event(QEvent* event) { bool SystemTrayIcon::event(QEvent* event) {
if (event->type() == QEvent::Wheel) { if (event->type() == QEvent::Wheel) {
emit WheelEvent(static_cast<QWheelEvent*>(event)->delta()); emit WheelEvent(static_cast<QWheelEvent*>(event)->delta());

View File

@ -24,7 +24,6 @@ class SystemTrayIcon : public QSystemTrayIcon {
public: public:
SystemTrayIcon(QObject* parent = 0); SystemTrayIcon(QObject* parent = 0);
virtual ~SystemTrayIcon();
virtual bool event(QEvent* event); virtual bool event(QEvent* event);