| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <errno.h> | 5 #include <errno.h> |
| 6 #include <stdio.h> | 6 #include <stdio.h> |
| 7 #ifdef COMPRESS_STARTUP_DATA_BZ2 | 7 #ifdef COMPRESS_STARTUP_DATA_BZ2 |
| 8 #include <bzlib.h> | 8 #include <bzlib.h> |
| 9 #endif | 9 #endif |
| 10 #include <signal.h> | 10 #include <signal.h> |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 if (!compressor_) { | 141 if (!compressor_) { |
| 142 data_to_be_written = &source_data; | 142 data_to_be_written = &source_data; |
| 143 } else if (compressor_->Compress(source_data.ToVector())) { | 143 } else if (compressor_->Compress(source_data.ToVector())) { |
| 144 compressed_data.AddAll(*compressor_->output()); | 144 compressed_data.AddAll(*compressor_->output()); |
| 145 data_to_be_written = &compressed_data; | 145 data_to_be_written = &compressed_data; |
| 146 } else { | 146 } else { |
| 147 i::PrintF("Compression failed. Aborting.\n"); | 147 i::PrintF("Compression failed. Aborting.\n"); |
| 148 exit(1); | 148 exit(1); |
| 149 } | 149 } |
| 150 | 150 |
| 151 ASSERT(data_to_be_written); | 151 DCHECK(data_to_be_written); |
| 152 MaybeWriteRawFile(data_to_be_written, raw_file); | 152 MaybeWriteRawFile(data_to_be_written, raw_file); |
| 153 WriteData(prefix, source_data, data_to_be_written); | 153 WriteData(prefix, source_data, data_to_be_written); |
| 154 } | 154 } |
| 155 | 155 |
| 156 void MaybeWriteRawFile(const i::List<i::byte>* data, FILE* raw_file) const { | 156 void MaybeWriteRawFile(const i::List<i::byte>* data, FILE* raw_file) const { |
| 157 if (!data || !raw_file) | 157 if (!data || !raw_file) |
| 158 return; | 158 return; |
| 159 | 159 |
| 160 // Sanity check, whether i::List iterators truly return pointers to an | 160 // Sanity check, whether i::List iterators truly return pointers to an |
| 161 // internal array. | 161 // internal array. |
| 162 ASSERT(data->end() - data->begin() == data->length()); | 162 DCHECK(data->end() - data->begin() == data->length()); |
| 163 | 163 |
| 164 size_t written = fwrite(data->begin(), 1, data->length(), raw_file); | 164 size_t written = fwrite(data->begin(), 1, data->length(), raw_file); |
| 165 if (written != (size_t)data->length()) { | 165 if (written != (size_t)data->length()) { |
| 166 i::PrintF("Writing raw file failed.. Aborting.\n"); | 166 i::PrintF("Writing raw file failed.. Aborting.\n"); |
| 167 exit(1); | 167 exit(1); |
| 168 } | 168 } |
| 169 } | 169 } |
| 170 | 170 |
| 171 void WriteData(const char* prefix, const i::List<i::byte>& source_data, | 171 void WriteData(const char* prefix, const i::List<i::byte>& source_data, |
| 172 const i::List<i::byte>* data_to_be_written) const { | 172 const i::List<i::byte>* data_to_be_written) const { |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 | 265 |
| 266 class BZip2Decompressor : public StartupDataDecompressor { | 266 class BZip2Decompressor : public StartupDataDecompressor { |
| 267 public: | 267 public: |
| 268 virtual ~BZip2Decompressor() { } | 268 virtual ~BZip2Decompressor() { } |
| 269 | 269 |
| 270 protected: | 270 protected: |
| 271 virtual int DecompressData(char* raw_data, | 271 virtual int DecompressData(char* raw_data, |
| 272 int* raw_data_size, | 272 int* raw_data_size, |
| 273 const char* compressed_data, | 273 const char* compressed_data, |
| 274 int compressed_data_size) { | 274 int compressed_data_size) { |
| 275 ASSERT_EQ(StartupData::kBZip2, | 275 DCHECK_EQ(StartupData::kBZip2, |
| 276 V8::GetCompressedStartupDataAlgorithm()); | 276 V8::GetCompressedStartupDataAlgorithm()); |
| 277 unsigned int decompressed_size = *raw_data_size; | 277 unsigned int decompressed_size = *raw_data_size; |
| 278 int result = | 278 int result = |
| 279 BZ2_bzBuffToBuffDecompress(raw_data, | 279 BZ2_bzBuffToBuffDecompress(raw_data, |
| 280 &decompressed_size, | 280 &decompressed_size, |
| 281 const_cast<char*>(compressed_data), | 281 const_cast<char*>(compressed_data), |
| 282 compressed_data_size, | 282 compressed_data_size, |
| 283 0, 1); | 283 0, 1); |
| 284 if (result == BZ_OK) { | 284 if (result == BZ_OK) { |
| 285 *raw_data_size = decompressed_size; | 285 *raw_data_size = decompressed_size; |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 writer.WriteSnapshot(snapshot_data, ser, context_data, context_ser); | 426 writer.WriteSnapshot(snapshot_data, ser, context_data, context_ser); |
| 427 } | 427 } |
| 428 } | 428 } |
| 429 | 429 |
| 430 isolate->Dispose(); | 430 isolate->Dispose(); |
| 431 V8::Dispose(); | 431 V8::Dispose(); |
| 432 V8::ShutdownPlatform(); | 432 V8::ShutdownPlatform(); |
| 433 delete platform; | 433 delete platform; |
| 434 return 0; | 434 return 0; |
| 435 } | 435 } |
| OLD | NEW |