|
Post by Dennis Passmore on Jun 30, 2004 9:43:11 GMT -5
I have ran into a strange range check error using Vclzip Pro 3.04 when the zipped file size (3809869824 - 3.8gig) is larger than High(Longint) and wonder if you had seen it before. The error message is displayed at line #745 in the source file kpUnZipp.pas as follows:
zip_out_file.Size := file_info.uncompressed_size;
Tracing this call down into the rtl library classes.pas into the TStream.SetSize(const NewSize: Int64); method for some "stupid" reason Borland decided to raise a exception if you actually pass in a Int64 value ( hello Duh??? ).
Well to make a long story ( shorter ) the fix is to just comment out the line #745 in kpUnZipp.pas since the default implementation of TStream.SetSize() does nothing anyway.
Now I can Zip/UnZip huge files without a problem.
|
|
|
Post by Kevin on Jun 30, 2004 10:50:13 GMT -5
No, this is the first that this has been reported. But at first glance I can't see how you are getting into TStream.SetSize since SetSize should be overridden by THandleStream.SetSize at this point. It is a TFileStream whose size is beeing set, which inherits from THandleStream. I don't have time to trace through myself right now, I'm headed out the door, but do you remember noticing why it did not make it into THandleStream.SetSize when you unzipped? It doesn't break anything to remove that line. It will make it a bit slower however, since the idea there was simply to pre-allocate the file size. Kevin
|
|
|
Post by Kevin on Jul 1, 2004 10:06:07 GMT -5
Ahh, I see the problem now and will be fixing it very soon. Right now, the work around is to either delete or comment out the line you mentioned OR you should also be able to define NOSTREAMBUFF and that should take care of it too.
Thanks for reporting that.
Kevin
|
|
|
Post by Dennis Passmore on Jul 8, 2004 12:50:04 GMT -5
Hi Kevin,
Thanks for the updated source files you sent me. The new source code modifciations work fine and I have used it on several very large zip files without a problem.
Great customer support..
Dennis
|
|