comparison base/src/java/nonstandard/SharedLib.d @ 113:fb3aa8075988

D2 support for the linux port.
author Jacob Carlborg <doob@me.com>
date Wed, 06 Apr 2011 21:57:23 +0200
parents 9f4c18c268b2
children
comparison
equal deleted inserted replaced
112:9f4c18c268b2 113:fb3aa8075988
50 } 50 }
51 } 51 }
52 } 52 }
53 static void loadLibSymbols( Symbol[] symbols, String libname ){ 53 static void loadLibSymbols( Symbol[] symbols, String libname ){
54 version(Tango){ 54 version(Tango){
55 if (auto lib = tango.sys.SharedLib.SharedLib.load(libname)) { 55 if (auto lib = tango.sys.SharedLib.SharedLib.loadNoThrow(libname)) {
56 foreach( ref s; symbols ){ 56 foreach( ref s; symbols ){
57 *s.symbol = lib.getSymbol( tango.stdc.stringz.toStringz(s.name ) ); 57 *s.symbol = lib.getSymbolNoThrow( tango.stdc.stringz.toStringz(s.name ) );
58 if( s.symbol is null ){ 58 if( *s.symbol is null ){
59 getDwtLogger.error( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name ); 59 //getDwtLogger.error( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name );
60 } 60 }
61 } 61 }
62 } else { 62 } else {
63 getDwtLogger.error( __FILE__, __LINE__, "Could not load the library {}", libname ); 63 getDwtLogger.error( __FILE__, __LINE__, "Could not load the library {}", libname );
64 } 64 }
65 } else { // Phobos 65 } else { // Phobos
66 if (auto lib = ExeModule_Load(libname)) { 66 if (auto lib = ExeModule_Load(libname)) {
67 foreach( ref s; symbols ){ 67 foreach( ref s; symbols ){
68 *s.symbol = ExeModule_GetSymbol( lib, s.name ); 68 *s.symbol = ExeModule_GetSymbol( lib, s.name );
69 if( s.symbol is null ){ 69 if( *s.symbol is null ){
70 getDwtLogger.error( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name ); 70 //getDwtLogger.error( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name );
71 } 71 }
72 } 72 }
73 } else { 73 } else {
74 getDwtLogger.error( __FILE__, __LINE__, "Could not load the library {}", libname ); 74 getDwtLogger.error( __FILE__, __LINE__, "Could not load the library {}", libname );
75 } 75 }