From 9d752af00c39704cfba3716c9fae0a1d32c5e224 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Tue, 30 Dec 2025 23:12:30 +0300 Subject: [PATCH] Fixed memory issue when using tools --- src/DrawingProgram/Tools/EditTool.hpp | 2 +- src/DrawingProgram/Tools/EllipseDrawTool.cpp | 2 +- src/DrawingProgram/Tools/EllipseDrawTool.hpp | 2 +- src/DrawingProgram/Tools/RectDrawTool.cpp | 2 +- src/DrawingProgram/Tools/RectDrawTool.hpp | 2 +- src/DrawingProgram/Tools/TextBoxTool.cpp | 2 +- src/DrawingProgram/Tools/TextBoxTool.hpp | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/DrawingProgram/Tools/EditTool.hpp b/src/DrawingProgram/Tools/EditTool.hpp index 6437dc4..e581164 100644 --- a/src/DrawingProgram/Tools/EditTool.hpp +++ b/src/DrawingProgram/Tools/EditTool.hpp @@ -31,7 +31,7 @@ class EditTool : public DrawingProgramToolBase { std::unique_ptr compEditTool; std::vector pointHandles; - CanvasComponentContainer::ObjInfo* objInfoBeingEdited; + CanvasComponentContainer::ObjInfo* objInfoBeingEdited = nullptr; HandleData* pointDragging = nullptr; std::any prevData; }; diff --git a/src/DrawingProgram/Tools/EllipseDrawTool.cpp b/src/DrawingProgram/Tools/EllipseDrawTool.cpp index 3b22b34..a2423f4 100644 --- a/src/DrawingProgram/Tools/EllipseDrawTool.cpp +++ b/src/DrawingProgram/Tools/EllipseDrawTool.cpp @@ -45,7 +45,7 @@ void EllipseDrawTool::switch_tool(DrawingProgramToolType newTool) { } void EllipseDrawTool::tool_update() { - if(objInfoBeingEdited) { + if(!objInfoBeingEdited) { if(drawP.controls.leftClick && drawP.layerMan.is_a_layer_being_edited()) { CanvasComponentContainer* newContainer = new CanvasComponentContainer(drawP.world.netObjMan, CanvasComponentType::ELLIPSE); EllipseCanvasComponent& newEllipse = static_cast(newContainer->get_comp()); diff --git a/src/DrawingProgram/Tools/EllipseDrawTool.hpp b/src/DrawingProgram/Tools/EllipseDrawTool.hpp index 4ff76c6..1c01c90 100644 --- a/src/DrawingProgram/Tools/EllipseDrawTool.hpp +++ b/src/DrawingProgram/Tools/EllipseDrawTool.hpp @@ -22,5 +22,5 @@ class EllipseDrawTool : public DrawingProgramToolBase { Vector2f startAt; int fillStrokeMode = 1; - CanvasComponentContainer::ObjInfo* objInfoBeingEdited; + CanvasComponentContainer::ObjInfo* objInfoBeingEdited = nullptr; }; diff --git a/src/DrawingProgram/Tools/RectDrawTool.cpp b/src/DrawingProgram/Tools/RectDrawTool.cpp index 11a4f41..b2cb95c 100644 --- a/src/DrawingProgram/Tools/RectDrawTool.cpp +++ b/src/DrawingProgram/Tools/RectDrawTool.cpp @@ -43,7 +43,7 @@ void RectDrawTool::switch_tool(DrawingProgramToolType newTool) { } void RectDrawTool::tool_update() { - if(objInfoBeingEdited) { + if(!objInfoBeingEdited) { if(drawP.controls.leftClick && drawP.layerMan.is_a_layer_being_edited()) { CanvasComponentContainer* newContainer = new CanvasComponentContainer(drawP.world.netObjMan, CanvasComponentType::RECTANGLE); RectangleCanvasComponent& newRectangle = static_cast(newContainer->get_comp()); diff --git a/src/DrawingProgram/Tools/RectDrawTool.hpp b/src/DrawingProgram/Tools/RectDrawTool.hpp index 976e3d0..9ff8d35 100644 --- a/src/DrawingProgram/Tools/RectDrawTool.hpp +++ b/src/DrawingProgram/Tools/RectDrawTool.hpp @@ -22,5 +22,5 @@ class RectDrawTool : public DrawingProgramToolBase { Vector2f startAt; float relativeRadiusWidth = 10.0f; int fillStrokeMode = 1; - CanvasComponentContainer::ObjInfo* objInfoBeingEdited; + CanvasComponentContainer::ObjInfo* objInfoBeingEdited = nullptr; }; diff --git a/src/DrawingProgram/Tools/TextBoxTool.cpp b/src/DrawingProgram/Tools/TextBoxTool.cpp index 945ab4c..1ce3460 100644 --- a/src/DrawingProgram/Tools/TextBoxTool.cpp +++ b/src/DrawingProgram/Tools/TextBoxTool.cpp @@ -42,7 +42,7 @@ void TextBoxTool::switch_tool(DrawingProgramToolType newTool) { } void TextBoxTool::tool_update() { - if(objInfoBeingEdited) { + if(!objInfoBeingEdited) { if(drawP.controls.leftClick && drawP.layerMan.is_a_layer_being_edited()) { startAt = drawP.world.main.input.mouse.pos; endAt = startAt; diff --git a/src/DrawingProgram/Tools/TextBoxTool.hpp b/src/DrawingProgram/Tools/TextBoxTool.hpp index 3d0c705..2a121a2 100644 --- a/src/DrawingProgram/Tools/TextBoxTool.hpp +++ b/src/DrawingProgram/Tools/TextBoxTool.hpp @@ -22,5 +22,5 @@ class TextBoxTool : public DrawingProgramToolBase { Vector2f startAt; Vector2f endAt; int drawStage = 0; - CanvasComponentContainer::ObjInfo* objInfoBeingEdited; + CanvasComponentContainer::ObjInfo* objInfoBeingEdited = nullptr; };