Changeset 226:6da025bf255e
- Timestamp:
- 04/11/08 11:50:39
(5 months ago)
- Author:
- Frank Benoit <benoit@tionex.de>
- branch:
- default
- Message:
some fixes
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r219 |
r226 |
|
| 9 | 9 | import dwt.DWT; |
|---|
| 10 | 10 | import dwt.dwthelper.utils; |
|---|
| | 11 | import tango.io.File; |
|---|
| 11 | 12 | |
|---|
| 12 | 13 | class ResourceBundle { |
|---|
| … | … | |
| 61 | 62 | esc = false; |
|---|
| 62 | 63 | switch( c ){ |
|---|
| 63 | | case 't': c = '\t'; break; |
|---|
| 64 | | case 'n': c = '\n'; break; |
|---|
| | 64 | case 't' : c = '\t'; break; |
|---|
| | 65 | case 'n' : c = '\n'; break; |
|---|
| 65 | 66 | case '\\': c = '\\'; break; |
|---|
| 66 | 67 | case '\"': c = '\"'; break; |
|---|
| | 68 | //case ':' : c = ':' ; break; |
|---|
| 67 | 69 | default: break; |
|---|
| 68 | 70 | } |
|---|
| … | … | |
| 121 | 123 | } |
|---|
| 122 | 124 | |
|---|
| | 125 | public static ResourceBundle getBundle( ImportData data ){ |
|---|
| | 126 | return new ResourceBundle( cast(char[]) data.data ); |
|---|
| | 127 | } |
|---|
| 123 | 128 | public static ResourceBundle getBundle( char[] name ){ |
|---|
| 124 | | return new ResourceBundle( null ); |
|---|
| | 129 | try{ |
|---|
| | 130 | scope f = new File(name); |
|---|
| | 131 | return new ResourceBundle( cast(char[]) f.read() ); |
|---|
| | 132 | } |
|---|
| | 133 | catch( IOException e){ |
|---|
| | 134 | e.msg ~= " file:" ~ name; |
|---|
| | 135 | throw e; |
|---|
| | 136 | } |
|---|
| 125 | 137 | } |
|---|
| 126 | 138 | public static ResourceBundle getBundleFromData( char[] data ){ |
|---|
| r223 |
r226 |
|
| 1 | 1 | module dwt.dwthelper.WeakHashMap; |
|---|
| | 2 | |
|---|
| | 3 | |
|---|
| | 4 | private { |
|---|
| | 5 | alias void delegate(Object) DisposeEvt; |
|---|
| | 6 | extern (C) void rt_attachDisposeEvent( Object obj, DisposeEvt evt ); |
|---|
| | 7 | extern (C) void rt_detachDisposeEvent( Object obj, DisposeEvt evt ); |
|---|
| | 8 | } |
|---|
| 2 | 9 | |
|---|
| 3 | 10 | |
|---|
| … | … | |
| 12 | 19 | ptr = cast(size_t)cast(void*)k; |
|---|
| 13 | 20 | } |
|---|
| | 21 | override hash_t toHash(){ |
|---|
| | 22 | return cast(hash_t)ptr; |
|---|
| | 23 | } |
|---|
| | 24 | override int opEquals( Object o ){ |
|---|
| | 25 | if( auto other = cast(Ref)o ){ |
|---|
| | 26 | return ptr is other.ptr; |
|---|
| | 27 | } |
|---|
| | 28 | return false; |
|---|
| | 29 | } |
|---|
| | 30 | } |
|---|
| | 31 | |
|---|
| | 32 | private Ref unhookKey; |
|---|
| | 33 | |
|---|
| | 34 | private void unhook(Object o) { |
|---|
| | 35 | unhookKey.ptr = cast(size_t)cast(void*)o; |
|---|
| | 36 | if( auto p = unhookKey in data ){ |
|---|
| | 37 | rt_detachDisposeEvent(o, &unhook); |
|---|
| | 38 | data.remove( unhookKey ); |
|---|
| | 39 | } |
|---|
| 14 | 40 | } |
|---|
| 15 | 41 | |
|---|
| 16 | 42 | Object[ Ref ] data; |
|---|
| | 43 | ClassInfo gcLock; |
|---|
| | 44 | this(){ |
|---|
| | 45 | unhookKey = new Ref(null); |
|---|
| | 46 | gcLock = ClassInfo.find( "gcx.GCLock" ); |
|---|
| | 47 | } |
|---|
| 17 | 48 | |
|---|
| 18 | 49 | public void add (Object key, Object element){ |
|---|
| 19 | 50 | auto k = new Ref(key); |
|---|
| | 51 | rt_attachDisposeEvent(key, &unhook); |
|---|
| 20 | 52 | data[ k ] = element; |
|---|
| 21 | 53 | } |
|---|
| 22 | 54 | public void removeKey (Object key){ |
|---|
| 23 | 55 | scope k = new Ref(key); |
|---|
| 24 | | data.remove( k ); |
|---|
| | 56 | if( auto p = k in data ){ |
|---|
| | 57 | data.remove( k ); |
|---|
| | 58 | rt_detachDisposeEvent(key, &unhook); |
|---|
| | 59 | } |
|---|
| 25 | 60 | } |
|---|
| 26 | 61 | public Object get(Object key){ |
|---|
| r225 |
r226 |
|
| 73 | 73 | public static Boolean TRUE; |
|---|
| 74 | 74 | public static Boolean FALSE; |
|---|
| | 75 | |
|---|
| | 76 | static this(){ |
|---|
| | 77 | TRUE = new Boolean(true); |
|---|
| | 78 | FALSE = new Boolean(false); |
|---|
| | 79 | } |
|---|
| 75 | 80 | public this( bool v ){ |
|---|
| 76 | 81 | super(v); |
|---|
| … | … | |
| 126 | 131 | |
|---|
| 127 | 132 | public this ( char[] s ){ |
|---|
| 128 | | implMissing( __FILE__, __LINE__ ); |
|---|
| 129 | | super(0); |
|---|
| | 133 | super(parseInt(s)); |
|---|
| 130 | 134 | } |
|---|
| 131 | 135 | |
|---|
| … | … | |
| 186 | 190 | |
|---|
| 187 | 191 | public static Integer valueOf( char[] s ){ |
|---|
| 188 | | implMissing( __FILE__, __LINE__ ); |
|---|
| 189 | | return null; |
|---|
| | 192 | return valueOf( parseInt(s)); |
|---|
| 190 | 193 | } |
|---|
| 191 | 194 | |
|---|
| 192 | 195 | public static Integer valueOf( int i ){ |
|---|
| 193 | | implMissing( __FILE__, __LINE__ ); |
|---|
| 194 | | return null; |
|---|
| | 196 | return new Integer(i); |
|---|
| 195 | 197 | } |
|---|
| 196 | 198 | |
|---|
| … | … | |
| 845 | 847 | } |
|---|
| 846 | 848 | } |
|---|
| | 849 | return true; |
|---|
| 847 | 850 | } |
|---|
| 848 | 851 | |
|---|