From 120ef80f37e3670c3ab6e5c260ad4323b3a783ea Mon Sep 17 00:00:00 2001 From: eyal0 <109809+eyal0@users.noreply.github.com> Date: Mon, 8 Feb 2021 21:04:44 -0700 Subject: [PATCH] refactor: Remove all usage of `new` --- board.cpp | 9 +++++---- drill.cpp | 10 ++++------ gerberimporter.cpp | 1 - main.cpp | 23 +++++++++++------------ svg_writer.cpp | 5 +++-- 5 files changed, 23 insertions(+), 25 deletions(-) diff --git a/board.cpp b/board.cpp index f1b0dffa5..c877c104d 100644 --- a/board.cpp +++ b/board.cpp @@ -21,6 +21,7 @@ #include "board.hpp" #include using std::shared_ptr; +using std::make_shared; using std::dynamic_pointer_cast; #include @@ -125,20 +126,20 @@ void Board::createLayers() shared_ptr importer = get<0>(prepared_layer.second); const bool fill = fill_outline && prepared_layer.first == "outline"; - shared_ptr surface(new Surface_vectorial( + auto surface = make_shared( 30, bounding_box, prepared_layer.first, outputdir, tsp_2opt, mill_feed_direction, invert_gerbers, - render_paths_to_shapes || (prepared_layer.first == "outline"))); + render_paths_to_shapes || (prepared_layer.first == "outline")); if (fill) { surface->enable_filling(); } surface->render(importer, get<1>(prepared_layer.second)->optimise); - shared_ptr layer(new Layer(prepared_layer.first, + auto layer = make_shared(prepared_layer.first, surface, get<1>(prepared_layer.second), - get<2>(prepared_layer.second))); // see comment for prep_t in board.hpp + get<2>(prepared_layer.second)); // see comment for prep_t in board.hpp layers.insert(std::make_pair(layer->get_name(), layer)); } diff --git a/drill.cpp b/drill.cpp index 09761dc1d..ba9923cc6 100644 --- a/drill.cpp +++ b/drill.cpp @@ -117,7 +117,7 @@ ExcellonProcessor::ExcellonProcessor(const boost::program_options::variables_map preamble += "G90 (Absolute coordinates.)\n"; - tiling = std::unique_ptr(new Tiling(tileInfo, cfactor, ocodes.getUniqueCode())); + tiling = std::make_unique(tileInfo, cfactor, ocodes.getUniqueCode()); } /******************************************************************************/ @@ -699,12 +699,10 @@ void ExcellonProcessor::save_svg( gerbv_project_t* ExcellonProcessor::parse_project(const string& filename) { gerbv_project_t* project = gerbv_create_project(); - const char* cfilename = filename.c_str(); - char *gerb_filename = new char[strlen(cfilename) + 1]; - strcpy(gerb_filename, cfilename); + auto gerb_filename = std::make_unique(filename.size() + 1); + strcpy(gerb_filename.get(), filename.c_str()); - gerbv_open_layer_from_filename(project, gerb_filename); - delete[] gerb_filename; + gerbv_open_layer_from_filename(project, gerb_filename.get()); if (project->file[0] == NULL) { throw drill_exception(); diff --git a/gerberimporter.cpp b/gerberimporter.cpp index d103f147a..f222791c9 100644 --- a/gerberimporter.cpp +++ b/gerberimporter.cpp @@ -737,7 +737,6 @@ pair> G bool render_paths_to_shapes, unsigned int points_per_circle) const { ring_type_fp region; - unique_ptr temp_mpoly (new multi_polygon_type_fp()); bool contour = false; // Are we in contour mode? vector>> layers(1); diff --git a/main.cpp b/main.cpp index 80e1ffe0d..eb87e2fc6 100644 --- a/main.cpp +++ b/main.cpp @@ -34,6 +34,7 @@ using std::endl; using std::flush; using std::fstream; using std::shared_ptr; +using std::make_shared; #include using std::string; @@ -92,8 +93,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { if (vm.count("front") || vm.count("back")) { - isolator = shared_ptr(new Isolator()); - // TODO: support more than one mill-diameter. + isolator = make_shared(); for (const auto& tool_diameter : flatten(vm["mill-diameters"].as>>())) { isolator->tool_diameters_and_overlap_widths.push_back( std::make_pair( @@ -135,7 +135,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { isolator->spindown_time = spindown_time; } - shared_ptr cutter(new Cutter()); + auto cutter = make_shared(); if (vm.count("outline") || (vm.count("drill") && @@ -173,7 +173,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { if (vm.count("drill")) { - driller = shared_ptr(new Driller()); + driller = make_shared(); driller->zwork = vm["zdrill"].as().asInch(unit); driller->zsafe = vm["zsafe"].as().asInch(unit); driller->feed = vm["drill-feed"].as().asInchPerMinute(unit); @@ -259,14 +259,13 @@ void do_pcb2gcode(int argc, const char* argv[]) { //--------------------------------------------------------------------------- - shared_ptr board( - new Board( + auto board = make_shared( vm["fill-outline"].as(), outputdir, vm["tsp-2opt"].as(), vm["mill-feed-direction"].as(), vm["invert-gerbers"].as(), - !vm["draw-gerber-lines"].as())); + !vm["draw-gerber-lines"].as()); // this is currently disabled, use --outline instead if (vm.count("margins")) @@ -280,7 +279,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { cout << "Importing front side... " << flush; if (vm.count("front") > 0) { string frontfile = vm["front"].as(); - shared_ptr importer(new GerberImporter()); + auto importer = make_shared(); if (!importer->load_file(frontfile)) { options::maybe_throw("ERROR.", ERR_INVALIDPARAMETER); } @@ -293,7 +292,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { cout << "Importing back side... " << flush; if (vm.count("back") > 0) { string backfile = vm["back"].as(); - shared_ptr importer(new GerberImporter()); + auto importer = make_shared(); if (!importer->load_file(backfile)) { options::maybe_throw("ERROR.", ERR_INVALIDPARAMETER); } @@ -306,7 +305,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { cout << "Importing outline... " << flush; if (vm.count("outline") > 0) { string outline = vm["outline"].as(); - shared_ptr importer(new GerberImporter()); + auto importer = make_shared(); if (!importer->load_file(outline)) { options::maybe_throw("ERROR.", ERR_INVALIDPARAMETER); } @@ -321,7 +320,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { cout << "DONE.\n"; if (!vm["no-export"].as()) { - shared_ptr exporter(new NGC_Exporter(board)); + auto exporter = make_shared(board); exporter->add_header(PACKAGE_STRING); if (vm.count("preamble") || vm.count("preamble-text")) { @@ -352,7 +351,7 @@ void do_pcb2gcode(int argc, const char* argv[]) { //best we can do) if(board->get_layersnum() == 0) { - shared_ptr importer(new GerberImporter()); + auto importer = make_shared(); if (!importer->load_file(vm["drill"].as())) { options::maybe_throw("ERROR.", ERR_INVALIDPARAMETER); } diff --git a/svg_writer.cpp b/svg_writer.cpp index e59477242..a228829cf 100644 --- a/svg_writer.cpp +++ b/svg_writer.cpp @@ -7,6 +7,7 @@ using std::string; using std::unique_ptr; +using std::make_unique; svg_writer::svg_writer(string filename, box_type_fp bounding_box) : output_file(filename), @@ -25,8 +26,8 @@ svg_writer::svg_writer(string filename, box_type_fp bounding_box) : const string svg_dimensions = str(boost::format("width=\"%1%\" height=\"%2%\" viewBox=\"0 0 %3% %4%\"") % width % height % viewBox_width % viewBox_height); - mapper = unique_ptr> - (new bg::svg_mapper(output_file, viewBox_width, viewBox_height, svg_dimensions)); + mapper = make_unique>( + output_file, viewBox_width, viewBox_height, svg_dimensions); mapper->add(bounding_box); }