Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: courgette/courgette_tool.cc

Issue 2793153003: [Courgette] Refactor: Store Label Annotation in AssemblyProgram for patch generation. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 // original file's stream and the new file's stream. This is completely 207 // original file's stream and the new file's stream. This is completely
208 // uninteresting to users, but it is handy for seeing how much each which 208 // uninteresting to users, but it is handy for seeing how much each which
209 // streams are contributing to the final file size. Adjustment is optional. 209 // streams are contributing to the final file size. Adjustment is optional.
210 void DisassembleAdjustDiff(const base::FilePath& model_file, 210 void DisassembleAdjustDiff(const base::FilePath& model_file,
211 const base::FilePath& program_file, 211 const base::FilePath& program_file,
212 const base::FilePath& output_file_root, 212 const base::FilePath& output_file_root,
213 bool adjust) { 213 bool adjust) {
214 BufferedFileReader model_buffer(model_file, "old"); 214 BufferedFileReader model_buffer(model_file, "old");
215 BufferedFileReader program_buffer(program_file, "new"); 215 BufferedFileReader program_buffer(program_file, "new");
216 216
217 auto parser = adjust ? courgette::ParseDetectedExecutableWithAnnotation
218 : courgette::ParseDetectedExecutable;
219
217 std::unique_ptr<courgette::AssemblyProgram> model; 220 std::unique_ptr<courgette::AssemblyProgram> model;
218 const courgette::Status parse_model_status = 221 const courgette::Status parse_model_status =
219 courgette::ParseDetectedExecutable(model_buffer.data(), 222 parser(model_buffer.data(), model_buffer.length(), &model);
220 model_buffer.length(), &model);
221 if (parse_model_status != courgette::C_OK) 223 if (parse_model_status != courgette::C_OK)
222 Problem("Can't parse model input (code = %d).", parse_model_status); 224 Problem("Can't parse model input (code = %d).", parse_model_status);
223 225
224 std::unique_ptr<courgette::AssemblyProgram> program; 226 std::unique_ptr<courgette::AssemblyProgram> program;
225 const courgette::Status parse_program_status = 227 const courgette::Status parse_program_status =
226 courgette::ParseDetectedExecutable(program_buffer.data(), 228 parser(program_buffer.data(), program_buffer.length(), &program);
227 program_buffer.length(), &program);
228 if (parse_program_status != courgette::C_OK) 229 if (parse_program_status != courgette::C_OK)
229 Problem("Can't parse program input (code = %d).", parse_program_status); 230 Problem("Can't parse program input (code = %d).", parse_program_status);
230 231
231 if (adjust) { 232 if (adjust) {
232 const courgette::Status adjust_status = Adjust(*model, program.get()); 233 const courgette::Status adjust_status = Adjust(*model, program.get());
233 if (adjust_status != courgette::C_OK) 234 if (adjust_status != courgette::C_OK)
234 Problem("Can't adjust program."); 235 Problem("Can't adjust program.");
235 } 236 }
236 237
237 std::unique_ptr<courgette::EncodedProgram> encoded_program; 238 std::unique_ptr<courgette::EncodedProgram> encoded_program;
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 UsageProblem("-gen1[au] <old_file> <new_file> <patch_files_root>"); 515 UsageProblem("-gen1[au] <old_file> <new_file> <patch_files_root>");
515 DisassembleAdjustDiff(values[0], values[1], values[2], 516 DisassembleAdjustDiff(values[0], values[1], values[2],
516 cmd_spread_1_adjusted); 517 cmd_spread_1_adjusted);
517 } else { 518 } else {
518 UsageProblem("No operation specified"); 519 UsageProblem("No operation specified");
519 } 520 }
520 } 521 }
521 522
522 return 0; 523 return 0;
523 } 524 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698