The Trunk: Compression-cmm.48.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Compression-cmm.48.mcz

commits-2
Chris Muller uploaded a new version of Compression to project The Trunk:
http://source.squeak.org/trunk/Compression-cmm.48.mcz

==================== Summary ====================

Name: Compression-cmm.48
Author: cmm
Time: 1 September 2015, 3:43:17.149 pm
UUID: 833287cb-44f0-42e8-9419-bd8cde39dd0a
Ancestors: Compression-dtl.47

Allow zipping of directories with thousands of files, without creating thousands of instances of simultaneously open FileStream's in the image.

=============== Diff against Compression-dtl.47 ===============

Item was added:
+ ----- Method: ZipArchiveMember>>openStreamWhile: (in category 'private-writing') -----
+ openStreamWhile: aBlock
+ ^ aBlock value!

Item was changed:
  ----- Method: ZipArchiveMember>>writeTo: (in category 'writing') -----
+ writeTo: aStream
+ self openStreamWhile:
+ [ self rewindData.
+ writeLocalHeaderRelativeOffset := aStream position.
+ self
+ writeLocalFileHeaderTo: aStream ;
+ writeDataTo: aStream ;
+ refreshLocalFileHeaderTo: aStream ]!
- writeTo: aStream
- self rewindData.
- writeLocalHeaderRelativeOffset := aStream position.
- self writeLocalFileHeaderTo: aStream.
- self writeDataTo: aStream.
- self refreshLocalFileHeaderTo: aStream.!

Item was changed:
  ----- Method: ZipNewFileMember>>from: (in category 'initialization') -----
  from: aFileName
  | entry |
  compressionMethod := CompressionStored.
  "Now get the size, attributes, and timestamps, and see if the file exists"
  stream := StandardFileStream readOnlyFileNamed: aFileName.
  self localFileName: (externalFileName := stream name).
  entry := stream directoryEntry.
  compressedSize := uncompressedSize := entry fileSize.
  desiredCompressionMethod := compressedSize > 0 ifTrue: [ CompressionDeflated ] ifFalse: [ CompressionStored ].
+ self setLastModFileDateTimeFrom: entry modificationTime.
+ stream close!
- self setLastModFileDateTimeFrom: entry modificationTime
- !

Item was added:
+ ----- Method: ZipNewFileMember>>openStreamWhile: (in category 'private-writing') -----
+ openStreamWhile: aBlock
+ stream open.
+ ^ aBlock ensure: [ stream close ]!