On 2024-03-24 12:04, Stefano Crocco wrote:
Hello to everyone,
I hope this is the correct place to ask for information about a crash
regarding Kate part. If not, sorry for the noise.
A user reported a bug [1] for Konqueror, stating that when opening a
text
document in Konqueror using Kate part and using the Vi command :q!
Konqueror
crashes. According to the attached backtrace, the crash comes from
within
KTextEditor, but I'm not sure it's a bug within the framework itself or
it's
Konqueror which is using it in the wrong way.
According to the attached backtrace (from KTextEditor 6.0.0), the crash
happens in AppCommands::closeCurrentDocument() (line 302 of
appcommands.cpp).
The problem seems to be that AppCommands::closeCurrentDocument() calls
activeView()->document() but activeView() is nullptr. According to the
documentation for KTextEditor::MainWindow::activeView( ), this is
expected if
the active view is not available. I think there are the following
possibilities:
- closeCurrentDocument correctly assumes that in this situation
activeView()
should not return nullptr. The fact that it returns nullptr is caused
by
Konqueror not using KTextEditor correctly
- as above, but it's KTextEditor which fails to correctly set the
active view
- closeCurrentDocument is wrong in assuming that activeView() is valid
and
should check whether this is true before using it.
Without any knowledge of the internals of KTextEditor, I'd say that it
makes
sense for activeView() not to be nullptr, since the user just typed a
command
from within it, so I think the first two possibilities are the most
likely.
Konqueror itself doesn't do anything special with the part: it creates
it
using KPluginFactory::create and puts it inside a tab view, just as it
does
with any other part.
Could anyone tell me if it's Konqueror doing something wrong (and maybe
give
me a hint about what it's doing wrong) or it's a problem within
KatePart
itself?
Hi,
thanks for pointing do that, fixed with
https://invent.kde.org/frameworks/ktexteditor/-/commit/e9ea498d0e9f938510ae35612266097587a03746
Greetings
Christoph
Thanks in advance
Stefano
[1] https://bugs.kde.org/show_bug.cgi?id=482436