diff options
author | Minh Ngo <nlminhtl@gmail.com> | 2013-08-22 07:57:20 +0300 |
---|---|---|
committer | Minh Ngo <nlminhtl@gmail.com> | 2013-08-22 08:06:10 +0300 |
commit | aabbb535a7115d226413b6ba1bdf67c560886af3 (patch) | |
tree | 3e0804f9c56f3eb1aac5e92042055005d008ffe6 /avmedia | |
parent | 98e20a37badecd868460ddbdc73262c494242b42 (diff) |
Fixing symbol loader. Returns true if successful. false otherwise.
Change-Id: I58a5dd39c005841a5680440a52905596ae8679b2
Diffstat (limited to 'avmedia')
-rw-r--r-- | avmedia/source/vlc/wrapper/SymbolLoader.hxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/avmedia/source/vlc/wrapper/SymbolLoader.hxx b/avmedia/source/vlc/wrapper/SymbolLoader.hxx index c7e66cf2e93a..8730e05dc270 100644 --- a/avmedia/source/vlc/wrapper/SymbolLoader.hxx +++ b/avmedia/source/vlc/wrapper/SymbolLoader.hxx @@ -28,7 +28,6 @@ namespace { const char *libNames[] = { "libvlc.so.5", - "libvlccore.so.5", "libvlc.dll", "libvlc.dylib" }; @@ -41,7 +40,11 @@ namespace SymbolFunc aMethod = ( SymbolFunc )osl_getFunctionSymbol ( aModule, OUString::createFromAscii( pMap[ i ].symName ).pData ); if ( !aMethod ) + { + std::cerr << "Cannot load method " << pMap[ i ].symName << std::endl; + *pMap[ i ].refValue = NULL; return false; + } *pMap[ i ].refValue = aMethod; } @@ -64,11 +67,16 @@ bool InitApiMap( const ApiMap ( &pMap )[N] ) if( aModule == NULL) continue; - tryLink( aModule, pMap ); + if (tryLink( aModule, pMap )) + { + osl_unloadModule( aModule ); + return true; + } osl_unloadModule( aModule ); } + std::cerr << "Cannot load libvlc" << std::endl; return false; } |