7cfcfa30aa
Crashreport signature: > kit-09946-09946 2024-11-25 16:46:13.180120 +0000 [ kitbroker_498 ] SIG Fatal signal received: SIGSEGV code: 1 for address: 0x0 > program/libmergedlo.so > SfxLokHelper::notifyUpdate(SfxViewShell const*, int) > sfx2/source/view/lokhelper.cxx:1072 > program/libswlo.so > SwViewShell::GetSfxViewShell() const > sw/inc/viewsh.hxx:472 > program/libswlo.so > SwCursorShell::UpdateCursor(unsigned short, bool) > sw/source/core/crsr/crsrsh.cxx:2382 ... > program/libmergedlo.so > framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun:⭐:uno::Sequence<com::sun:⭐🫘:PropertyValue> const&) > framework/source/services/desktop.cxx:592 I.e. it can happen that during load we don't yet have a view, handle this in SfxLokHelper::notifyUpdate() till it takes a pointer and not a reference. Change-Id: Ifa5d9300029076e91ba8722152a7d91a1f2ecbc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177343 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins |
||
---|---|---|
.. | ||
classification | ||
doc | ||
inc | ||
qa | ||
sdi | ||
source | ||
uiconfig/ui | ||
util | ||
AllLangMoTarget_sfx2.mk | ||
CppunitTest_sfx2_classification.mk | ||
CppunitTest_sfx2_controlleritem.mk | ||
CppunitTest_sfx2_dialogs_test.mk | ||
CppunitTest_sfx2_doc.mk | ||
CppunitTest_sfx2_metadatable.mk | ||
CppunitTest_sfx2_misc.mk | ||
CppunitTest_sfx2_view.mk | ||
CustomTarget_classification.mk | ||
IwyuFilter_sfx2.yaml | ||
JunitTest_sfx2_complex.mk | ||
JunitTest_sfx2_unoapi.mk | ||
Library_sfx.mk | ||
Makefile | ||
Module_sfx2.mk | ||
Package_classification.mk | ||
PythonTest_sfx2_python.mk | ||
README.md | ||
UIConfig_sfx.mk | ||
UITest_sfx2_doc.mk |
Legacy Framework
SFX
is the "old" framework, used for historical reasons.
An attempt of documentation of this module is located in [git:sfx2/doc]
.
It contains base classes for document model, view and controller, used
by "old" applications like sw
, sc
, sd
(while "new" applications
are based on the "new" UNO based framework in "framework").
The SFX framework is based on dispatching slots identified by integers
(SlotIDs
) to SfxShells
, and there is a dedicated IDL compiler (svidl
)
involved that generates C++ slot headers from SDI files in modules' sdi/
subdirectory.
Documentation about SFX dispatch, SDI etc.: https://wiki.openoffice.org/wiki/Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2
Document load/save code is maintained in [git:sfx2/source/doc/docfile.cxx
]
SfxMedium
class, which handles all the twisty load and save corner cases.
[git:sfx2/source/appl/sfxhelp.cxx]
Start procedure for the online
help viewer top level window; handling of help URL creation and
dispatch.
There are also some UNO services here that could really be implemented
anywhere, e.g. the DocumentProperties
or DocumentMetadataAccess
.
Notable files:
sfx2/source/dialog/backingwindow.cxx
Startcenter
buttons and the corresponding event handler.