annotate dwt/dwthelper/utils.d @ 98:ecba636b634e

package dwt/ole
author Frank Benoit <benoit@tionex.de>
date Sat, 09 Feb 2008 03:36:27 +0100
parents 2e6eb5bd2c16
children 6bfa783ac0b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
1 /**
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
2 * Authors: Frank Benoit <keinfarbton@googlemail.com>
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
3 */
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
4 module dwt.dwthelper.utils;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
5
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
6 public import dwt.dwthelper.System;
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
7 public import Math = tango.math.Math;
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
8
98
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
9 public import tango.core.Exception : IllegalArgumentException, IOException;
97
2e6eb5bd2c16 starting OLE
Frank Benoit <benoit@tionex.de>
parents: 84
diff changeset
10
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
11 import tango.io.Stdout;
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
12 import tango.stdc.stringz;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
13 import tango.text.Util;
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
14 import tango.text.Unicode;
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
15 import tango.text.convert.Utf;
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
16 import tango.stdc.stdlib : exit;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
17
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
18 void implMissing( char[] file, uint line ){
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
19 Stderr.formatln( "implementation missing in file {} line {}", file, line );
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
20 Stderr.formatln( "exiting ..." );
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
21 exit(1);
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
22 }
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
23
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
24 abstract class ArrayWrapper{
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
25 }
33
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
26 abstract class ValueWrapper{
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
27 }
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
28
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
29 class ArrayWrapperT(T) : ArrayWrapper {
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
30 public T[] array;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
31 public this( T[] data ){
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
32 array = data;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
33 }
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
34 }
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
35
33
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
36 class ValueWrapperT(T) : ValueWrapper {
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
37 public T value;
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
38 public this( T data ){
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
39 value = data;
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
40 }
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
41 }
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
42
39a9959ef14d Display + ImageList
Frank Benoit <benoit@tionex.de>
parents: 30
diff changeset
43 alias ValueWrapperT!(bool) ValueWrapperBool;
98
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
44 alias ValueWrapperT!(int) ValueWrapperInt;
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
45 alias ArrayWrapperT!(byte) ArrayWrapperByte;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
46 alias ArrayWrapperT!(int) ArrayWrapperInt;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
47 alias ArrayWrapperT!(Object) ArrayWrapperObject;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
48 alias ArrayWrapperT!(char) ArrayWrapperString;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
49 alias ArrayWrapperT!(char[]) ArrayWrapperString2;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
50
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
51 dchar getFirstCodepoint( char[] str ){
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
52 foreach( dchar d; str ){
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
53 return d;
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
54 }
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
55 }
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
56 dchar CharacterToLower( dchar c ){
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
57 dchar[] r = tango.text.Unicode.toLower( [c] );
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
58 return r[0];
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
59 }
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
60 dchar CharacterToUpper( dchar c ){
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
61 dchar[] r = tango.text.Unicode.toUpper( [c] );
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
62 return r[0];
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
63 }
52
Frank Benoit <benoit@tionex.de>
parents: 40
diff changeset
64 bool CharacterIsWhitespace( dchar c ){
Frank Benoit <benoit@tionex.de>
parents: 40
diff changeset
65 return tango.text.Unicode.isWhitespace( c );
Frank Benoit <benoit@tionex.de>
parents: 40
diff changeset
66 }
65
66203354c9d3 Spinner
Frank Benoit <benoit@tionex.de>
parents: 57
diff changeset
67 bool CharacterIsDigit( dchar c ){
66203354c9d3 Spinner
Frank Benoit <benoit@tionex.de>
parents: 57
diff changeset
68 return tango.text.Unicode.isDigit( c );
66203354c9d3 Spinner
Frank Benoit <benoit@tionex.de>
parents: 57
diff changeset
69 }
0
5406a8f6526d Add initial files
John Reimer <terminal.node@gmail.com
parents:
diff changeset
70
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
71 public int indexOf( char[] str, char searched ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
72 int res = tango.text.Util.locate( str, searched );
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
73 if( res is str.length ) res = -1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
74 return res;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
75 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
76
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
77 public int indexOf( char[] str, char searched, int startpos ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
78 int res = tango.text.Util.locate( str, searched, startpos );
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
79 if( res is str.length ) res = -1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
80 return res;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
81 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
82
65
66203354c9d3 Spinner
Frank Benoit <benoit@tionex.de>
parents: 57
diff changeset
83 public int indexOf(char[] str, char[] ch){
66203354c9d3 Spinner
Frank Benoit <benoit@tionex.de>
parents: 57
diff changeset
84 return indexOf( str, ch, 0 );
66203354c9d3 Spinner
Frank Benoit <benoit@tionex.de>
parents: 57
diff changeset
85 }
66203354c9d3 Spinner
Frank Benoit <benoit@tionex.de>
parents: 57
diff changeset
86
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
87 public int indexOf(char[] str, char[] ch, int start){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
88 int res = tango.text.Util.locatePattern( str, ch, start );
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
89 if( res is str.length ) res = -1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
90 return res;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
91 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
92
84
00a333240696 FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents: 79
diff changeset
93 public char[] replace( char[] str, char from, char to ){
00a333240696 FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents: 79
diff changeset
94 return tango.text.Util.replace( str.dup, from, to );
00a333240696 FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents: 79
diff changeset
95 }
00a333240696 FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents: 79
diff changeset
96
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
97 public char[] substring( char[] str, int start ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
98 return str[ start .. $ ].dup;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
99 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
100
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
101 public char[] substring( char[] str, int start, int end ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
102 return str[ start .. end ].dup;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
103 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
104
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
105 public wchar[] substring( wchar[] str, int start ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
106 return str[ start .. $ ].dup;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
107 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
108
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
109 public wchar[] substring( wchar[] str, int start, int end ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
110 return str[ start .. end ].dup;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
111 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
112
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
113 public char charAt( char[] str, int pos ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
114 return str[ pos ];
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
115 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
116
22
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
117 public void getChars( char[] src, int srcBegin, int srcEnd, char[] dst, int dstBegin){
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 22
diff changeset
118 dst[ dstBegin .. dstBegin + srcEnd - srcBegin ] = src[ srcBegin .. srcEnd ];
22
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
119 }
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
120
28
Frank Benoit <benoit@tionex.de>
parents: 23
diff changeset
121 public wchar[] toCharArray( char[] str ){
30
1e14cb29290a TextLayout
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
122 return toString16( str );
28
Frank Benoit <benoit@tionex.de>
parents: 23
diff changeset
123 }
Frank Benoit <benoit@tionex.de>
parents: 23
diff changeset
124
22
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
125 public bool endsWith( char[] src, char[] pattern ){
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
126 if( src.length < pattern.length ){
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
127 return false;
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
128 }
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
129 return src[ $-pattern.length .. $ ] == pattern;
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
130 }
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
131
98
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
132 public bool startsWith( char[] src, char[] pattern ){
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
133 if( src.length < pattern.length ){
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
134 return false;
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
135 }
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
136 return src[ 0 .. pattern.length ] == pattern;
ecba636b634e package dwt/ole
Frank Benoit <benoit@tionex.de>
parents: 97
diff changeset
137 }
22
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
138 public char[] toLowerCase( char[] src ){
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
139 return tango.text.Unicode.toLower( src );
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
140 }
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
141
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
142 static char[] toHex(uint value, bool prefix = true, int radix = 8){
22
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
143 return tango.text.convert.Integer.toString(
5f2e72114476 Image in work, this revision does not compile
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
144 value,
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
145 radix is 10 ? tango.text.convert.Integer.Style.Signed :
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
146 radix is 8 ? tango.text.convert.Integer.Style.Octal :
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
147 radix is 16 ? tango.text.convert.Integer.Style.Hex :
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
148 tango.text.convert.Integer.Style.Signed,
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
149 prefix ? tango.text.convert.Integer.Flags.Prefix : tango.text.convert.Integer.Flags.None
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
150 );
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
151 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
152
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
153 class NumberFormatException : IllegalArgumentException {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
154 this( char[] e ){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
155 super(e);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
156 }
57
41dbc4d9faab Update to tango trunk -r3152. Thanks DavidLeon for the adjustment of TracedException to Exception and creating the patch.
Frank Benoit <benoit@tionex.de>
parents: 52
diff changeset
157 this( Exception e ){
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
158 super(e.toString);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
159 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
160 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
161
79
67d24430822a Delayed DLL load
Frank Benoit <benoit@tionex.de>
parents: 78
diff changeset
162 private struct GCStats {
40
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
163 size_t poolsize; // total size of pool
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
164 size_t usedsize; // bytes allocated
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
165 size_t freeblocks; // number of blocks marked FREE
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
166 size_t freelistsize; // total of memory on free lists
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
167 size_t pageblocks; // number of blocks marked PAGE
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
168 }
79
67d24430822a Delayed DLL load
Frank Benoit <benoit@tionex.de>
parents: 78
diff changeset
169 private extern(C) GCStats gc_stats();
67d24430822a Delayed DLL load
Frank Benoit <benoit@tionex.de>
parents: 78
diff changeset
170
40
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
171 size_t RuntimeTotalMemory(){
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
172 GCStats s = gc_stats();
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
173 return s.poolsize;
Frank Benoit <benoit@tionex.de>
parents: 33
diff changeset
174 }
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
175
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
176
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
177
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents: 0
diff changeset
178