xbmc/xbmc — pull request #3076 by Montellese (2013-08-07 21:01:21+00:00)
Title: music: fix crash when calling CTagLoaderTagLib::Load() through IMusicInfoTagLoader::Load()

This fixes a crash surfaced through d0a5a97e0c6c7831db382dfdc3e8650ff500acb9 but which was always potentially there. The class definition of CTagLoaderTagLib was completely screwed up. It is used as if it was derived from IMusicInfoTagLoader but it actually wasn't. Furthermore the signature of the CTagLoaderTagLib::Load() method was not completely identical to the pure virtual method definition in IMusicInfoTagLoader (std::string instead of CStdString) so it's a miracle this didn't blow into our faces earlier.

Since the extension fallback introduced with d0a5a97e0c6c7831db382dfdc3e8650ff500acb9 is specific to CTagLoaderTagLib I just added a non-virtual method which takes that additional parameter so that we can still implement the actual virtual Load() method.