Files
GoldenCheetah/.gitignore
Magnus Gille 9bb90e3737 Fix crash safety issues: Unsafe signal connections and tree child access (#4761)
Systematically resolved 30 identified potential crash vectors and established automated regression testing to prevent strict reoccurrence.

Key Changes:
- Fixed 11 instances of unsafe `QObject::connect` calls (missing context object) in srd/Charts/AgendaWindow.cpp, FixSpikes.cpp, src/FileIO/FixSpikes.cpp, src/Gui/Agenda.cpp, src/Gui/BatchProcessingDialog.cpp, and src/Gui/IconManager.cpp. This prevents crashes caused by signals firing after the receiver has been destroyed.
- Fixed 19 instances of unsafe `QTreeWidgetItem` child access in src/Charts/LTMChartParser.cpp, src/Gui/ColorButton.cpp, src/Gui/AthletePages.cpp, and src/Gui/Pages.cpp by adding defensive `nullptr` checks before dereferencing.
- Added Python detection scripts util/check_unsafe_connects.py and util/check_unsafe_tree_child.py to statically analyze the codebase for these specific unsafe patterns.
- Integrated detection scripts into the regression test suite under `unittests/Core/signalSafety`, verifying the fixes and enforcing a strict zero-tolerance policy for future regressions.
- Added `testSplineCrash` to cover edge cases with empty spline lookups.
2025-12-17 13:52:38 -03:00

86 lines
1.1 KiB
Plaintext

Makefile
.qmake.stash
*.o
*.so.*
*.so
*.a
*~
*.orig
*.rej
# old skool
.svn
*.pri
*.prl
*.swp
*.user
*.AppImage
*.tab.c
*.tab.h
# osx noise
.DS_Store
profile
# qmake Xcode generator side-effects
*.xcodeproj
xcshareddata/
*.xcworkspace
*.pbxproj
*.mak
*.build/
moc_*
moc/
.moc
obj/
lib/
bin/
plugins/
resources/
src/debug/
src/release/
doc/doxygen/latex
doc/doxygen/html
# qt creator builds
build-src*
qwt/src/debug/
qwt/src/release/
src/Makefile.Debug
src/Makefile.Release
src/object_script.GoldenCheetah.Debug
src/object_script.GoldenCheetah.Release
qwt/src/object_script.libqwt.Release
qwt/src/object_script.libqwtd.Debug
qwt/src/Makefile.Release
qwt/src/Makefile.Debug
qwt/textengines/mathml/debug/
qwt/textengines/mathml/release/
build.pro.user
build.pro.user.*
doc/contrib/WASP Packet Protocol.pdf
# unittests
unittests/Core/season/season
unittests/Core/seasonOffset/seasonOffset
unittests/Core/seasonParser/seasonParser
unittests/Core/units/units
unittests/Gui/calendarData/calendarData
# Qt testlib
target_wrapper.sh
# Precompiled Headers
*.gch
*.pch
*.gch/
_pch/
# Generated Source Files
*_lex.cpp
*_yacc.cpp
*_yacc.h
qrc_*.cpp