• R/O
  • SSH
  • HTTPS

kirikirij: Commit


Commit MetaInfo

Revision187 (tree)
Time2012-08-14 14:10:25
Authorjin1016

Log Message

XP3アーカイブでファイル終端を超えて読むような時に対処

Change Summary

Incremental Difference

--- base/trunk/src/src/jp/kirikiri/tvp2/base/XP3ArchiveStream.java (revision 186)
+++ base/trunk/src/src/jp/kirikiri/tvp2/base/XP3ArchiveStream.java (revision 187)
@@ -258,8 +258,10 @@
258258 while( read_size > 0 ) {
259259 while( mSegmentRemain == 0 ) {
260260 // must go next segment
261- if(!openNextSegment()) // open next segment
262- return write_size; // could not read more
261+ if(!openNextSegment()) {// open next segment
262+ if( write_size == 0 ) return -1;
263+ else return write_size; // could not read more
264+ }
263265 }
264266
265267 int one_size = (int) (read_size > mSegmentRemain ? mSegmentRemain : read_size);
@@ -297,8 +299,10 @@
297299 while( read_size > 0 ) {
298300 while( mSegmentRemain == 0 ) {
299301 // must go next segment
300- if(!openNextSegment()) // open next segment
301- return write_size; // could not read more
302+ if(!openNextSegment()) { // open next segment
303+ if( write_size == 0 ) return -1;
304+ else return write_size; // could not read more
305+ }
302306 }
303307
304308 int one_size = (int) (read_size > mSegmentRemain ? mSegmentRemain : read_size);
@@ -334,8 +338,10 @@
334338 while( read_size > 0 ) {
335339 while( mSegmentRemain == 0 ) {
336340 // must go next segment
337- if(!openNextSegment()) // open next segment
338- return write_size; // could not read more
341+ if(!openNextSegment()) { // open next segment
342+ if( write_size == 0 ) return -1; // end of file
343+ else return write_size; // could not read more
344+ }
339345 }
340346
341347 int one_size = (int) (read_size > mSegmentRemain ? mSegmentRemain : read_size);
Show on old repository browser