diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2012-08-28 13:59:48 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2012-08-28 14:50:39 -0700 |
| commit | b769e296803f578d99654e9fc271c4109e50ab75 (patch) | |
| tree | 74d9b8b86fa4c3b2cda40218db61cc30cfd8402a /src/rustc/metadata | |
| parent | 31bbcf026727cf69e2c4b756a6d2ddc584274056 (diff) | |
| download | rust-b769e296803f578d99654e9fc271c4109e50ab75.tar.gz rust-b769e296803f578d99654e9fc271c4109e50ab75.zip | |
Compress metadata section. Seems a minor speed win, major space win.
Diffstat (limited to 'src/rustc/metadata')
| -rw-r--r-- | src/rustc/metadata/encoder.rs | 2 | ||||
| -rw-r--r-- | src/rustc/metadata/loader.rs | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs index 5764e5ace59..cf8b0232392 100644 --- a/src/rustc/metadata/encoder.rs +++ b/src/rustc/metadata/encoder.rs @@ -1164,7 +1164,7 @@ fn encode_metadata(parms: encode_parms, crate: @crate) -> ~[u8] { // Pad this, since something (LLVM, presumably) is cutting off the // remaining % 4 bytes. buf_w.write(&[0u8, 0u8, 0u8, 0u8]); - io::mem_buffer_buf(buf) + flate::deflate_buf(io::mem_buffer_buf(buf)) } // Get the encoded string for a type diff --git a/src/rustc/metadata/loader.rs b/src/rustc/metadata/loader.rs index 4ca9d8f9b86..b68e5cc1ce0 100644 --- a/src/rustc/metadata/loader.rs +++ b/src/rustc/metadata/loader.rs @@ -187,7 +187,9 @@ fn get_metadata_section(os: os, let csz = llvm::LLVMGetSectionSize(si.llsi) as uint; unsafe { let cvbuf: *u8 = unsafe::reinterpret_cast(cbuf); - return Some(@vec::unsafe::from_buf(cvbuf, csz)); + let v = vec::unsafe::from_buf(cvbuf, csz); + let inflated = flate::inflate_buf(v); + return Some(@inflated); } } llvm::LLVMMoveToNextSection(si.llsi); |
