From cd48cc4007f398cc1caa1e533596ace0ebdf22c9 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Sat, 12 Jul 2025 15:38:29 +0100 Subject: [PATCH] Reentrancy guard for placeAnchor (KICAD-A6J). --- eeschema/tools/symbol_editor_drawing_tools.cpp | 6 ++++++ eeschema/tools/symbol_editor_drawing_tools.h | 1 + 2 files changed, 7 insertions(+) diff --git a/eeschema/tools/symbol_editor_drawing_tools.cpp b/eeschema/tools/symbol_editor_drawing_tools.cpp index 2622e2afab..42a8136e16 100644 --- a/eeschema/tools/symbol_editor_drawing_tools.cpp +++ b/eeschema/tools/symbol_editor_drawing_tools.cpp @@ -57,6 +57,7 @@ SYMBOL_EDITOR_DRAWING_TOOLS::SYMBOL_EDITOR_DRAWING_TOOLS() : m_drawSpecificBodyStyle( true ), m_drawSpecificUnit( false ), m_inDrawShape( false ), + m_inPlaceAnchor( false ), m_inTwoClickPlace( false ) { } @@ -613,6 +614,11 @@ int SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape( const TOOL_EVENT& aEvent, std::opt int SYMBOL_EDITOR_DRAWING_TOOLS::PlaceAnchor( const TOOL_EVENT& aEvent ) { + if( m_inPlaceAnchor ) + return 0; + + REENTRANCY_GUARD guard( &m_inPlaceAnchor ); + m_frame->PushTool( aEvent ); auto setCursor = diff --git a/eeschema/tools/symbol_editor_drawing_tools.h b/eeschema/tools/symbol_editor_drawing_tools.h index 8fbc9256b3..5a909a9854 100644 --- a/eeschema/tools/symbol_editor_drawing_tools.h +++ b/eeschema/tools/symbol_editor_drawing_tools.h @@ -86,6 +86,7 @@ private: ///< Re-entrancy guards bool m_inDrawShape; + bool m_inPlaceAnchor; bool m_inTwoClickPlace; private: