| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium 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 // This file contains the code to apply a Courgette patch. | 5 // This file contains the code to apply a Courgette patch. |
| 6 | 6 |
| 7 #include "courgette/ensemble.h" | 7 #include "courgette/ensemble.h" |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 | 12 |
| 13 #include "courgette/crc.h" | 13 #include "courgette/crc.h" |
| 14 #include "courgette/region.h" | 14 #include "courgette/region.h" |
| 15 #include "courgette/streams.h" | 15 #include "courgette/streams.h" |
| 16 #include "courgette/simple_delta.h" | 16 #include "courgette/simple_delta.h" |
| 17 #include "courgette/win32_x86_patcher.h" | 17 #include "courgette/patcher_x86_32.h" |
| 18 | 18 |
| 19 namespace courgette { | 19 namespace courgette { |
| 20 | 20 |
| 21 // EnsemblePatchApplication is all the logic and data required to apply the | 21 // EnsemblePatchApplication is all the logic and data required to apply the |
| 22 // multi-stage patch. | 22 // multi-stage patch. |
| 23 class EnsemblePatchApplication { | 23 class EnsemblePatchApplication { |
| 24 public: | 24 public: |
| 25 EnsemblePatchApplication(); | 25 EnsemblePatchApplication(); |
| 26 ~EnsemblePatchApplication(); | 26 ~EnsemblePatchApplication(); |
| 27 | 27 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 | 132 |
| 133 for (size_t i = 0; i < number_of_transformations; ++i) { | 133 for (size_t i = 0; i < number_of_transformations; ++i) { |
| 134 uint32 kind; | 134 uint32 kind; |
| 135 if (!transformation_parameters->ReadVarint32(&kind)) | 135 if (!transformation_parameters->ReadVarint32(&kind)) |
| 136 return C_BAD_ENSEMBLE_HEADER; | 136 return C_BAD_ENSEMBLE_HEADER; |
| 137 | 137 |
| 138 TransformationPatcher* patcher = NULL; | 138 TransformationPatcher* patcher = NULL; |
| 139 | 139 |
| 140 switch (kind) | 140 switch (kind) |
| 141 { | 141 { |
| 142 case CourgettePatchFile::T_COURGETTE_WIN32_X86: | 142 case EXE_WIN_32_X86: |
| 143 patcher = new CourgetteWin32X86Patcher(base_region_); | 143 patcher = new PatcherX86_32(base_region_); |
| 144 break; | 144 break; |
| 145 } | 145 } |
| 146 | 146 |
| 147 if (patcher) | 147 if (patcher) |
| 148 patchers_.push_back(patcher); | 148 patchers_.push_back(patcher); |
| 149 else | 149 else |
| 150 return C_BAD_ENSEMBLE_HEADER; | 150 return C_BAD_ENSEMBLE_HEADER; |
| 151 } | 151 } |
| 152 | 152 |
| 153 for (size_t i = 0; i < patchers_.size(); ++i) { | 153 for (size_t i = 0; i < patchers_.size(); ++i) { |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 static_cast<int>(new_sink_stream.Length())); | 413 static_cast<int>(new_sink_stream.Length())); |
| 414 if (written == -1) | 414 if (written == -1) |
| 415 return C_WRITE_OPEN_ERROR; | 415 return C_WRITE_OPEN_ERROR; |
| 416 if (static_cast<size_t>(written) != new_sink_stream.Length()) | 416 if (static_cast<size_t>(written) != new_sink_stream.Length()) |
| 417 return C_WRITE_ERROR; | 417 return C_WRITE_ERROR; |
| 418 | 418 |
| 419 return C_OK; | 419 return C_OK; |
| 420 } | 420 } |
| 421 | 421 |
| 422 } // namespace | 422 } // namespace |
| OLD | NEW |