void PlayMediaFile(const char* media_type, const char* media_name) { entry_ref ref; if (BMediaFiles().GetRefFor(media_type, media_name, &ref) != B_OK || !BEntry(&ref).Exists()) return; MediaFilePlayer* player = list.EachElement(FindMediaFilePlayer, (void*)media_name); if (player != NULL) { if (*(player->Ref()) == ref) { player->Restart(); return; } list.RemoveItem(player); delete player; player = NULL; } if (player == NULL) { player = new MediaFilePlayer(media_type, media_name, &ref); if (player->InitCheck() == B_OK) list.AddItem(player); else delete player; } }
/*! \brief Cleans up any memory allocated by the bitmap and informs the server to do so as well (if needed). */ void BBitmap::_CleanUp() { if (fWindow != NULL) { if (fWindow->Lock()) delete fWindow; fWindow = NULL; // this will leak fWindow if it couldn't be locked } if (fBasePointer == NULL) return; if ((fFlags & B_BITMAP_NO_SERVER_LINK) != 0) { free(fBasePointer); } else if (fServerToken != -1) { BPrivate::AppServerLink link; // AS_DELETE_BITMAP: // Attached Data: // 1) int32 server token link.StartMessage(AS_DELETE_BITMAP); link.Attach<int32>(fServerToken); link.Flush(); // The server areas are deleted via kMsgDeleteServerMemoryArea message fArea = -1; fServerToken = -1; fAreaOffset = -1; BAutolock _(sBitmapListLock); sBitmapList.RemoveItem(this); } fBasePointer = NULL; }
// _PutAddOn void ModuleManager::_PutAddOn(ModuleAddOn *addon) { if (addon) { if (addon->Put()) { fAddOns.RemoveItem(addon); delete addon; } } }
void ExternalEventSource::RemoveListener(BaseJob* job) { fListeners.RemoveItem(job); }
void RegisteredEvent::RemoveListener(BaseJob* job) { fListeners.RemoveItem(job); }