[squeak-dev] The Trunk: Compression-fbs.36.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Jul 5 20:59:20 UTC 2013
Frank Shearar uploaded a new version of Compression to project The Trunk:
http://source.squeak.org/trunk/Compression-fbs.36.mcz
==================== Summary ====================
Name: Compression-fbs.36
Author: fbs
Time: 5 July 2013, 9:59:01.646 pm
UUID: 44283c36-3bbc-5444-bc84-35144b694d12
Ancestors: Compression-fbs.35
Make Compression augment Kernel, and thus break the cyclic Kernel <-> Compression dependency.
=============== Diff against Compression-fbs.35 ===============
Item was added:
+ ----- Method: CompiledMethodTrailer>>decodeEmbeddedSourceZip (in category '*Compression-KernelExtensions') -----
+ decodeEmbeddedSourceZip
+
+ "data is string with method's source code, compressed using zip compression"
+ self decodeZip.!
Item was added:
+ ----- Method: CompiledMethodTrailer>>decodeTempsNamesZip (in category '*Compression-KernelExtensions') -----
+ decodeTempsNamesZip
+
+ "data is string with method's temporary names, compressed using zip compression"
+ self decodeZip.!
Item was added:
+ ----- Method: CompiledMethodTrailer>>decodeZip (in category '*Compression-KernelExtensions') -----
+ decodeZip
+
+ "data := <trailer> unzip utf8ToSqueak"
+ | len bytes |
+ len := self decodeLengthField.
+ bytes := ByteArray new: len.
+ 1 to: len do: [ :i |
+ bytes at: i put: (method at: method size - size + i) ].
+
+ data := (ZipReadStream on: bytes) contents asString convertFromEncoding: 'utf8'!
Item was added:
+ ----- Method: CompiledMethodTrailer>>encodeEmbeddedSourceZip (in category '*Compression-KernelExtensions') -----
+ encodeEmbeddedSourceZip
+
+ "data is string with method's source code, encode it using Zip compression method"
+ self encodeUsingZip
+ !
Item was added:
+ ----- Method: CompiledMethodTrailer>>encodeTempsNamesZip (in category '*Compression-KernelExtensions') -----
+ encodeTempsNamesZip
+
+ "data is string with method's temporary names, encode it using zip compression"
+ self encodeUsingZip
+
+ "data is string with method's source code, encoded using qCompress method"
+
+
+ !
Item was added:
+ ----- Method: CompiledMethodTrailer>>encodeUsingZip (in category '*Compression-KernelExtensions') -----
+ encodeUsingZip
+
+ "data is string, encode it using gzip compression"
+ | utf8str stream length encodedLength |
+
+ self assert: (data isString).
+ utf8str := data convertToEncoding: 'utf8'.
+
+ stream := ((ZipWriteStream on: (ByteArray new: utf8str size))
+ nextPutAll: utf8str asByteArray;
+ close;
+ encodedStream).
+
+ length := stream position.
+ encodedLength := self encodeLengthField: length.
+
+ stream nextPutAll: encodedLength.
+ "trailing byte"
+ stream nextPut: (self kindAsByte + encodedLength size - 1).
+
+ encodedData := stream contents
+ !
More information about the Squeak-dev
mailing list
|