diff options
author | Jim Raykowski <raykowj@gmail.com> | 2024-04-21 19:23:34 -0800 |
---|---|---|
committer | Jim Raykowski <raykowj@gmail.com> | 2024-04-25 05:38:42 +0200 |
commit | b2b84dfa1d4f5da32f3335c59d618d385173a170 (patch) | |
tree | 921adbfe6cba5ac650e7dc796d9910c8c5ec5e92 /sysui/desktop | |
parent | d4f6534e8870e8f271984c37ce54a6878f372ae1 (diff) |
tdf#160598 SwNavigator enhancement to delete footnotes/endnotesHEADmaster
m_bDocHasChanged is checked first in the tooltip and mouse move handlers
to prevent crashes/asserts that happen when SfxPoolItemHolder m_aAttr
references a delete poolitem or poolitem data. Without this check the
following types of crashes/asserts can happen:
----
Unspecified Application Error
Fatal exception: Signal 6
Stack:
0 sal::backtrace_get(unsigned int) at /home/lo/Dev/LO1/core/sal/osl/
unx/backtraceapi.cxx:42 (discriminator 3)
1 (anonymous namespace)::printStack(int) at /home/lo/Dev/LO1/core/sal/
osl/unx/signal.cxx:289
2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /
home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:330
3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*)
at /home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:427
4 __restore_rt at libc_sigaction.c:?
5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44
6 __GI_raise at ./signal/../sysdeps/posix/raise.c:27
7 __GI_abort at ./stdlib/abort.c:81 (discriminator 21)
8 SalAbort(rtl::OUString const&, bool) at /home/lo/Dev/LO1/core/vcl/
source/app/salplug.cxx:412
9 Application::Abort(rtl::OUString const&) at /home/lo/Dev/LO1/core/
vcl/source/app/svapp.cxx:316
10 desktop::Desktop::Exception(ExceptionCategory) at /home/lo/Dev/LO1/
core/desktop/source/app/app.cxx:1203 (discriminator 2)
11 VCLExceptionSignal_impl(void*, oslSignalInfo*) at /home/lo/Dev/LO1/
core/vcl/source/app/svmain.cxx:176
12 callSignalHandler(oslSignalInfo*) at /home/lo/Dev/LO1/core/sal/osl/
all/signalshared.cxx:47
13 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*)
at /home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:423
14 __restore_rt at libc_sigaction.c:?
15 SfxPoolItem::Which() const at /home/lo/Dev/LO1/core/include/svl/
poolitem.hxx:225
16 SfxPoolItemHolder::Which() const at /home/lo/Dev/LO1/core/include/
svl/itemset.hxx:74 (discriminator 1)
17 SwTextAttr::GetFootnote() const at /home/lo/Dev/LO1/core/sw/inc/
txatbase.hxx:223 (discriminator 1)
18 SwContentTree::QueryTooltipHdl(weld::TreeIter const&) at /home/lo/
Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4974
19 SwContentTree::LinkStubQueryTooltipHdl(void*, weld::TreeIter const&)
at /home/lo/Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4895
20 Link<weld::TreeIter const&, rtl::OUString>::Call(weld::TreeIter
const&) const at /home/lo/Dev/LO1/core/include/tools/link.hxx:111
21 weld::TreeView::signal_query_tooltip(weld::TreeIter const&) at /
home/lo/Dev/LO1/core/include/vcl/weld.hxx:977
22 SalInstanceTreeView::TooltipHdl(SvTreeListEntry*) at /home/lo/Dev/
LO1/core/vcl/source/app/salvtables.cxx:5154
23 SalInstanceTreeView::LinkStubTooltipHdl(void*, SvTreeListEntry*) at
/home/lo/Dev/LO1/core/vcl/source/app/salvtables.cxx:5151
24 Link<SvTreeListEntry*, rtl::OUString>::Call(SvTreeListEntry*) const
at /home/lo/Dev/LO1/core/include/tools/link.hxx:111
25 SvTreeListBox::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/
core/vcl/source/treelist/treelistbox.cxx:3284
26 ImplHandleMouseHelpRequest(vcl::Window*, Point const&) at /home/lo/
Dev/LO1/core/vcl/source/window/winproc.cxx:186
27 ImplHandleMouseEvent(VclPtr<vcl::Window> const&, NotifyEventType,
bool, long, long, unsigned long, unsigned short, MouseEventModifiers) at
/home/lo/Dev/LO1/core/vcl/source/window/winproc.cxx:740
28 ImplHandleSalMouseMove(vcl::Window*, SalMouseEvent const*) at /home/
lo/Dev/LO1/core/vcl/source/window/winproc.cxx:2332
29 ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at /home/
lo/Dev/LO1/core/vcl/source/window/winproc.cxx:2665 (discriminator 1)
30 SalFrame::CallCallback(SalEvent, void const*) const at /home/lo/Dev/
LO1/core/vcl/inc/salframe.hxx:312 (discriminator 1)
31 QtFrame::CallCallback(SalEvent, void const*) const at /home/lo/Dev/
LO1/core/vcl/inc/qt5/QtFrame.hxx:228
32 QtWidget::mouseMoveEvent(QMouseEvent*) at /home/lo/Dev/LO1/core/vcl/
qt5/QtWidget.cxx:202
33 QWidget::event(QEvent*) in /lib/x86_64-linux-gnu/libQt5Widgets.so.5
34 QtWidget::event(QEvent*) at /home/lo/Dev/LO1/core/vcl/qt5/
QtWidget.cxx:738 (discriminator 2)
35 QApplicationPrivate::notify_helper(QObject*, QEvent*) in /lib/
x86_64-linux-gnu/libQt5Widgets.so.5
36 QApplication::notify(QObject*, QEvent*) in /lib/x86_64-linux-gnu/
libQt5Widgets.so.5
37 QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib/x86_64-
linux-gnu/libQt5Core.so.5
38 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*,
QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) in /lib/
x86_64-linux-gnu/libQt5Widgets.so.5
39 QDesktopWidget::qt_metacall(QMetaObject::Call, int, void**) in /lib/
x86_64-linux-gnu/libQt5Widgets.so.5
40 QDesktopWidget::qt_metacall(QMetaObject::Call, int, void**) in /lib/
x86_64-linux-gnu/libQt5Widgets.so.5
41 QApplicationPrivate::notify_helper(QObject*, QEvent*) in /lib/
x86_64-linux-gnu/libQt5Widgets.so.5
42 QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib/x86_64-
linux-gnu/libQt5Core.so.5
43
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
in /lib/x86_64-linux-gnu/libQt5Gui.so.5
44
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
in /lib/x86_64-linux-gnu/libQt5Gui.so.5
45 QXcbNativeInterface::dumpNativeWindows(unsigned long long) const in
/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
46 g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0
48 g_main_context_iteration in /lib/x86_64-linux-gnu/libglib-2.0.so.0
49
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
in /lib/x86_64-linux-gnu/libQt5Core.so.5
50 QtInstance::ImplYield(bool, bool) at /home/lo/Dev/LO1/core/vcl/qt5/
QtInstance.cxx:453
51 QtInstance::DoYield(bool, bool) at /home/lo/Dev/LO1/core/vcl/qt5/
QtInstance.cxx:464
52 ImplYield(bool, bool) at /home/lo/Dev/LO1/core/vcl/source/app/
svapp.cxx:395
53 Application::Yield() at /home/lo/Dev/LO1/core/vcl/source/app/
svapp.cxx:483
54 Application::Execute() at /home/lo/Dev/LO1/core/vcl/source/app/
svapp.cxx:370
55 desktop::Desktop::Main() at /home/lo/Dev/LO1/core/desktop/source/
app/app.cxx:1617
56 ImplSVMain() at /home/lo/Dev/LO1/core/vcl/source/app/svmain.cxx:229
57 SVMain() at /home/lo/Dev/LO1/core/vcl/source/app/svmain.cxx:262
58 soffice_main at /home/lo/Dev/LO1/core/desktop/source/app/
sofficemain.cxx:93
59 sal_main at /home/lo/Dev/LO1/core/desktop/source/app/main.c:51
60 main at /home/lo/Dev/LO1/core/desktop/source/app/main.c:49
61 __libc_start_call_main at ./csu/../sysdeps/nptl/
libc_start_call_main.h:58
62 call_init at ./csu/../csu/libc-start.c:128
63 _start in /home/lo/Dev/LO1/core/instdir/program/soffice.bin
----
soffice.bin: /home/lo/Dev/LO1/core/sw/inc/txatbase.hxx:223: const
SwFormatFootnote& SwTextAttr::GetFootnote() const: Assertion `m_aAttr
&& m_aAttr.Which() == RES_TXTATR_FTN' failed.
Fatal exception: Signal 6
Stack:
0 sal::backtrace_get(unsigned int) at /home/lo/Dev/LO1/core/sal/osl/
unx/backtraceapi.cxx:42 (discriminator 3)
1 (anonymous namespace)::printStack(int) at /home/lo/Dev/LO1/core/sal/
osl/unx/signal.cxx:289
2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /
home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:330
3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*)
at /home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:427
4 __restore_rt at libc_sigaction.c:?
5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44
6 __GI_raise at ./signal/../sysdeps/posix/raise.c:27
7 __GI_abort at ./stdlib/abort.c:81 (discriminator 21)
8 _nl_load_domain at ./intl/loadmsgcat.c:1177
9 __GI___assert_fail at :?
10 SwTextAttr::GetFootnote() const at /home/lo/Dev/LO1/core/sw/inc/
txatbase.hxx:224
11 SwContentTree::QueryTooltipHdl(weld::TreeIter const&) at /home/lo/
Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4974
12 SwContentTree::LinkStubQueryTooltipHdl(void*, weld::TreeIter const&)
at /home/lo/Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4895
13 Link<weld::TreeIter const&, rtl::OUString>::Call(weld::TreeIter
const&) const at /home/lo/Dev/LO1/core/include/tools/link.hxx:111
14 weld::TreeView::signal_query_tooltip(weld::TreeIter const&) at /
home/lo/Dev/LO1/core/include/vcl/weld.hxx:977
15 (anonymous
namespace)::GtkInstanceTreeView::signalQueryTooltip(_GtkWidget*, int,
int, int, _GtkTooltip*, void*) at /home/lo/Dev/LO1/core/vcl/unx/gtk3/
gtkinst.cxx:14701 (discriminator 2)
16 gtk_socket_add_id in /lib/x86_64-linux-gnu/libgtk-3.so.0
17 g_closure_invoke in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
18 g_signal_handlers_destroy in /lib/x86_64-linux-gnu/
libgobject-2.0.so.0
19 g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
20 g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
21 gtk_tooltip_set_icon_from_gicon in /lib/x86_64-linux-gnu/
libgtk-3.so.0
22 gtk_tooltip_set_icon_from_gicon in /lib/x86_64-linux-gnu/
libgtk-3.so.0
23 gtk_main_do_event in /lib/x86_64-linux-gnu/libgtk-3.so.0
24 gdk_drawing_context_get_clip in /lib/x86_64-linux-gnu/libgdk-3.so.0
25 gdk_x11_drag_context_get_type in /lib/x86_64-linux-gnu/libgdk-3.so.0
26 g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0
27 g_io_channel_new_file in /lib/x86_64-linux-gnu/libglib-2.0.so.0
28 g_main_loop_run in /lib/x86_64-linux-gnu/libglib-2.0.so.0
29 main_loop_run(_GMainLoop*) at /home/lo/Dev/LO1/core/vcl/inc/unx/gtk/
gtkdata.hxx:63
30 (anonymous namespace)::DialogRunner::run() at /home/lo/Dev/LO1/core/
vcl/unx/gtk3/gtkinst.cxx:6747 (discriminator 13)
31 (anonymous namespace)::GtkInstanceDialog::run() at /home/lo/Dev/LO1/
core/vcl/unx/gtk3/gtkinst.cxx:10046
32 weld::DialogController::run() at /home/lo/Dev/LO1/core/include/vcl/
weld.hxx:2669
33 (anonymous namespace)::RecoveryUI::impl_doEmergencySave() at /home/
lo/Dev/LO1/core/svx/source/unodraw/recoveryui.cxx:258 (discriminator 1)
34 (anonymous
namespace)::RecoveryUI::dispatchWithReturnValue(com::sun::star::util::URL
const&,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) at /home/lo/Dev/LO1/core/svx/source/unodraw/recoveryui.cxx:148
35 desktop::(anonymous namespace)::impl_callRecoveryUI(bool, bool) at /
home/lo/Dev/LO1/core/desktop/source/app/app.cxx:1022 (discriminator 5)
36 desktop::Desktop::Exception(ExceptionCategory) at /home/lo/Dev/LO1/
core/desktop/source/app/app.cxx:1177
37 VCLExceptionSignal_impl(void*, oslSignalInfo*) at /home/lo/Dev/LO1/
core/vcl/source/app/svmain.cxx:176
38 callSignalHandler(oslSignalInfo*) at /home/lo/Dev/LO1/core/sal/osl/
all/signalshared.cxx:47
39 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*)
at /home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:423
40 __restore_rt at libc_sigaction.c:?
41 SfxPoolItem::Which() const at /home/lo/Dev/LO1/core/include/svl/
poolitem.hxx:225
42 SfxPoolItemHolder::Which() const at /home/lo/Dev/LO1/core/include/
svl/itemset.hxx:74 (discriminator 1)
43 SwTextAttr::GetFootnote() const at /home/lo/Dev/LO1/core/sw/inc/
txatbase.hxx:223 (discriminator 1)
44 SwContentTree::QueryTooltipHdl(weld::TreeIter const&) at /home/lo/
Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4974
45 SwContentTree::LinkStubQueryTooltipHdl(void*, weld::TreeIter const&)
at /home/lo/Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4895
46 Link<weld::TreeIter const&, rtl::OUString>::Call(weld::TreeIter
const&) const at /home/lo/Dev/LO1/core/include/tools/link.hxx:111
47 weld::TreeView::signal_query_tooltip(weld::TreeIter const&) at /
home/lo/Dev/LO1/core/include/vcl/weld.hxx:977
48 (anonymous
namespace)::GtkInstanceTreeView::signalQueryTooltip(_GtkWidget*, int,
int, int, _GtkTooltip*, void*) at /home/lo/Dev/LO1/core/vcl/unx/gtk3/
gtkinst.cxx:14701 (discriminator 2)
49 gtk_socket_add_id in /lib/x86_64-linux-gnu/libgtk-3.so.0
50 g_closure_invoke in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
51 g_signal_handlers_destroy in /lib/x86_64-linux-gnu/
libgobject-2.0.so.0
52 g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
53 g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
54 gtk_tooltip_set_icon_from_gicon in /lib/x86_64-linux-gnu/
libgtk-3.so.0
55 gtk_tooltip_set_icon_from_gicon in /lib/x86_64-linux-gnu/
libgtk-3.so.0
56 gtk_tooltip_trigger_tooltip_query in /lib/x86_64-linux-gnu/
libgtk-3.so.0
57 GtkSalFrame::ShowTooltip(rtl::OUString const&, tools::Rectangle
const&) at /home/lo/Dev/LO1/core/vcl/unx/gtk3/gtkframe.cxx:3154
58 ImplShowHelpWindow(vcl::Window*, unsigned short, QuickHelpFlags,
rtl::OUString const&, Point const&, tools::Rectangle const&) at /home/
lo/Dev/LO1/core/vcl/source/app/help.cxx:492
59 Help::ShowQuickHelp(vcl::Window*, tools::Rectangle const&,
rtl::OUString const&, QuickHelpFlags) at /home/lo/Dev/LO1/core/vcl/
source/app/help.cxx:191 (discriminator 5)
60 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
61 ImplBorderWindow::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/
core/vcl/source/window/brdwin.cxx:1673
62 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
63 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
64 ImplBorderWindow::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/
core/vcl/source/window/brdwin.cxx:1673
65 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
66 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
67 SplitWindow::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/splitwin.cxx:2117
68 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
69 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
70 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
71 vcl::Window::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/core/
vcl/source/window/window.cxx:1928
72 ImplHandleMouseHelpRequest(vcl::Window*, Point const&) at /home/lo/
Dev/LO1/core/vcl/source/window/winproc.cxx:186
73 ImplHandleMouseEvent(VclPtr<vcl::Window> const&, NotifyEventType,
bool, long, long, unsigned long, unsigned short, MouseEventModifiers) at
/home/lo/Dev/LO1/core/vcl/source/window/winproc.cxx:740
74 ImplHandleSalMouseMove(vcl::Window*, SalMouseEvent const*) at /home/
lo/Dev/LO1/core/vcl/source/window/winproc.cxx:2332
75 ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at /home/
lo/Dev/LO1/core/vcl/source/window/winproc.cxx:2665 (discriminator 1)
76 SalFrame::CallCallback(SalEvent, void const*) const at /home/lo/Dev/
LO1/core/vcl/inc/salframe.hxx:312 (discriminator 1)
77 GtkSalFrame::CallCallbackExc(SalEvent, void const*) const at /home/
lo/Dev/LO1/core/vcl/unx/gtk3/gtkframe.cxx:6388
78 GtkSalFrame::DrawingAreaMotion(int, int, unsigned int, unsigned int)
at /home/lo/Dev/LO1/core/vcl/unx/gtk3/gtkframe.cxx:3719
79 GtkSalFrame::signalMotion(_GtkWidget*, _GdkEventMotion*, void*) at /
home/lo/Dev/LO1/core/vcl/unx/gtk3/gtkframe.cxx:3756
80 gtk_socket_add_id in /lib/x86_64-linux-gnu/libgtk-3.so.0
81 g_closure_invoke in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
82 g_signal_handlers_destroy in /lib/x86_64-linux-gnu/
libgobject-2.0.so.0
83 g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
84 g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0
85 gtk_widget_init_template in /lib/x86_64-linux-gnu/libgtk-3.so.0
86 gtk_grab_remove in /lib/x86_64-linux-gnu/libgtk-3.so.0
87 gtk_main_do_event in /lib/x86_64-linux-gnu/libgtk-3.so.0
88 gdk_drawing_context_get_clip in /lib/x86_64-linux-gnu/libgdk-3.so.0
89 gdk_x11_drag_context_get_type in /lib/x86_64-linux-gnu/libgdk-3.so.0
90 g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0
91 g_io_channel_new_file in /lib/x86_64-linux-gnu/libglib-2.0.so.0
92 g_main_context_iteration in /lib/x86_64-linux-gnu/libglib-2.0.so.0
93 GtkSalData::Yield(bool, bool) at /home/lo/Dev/LO1/core/vcl/unx/gtk3/
gtkdata.cxx:405 (discriminator 6)
94 GtkInstance::DoYield(bool, bool) at /home/lo/Dev/LO1/core/vcl/unx/
gtk3/gtkinst.cxx:436
95 ImplYield(bool, bool) at /home/lo/Dev/LO1/core/vcl/source/app/
svapp.cxx:395
96 Application::Yield() at /home/lo/Dev/LO1/core/vcl/source/app/
svapp.cxx:483
97 Application::Execute() at /home/lo/Dev/LO1/core/vcl/source/app/
svapp.cxx:370
98 desktop::Desktop::Main() at /home/lo/Dev/LO1/core/desktop/source/
app/app.cxx:1617
99 ImplSVMain() at /home/lo/Dev/LO1/core/vcl/source/app/svmain.cxx:229
100 SVMain() at /home/lo/Dev/LO1/core/vcl/source/app/svmain.cxx:262
101 soffice_main at /home/lo/Dev/LO1/core/desktop/source/app/
sofficemain.cxx:93
102 sal_main at /home/lo/Dev/LO1/core/desktop/source/app/main.c:51
103 main at /home/lo/Dev/LO1/core/desktop/source/app/main.c:49
104 __libc_start_call_main at ./csu/../sysdeps/nptl/
libc_start_call_main.h:58
105 call_init at ./csu/../csu/libc-start.c:128
106 _start in /home/lo/Dev/LO1/core/instdir/program/soffice.bin
Change-Id: Id2bad55221a8603a1e12f870bdc1479e7709ee58
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166414
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Diffstat (limited to 'sysui/desktop')
0 files changed, 0 insertions, 0 deletions