From c57ea608c37299cdf93f07556e0c6e4fc3bfe5d7 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Mon, 15 Dec 2025 16:55:09 +0300 Subject: [PATCH] Check if object pointer is null before commit --- src/DrawingProgram/BrushTool.cpp | 10 ++++++---- src/DrawingProgram/EditTool.cpp | 2 +- src/DrawingProgram/EllipseDrawTool.cpp | 10 ++++++---- src/DrawingProgram/RectDrawTool.cpp | 10 ++++++---- src/DrawingProgram/TextBoxTool.cpp | 10 ++++++---- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/DrawingProgram/BrushTool.cpp b/src/DrawingProgram/BrushTool.cpp index e4638ce..a6bb884 100644 --- a/src/DrawingProgram/BrushTool.cpp +++ b/src/DrawingProgram/BrushTool.cpp @@ -153,10 +153,12 @@ void BrushTool::tool_update() { } void BrushTool::commit_stroke() { - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - containerPtr->commit_update(drawP); - containerPtr->send_comp_update(drawP, true); - objInfoBeingEdited = nullptr; + if(objInfoBeingEdited) { + NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; + containerPtr->commit_update(drawP); + containerPtr->send_comp_update(drawP, true); + objInfoBeingEdited = nullptr; + } } void BrushTool::gui_toolbox() { diff --git a/src/DrawingProgram/EditTool.cpp b/src/DrawingProgram/EditTool.cpp index 056b776..ece6bed 100644 --- a/src/DrawingProgram/EditTool.cpp +++ b/src/DrawingProgram/EditTool.cpp @@ -57,8 +57,8 @@ void EditTool::switch_tool(DrawingProgramToolType newTool) { compEditTool->commit_edit_updates(objInfoBeingEdited, prevData); objInfoBeingEdited->obj->commit_update(drawP); objInfoBeingEdited->obj->send_comp_update(drawP, true); + objInfoBeingEdited = nullptr; } - objInfoBeingEdited = nullptr; pointHandles.clear(); pointDragging = nullptr; isEditing = false; diff --git a/src/DrawingProgram/EllipseDrawTool.cpp b/src/DrawingProgram/EllipseDrawTool.cpp index 5bcd612..136bc9c 100644 --- a/src/DrawingProgram/EllipseDrawTool.cpp +++ b/src/DrawingProgram/EllipseDrawTool.cpp @@ -97,10 +97,12 @@ bool EllipseDrawTool::prevent_undo_or_redo() { } void EllipseDrawTool::commit() { - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - containerPtr->commit_update(drawP); - containerPtr->send_comp_update(drawP, true); - objInfoBeingEdited = nullptr; + if(objInfoBeingEdited) { + NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; + containerPtr->commit_update(drawP); + containerPtr->send_comp_update(drawP, true); + objInfoBeingEdited = nullptr; + } } void EllipseDrawTool::draw(SkCanvas* canvas, const DrawData& drawData) { diff --git a/src/DrawingProgram/RectDrawTool.cpp b/src/DrawingProgram/RectDrawTool.cpp index 2c67b0f..8136ad8 100644 --- a/src/DrawingProgram/RectDrawTool.cpp +++ b/src/DrawingProgram/RectDrawTool.cpp @@ -96,10 +96,12 @@ bool RectDrawTool::prevent_undo_or_redo() { } void RectDrawTool::commit() { - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - containerPtr->commit_update(drawP); - containerPtr->send_comp_update(drawP, true); - objInfoBeingEdited = nullptr; + if(objInfoBeingEdited) { + NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; + containerPtr->commit_update(drawP); + containerPtr->send_comp_update(drawP, true); + objInfoBeingEdited = nullptr; + } } void RectDrawTool::draw(SkCanvas* canvas, const DrawData& drawData) { diff --git a/src/DrawingProgram/TextBoxTool.cpp b/src/DrawingProgram/TextBoxTool.cpp index d05498d..6c03904 100644 --- a/src/DrawingProgram/TextBoxTool.cpp +++ b/src/DrawingProgram/TextBoxTool.cpp @@ -96,10 +96,12 @@ bool TextBoxTool::prevent_undo_or_redo() { } void TextBoxTool::commit() { - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - containerPtr->commit_update(drawP); - containerPtr->send_comp_update(drawP, true); - objInfoBeingEdited = nullptr; + if(objInfoBeingEdited) { + NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; + containerPtr->commit_update(drawP); + containerPtr->send_comp_update(drawP, true); + objInfoBeingEdited = nullptr; + } } void TextBoxTool::draw(SkCanvas* canvas, const DrawData& drawData) {