[squeak-dev] The Inbox: Compression-jdr.48.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Dec 31 23:14:02 UTC 2015


A new version of Compression was added to project The Inbox:
http://source.squeak.org/inbox/Compression-jdr.48.mcz

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

Name: Compression-jdr.48
Author: jdr
Time: 31 December 2015, 6:13:59.974 pm
UUID: 7798d7c6-8f39-45cc-a3cc-e0887130a62d
Ancestors: Compression-dtl.47

It solves a problem compressing a zipfile with many files (> 200), previously all files to be processed remained open, now only the file being processed is opened.

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

Item was changed:
  ----- Method: ZipArchive>>writeTo: (in category 'writing') -----
  writeTo: stream
  	stream binary.
  	members do: [ :member |
  		member writeTo: stream.
  		member endRead.
+ 		member close
  	].
  	writeCentralDirectoryOffset := stream position.
  	self writeCentralDirectoryTo: stream.
  	!

Item was changed:
  ----- Method: ZipArchive>>writeTo:prepending: (in category 'writing') -----
  writeTo: stream prepending: aString
  	stream binary.
  	stream nextPutAll: aString.
  	members do: [ :member |
  		member writeTo: stream.
  		member endRead.
+ 		member close
  	].
  	writeCentralDirectoryOffset := stream position.
  	self writeCentralDirectoryTo: stream.
  	!

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 changed:
  ----- Method: ZipNewFileMember>>rewindData (in category 'private-writing') -----
  rewindData
  	super rewindData.
+ 	stream ensureOpen.
  	readDataRemaining := stream size.
  	stream position: 0.!



More information about the Squeak-dev mailing list