diff --git a/src/arm_designer.cpp b/src/arm_designer.cpp index 0ceaea7383dc745b07e107160e1692badd001638..da633aac4b9ce3a906c19bb8d81fee0c0db9b344 100644 --- a/src/arm_designer.cpp +++ b/src/arm_designer.cpp @@ -779,7 +779,7 @@ bool ArmDesigner::input_handle_() { ESC Clear selection */ if (event.key.keysym.sym == SDLK_m) {//m - if (selected_nodes_[0].first == 0) { + if (selected_nodes_.size() == 0 || selected_nodes_[0].first == 0) { gui_params_.log_messages.push_back("Sketch segment doesn't allow midpointing."); continue; } @@ -1017,6 +1017,9 @@ std::tuple<size_t, size_t, size_t, float> ArmDesigner::find_closest_seg_line_dis continue; } auto nodes = segs[i].nodes(); + if (nodes.size() == 0) {//fix segmentation fault + continue; + } for (size_t k = 0; k < nodes.size()-1; ++k){ /*Find direction and normal vector of line*/ std::array<float, 2> dirv { nodes[k+1][0] - nodes[k][0], nodes[k+1][1] - nodes[k][1] }; //rg