summaryrefslogtreecommitdiff
path: root/avmedia
diff options
context:
space:
mode:
authorMinh Ngo <nlminhtl@gmail.com>2013-08-22 07:57:20 +0300
committerMinh Ngo <nlminhtl@gmail.com>2013-08-22 08:06:10 +0300
commitaabbb535a7115d226413b6ba1bdf67c560886af3 (patch)
tree3e0804f9c56f3eb1aac5e92042055005d008ffe6 /avmedia
parent98e20a37badecd868460ddbdc73262c494242b42 (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.hxx12
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;
}