There were over 150 places in *::Notify() functions that did some dynamic_cast<SfxSimpleHint*> of which ~98% were unnecessary because the base class SfxHint passed was an SfxSimpleHint anyway. dynamic_cast operations come with quite some cost, so avoid if possible. Specifically for ScFormulaCell::Notify() that created a bottleneck in scenarios where cells were notified that already handled a previous notification. In mass operations doing the dynamic_cast before it could be decided whether having to act on it or not this made 2/3 of all time spent in the Notify() call. To get rid of that rename/move SfxSimpleHint to SfxHint and let classes derive from SfxHint instead of SfxSimpleHint. This comes only with a slight cost that an additional sal_uInt32 is transported in such hints, initialized to 0, but this is neglectable compared to the huge gain. For the rare cases where a Notify() actually expects both, an SfxHint (formerly SfxSimpleHint) and a derived hint, this changed order of the dynamic_cast involved so the simple SfxHint::GetId() is handled last. Modules using such combinations can further optimize by treating the simple SfxHint::GetId() first once verified that none of the other derived hints use an ID not equal to zero respectively none of the ID values the simple hint uses. Change-Id: I9fcf723e3a4487ceb92336189d23a62c344cf0ce Reviewed-on: https://gerrit.libreoffice.org/29205 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
145 lines
4.9 KiB
C++
145 lines
4.9 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
/*
|
|
This file has been autogenerated by update_pch.sh. It is possible to edit it
|
|
manually (such as when an include file has been moved/renamed/removed). All such
|
|
manual changes will be rewritten by the next run of update_pch.sh (which presumably
|
|
also fixes all possible problems, so it's usually better to use it).
|
|
|
|
Generated on 2016-02-06 12:33:42 using:
|
|
./bin/update_pch vbahelper vbahelper --cutoff=3 --exclude:system --exclude:module --include:local
|
|
|
|
If after updating build fails, use the following command to locate conflicting headers:
|
|
./bin/update_pch_bisect ./vbahelper/inc/pch/precompiled_vbahelper.hxx "make vbahelper.build" --find-conflicts
|
|
*/
|
|
|
|
#include <cassert>
|
|
#include <cstddef>
|
|
#include <deque>
|
|
#include <exception>
|
|
#include <functional>
|
|
#include <memory>
|
|
#include <set>
|
|
#include <string.h>
|
|
#include <unordered_map>
|
|
#include <utility>
|
|
#include <vector>
|
|
#include <boost/optional.hpp>
|
|
#include <osl/diagnose.h>
|
|
#include <osl/file.hxx>
|
|
#include <osl/module.hxx>
|
|
#include <osl/mutex.h>
|
|
#include <osl/mutex.hxx>
|
|
#include <osl/thread.hxx>
|
|
#include <rtl/instance.hxx>
|
|
#include <rtl/math.hxx>
|
|
#include <rtl/ref.hxx>
|
|
#include <rtl/string.h>
|
|
#include <rtl/stringutils.hxx>
|
|
#include <rtl/textenc.h>
|
|
#include <rtl/ustrbuf.h>
|
|
#include <rtl/ustrbuf.hxx>
|
|
#include <rtl/ustring.hxx>
|
|
#include <sal/config.h>
|
|
#include <sal/macros.h>
|
|
#include <sal/types.h>
|
|
#include <vcl/bitmap.hxx>
|
|
#include <vcl/cursor.hxx>
|
|
#include <vcl/dllapi.h>
|
|
#include <vcl/event.hxx>
|
|
#include <vcl/inputctx.hxx>
|
|
#include <vcl/inputtypes.hxx>
|
|
#include <vcl/keycodes.hxx>
|
|
#include <vcl/metric.hxx>
|
|
#include <vcl/outdev.hxx>
|
|
#include <vcl/pointr.hxx>
|
|
#include <vcl/region.hxx>
|
|
#include <vcl/salnativewidgets.hxx>
|
|
#include <vcl/vclevent.hxx>
|
|
#include <vcl/vclptr.hxx>
|
|
#include <vcl/window.hxx>
|
|
#include <basic/basicdllapi.h>
|
|
#include <basic/codecompletecache.hxx>
|
|
#include <basic/sbdef.hxx>
|
|
#include <basic/sbmod.hxx>
|
|
#include <basic/sbx.hxx>
|
|
#include <basic/sbxdef.hxx>
|
|
#include <basic/sbxform.hxx>
|
|
#include <basic/sbxmeth.hxx>
|
|
#include <basic/sbxobj.hxx>
|
|
#include <basic/sbxprop.hxx>
|
|
#include <com/sun/star/awt/XWindow2.hpp>
|
|
#include <com/sun/star/beans/PropertyValue.hpp>
|
|
#include <com/sun/star/beans/XPropertySet.hpp>
|
|
#include <com/sun/star/container/XIndexAccess.hpp>
|
|
#include <com/sun/star/document/CmisVersion.hpp>
|
|
#include <com/sun/star/drawing/XDrawPage.hpp>
|
|
#include <com/sun/star/embed/XStorage.hpp>
|
|
#include <com/sun/star/frame/XController.hpp>
|
|
#include <com/sun/star/frame/XDesktop.hpp>
|
|
#include <com/sun/star/frame/XFrame.hpp>
|
|
#include <com/sun/star/frame/XModel.hpp>
|
|
#include <com/sun/star/lang/IllegalArgumentException.hpp>
|
|
#include <com/sun/star/lang/XComponent.hpp>
|
|
#include <com/sun/star/lang/XServiceInfo.hpp>
|
|
#include <com/sun/star/lang/XTypeProvider.hpp>
|
|
#include <com/sun/star/lang/XUnoTunnel.hpp>
|
|
#include <com/sun/star/script/XInvocation.hpp>
|
|
#include <com/sun/star/script/XLibraryContainer.hpp>
|
|
#include <com/sun/star/script/provider/XScriptProviderSupplier.hpp>
|
|
#include <com/sun/star/security/DocumentSignatureInformation.hpp>
|
|
#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
|
|
#include <com/sun/star/task/XInteractionHandler.hpp>
|
|
#include <com/sun/star/uno/Any.hxx>
|
|
#include <com/sun/star/uno/Reference.h>
|
|
#include <com/sun/star/uno/Reference.hxx>
|
|
#include <com/sun/star/uno/RuntimeException.hpp>
|
|
#include <com/sun/star/uno/Sequence.hxx>
|
|
#include <com/sun/star/uno/Type.hxx>
|
|
#include <com/sun/star/uno/XComponentContext.hpp>
|
|
#include <com/sun/star/view/XSelectionSupplier.hpp>
|
|
#include <comphelper/embeddedobjectcontainer.hxx>
|
|
#include <comphelper/processfactory.hxx>
|
|
#include <cppuhelper/cppuhelperdllapi.h>
|
|
#include <cppuhelper/implbase.hxx>
|
|
#include <cppuhelper/implbase_ex.hxx>
|
|
#include <cppuhelper/weak.hxx>
|
|
#include <cppuhelper/weakref.hxx>
|
|
#include <filter/msfilter/msvbahelper.hxx>
|
|
#include <o3tl/typed_flags_set.hxx>
|
|
#include <rsc/rsc-vcl-shared-types.hxx>
|
|
#include <rsc/rscsfx.hxx>
|
|
#include <sfx2/XmlIdRegistry.hxx>
|
|
#include <sfx2/dllapi.h>
|
|
#include <sfx2/objsh.hxx>
|
|
#include <sfx2/shell.hxx>
|
|
#include <sfx2/signaturestate.hxx>
|
|
#include <sot/formats.hxx>
|
|
#include <sot/object.hxx>
|
|
#include <svl/lstner.hxx>
|
|
#include <svl/poolitem.hxx>
|
|
#include <svl/hint.hxx>
|
|
#include <svl/svldllapi.h>
|
|
#include <tools/errcode.hxx>
|
|
#include <tools/gen.hxx>
|
|
#include <tools/link.hxx>
|
|
#include <tools/ref.hxx>
|
|
#include <tools/resid.hxx>
|
|
#include <tools/solar.h>
|
|
#include <tools/toolsdllapi.h>
|
|
#include <tools/wintypes.hxx>
|
|
#include <vbahelper/helperdecl.hxx>
|
|
#include <vbahelper/vbahelper.hxx>
|
|
#include <vbahelper/vbahelperinterface.hxx>
|
|
#include <vbahelper/vbashape.hxx>
|
|
#include <vbahelper/vbashaperange.hxx>
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|