Differences From Artifact [cf24a8abe2b880fc]:
- File
src/bga_melter.d
- 2015-04-30 23:29:51 - part of checkin [ab3b073ef6] on branch trunk - private import => import (since in the latest D it is the default.) (user: kinaba) [annotate]
To Artifact [4c58bb3061c0a99d]:
- File
src/bga_melter.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
256 256
257 return -1; 257 return -1;
258 } 258 }
259 259
260 private bool read_header( out BgaHeader hdr ) 260 private bool read_header( out BgaHeader hdr )
261 { 261 {
262 // リトルエンディアンを仮定。ヘッダ読み込み 262 // リトルエンディアンを仮定。ヘッダ読み込み
263 string buf = cast(string) fp.read(28); | 263 void[] buf = fp.read(28);
264 if( buf.length < 28 ) return false; 264 if( buf.length < 28 ) return false;
265 buf.length = BgaHeader.sizeof; 265 buf.length = BgaHeader.sizeof;
266 hdr = (cast(BgaHeader[]) buf)[0]; 266 hdr = (cast(BgaHeader[]) buf)[0];
267 hdr.fname = ""; 267 hdr.fname = "";
268 268
269 // ファイル名 269 // ファイル名
270 hdr.fname = cast(string) fp.read(hdr.dir_name_len + hdr.file_nam 270 hdr.fname = cast(string) fp.read(hdr.dir_name_len + hdr.file_nam
271 if( hdr.fname.length < hdr.dir_name_len + hdr.file_name_len ) re 271 if( hdr.fname.length < hdr.dir_name_len + hdr.file_name_len ) re
272 272
273 // チェックサム 273 // チェックサム
274 int sum = 0; 274 int sum = 0;
275 for( int i=4; i!=28; ++i ) sum += signed_char(buf[i]); | 275 for( int i=4; i!=28; ++i ) sum += signed_char((cast(char[])bu
276 foreach( char c ; hdr.fname ) sum += signed_char(c); 276 foreach( char c ; hdr.fname ) sum += signed_char(c);
277 return (sum == hdr.checksum); 277 return (sum == hdr.checksum);
278 } 278 }
279 279
280 private bool is_compressed( ref BgaHeader hdr ) // ref=just for optimiza 280 private bool is_compressed( ref BgaHeader hdr ) // ref=just for optimiza
281 { 281 {
282 // ヘッダから、ファイルが圧縮格納されているかどうかを判定 282 // ヘッダから、ファイルが圧縮格納されているかどうかを判定