https://bugs.kde.org/show_bug.cgi?id=434027
Alois Wohlschlager <alo...@gmx-topmail.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|5.21.1 |git Product|plasmashell |frameworks-kholidays Ever confirmed|0 |1 Assignee|plasma-b...@kde.org |kdepim-b...@kde.org Target Milestone|1.0 |--- CC| |alo...@gmx-topmail.de Status|REPORTED |CONFIRMED Component|Calendar |general Summary|Scrolling past year -1 |Easter calculation causes |still crashes Plasma |division by zero for some | |negative years --- Comment #1 from Alois Wohlschlager <alo...@gmx-topmail.de> --- Backtrace with more debug symbols: Application: Plasma (plasmashell), signal: Floating point exception Content of s_kcrashErrorMessage: [Current thread is 1 (LWP 30819)] [KCrash Handler] #5 0x00007fda35c8b438 in KHolidays::HolidayParserDriverPlan::easter(int) (this=this@entry=0x7fffe99af728, year=-4) at /home/alois/kde/src/frameworks/kholidays/src/parsers/plan2/holidayparserdriverplan.cpp:235 #6 0x00007fda35c8ce0f in KHolidays::HolidayParserDriverPlan::parse() (this=0x7fffe99af728) at /home/alois/kde/src/frameworks/kholidays/src/parsers/plan2/holidayparserdriverplan.cpp:95 #7 0x00007fda35c81d7e in KHolidays::HolidayParserDriver::parseHolidays(QDate const&, QDate const&) (this=0x21bcb40, startDate=..., endDate=...) at /home/alois/kde/src/frameworks/kholidays/src/parsers/holidayparserdriver.cpp:55 #8 0x00007fda35c7bed9 in KHolidays::HolidayRegion::holidays(QDate const&, QDate const&) const (this=0x21e47b0, startDate=..., endDate=...) at /home/alois/kde/src/frameworks/kholidays/src/holidayregion.cpp:1078 #9 0x00007fda35c6c82b in () at /usr/lib64/qt5/plugins/plasmacalendarplugins/holidaysevents.so #10 0x00007fda35ddaf2f in DaysModel::update() (this=0x270c5c0) at /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/calendar/daysmodel.cpp:90 #11 DaysModel::update() (this=0x270c5c0) at /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/calendar/daysmodel.cpp:77 #12 0x00007fda35dd96b4 in Calendar::updateData() (this=this@entry=0x2712200) at /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/calendar/calendar.cpp:296 #13 0x00007fda35dd9918 in Calendar::updateData() (this=0x2712200) at /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/calendar/calendar.cpp:55 #14 Calendar::setDisplayedDate(QDate const&) (this=this@entry=0x2712200, dateTime=...) at /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/calendar/calendar.cpp:47 #15 0x00007fda35dd9b2e in Calendar::setDisplayedDate(QDate const&) (dateTime=..., this=0x2712200) at /usr/include/qt5/QtCore/qdatetime.h:150 #16 Calendar::previousMonth() (this=0x2712200) at /home/alois/kde/src/frameworks/plasma-framework/src/declarativeimports/calendar/calendar.cpp:343 #17 0x00007fda35dd66af in Calendar::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x2712200, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=12, _a=_a@entry=0x7fffe99afde0) at /home/alois/kde/build/frameworks/plasma-framework/src/declarativeimports/calendar/calendarplugin_autogen/EWIEGA46WW/moc_calendar.cpp:231 #18 0x00007fda35dd7053 in Calendar::qt_metacall(QMetaObject::Call, int, void**) (this=0x2712200, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0x7fffe99afde0) at /home/alois/kde/build/frameworks/plasma-framework/src/declarativeimports/calendar/calendarplugin_autogen/EWIEGA46WW/moc_calendar.cpp:392 #19 0x00007fda83b9fd9d in () at /usr/lib64/libQt5Qml.so.5 #20 0x00007fda83a88a4e in () at /usr/lib64/libQt5Qml.so.5 #21 0x00007fda83a8afda in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/libQt5Qml.so.5 #22 0x00007fda83ab7cba in QV4::Runtime::CallPropertyLookup::call(QV4::ExecutionEngine*, QV4::Value const&, unsigned int, QV4::Value*, int) () at /usr/lib64/libQt5Qml.so.5 #23 0x00007fda595eba52 in () #24 0x0000000000000000 in () [Inferior 1 (process 30819) detached] The issue is caused by the easter calculation blowing up for negative years because division and modulo in C do not correspond to the mathematical definition of the operations for negative operands. I think the best fix will be to not calculate easter at all for negative years because it does not make any sense for obvious reasons. -- You are receiving this mail because: You are watching all bug changes.