From: RĂ©mi Denis-Courmont Date: Tue, 3 Aug 2010 15:28:54 +0000 (+0300) Subject: DMO: use FromWide(), fix charset X-Git-Tag: 1.2.0-pre1~5577 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=1e7cd2c85a338ef153002325ae40cc90517f51e1;p=vlc DMO: use FromWide(), fix charset On Windows, wcstombs() converts UTF-16 to ANSI, not to UTF-8. --- diff --git a/modules/codec/dmo/dmo.c b/modules/codec/dmo/dmo.c index 7d82faf134..33c3077576 100644 --- a/modules/codec/dmo/dmo.c +++ b/modules/codec/dmo/dmo.c @@ -38,6 +38,7 @@ # define LOADER #else # include +# include #endif #ifdef LOADER @@ -728,8 +729,7 @@ static int LoadDMO( vlc_object_t *p_this, HINSTANCE *p_hmsdmo_dll, while( ( S_OK == p_enum_dmo->vt->Next( p_enum_dmo, 1, &clsid_dmo, &psz_dmo_name, &i_dummy /* NULL doesn't work */ ) ) ) { - char psz_temp[MAX_PATH]; - wcstombs( psz_temp, psz_dmo_name, MAX_PATH ); + char *psz_temp = FromWide( psz_dmo_name ); msg_Dbg( p_this, "found DMO: %s", psz_temp ); CoTaskMemFree( psz_dmo_name ); @@ -738,9 +738,14 @@ static int LoadDMO( vlc_object_t *p_this, HINSTANCE *p_hmsdmo_dll, &IID_IMediaObject, (void **)pp_dmo ) ) { msg_Warn( p_this, "can't create DMO: %s", psz_temp ); + free( psz_temp ); *pp_dmo = 0; } - else break; + else + { + free( psz_temp ); + break; + } } p_enum_dmo->vt->Release( (IUnknown *)p_enum_dmo );