Bug 426911

Summary: Crash when reloading SeExpr script
Product: [Applications] krita Reporter: Sebastian <sebastian_viebach>
Component: GeneralAssignee: amyspark <amy>
Status: RESOLVED FIXED    
Severity: crash CC: ahab.greybeard, dimula73, halla
Priority: NOR Keywords: regression, release_blocker
Version: 4.4.0-beta1   
Target Milestone: ---   
Platform: Appimage   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: System information for bug reports

Description Sebastian 2020-09-23 17:23:37 UTC
Created attachment 131887 [details]
System information for bug reports

SUMMARY
Krita crashes when reloading a SeExpr script in the Layer Properties dialogue

STEPS TO REPRODUCE
1. Open/create any file in Krita
2. Add a fill layer
3. In the Layer Properties dialogue select "SeExpr"
4. Change one or more settings of a script so that the "Reload the preset" button appears
5. Click the "Reload the preset" button

OBSERVED RESULT
Krita crashes

EXPECTED RESULT
Krita reloads the SeExpr script

SOFTWARE/OS VERSIONS 
Linux/KDE Plasma: Kubuntu 20.04
(available in About System)
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8
(Probably not useful with Appimage)

ADDITIONAL INFORMATION
Monitors: 1
Graphics tablet: Wacom Intuos Art Medium
Comment 1 Ahab Greybeard 2020-09-23 18:02:55 UTC
I can confirm this for the 4.4.0 beta1 and the Sep22 4.4.1 alpha (git b8f687a) appimages.

Terminal output is:
_______________________________________
Dialog "krita/generators/seexpr" has a widget without an object name: QScrollBar(0x308b8af0)
Dialog "krita/generators/seexpr" has a widget without an object name: QScrollBar(0x308b94a0)
ASSERT (krita): "!m_currentPreset->isDirty()" in file /home/appimage/workspace/Krita_Release_Appimage_Build/krita/plugins/generators/seexpr/kis_wdg_seexpr.cpp, line 293
Aborted
_____________________________________


The 'Dialog' lines are caused by adjusting the colour dot sliders in the Disney noisecolour2 gradient.
Comment 2 Halla Rempt 2020-09-23 18:37:30 UTC
Assigning to Amyspark
Comment 3 amyspark 2020-09-23 20:52:32 UTC
Acknowledging. I'll work on it
Comment 4 amyspark 2020-09-25 12:13:19 UTC
Git commit a61e5b5384bec5beefa32531fc72dbbe28205f85 by L. E. Segovia.
Committed on 25/09/2020 at 12:09.
Pushed by lsegovia into branch 'master'.

SeExpr: assert isDirty on the correct preset instance

Unlike the krita/4.3 version of this commit, here we also need to
restore a missing clone() on resource assignment.

M  +4    -2    plugins/generators/seexpr/kis_wdg_seexpr.cpp

https://invent.kde.org/graphics/krita/commit/a61e5b5384bec5beefa32531fc72dbbe28205f85
Comment 5 amyspark 2020-09-25 12:13:51 UTC
Git commit ea38cf67117870b9234c6d0f5fda34efdb37364d by L. E. Segovia.
Committed on 25/09/2020 at 12:10.
Pushed by lsegovia into branch 'krita/4.3'.

SeExpr: assert isDirty on the correct preset instance

(cherry picked from commit 190ed7b02848b4bcb6d48aa1f2c352a174c624af)

M  +2    -1    plugins/generators/seexpr/kis_wdg_seexpr.cpp

https://invent.kde.org/graphics/krita/commit/ea38cf67117870b9234c6d0f5fda34efdb37364d
Comment 6 amyspark 2020-09-25 12:14:16 UTC
Git commit 190ed7b02848b4bcb6d48aa1f2c352a174c624af by L. E. Segovia.
Committed on 25/09/2020 at 12:09.
Pushed by lsegovia into branch 'krita/4.4.0'.

SeExpr: assert isDirty on the correct preset instance

M  +2    -1    plugins/generators/seexpr/kis_wdg_seexpr.cpp

https://invent.kde.org/graphics/krita/commit/190ed7b02848b4bcb6d48aa1f2c352a174c624af