From dcda1706fafd248a4ac95962f47815c4b6250ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Thu, 26 Aug 2004 14:01:39 +0000 Subject: [PATCH] Unprotected MultiAudioDevice destructor. Now deletes MultiAudioDevices which don't init correctly. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8663 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../media/media-add-ons/multi_audio/MultiAudioAddOn.cpp | 8 ++++++-- .../media/media-add-ons/multi_audio/MultiAudioDevice.h | 4 +--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioAddOn.cpp b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioAddOn.cpp index 748c8869af..b43813c253 100644 --- a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioAddOn.cpp +++ b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioAddOn.cpp @@ -235,8 +235,12 @@ MultiAudioAddOn::RecursiveScan(char* rootPath, BEntry *rootEntry = NULL) BPath path; entry.GetPath(&path); MultiAudioDevice *device = new MultiAudioDevice(path.Path() + strlen(rootPath), path.Path()); - if(device && device->InitCheck() == B_OK) - fDevices.AddItem(device); + if (device) { + if (device->InitCheck() == B_OK) + fDevices.AddItem(device); + else + delete device; + } } } diff --git a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioDevice.h b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioDevice.h index 16fb2b9f63..df9d123a01 100644 --- a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioDevice.h +++ b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioDevice.h @@ -36,11 +36,9 @@ class MultiAudioDevice { -protected: - virtual ~MultiAudioDevice(void); public: - explicit MultiAudioDevice(const char *name, const char* path); + virtual ~MultiAudioDevice(void); virtual status_t InitCheck(void) const;