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;