When developing actions, I had a lot of crashes when the user entered points using the mouse.
You can recreate the whole thing in the gear plugin.
After completing this action:
https://github.com/LibreCAD/LibreCAD/blob/master/librecad/src/plugins/intern/qc_actiongetpoint.cpp#L45If I quickly move the mouse diagonally after clicking with the mouse in the drawing field, the whole LC crashes at this point:
https://github.com/LibreCAD/LibreCAD/blob/master/librecad/src/actions/drawing/rs_actiondefault.cpp#L252I catch it like this, and it often occurs when developing.
****************************************************************************************************************************************
if (infoCursorOverlayPrefs && infoCursorOverlayPrefs->enabled){
if (!isShowEntityDescriptionOnHighlight()) {
infoCursorOverlayData.setZone2("");
}
RS_Snapper::forceUpdateInfoCursor(mouse);
}
else
{
qCritical() << "[RS_ActionDefault::mouseMoveEvent] ###FIXME infoCursorOverlayPrefs == NULL!!";
}
break;
****************************************************************************************************************************************
I have to provoke it in drawing mode. But it has often crashed at the point when moving the mouse at startup.
The actions are very fragile,
when I want to access points, they are often not there, or if you execute finish() and then query isFinished(), it sometimes crashes. Thank God I got my script GetRad and GetDist working the way I need them.