Mercurial > projects > dwt2
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 } |