Age | Commit message (Collapse) | Author |
|
The stack trace at the moment of calling implLookupClient with
nClient == -1 was:
> ucrtbased.dll!abort() Line 61 C++
> ucrtbased.dll!common_assert_to_stderr<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number) Line 187 C++
> ucrtbased.dll!common_assert<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number, void * const return_address) Line 420 C++
> ucrtbased.dll!_wassert(const wchar_t * expression, const wchar_t * file_name, unsigned int line_number) Line 444 C++
> comphelper.dll!`anonymous namespace'::implLookupClient(const unsigned long nClient, std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned long const ,comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> *>>>> & rPos) Line 139 C++
> comphelper.dll!comphelper::AccessibleEventNotifier::addEvent(const unsigned long _nClient, const com::sun::star::accessibility::AccessibleEventObject & _rEvent) Line 249 C++
> svxlo.dll!accessibility::AccessibleTextHelper_Impl::FireEvent(const com::sun::star::accessibility::AccessibleEventObject & rEvent) Line 1416 C++
> svxlo.dll!accessibility::AccessibleTextHelper_Impl::FireEvent(const short nEventId, const com::sun::star::uno::Any & rNewValue, const com::sun::star::uno::Any & rOldValue) Line 1408 C++
> svxlo.dll!accessibility::AccessibleTextHelper_Impl::ShutdownEditSource() Line 700 C++
> svxlo.dll!accessibility::AccessibleTextHelper_Impl::SetEditSource(std::unique_ptr<SvxEditSource,std::default_delete<SvxEditSource>> && pEditSource) Line 717 C++
> svxlo.dll!accessibility::AccessibleTextHelper::SetEditSource(std::unique_ptr<SvxEditSource,std::default_delete<SvxEditSource>> && pEditSource) Line 1548 C++
> svxlo.dll!WeldEditAccessible::ClearWin() Line 552 C++
> svxlo.dll!WeldEditView::~WeldEditView() Line 864 C++
> smlo.dll!SmEditTextWindow::~SmEditTextWindow() Line 85 C++
> smlo.dll!SmEditTextWindow::`scalar deleting destructor'(unsigned int) C++
> smlo.dll!std::default_delete<SmEditTextWindow>::operator()(SmEditTextWindow * _Ptr) Line 3129 C++
> smlo.dll!std::unique_ptr<SmEditTextWindow,std::default_delete<SmEditTextWindow>>::reset(SmEditTextWindow * _Ptr) Line 3276 C++
> smlo.dll!SmEditWindow::DeleteEditView() Line 853 C++
> smlo.dll!SmEditWindow::~SmEditWindow() Line 139 C++
> smlo.dll!SmEditWindow::`scalar deleting destructor'(unsigned int) C++
> smlo.dll!o3tl::default_delete<SmEditWindow>::operator()(SmEditWindow * p) Line 46 C++
> smlo.dll!std::unique_ptr<SmEditWindow,o3tl::default_delete<SmEditWindow>>::reset(SmEditWindow * _Ptr) Line 3276 C++
> smlo.dll!SmCmdBoxWindow::dispose() Line 931 C++
> vcllo.dll!VclReferenceBase::disposeOnce() Line 39 C++
> sfxlo.dll!VclPtr<vcl::Window>::disposeAndClear() Line 206 C++
> sfxlo.dll!SfxChildWindow::~SfxChildWindow() Line 198 C++
> smlo.dll!SmCmdBoxWrapper::~SmCmdBoxWrapper() C++
> smlo.dll!SmCmdBoxWrapper::`scalar deleting destructor'(unsigned int) C++
> sfxlo.dll!SfxChildWindow::Destroy() Line 176 C++
> sfxlo.dll!SfxWorkWindow::DeleteControllers_Impl() Line 599 C++
> sfxlo.dll!SfxFrame::DoClose_Impl() Line 133 C++
> sfxlo.dll!SfxBaseController::dispose() Line 981 C++
> fwklo.dll!`anonymous namespace'::XFrameImpl::setComponent(const com::sun::star::uno::Reference<com::sun::star::awt::XWindow> & xComponentWindow, const com::sun::star::uno::Reference<com::sun::star::frame::XController> & xController) Line 1485 C++
> fwklo.dll!`anonymous namespace'::XFrameImpl::close(unsigned char bDeliverOwnership) Line 1696 C++
> fwklo.dll!framework::Desktop::impl_closeFrames(bool bAllowUI) Line 1702 C++
> fwklo.dll!framework::Desktop::terminate() Line 214 C++
> fwklo.dll!framework::CloseDispatcher::implts_terminateApplication() Line 543 C++
> fwklo.dll!framework::CloseDispatcher::impl_asyncCallback(LinkParamNone * __formal) Line 397 C++
> fwklo.dll!framework::CloseDispatcher::LinkStubimpl_asyncCallback(void * instance, LinkParamNone * data) Line 245 C++
> vcllo.dll!Link<LinkParamNone *,void>::Call(LinkParamNone * data) Line 111 C++
> vcllo.dll!vcl::EventPoster::DoEvent_Impl(void * __formal) Line 53 C++
> vcllo.dll!vcl::EventPoster::LinkStubDoEvent_Impl(void * instance, void * data) Line 48 C++
> vcllo.dll!Link<void *,void>::Call(void * data) Line 111 C++
> vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 2232 C++
> vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalEvent nEvent, const void * pEvent) Line 2800 C++
> vcllo.dll!SalFrame::CallCallback(SalEvent nEvent, const void * pEvent) Line 308 C++
> vclplug_winlo.dll!ImplHandleUserEvent(HWND__ * hWnd, __int64 lParam) Line 4214 C++
> vclplug_winlo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 5865 C++
> vclplug_winlo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 5972 C++
> user32.dll!UserCallWinProcCheckWow() Unknown
> user32.dll!DispatchMessageWorker() Unknown
> vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 475 C++
> vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 506 C++
> vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 581 C++
> vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 474 C++
> vcllo.dll!Application::Yield() Line 559 C++
> vcllo.dll!Application::Execute() Line 452 C++
> sofficeapp.dll!desktop::Desktop::Main() Line 1600 C++
> vcllo.dll!ImplSVMain() Line 202 C++
> vcllo.dll!SVMain() Line 235 C++
> sofficeapp.dll!soffice_main() Line 94 C++
> soffice.bin!sal_main() Line 51 C
> soffice.bin!main(int argc, char * * argv) Line 49 C
Firing the event when we already set the id to mean "revoked"
seems wrong. Also use the correct type for the id.
Change-Id: Ie2e180c0c8c112023f789968ffa785f046de9d76
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135058
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I59b1b3f817a9028f132456ea5094f38f88674d00
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133768
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
As mentioned in
Change-Id I4681c28c9d18cf1953be5127765f4aa94563662d
("chart a11y: Drop bSendGlobally param from AccessibleBase::BroadcastAccEvent"),
calling it has no effect, the `fireFocusGained` and
`fireFocusLost` methods of the `XExtendedToolkit`
interface in its only implementation
in `VCLXToolkit` do nothing, so just drop it.
Change-Id: Ie9352a4e4021d7bf0b35de71f55afc660795b906
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131736
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
instead of casting everywhere
Change-Id: I547ad294e612488aef11788bb54e086897c19f93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131707
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ic71ae0645c85ec27cc6a172d379070fe88a9f452
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131045
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
See tdf#42949 for motivation
Change-Id: I25779cbfb1aa93c31d6e12ac95e136b3bdbbc058
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130403
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
so that subclasses can drop the lock while calling listeners
Change-Id: I6105438110af08f10b0ed50057b28172c3442b95
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127434
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I24b1f497a77b7ff896060a8f7dacc5d3a5e27ea2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127411
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iddd7438161ead93b27cf8e8058ca5b1eae3d8001
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127075
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ib5fda9469f9a1987cf9071c0e228c582cfb3dfa1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124397
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
... to avoid hidden cost of multiple COW checks, because they
call getArray() internally.
This obsoletes [loplugin:sequenceloop].
Also rename toNonConstRange to asNonConstRange, to reflect that
the result is a view of the sequence, not an independent object.
TODO: also drop non-const operator[], but introduce operator[]
in SequenceRange.
Change-Id: Idd5fd7a3400fe65274d2a6343025e2ef8911635d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123518
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
The scenarios are:
1. Calling sequence's begin() and end() in pairs to pass to algorithms
(both calls use getArray(), which does the COW checks)
2. In addition to #1, calling end() again when checking result of find
algorithms, and/or begin() to calculate result's distance
3. Using non-const sequences in range-based for loops, which internally
do #1
4. Assigning sequence to another sequence variable, and then modifying
one of them
In many cases, the sequences could be made const, or treated as const
for the purposes of the algorithms (using std::as_const, std::cbegin,
and std::cend). Where algorithm modifies the sequence, it was changed
to only call getArray() once. For that, css::uno::toNonConstRange was
introduced, which returns a struct (sublclass of std::pair) with two
iterators [begin, end], that are calculated using one call to begin()
and one call to getLength().
To handle #4, css::uno::Sequence::swap was introduced, that swaps the
internal pointer to uno_Sequence. So when a local Sequence variable
should be assigned to another variable, and the latter will be modified
further, it's now possible to use swap instead, so the two sequences
are kept independent.
The modified places were found by temporarily removing non-const end().
Change-Id: I8fe2787f200eecb70744e8b77fbdf7a49653f628
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123542
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
...for LIBO_INTERNAL_ONLY, instead of having them as additional overloads. That
way, loplugin:bufferadd and loplugin:stringviewparam found many further
opportunities for simplification (all addressed here). Some notes:
* There is no longer an implicit conversion from O[U]String to O[U]StringBuffer
(as that goes via user-defined conversions through string_view now), which was
most noticeable in copy initializations like
OStringBuffer buf = someStr;
that had to be changed to direct initialization,
OStringBuffer buf(someStr);
But then again, it wasn't too many places that were affected and I think we can
live with that.
* I made the O[U]StringBuffer ctors taking string_view non-explicit, mainly to
get them in line with their counterparts taking O[U]String.
* I added an OUStringBuffer::lastIndexOf string_view overload that was missing
(relative to OUStringBuffer::indexOf).
* loplugin:stringconstant needed some addition to keep the
compilerplugins/clang/test/stringconstant.cxx checks related to
OStringBuffer::append and OStringBuffer::insert working.
* loplugin:stringviewparam no longer needs the special O[U]StringBuffer-related
code that had been introduced in 1250aecd71fabde4dba990bfceb61bbe8e06b8ea
"loplugin:stringviewparam extend to new.."
Change-Id: Ib1bb8c4632d99b744e742605a9fef6eae959fd72
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122904
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I08aed09b0acd283d700bdf75f650e93dba7c7b85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123341
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I56af10be5f1155db4c7f2190495fe036a9b4236a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123054
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Reading 'rectA.IsInside( rectB )' kind of suggests that the code
checks whether 'rectA is inside rectB', but it's actually the other
way around. Rename IsInside() -> Contains(), IsOver() -> Overlaps(),
which should make it clear which way the logic goes.
Change-Id: I9347450fe7dc34c96df6d636a4e3e660de1801ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122271
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins
|