delete playerHandleInfo->frameManager wasn't actually calling FrameManagerImpl~, because playerHandleInfo->frameManager is only a FrameManager, which didn't have a destructor, and nothing was saying that it's actually a FrameManagerImpl behind. Adding a virtual destructor fixes that.master
virtual void queueFrame(speechPlayer_frame_t* frame, unsigned int minNumSamples, unsigned int numFadeSamples, int userIndex, bool purgeQueue)=0; | virtual void queueFrame(speechPlayer_frame_t* frame, unsigned int minNumSamples, unsigned int numFadeSamples, int userIndex, bool purgeQueue)=0; | ||||
virtual const speechPlayer_frame_t* const getCurrentFrame()=0; | virtual const speechPlayer_frame_t* const getCurrentFrame()=0; | ||||
virtual const int getLastIndex()=0; | virtual const int getLastIndex()=0; | ||||
virtual ~FrameManager() {}; | |||||
}; | }; | ||||
#endif | #endif |