bin/find-can-be-private-symbols.py | 38 +++++++++++++- editeng/source/outliner/outliner.cxx | 2 helpcompiler/inc/BasCodeTagger.hxx | 4 - include/basic/basmgr.hxx | 2 include/filter/msfilter/msdffimp.hxx | 2 include/opencl/platforminfo.hxx | 4 - include/sfx2/notebookbar/NotebookbarTabControl.hxx | 2 include/svtools/ctrlbox.hxx | 2 include/svtools/svmedit2.hxx | 2 include/svx/AffineMatrixItem.hxx | 2 include/svx/Palette.hxx | 2 include/svx/galctrl.hxx | 24 ++++----- include/vcl/animate/AnimationBitmap.hxx | 2 include/vcl/button.hxx | 6 +- include/vcl/commandevent.hxx | 6 +- include/vcl/debugevent.hxx | 2 include/vcl/graph.hxx | 2 include/vcl/imapobj.hxx | 2 include/vcl/salnativewidgets.hxx | 4 - include/vcl/uitest/uiobject.hxx | 14 ++--- include/xmloff/xmlnumfi.hxx | 4 - include/xmloff/xmluconv.hxx | 3 + oox/inc/drawingml/presetgeometrynames.hxx | 4 - oox/source/core/relationshandler.cxx | 10 +-- oox/source/ole/olehelper.cxx | 2 oox/source/ole/vbamodule.cxx | 4 - sc/source/core/tool/calcconfig.cxx | 2 sc/source/core/tool/userlist.cxx | 4 - sc/source/filter/excel/xipage.cxx | 10 +-- sc/source/filter/excel/xistream.cxx | 2 sc/source/filter/xml/xmlcelli.hxx | 2 sfx2/source/appl/linkmgr2.cxx | 2 sfx2/source/doc/SfxDocumentMetaData.cxx | 2 sfx2/source/notebookbar/DropdownBox.hxx | 3 - sfx2/source/notebookbar/NotebookbarPopup.hxx | 2 sfx2/source/notebookbar/PriorityHBox.hxx | 2 sfx2/source/notebookbar/PriorityMergedHBox.cxx | 2 sfx2/source/view/lokhelper.cxx | 2 svl/source/numbers/zformat.cxx | 2 svx/inc/palettes.hxx | 6 +- sw/inc/PageColumnPopup.hxx | 2 sw/inc/PageMarginPopup.hxx | 2 sw/inc/PageOrientationPopup.hxx | 2 sw/inc/PageSizePopup.hxx | 2 sw/source/uibase/inc/actctrl.hxx | 2 tools/source/debug/debug.cxx | 2 tools/source/fsys/urlobj.cxx | 8 +-- unotools/source/config/docinfohelper.cxx | 2 unotools/source/misc/datetime.cxx | 2 vcl/inc/bitmap/Octree.hxx | 4 - vcl/inc/impfontcharmap.hxx | 2 vcl/inc/opengl/program.hxx | 2 vcl/inc/sallayout.hxx | 4 - vcl/inc/unx/freetype_glyphcache.hxx | 2 vcl/inc/unx/glyphcache.hxx | 2 vcl/inc/unx/gtk/gtkprn.hxx | 2 vcl/inc/unx/saldisp.hxx | 2 vcl/source/gdi/impgraph.cxx | 5 + vcl/source/uitest/logger.cxx | 3 - xmloff/source/core/xmluconv.cxx | 12 ++++ xmloff/source/style/xmlnume.cxx | 54 +++++++++------------ 61 files changed, 173 insertions(+), 139 deletions(-)
New commits: commit 781c4402f1a8c64f87bc81e866bc444b9ed97948 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Sat Nov 2 07:46:49 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sun Nov 3 17:12:00 2019 +0100 make some classes module-private improve the script, but it still generates some false positives Change-Id: If8ee1cba8c04ac0be11f73220149e6de15f24f44 Reviewed-on: https://gerrit.libreoffice.org/81929 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/bin/find-can-be-private-symbols.py b/bin/find-can-be-private-symbols.py index baaba9e924ff..0ff17072361a 100755 --- a/bin/find-can-be-private-symbols.py +++ b/bin/find-can-be-private-symbols.py @@ -1,10 +1,20 @@ #!/usr/bin/python # -# Find exported symbols that can be made private. +# Find exported symbols that can be made non-exported. # # Noting that (a) parsing these commands is a pain, the output is quite irregular and (b) I'm fumbling in the # dark here, trying to guess what exactly constitutes an "import" vs an "export" of a symbol, linux linking # is rather complex. +# +# Takes about 5min to run on a decent machine. +# +# The standalone function analysis is reasonable reliable, but the class/method analysis is less so +# (something to do with destructor thunks not showing up in my results?) +# +# Also, the class/method analysis will not catch problems like +# 'dynamic_cast from 'Foo' with hidden type visibility to 'Bar' with default type visibility' +# but loplugin:dyncastvisibility will do that for you +# import subprocess import sys @@ -74,20 +84,28 @@ classes_with_imported_symbols = set() for sym in exported_symbols: filtered_sym = subprocess.check_output(["c++filt", sym]).strip() if filtered_sym.startswith("non-virtual thunk to "): filtered_sym = filtered_sym[21:] + elif filtered_sym.startswith("virtual thunk to "): filtered_sym = filtered_sym[17:] i = filtered_sym.find("(") i = filtered_sym.rfind("::", 0, i) if i != -1: classname = filtered_sym[:i] - func = filtered_sym[i+2:] # find classes where all of the exported symbols are not imported classes_with_exported_symbols.add(classname) - if sym in imported_symbols: classes_with_imported_symbols.add(classname) else: - package = "" func = filtered_sym # find standalone functions which are exported but not imported if not(sym in imported_symbols): unused_function_exports.add(func) +for sym in imported_symbols: + filtered_sym = subprocess.check_output(["c++filt", sym]).strip() + if filtered_sym.startswith("non-virtual thunk to "): filtered_sym = filtered_sym[21:] + elif filtered_sym.startswith("virtual thunk to "): filtered_sym = filtered_sym[17:] + i = filtered_sym.find("(") + i = filtered_sym.rfind("::", 0, i) + if i != -1: + classname = filtered_sym[:i] + classes_with_imported_symbols.add(classname) + with open("bin/find-can-be-private-symbols.functions.results", "wt") as f: for sym in sorted(unused_function_exports): # Filter out most of the noise. @@ -175,4 +193,16 @@ with open("bin/find-can-be-private-symbols.functions.results", "wt") as f: with open("bin/find-can-be-private-symbols.classes.results", "wt") as f: for sym in sorted(classes_with_exported_symbols - classes_with_imported_symbols): + # externals + if sym.startswith("libcdr"): continue + elif sym.startswith("libabw"): continue + elif sym.startswith("libebook"): continue + elif sym.startswith("libepubgen"): continue + elif sym.startswith("libfreehand"): continue + elif sym.startswith("libmspub"): continue + elif sym.startswith("libpagemaker"): continue + elif sym.startswith("libqxp"): continue + elif sym.startswith("libvisio"): continue + elif sym.startswith("libzmf"): continue + elif sym.startswith("lucene::"): continue f.write(sym + "\n") diff --git a/helpcompiler/inc/BasCodeTagger.hxx b/helpcompiler/inc/BasCodeTagger.hxx index 93dfd70f137b..d897afb4fe1d 100644 --- a/helpcompiler/inc/BasCodeTagger.hxx +++ b/helpcompiler/inc/BasCodeTagger.hxx @@ -20,7 +20,7 @@ class LibXmlTreeWalker; //!Tagger class. -class L10N_DLLPUBLIC BasicCodeTagger +class BasicCodeTagger { private: xmlDocPtr m_pDocument; @@ -42,7 +42,7 @@ class L10N_DLLPUBLIC BasicCodeTagger //================LibXmlTreeWalker=========================================================== -class L10N_DLLPUBLIC LibXmlTreeWalker +class LibXmlTreeWalker { private: xmlNodePtr m_pCurrentNode; diff --git a/include/basic/basmgr.hxx b/include/basic/basmgr.hxx index 95e5a7c11d22..64e4ac597df7 100644 --- a/include/basic/basmgr.hxx +++ b/include/basic/basmgr.hxx @@ -49,7 +49,7 @@ enum class BasicErrorReason STDLIB = 0x0100 }; -class BASIC_DLLPUBLIC BasicError +class BasicError { private: ErrCode nErrorId; diff --git a/include/filter/msfilter/msdffimp.hxx b/include/filter/msfilter/msdffimp.hxx index 981ab4dd49db..4defc7f0b8bb 100644 --- a/include/filter/msfilter/msdffimp.hxx +++ b/include/filter/msfilter/msdffimp.hxx @@ -130,7 +130,7 @@ struct MSFILTER_DLLPUBLIC CompareSvxMSDffShapeInfoById bool operator()(std::shared_ptr<SvxMSDffShapeInfo> const& lhs, std::shared_ptr<SvxMSDffShapeInfo> const& rhs) const; }; -struct MSFILTER_DLLPUBLIC CompareSvxMSDffShapeInfoByTxBxComp +struct CompareSvxMSDffShapeInfoByTxBxComp { bool operator()(std::shared_ptr<SvxMSDffShapeInfo> const& lhs, std::shared_ptr<SvxMSDffShapeInfo> const& rhs) const; diff --git a/include/opencl/platforminfo.hxx b/include/opencl/platforminfo.hxx index ac3f144f9d9f..5e54c052fc51 100644 --- a/include/opencl/platforminfo.hxx +++ b/include/opencl/platforminfo.hxx @@ -20,7 +20,7 @@ // Struct that describs an actual instance of an OpenCL device -struct OPENCL_DLLPUBLIC OpenCLDeviceInfo +struct OpenCLDeviceInfo { cl_device_id device; OUString maName; @@ -35,7 +35,7 @@ struct OPENCL_DLLPUBLIC OpenCLDeviceInfo // Struct that describs an actual instance of an OpenCL platform implementation -struct OPENCL_DLLPUBLIC OpenCLPlatformInfo +struct OpenCLPlatformInfo { cl_platform_id platform; OUString maVendor; diff --git a/include/sfx2/notebookbar/NotebookbarTabControl.hxx b/include/sfx2/notebookbar/NotebookbarTabControl.hxx index 68d7b4ef252d..440148beff0d 100644 --- a/include/sfx2/notebookbar/NotebookbarTabControl.hxx +++ b/include/sfx2/notebookbar/NotebookbarTabControl.hxx @@ -18,7 +18,7 @@ namespace com { namespace sun { namespace star { namespace ui { } } } } namespace com::sun::star::uno { class XComponentContext; } -class SFX2_DLLPUBLIC NotebookbarTabControl final : public NotebookbarTabControlBase +class NotebookbarTabControl final : public NotebookbarTabControlBase { friend class ChangedUIEventListener; diff --git a/include/svtools/ctrlbox.hxx b/include/svtools/ctrlbox.hxx index fbde3fc5dacc..1805778aa3d2 100644 --- a/include/svtools/ctrlbox.hxx +++ b/include/svtools/ctrlbox.hxx @@ -356,7 +356,7 @@ private: FontNameBox& operator =( const FontNameBox& ) = delete; }; -class SVT_DLLPUBLIC FontStyleBox final : public ComboBox +class FontStyleBox final : public ComboBox { Size aOptimalSize; diff --git a/include/svtools/svmedit2.hxx b/include/svtools/svmedit2.hxx index e2b7b1f5a238..6387bbd42921 100644 --- a/include/svtools/svmedit2.hxx +++ b/include/svtools/svmedit2.hxx @@ -24,7 +24,7 @@ class TextAttrib; -class SVT_DLLPUBLIC ExtMultiLineEdit final : public MultiLineEdit +class ExtMultiLineEdit final : public MultiLineEdit { public: ExtMultiLineEdit( vcl::Window* pParent, WinBits nWinStyle ); diff --git a/include/svx/AffineMatrixItem.hxx b/include/svx/AffineMatrixItem.hxx index b9559147c58e..6b3cbebf872f 100644 --- a/include/svx/AffineMatrixItem.hxx +++ b/include/svx/AffineMatrixItem.hxx @@ -26,7 +26,7 @@ class SfxItemPool; -class SVX_DLLPUBLIC AffineMatrixItem final : public SfxPoolItem +class AffineMatrixItem final : public SfxPoolItem { private: css::geometry::AffineMatrix2D maMatrix; diff --git a/include/svx/Palette.hxx b/include/svx/Palette.hxx index f66d06b30b05..0ce1722ff130 100644 --- a/include/svx/Palette.hxx +++ b/include/svx/Palette.hxx @@ -28,7 +28,7 @@ class SvxColorValueSet; typedef std::pair<Color, OUString> NamedColor; -class SVX_DLLPUBLIC Palette +class Palette { public: virtual ~Palette(); diff --git a/include/svx/galctrl.hxx b/include/svx/galctrl.hxx index e43453c5b2de..ddbcbb3a60cf 100644 --- a/include/svx/galctrl.hxx +++ b/include/svx/galctrl.hxx @@ -32,7 +32,7 @@ class GalleryTheme; class GalleryBrowser2; class INetURLObject; -class SVX_DLLPUBLIC GalleryPreview final : public vcl::Window, public DropTargetHelper, public DragSourceHelper +class GalleryPreview final : public vcl::Window, public DropTargetHelper, public DragSourceHelper { private: @@ -40,24 +40,24 @@ private: tools::Rectangle aPreviewRect; GalleryTheme* const mpTheme; - SVX_DLLPRIVATE bool ImplGetGraphicCenterRect( const Graphic& rGraphic, tools::Rectangle& rResultRect ) const; - SVX_DLLPRIVATE void InitSettings(); + bool ImplGetGraphicCenterRect( const Graphic& rGraphic, tools::Rectangle& rResultRect ) const; + void InitSettings(); // Window - SVX_DLLPRIVATE virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override; - SVX_DLLPRIVATE virtual Size GetOptimalSize() const override; - SVX_DLLPRIVATE virtual void MouseButtonDown(const MouseEvent& rMEvt) override; - SVX_DLLPRIVATE virtual void Command(const CommandEvent& rCEvt) override; - SVX_DLLPRIVATE virtual void KeyInput( const KeyEvent& rKEvt ) override; - SVX_DLLPRIVATE virtual void DataChanged( const DataChangedEvent& rDCEvt ) override; + virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override; + virtual Size GetOptimalSize() const override; + virtual void MouseButtonDown(const MouseEvent& rMEvt) override; + virtual void Command(const CommandEvent& rCEvt) override; + virtual void KeyInput( const KeyEvent& rKEvt ) override; + virtual void DataChanged( const DataChangedEvent& rDCEvt ) override; // DropTargetHelper - SVX_DLLPRIVATE virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override; - SVX_DLLPRIVATE virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override; + virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override; + virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override; // DragSourceHelper - SVX_DLLPRIVATE virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override; + virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override; public: diff --git a/include/vcl/animate/AnimationBitmap.hxx b/include/vcl/animate/AnimationBitmap.hxx index ae8aaab1634f..5b438f8c4d6a 100644 --- a/include/vcl/animate/AnimationBitmap.hxx +++ b/include/vcl/animate/AnimationBitmap.hxx @@ -30,7 +30,7 @@ enum class Disposal Previous }; -struct VCL_DLLPUBLIC AnimationBitmap +struct AnimationBitmap { BitmapEx maBitmapEx; Point maPositionPixel; diff --git a/include/vcl/button.hxx b/include/vcl/button.hxx index 0b32b85f341c..c39c466d1afe 100644 --- a/include/vcl/button.hxx +++ b/include/vcl/button.hxx @@ -247,7 +247,7 @@ public: virtual void Click() override; }; -class VCL_DLLPUBLIC CloseButton final : public CancelButton +class CloseButton final : public CancelButton { public: explicit CloseButton(vcl::Window* pParent, WinBits nStyle = 0); @@ -517,9 +517,9 @@ public: explicit TriStateBox( vcl::Window* pParent, WinBits nStyle ); }; -class VCL_DLLPUBLIC DisclosureButton final : public CheckBox +class DisclosureButton final : public CheckBox { - SAL_DLLPRIVATE virtual void ImplDrawCheckBoxState(vcl::RenderContext& rRenderContext) override; + virtual void ImplDrawCheckBoxState(vcl::RenderContext& rRenderContext) override; public: explicit DisclosureButton( vcl::Window* pParent ); diff --git a/include/vcl/commandevent.hxx b/include/vcl/commandevent.hxx index a3ee2fb73c99..bf446e7f4f83 100644 --- a/include/vcl/commandevent.hxx +++ b/include/vcl/commandevent.hxx @@ -170,7 +170,7 @@ public: { return ((mnCode & KEY_MOD2) != 0); } }; -class VCL_DLLPUBLIC CommandScrollData +class CommandScrollData { private: long mnDeltaX; @@ -183,7 +183,7 @@ public: long GetDeltaY() const { return mnDeltaY; } }; -class VCL_DLLPUBLIC CommandModKeyData +class CommandModKeyData { private: bool mbDown; @@ -256,7 +256,7 @@ public: bool GetPassThroughToOS() const { return m_bPassThroughToOS; } }; -class VCL_DLLPUBLIC CommandSelectionChangeData +class CommandSelectionChangeData { private: sal_uLong mnStart; diff --git a/include/vcl/debugevent.hxx b/include/vcl/debugevent.hxx index e0d498761d29..a6f458265cbb 100644 --- a/include/vcl/debugevent.hxx +++ b/include/vcl/debugevent.hxx @@ -16,7 +16,7 @@ namespace vcl { class Window; } -class VCL_DLLPUBLIC DebugEventInjector final : private Timer { +class DebugEventInjector final : private Timer { sal_uInt32 mnEventsLeft; DebugEventInjector( sal_uInt32 nMaxEvents ); diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx index bc2e6cc03a75..a30b3909e899 100644 --- a/include/vcl/graph.hxx +++ b/include/vcl/graph.hxx @@ -51,7 +51,7 @@ class ImpGraphic; class OutputDevice; class ReaderData; -class VCL_DLLPUBLIC GraphicReader +class GraphicReader { public: virtual ~GraphicReader(); diff --git a/include/vcl/imapobj.hxx b/include/vcl/imapobj.hxx index a9bf0ce7bc8f..2310328904e9 100644 --- a/include/vcl/imapobj.hxx +++ b/include/vcl/imapobj.hxx @@ -47,7 +47,7 @@ class SvStream; #define IMAP_ERR_OK 0x00000000L #define IMAP_ERR_FORMAT 0x00000001L -class VCL_DLLPUBLIC IMapObject +class IMapObject { friend class ImageMap; diff --git a/include/vcl/salnativewidgets.hxx b/include/vcl/salnativewidgets.hxx index 5e7ebc47de73..8108abe046dc 100644 --- a/include/vcl/salnativewidgets.hxx +++ b/include/vcl/salnativewidgets.hxx @@ -472,7 +472,7 @@ public: * * Value container for menubars specifying height of adjacent docking area */ -class VCL_DLLPUBLIC MenubarValue final : public ImplControlValue +class MenubarValue final : public ImplControlValue { public: MenubarValue() : ImplControlValue( ControlType::Menubar, 0 ) @@ -491,7 +491,7 @@ public: * Value container for menu items; specifies the rectangle for the whole item which * may be useful when drawing parts with a smaller rectangle. */ -class VCL_DLLPUBLIC MenupopupValue final : public ImplControlValue +class MenupopupValue final : public ImplControlValue { public: MenupopupValue( long i_nGutterWidth, const tools::Rectangle& i_rItemRect ) diff --git a/include/vcl/uitest/uiobject.hxx b/include/vcl/uitest/uiobject.hxx index a8722c46fed4..34aa048e5abd 100644 --- a/include/vcl/uitest/uiobject.hxx +++ b/include/vcl/uitest/uiobject.hxx @@ -135,7 +135,7 @@ protected: }; // TODO: moggi: what about push buttons? -class UITEST_DLLPUBLIC ButtonUIObject final : public WindowUIObject +class ButtonUIObject final : public WindowUIObject { VclPtr<Button> mxButton; public: @@ -157,7 +157,7 @@ private: virtual OUString get_name() const override; }; -class UITEST_DLLPUBLIC DialogUIObject final : public WindowUIObject +class DialogUIObject final : public WindowUIObject { VclPtr<Dialog> mxDialog; @@ -175,7 +175,7 @@ private: virtual OUString get_name() const override; }; -class UITEST_DLLPUBLIC EditUIObject : public WindowUIObject +class EditUIObject : public WindowUIObject { VclPtr<Edit> mxEdit; @@ -198,7 +198,7 @@ protected: virtual OUString get_name() const override; }; -class UITEST_DLLPUBLIC MultiLineEditUIObject final : public WindowUIObject +class MultiLineEditUIObject final : public WindowUIObject { VclPtr<VclMultiLineEdit> mxEdit; @@ -220,7 +220,7 @@ private: }; // TODO: moggi: maybe let it inherit from the button case -class UITEST_DLLPUBLIC CheckBoxUIObject final : public WindowUIObject +class CheckBoxUIObject final : public WindowUIObject { private: VclPtr<CheckBox> mxCheckBox; @@ -286,7 +286,7 @@ private: virtual OUString get_name() const override; }; -class UITEST_DLLPUBLIC ListBoxUIObject final : public WindowUIObject +class ListBoxUIObject final : public WindowUIObject { private: VclPtr<ListBox> mxListBox; @@ -311,7 +311,7 @@ private: }; // TODO: moggi: should it inherit from EditUIObject? -class UITEST_DLLPUBLIC ComboBoxUIObject final : public WindowUIObject +class ComboBoxUIObject final : public WindowUIObject { private: VclPtr<ComboBox> mxComboBox; diff --git a/oox/inc/drawingml/presetgeometrynames.hxx b/oox/inc/drawingml/presetgeometrynames.hxx index 358fc9acefb6..f3ab92c2347a 100644 --- a/oox/inc/drawingml/presetgeometrynames.hxx +++ b/oox/inc/drawingml/presetgeometrynames.hxx @@ -15,8 +15,8 @@ namespace PresetGeometryTypeNames { -OOX_DLLPUBLIC OUString GetFontworkType(const OUString& rMsoType); -OOX_DLLPUBLIC OUString GetMsoName(const OUString& rFontworkType); +OUString GetFontworkType(const OUString& rMsoType); +OUString GetMsoName(const OUString& rFontworkType); } #endif diff --git a/sfx2/source/notebookbar/DropdownBox.hxx b/sfx2/source/notebookbar/DropdownBox.hxx index 6cb62d4e2f93..0fd1b687ea2c 100644 --- a/sfx2/source/notebookbar/DropdownBox.hxx +++ b/sfx2/source/notebookbar/DropdownBox.hxx @@ -30,8 +30,7 @@ #include <sfx2/tbxctrl.hxx> #include "NotebookbarPopup.hxx" -class SFX2_DLLPUBLIC DropdownBox : public VclHBox, - public vcl::IPrioritable +class DropdownBox : public VclHBox, public vcl::IPrioritable { private: bool m_bInFullView; diff --git a/sfx2/source/notebookbar/NotebookbarPopup.hxx b/sfx2/source/notebookbar/NotebookbarPopup.hxx index 1bbb15133bbe..5ac1377c02a7 100644 --- a/sfx2/source/notebookbar/NotebookbarPopup.hxx +++ b/sfx2/source/notebookbar/NotebookbarPopup.hxx @@ -30,7 +30,7 @@ * and after close moved to the original parent */ -class SFX2_DLLPUBLIC NotebookbarPopup : public FloatingWindow +class NotebookbarPopup : public FloatingWindow { private: VclPtr<VclHBox> m_pBox; diff --git a/sfx2/source/notebookbar/PriorityHBox.hxx b/sfx2/source/notebookbar/PriorityHBox.hxx index 8248264093f5..4c5bbc7ac9f8 100644 --- a/sfx2/source/notebookbar/PriorityHBox.hxx +++ b/sfx2/source/notebookbar/PriorityHBox.hxx @@ -34,7 +34,7 @@ * priority assigned (VCL_PRIORITY_DEFAULT), it is always shown. */ -class SFX2_DLLPUBLIC PriorityHBox : public VclHBox +class PriorityHBox : public VclHBox { private: bool m_bInitialized; diff --git a/sfx2/source/notebookbar/PriorityMergedHBox.cxx b/sfx2/source/notebookbar/PriorityMergedHBox.cxx index e187306ff437..328241ae67d8 100644 --- a/sfx2/source/notebookbar/PriorityMergedHBox.cxx +++ b/sfx2/source/notebookbar/PriorityMergedHBox.cxx @@ -30,7 +30,7 @@ * PriorityMergedHBox is a VclHBox which hides its own children if there is no sufficient space. */ -class SFX2_DLLPUBLIC PriorityMergedHBox : public PriorityHBox +class PriorityMergedHBox : public PriorityHBox { private: VclPtr<PushButton> m_pButton; diff --git a/svx/inc/palettes.hxx b/svx/inc/palettes.hxx index c02ffae7fbbe..fe88af7f2b5a 100644 --- a/svx/inc/palettes.hxx +++ b/svx/inc/palettes.hxx @@ -29,7 +29,7 @@ typedef std::vector< NamedColor > ColorList; // ASE = Adobe Swatch Exchange -class SVX_DLLPUBLIC PaletteASE : public Palette +class PaletteASE : public Palette { bool mbValidPalette; OUString const maFPath; @@ -51,7 +51,7 @@ public: // GPL - this is *not* GNU Public License, but is the Gimp PaLette -class SVX_DLLPUBLIC PaletteGPL : public Palette +class PaletteGPL : public Palette { bool mbLoadedPalette; bool mbValidPalette; @@ -77,7 +77,7 @@ public: // SOC - Star Office Color-table -class SVX_DLLPUBLIC PaletteSOC : public Palette +class PaletteSOC : public Palette { bool mbLoadedPalette; OUString const maFPath; diff --git a/sw/inc/PageColumnPopup.hxx b/sw/inc/PageColumnPopup.hxx index 3753596a4e6f..f01a9116deb6 100644 --- a/sw/inc/PageColumnPopup.hxx +++ b/sw/inc/PageColumnPopup.hxx @@ -22,7 +22,7 @@ #include <sfx2/tbxctrl.hxx> #include "swdllapi.h" -class SW_DLLPUBLIC PageColumnPopup : public SfxToolBoxControl +class PageColumnPopup : public SfxToolBoxControl { public: SFX_DECL_TOOLBOX_CONTROL(); diff --git a/sw/inc/PageMarginPopup.hxx b/sw/inc/PageMarginPopup.hxx index 7a66ca8e3db9..2bb9617858f0 100644 --- a/sw/inc/PageMarginPopup.hxx +++ b/sw/inc/PageMarginPopup.hxx @@ -22,7 +22,7 @@ #include <sfx2/tbxctrl.hxx> #include "swdllapi.h" -class SW_DLLPUBLIC PageMarginPopup : public SfxToolBoxControl +class PageMarginPopup : public SfxToolBoxControl { public: SFX_DECL_TOOLBOX_CONTROL(); diff --git a/sw/inc/PageOrientationPopup.hxx b/sw/inc/PageOrientationPopup.hxx index b8cdacb79dfb..ff88d7af5300 100644 --- a/sw/inc/PageOrientationPopup.hxx +++ b/sw/inc/PageOrientationPopup.hxx @@ -22,7 +22,7 @@ #include <sfx2/tbxctrl.hxx> #include "swdllapi.h" -class SW_DLLPUBLIC PageOrientationPopup : public SfxToolBoxControl +class PageOrientationPopup : public SfxToolBoxControl { public: SFX_DECL_TOOLBOX_CONTROL(); diff --git a/sw/inc/PageSizePopup.hxx b/sw/inc/PageSizePopup.hxx index a604accde35e..b67779552201 100644 --- a/sw/inc/PageSizePopup.hxx +++ b/sw/inc/PageSizePopup.hxx @@ -22,7 +22,7 @@ #include <sfx2/tbxctrl.hxx> #include "swdllapi.h" -class SW_DLLPUBLIC PageSizePopup : public SfxToolBoxControl +class PageSizePopup : public SfxToolBoxControl { public: SFX_DECL_TOOLBOX_CONTROL(); diff --git a/sw/source/uibase/inc/actctrl.hxx b/sw/source/uibase/inc/actctrl.hxx index 93dae6f72f99..cd5fb964205c 100644 --- a/sw/source/uibase/inc/actctrl.hxx +++ b/sw/source/uibase/inc/actctrl.hxx @@ -23,7 +23,7 @@ #include <swdllapi.h> // numerical input -class SW_DLLPUBLIC NumEditAction: public NumericField +class NumEditAction: public NumericField { Link<NumEditAction&,void> aActionLink; diff --git a/vcl/inc/bitmap/Octree.hxx b/vcl/inc/bitmap/Octree.hxx index 86a911fa4adf..59246ae5053d 100644 --- a/vcl/inc/bitmap/Octree.hxx +++ b/vcl/inc/bitmap/Octree.hxx @@ -63,13 +63,13 @@ public: sal_uInt16 GetBestPaletteIndex(const BitmapColor& rColor); }; -class VCL_PLUGIN_PUBLIC InverseColorMap +class InverseColorMap { private: std::vector<sal_uInt8> mpBuffer; std::vector<sal_uInt8> mpMap; - SAL_DLLPRIVATE void ImplCreateBuffers(); + void ImplCreateBuffers(); public: explicit InverseColorMap(const BitmapPalette& rPal); diff --git a/vcl/inc/impfontcharmap.hxx b/vcl/inc/impfontcharmap.hxx index 2d3c5ac16c89..297cd5fa359a 100644 --- a/vcl/inc/impfontcharmap.hxx +++ b/vcl/inc/impfontcharmap.hxx @@ -28,7 +28,7 @@ typedef tools::SvRef<ImplFontCharMap> ImplFontCharMapRef; class CmapResult; -class VCL_PLUGIN_PUBLIC ImplFontCharMap : public SvRefBase +class ImplFontCharMap : public SvRefBase { public: explicit ImplFontCharMap( const CmapResult& ); diff --git a/vcl/inc/opengl/program.hxx b/vcl/inc/opengl/program.hxx index cc1e28190916..bff248d9bfab 100644 --- a/vcl/inc/opengl/program.hxx +++ b/vcl/inc/opengl/program.hxx @@ -39,7 +39,7 @@ enum class DrawShaderType Line }; -class VCL_PLUGIN_PUBLIC OpenGLProgram +class OpenGLProgram { private: GLuint mnId; diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx index 06300760f60e..be66bafd87e3 100644 --- a/vcl/inc/sallayout.hxx +++ b/vcl/inc/sallayout.hxx @@ -50,7 +50,7 @@ namespace vcl { } // used for managing runs e.g. for BiDi, glyph and script fallback -class VCL_PLUGIN_PUBLIC ImplLayoutRuns +class ImplLayoutRuns { private: int mnRunIndex; @@ -122,7 +122,7 @@ private: // For nice SAL_INFO logging of ImplLayoutArgs values std::ostream &operator <<(std::ostream& s, ImplLayoutArgs const &rArgs); -class VCL_PLUGIN_PUBLIC MultiSalLayout final : public SalLayout +class MultiSalLayout final : public SalLayout { public: void DrawText(SalGraphics&) const override; diff --git a/vcl/inc/unx/freetype_glyphcache.hxx b/vcl/inc/unx/freetype_glyphcache.hxx index 17084fcf5a75..f000264ac3dd 100644 --- a/vcl/inc/unx/freetype_glyphcache.hxx +++ b/vcl/inc/unx/freetype_glyphcache.hxx @@ -102,7 +102,7 @@ public: }; // a class for cache entries for physical font instances that are based on serverfonts -class VCL_DLLPUBLIC FreetypeFontInstance : public LogicalFontInstance +class FreetypeFontInstance : public LogicalFontInstance { friend rtl::Reference<LogicalFontInstance> FreetypeFontFace::CreateFontInstance(const FontSelectPattern&) const; diff --git a/vcl/inc/unx/glyphcache.hxx b/vcl/inc/unx/glyphcache.hxx index ccb25cab87e2..b9398ad57d0f 100644 --- a/vcl/inc/unx/glyphcache.hxx +++ b/vcl/inc/unx/glyphcache.hxx @@ -88,7 +88,7 @@ private: sal_IntPtr m_nMaxFontId; }; -class VCL_DLLPUBLIC FreetypeFont final +class FreetypeFont final { public: FreetypeFont(LogicalFontInstance* pFontInstance, FreetypeFontInfo*); diff --git a/vcl/inc/unx/gtk/gtkprn.hxx b/vcl/inc/unx/gtk/gtkprn.hxx index e33d3f606b10..c958e0c69bb2 100644 --- a/vcl/inc/unx/gtk/gtkprn.hxx +++ b/vcl/inc/unx/gtk/gtkprn.hxx @@ -40,7 +40,7 @@ private: std::unique_ptr<GtkSalPrinter_Impl> m_xImpl; }; -class VCL_DLLPUBLIC GtkSalInfoPrinter : public PspSalInfoPrinter +class GtkSalInfoPrinter : public PspSalInfoPrinter { public: sal_uInt32 GetCapabilities(const ImplJobSetup* i_pSetupData, PrinterCapType i_nType) override; diff --git a/vcl/inc/unx/saldisp.hxx b/vcl/inc/unx/saldisp.hxx index 8f4bceba0fc8..56006781f8f8 100644 --- a/vcl/inc/unx/saldisp.hxx +++ b/vcl/inc/unx/saldisp.hxx @@ -208,7 +208,7 @@ extern "C" { typedef Bool(*X_if_predicate)(Display*,XEvent*,XPointer); } -class VCLPLUG_GEN_PUBLIC GLX11Window : public GLWindow +class GLX11Window : public GLWindow { public: Display* dpy; commit 48101a1a0d574db3db1f99c782bd67e885b232bb Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Thu Oct 17 20:33:50 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sun Nov 3 17:11:32 2019 +0100 size some stringbuffer to prevent re-alloc I started with 32 and kept doubling the size until the site did not need re-alloc, but clamped it at 512. Change-Id: I55fe36b31cd3d40f86e5729337a927cf920f2af6 Reviewed-on: https://gerrit.libreoffice.org/81960 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx index 9da8710c328a..16a3833eeea2 100644 --- a/editeng/source/outliner/outliner.cxx +++ b/editeng/source/outliner/outliner.cxx @@ -1641,7 +1641,7 @@ EBulletInfo Outliner::GetBulletInfo( sal_Int32 nPara ) OUString Outliner::GetText( Paragraph const * pParagraph, sal_Int32 nCount ) const { - OUStringBuffer aText; + OUStringBuffer aText(128); sal_Int32 nStartPara = pParaList->GetAbsPos( pParagraph ); for ( sal_Int32 n = 0; n < nCount; n++ ) { diff --git a/include/xmloff/xmlnumfi.hxx b/include/xmloff/xmlnumfi.hxx index de071b6ec624..4a1eaca5b256 100644 --- a/include/xmloff/xmlnumfi.hxx +++ b/include/xmloff/xmlnumfi.hxx @@ -132,8 +132,8 @@ class XMLOFF_DLLPUBLIC SvXMLNumFormatContext : public SvXMLStyleContext bool bAutoDec; // set in AddNumber bool bAutoInt; // set in AddNumber bool bHasExtraText; - OUStringBuffer aFormatCode; - OUStringBuffer aConditions; + OUStringBuffer aFormatCode{64}; + OUStringBuffer aConditions{32}; bool bHasLongDoW; bool bHasEra; bool bHasDateTime; diff --git a/include/xmloff/xmluconv.hxx b/include/xmloff/xmluconv.hxx index cc7c4736e6c7..d791f6cb633d 100644 --- a/include/xmloff/xmluconv.hxx +++ b/include/xmloff/xmluconv.hxx @@ -119,6 +119,9 @@ public: void convertMeasureToXML( OUStringBuffer& rBuffer, sal_Int32 nMeasure ) const; + /** convert measure to string: from meCoreMeasureUnit to meXMLMeasureUnit */ + OUString convertMeasureToXML( sal_Int32 nMeasure ) const; + /** convert string to enum using given enum map, if the enum is not found in the map, this method will return false */ template<typename EnumT> diff --git a/oox/source/core/relationshandler.cxx b/oox/source/core/relationshandler.cxx index 9b7675ff2cb1..fe448bc43a7b 100644 --- a/oox/source/core/relationshandler.cxx +++ b/oox/source/core/relationshandler.cxx @@ -45,12 +45,10 @@ namespace { OUString lclGetRelationsPath( const OUString& rFragmentPath ) { sal_Int32 nPathLen = ::std::max< sal_Int32 >( rFragmentPath.lastIndexOf( '/' ) + 1, 0 ); - return - OUStringBuffer( rFragmentPath.copy( 0, nPathLen ) ). // file path including slash - append( "_rels/" ). // additional '_rels/' path - append( std::u16string_view(rFragmentPath).substr(nPathLen) ). // file name after path - append( ".rels" ). // '.rels' suffix - makeStringAndClear(); + return rtl::OUStringView(rFragmentPath.getStr(), nPathLen ) + // file path including slash + "_rels/" + // additional '_rels/' path + rtl::OUStringView(rFragmentPath.getStr() + nPathLen) + // file name after path + ".rels"; // '.rels' suffix } } // namespace diff --git a/oox/source/ole/olehelper.cxx b/oox/source/ole/olehelper.cxx index d2dd4899d2e6..05b787d9f85a 100644 --- a/oox/source/ole/olehelper.cxx +++ b/oox/source/ole/olehelper.cxx @@ -261,7 +261,7 @@ void OleHelper::exportGuid( BinaryOutputStream& rOStr, const SvGlobalName& rId ) OUString OleHelper::importGuid( BinaryInputStream& rInStrm ) { - OUStringBuffer aBuffer; + OUStringBuffer aBuffer(40); aBuffer.append( '{' ); lclAppendHex( aBuffer, rInStrm.readuInt32() ); aBuffer.append( '-' ); diff --git a/oox/source/ole/vbamodule.cxx b/oox/source/ole/vbamodule.cxx index b7ff5edb7aec..82a368934794 100644 --- a/oox/source/ole/vbamodule.cxx +++ b/oox/source/ole/vbamodule.cxx @@ -143,7 +143,7 @@ void VbaModule::createEmptyModule( const Reference< container::XNameContainer >& OUString VbaModule::readSourceCode( StorageBase& rVbaStrg ) const { - OUStringBuffer aSourceCode; + OUStringBuffer aSourceCode(512); static const char sUnmatchedRemovedTag[] = "Rem removed unmatched Sub/End: "; if( !maStreamName.isEmpty() && (mnOffset != SAL_MAX_UINT32) ) { @@ -264,7 +264,7 @@ void VbaModule::createModule( const OUString& rVBASourceCode, // prepare the Basic module script::ModuleInfo aModuleInfo; aModuleInfo.ModuleType = mnType; - OUStringBuffer aSourceCode; + OUStringBuffer aSourceCode(512); aSourceCode.append( "Rem Attribute VBA_ModuleType=" ); switch( mnType ) { diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx index 6bafa226e8b5..9f9bf35bacc0 100644 --- a/sc/source/core/tool/calcconfig.cxx +++ b/sc/source/core/tool/calcconfig.cxx @@ -193,7 +193,7 @@ bool ScCalcConfig::operator!= (const ScCalcConfig& r) const OUString ScOpCodeSetToSymbolicString(const ScCalcConfig::OpCodeSet& rOpCodes) { - OUStringBuffer result; + OUStringBuffer result(256); formula::FormulaCompiler aCompiler; formula::FormulaCompiler::OpCodeMapPtr pOpCodeMap(aCompiler.GetOpCodeMap(css::sheet::FormulaLanguage::ENGLISH)); diff --git a/sc/source/core/tool/userlist.cxx b/sc/source/core/tool/userlist.cxx index 96e6983ac712..60d6a163ec60 100644 --- a/sc/source/core/tool/userlist.cxx +++ b/sc/source/core/tool/userlist.cxx @@ -212,7 +212,7 @@ ScUserList::ScUserList() xCal = rCalendar.Days; if ( xCal.hasElements() ) { - OUStringBuffer aDayShortBuf, aDayLongBuf; + OUStringBuffer aDayShortBuf(32), aDayLongBuf(64); sal_Int32 i; sal_Int32 nLen = xCal.getLength(); sal_Int16 nStart = sal::static_int_cast<sal_Int16>(nLen); @@ -244,7 +244,7 @@ ScUserList::ScUserList() xCal = rCalendar.Months; if ( xCal.hasElements() ) { - OUStringBuffer aMonthShortBuf, aMonthLongBuf; + OUStringBuffer aMonthShortBuf(128), aMonthLongBuf(128); sal_Int32 i; sal_Int32 nLen = xCal.getLength() - 1; for (i = 0; i < nLen; i++) diff --git a/sc/source/filter/excel/xipage.cxx b/sc/source/filter/excel/xipage.cxx index 29110f79b363..db8f4377a1c2 100644 --- a/sc/source/filter/excel/xipage.cxx +++ b/sc/source/filter/excel/xipage.cxx @@ -224,17 +224,15 @@ void XclImpPageSettings::Finalize() // *** create page style sheet *** - OUStringBuffer aStyleName; - aStyleName.append("PageStyle_"); - + OUString aStyleName; OUString aTableName; if( GetDoc().GetName( nScTab, aTableName ) ) - aStyleName.append(aTableName); + aStyleName = "PageStyle_" + aTableName; else - aStyleName.append(static_cast<sal_Int32>(nScTab+1)); + aStyleName = "PageStyle_" + OUString::number(static_cast<sal_Int32>(nScTab+1)); ScStyleSheet& rStyleSheet = ScfTools::MakePageStyleSheet( - GetStyleSheetPool(), aStyleName.makeStringAndClear(), false); + GetStyleSheetPool(), aStyleName, false); SfxItemSet& rItemSet = rStyleSheet.GetItemSet(); diff --git a/sc/source/filter/excel/xistream.cxx b/sc/source/filter/excel/xistream.cxx index 8e48027cdf1b..f7427b9295ed 100644 --- a/sc/source/filter/excel/xistream.cxx +++ b/sc/source/filter/excel/xistream.cxx @@ -831,7 +831,7 @@ std::size_t XclImpStream::ReadUniStringExtHeader( bool& rb16Bit, sal_uInt8 nFlag OUString XclImpStream::ReadRawUniString( sal_uInt16 nChars, bool b16Bit ) { - OUStringBuffer aRet; + OUStringBuffer aRet(nChars); sal_uInt16 nCharsLeft = nChars; sal_uInt16 nReadSize; diff --git a/sc/source/filter/xml/xmlcelli.hxx b/sc/source/filter/xml/xmlcelli.hxx index d80cfa759619..10aeb2dda44a 100644 --- a/sc/source/filter/xml/xmlcelli.hxx +++ b/sc/source/filter/xml/xmlcelli.hxx @@ -68,7 +68,7 @@ class ScXMLTableRowCellContext : public ScXMLImportContext boost::optional<OUString> maFirstParagraph; /// unformatted first paragraph, for better performance. ScEditEngineDefaulter* mpEditEngine; - OUStringBuffer maParagraph; + OUStringBuffer maParagraph{32}; sal_Int32 mnCurParagraph; ParaFormatsType maFormats; diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx index 3109ac7ff28a..4f9c109a23d1 100644 --- a/sfx2/source/appl/linkmgr2.cxx +++ b/sfx2/source/appl/linkmgr2.cxx @@ -452,7 +452,7 @@ void LinkManager::InsertFileLink( if (!(OBJECT_CLIENT_SO & rLink.GetObjType())) return; - OUStringBuffer aBuf; + OUStringBuffer aBuf(64); aBuf.append(rFileNm); aBuf.append(sfx2::cTokenSeparator); diff --git a/sfx2/source/doc/SfxDocumentMetaData.cxx b/sfx2/source/doc/SfxDocumentMetaData.cxx index ad5417688fdc..8e6bf6f29c39 100644 --- a/sfx2/source/doc/SfxDocumentMetaData.cxx +++ b/sfx2/source/doc/SfxDocumentMetaData.cxx @@ -509,7 +509,7 @@ dateTimeToText(css::util::DateTime const& i_rdt, sal_Int16 const*const pTimeZone = nullptr) throw () { if (isValidDateTime(i_rdt)) { - OUStringBuffer buf; + OUStringBuffer buf(32); ::sax::Converter::convertDateTime(buf, i_rdt, pTimeZone, true); return buf.makeStringAndClear(); } else { diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx index 09e6d59129f3..6dea1bc3d125 100644 --- a/sfx2/source/view/lokhelper.cxx +++ b/sfx2/source/view/lokhelper.cxx @@ -213,7 +213,7 @@ void SfxLokHelper::notifyWindow(const SfxViewShell* pThisView, void SfxLokHelper::notifyInvalidation(SfxViewShell const* pThisView, const OString& rPayload) { - OStringBuffer aBuf; + OStringBuffer aBuf(32); aBuf.append(rPayload); if (comphelper::LibreOfficeKit::isPartInInvalidation()) { diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index e7b430b20986..eb2b47dc80af 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -1647,7 +1647,7 @@ short SvNumberformat::ImpNextSymbol(OUStringBuffer& rString, sal_Unicode cLetter = ' '; // Preliminary result sal_Int32 nLen = rString.getLength(); ScanState eState = SsStart; - OUStringBuffer sBuffSymbol(64); + OUStringBuffer sBuffSymbol(128); const NfKeywordTable & rKeywords = rScan.GetKeywords(); while (nPos < nLen && eState != SsStop) diff --git a/tools/source/debug/debug.cxx b/tools/source/debug/debug.cxx index 3ab901c1aee9..6bfb9a42612f 100644 --- a/tools/source/debug/debug.cxx +++ b/tools/source/debug/debug.cxx @@ -398,7 +398,7 @@ static void exceptionToStringImpl(OStringBuffer& sMessage, const css::uno::Any & OString exceptionToString(const css::uno::Any & caught) { - OStringBuffer sMessage; + OStringBuffer sMessage(512); exceptionToStringImpl(sMessage, caught); return sMessage.makeStringAndClear(); } diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx index 636bfe42ff32..e07cfd04035e 100644 --- a/tools/source/fsys/urlobj.cxx +++ b/tools/source/fsys/urlobj.cxx @@ -1369,7 +1369,7 @@ bool INetURLObject::setAbsURIRef(OUString const & rTheAbsURIRef, } break; } - OUStringBuffer aSynHost; + OUStringBuffer aSynHost(64); if (!parseHostOrNetBiosName( pHostPortBegin, pPort, eMechanism, eCharset, bNetBiosName, &aSynHost)) @@ -1614,7 +1614,7 @@ bool INetURLObject::convertRelToAbs(OUString const & rTheRelURIRef, enum State { STATE_AUTH, STATE_ABS_PATH, STATE_REL_PATH, STATE_FRAGMENT, STATE_DONE }; - OUStringBuffer aSynAbsURIRef; + OUStringBuffer aSynAbsURIRef(128); // make sure that the scheme is copied for generic schemes: getSchemeInfo().m_pScheme // is empty ("") in that case, so take the scheme from m_aAbsURIRef if (m_eScheme != INetProtocol::Generic) @@ -2342,7 +2342,7 @@ bool INetURLObject::parseHost(sal_Unicode const *& rBegin, sal_Unicode const * p STATE_IP6_HEXSEQ1_MAYBE_IP4, STATE_IP6_HEXSEQ2, STATE_IP6_HEXSEQ2_COLON, STATE_IP6_HEXSEQ2_MAYBE_IP4, STATE_IP6_IP4, STATE_IP6_IP4_DOT, STATE_IP6_DONE }; - OUStringBuffer aTheCanonic; + OUStringBuffer aTheCanonic(32); sal_uInt32 nNumber = 0; int nDigits = 0; int nOctets = 0; @@ -4320,7 +4320,7 @@ OUString INetURLObject::getFSysPath(FSysStyle eStyle, if (pDelimiter) *pDelimiter = '\\'; - OUStringBuffer aSynFSysPath; + OUStringBuffer aSynFSysPath(64); if (m_aHost.isPresent() && m_aHost.getLength() > 0) { aSynFSysPath.append("\\\\"); diff --git a/unotools/source/config/docinfohelper.cxx b/unotools/source/config/docinfohelper.cxx index cf77b11404d8..7e605d187c75 100644 --- a/unotools/source/config/docinfohelper.cxx +++ b/unotools/source/config/docinfohelper.cxx @@ -30,7 +30,7 @@ namespace utl OUString DocInfoHelper::GetGeneratorString() { - OUStringBuffer aResult; + OUStringBuffer aResult(128); // First product: branded name + version // version is <product_versions>_<product_extension>$<platform> diff --git a/unotools/source/misc/datetime.cxx b/unotools/source/misc/datetime.cxx index 7b2ef0eb2c40..ca5c2c110057 100644 --- a/unotools/source/misc/datetime.cxx +++ b/unotools/source/misc/datetime.cxx @@ -259,7 +259,7 @@ void typeConvert(const css::util::DateTime& _rDateTime, DateTime& _rOut) OUString toISO8601(const css::util::DateTime& rDateTime) { - OUStringBuffer rBuffer; + OUStringBuffer rBuffer(32); rBuffer.append(static_cast<sal_Int32>(rDateTime.Year)); rBuffer.append('-'); if( rDateTime.Month < 10 ) diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx index 2fbd6795394c..824caae1698f 100644 --- a/vcl/source/gdi/impgraph.cxx +++ b/vcl/source/gdi/impgraph.cxx @@ -167,9 +167,10 @@ OString GraphicID::getIDString() const { static const char aHexData[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; - OStringBuffer aHexStr; sal_Int32 nShift, nIndex = 0; - aHexStr.setLength(24 + (2 * BITMAP_CHECKSUM_SIZE)); + sal_Int32 nLen = 24 + (2 * BITMAP_CHECKSUM_SIZE); + OStringBuffer aHexStr(nLen); + aHexStr.setLength(nLen); for( nShift = 28; nShift >= 0; nShift -= 4 ) aHexStr[nIndex++] = aHexData[ ( mnID1 >> static_cast<sal_uInt32>(nShift) ) & 0xf ]; diff --git a/vcl/source/uitest/logger.cxx b/vcl/source/uitest/logger.cxx index 858dd0353d14..d7fd1dcf7392 100644 --- a/vcl/source/uitest/logger.cxx +++ b/vcl/source/uitest/logger.cxx @@ -309,7 +309,8 @@ OUString StringMapToOUString(const std::map<OUString, OUString>& rParameters) if (rParameters.empty()) return ""; - OUStringBuffer aParameterString = " {"; + OUStringBuffer aParameterString(static_cast<int>(rParameters.size()*32)); + aParameterString.append(" {"); for (std::map<OUString, OUString>::const_iterator itr = rParameters.begin(); itr != rParameters.end(); ++itr) diff --git a/xmloff/source/core/xmluconv.cxx b/xmloff/source/core/xmluconv.cxx index dcfae65672f1..dfff05c31f7e 100644 --- a/xmloff/source/core/xmluconv.cxx +++ b/xmloff/source/core/xmluconv.cxx @@ -185,6 +185,16 @@ void SvXMLUnitConverter::convertMeasureToXML( OUStringBuffer& rString, m_pImpl->m_eXMLMeasureUnit ); } +/** convert measure to string */ +OUString SvXMLUnitConverter::convertMeasureToXML( sal_Int32 nMeasure ) const +{ + OUStringBuffer s; + ::sax::Converter::convertMeasure( s, nMeasure, + m_pImpl->m_eCoreMeasureUnit, + m_pImpl->m_eXMLMeasureUnit ); + return s.makeStringAndClear(); +} + /** convert string to enum using given enum map, if the enum is not found in the map, this method will return false */ @@ -733,7 +743,7 @@ OUString SvXMLUnitConverter::encodeStyleName( *pEncoded = false; sal_Int32 nLen = rName.getLength(); - OUStringBuffer aBuffer( nLen ); + OUStringBuffer aBuffer( nLen*2 ); for( sal_Int32 i = 0; i < nLen; i++ ) { diff --git a/xmloff/source/style/xmlnume.cxx b/xmloff/source/style/xmlnume.cxx index e9908c8991a5..0f5a45dc40da 100644 --- a/xmloff/source/style/xmlnume.cxx +++ b/xmloff/source/style/xmlnume.cxx @@ -344,31 +344,26 @@ void SvxXMLNumRuleExport::exportLevelStyle( sal_Int32 nLevel, SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, eElem, true, true ); - OUStringBuffer sBuffer; if ( ePosAndSpaceMode == PositionAndSpaceMode::LABEL_WIDTH_AND_POSITION ) { nSpaceBefore += nMinLabelWidth; nMinLabelWidth = -nMinLabelWidth; if( nSpaceBefore != 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nSpaceBefore ); - GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_SPACE_BEFORE, - sBuffer.makeStringAndClear() ); + OUString sAttr = GetExport().GetMM100UnitConverter().convertMeasureToXML( + nSpaceBefore ); + GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_SPACE_BEFORE, sAttr ); } if( nMinLabelWidth != 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nMinLabelWidth ); - GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH, - sBuffer.makeStringAndClear() ); + OUString s = GetExport().GetMM100UnitConverter().convertMeasureToXML( nMinLabelWidth ); + GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH, s); } if( nMinLabelDist > 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nMinLabelDist ); - GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE, - sBuffer.makeStringAndClear() ); + OUString sAttr = GetExport().GetMM100UnitConverter().convertMeasureToXML( + nMinLabelDist ); + GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE, sAttr); } } /* Check, if properties for position-and-space-mode LABEL_ALIGNMENT @@ -443,18 +438,16 @@ void SvxXMLNumRuleExport::exportLevelStyle( sal_Int32 nLevel, if( nImageWidth > 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nImageWidth ); - GetExport().AddAttribute( XML_NAMESPACE_FO, XML_WIDTH, - sBuffer.makeStringAndClear() ); + OUString sAttr = GetExport().GetMM100UnitConverter().convertMeasureToXML( + nImageWidth ); + GetExport().AddAttribute( XML_NAMESPACE_FO, XML_WIDTH, sAttr ); } if( nImageHeight > 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nImageHeight ); - GetExport().AddAttribute( XML_NAMESPACE_FO, XML_HEIGHT, - sBuffer.makeStringAndClear() ); + OUString sAttr = GetExport().GetMM100UnitConverter().convertMeasureToXML( + nImageHeight ); + GetExport().AddAttribute( XML_NAMESPACE_FO, XML_HEIGHT, sAttr ); } } @@ -490,29 +483,29 @@ void SvxXMLNumRuleExport::exportLevelStyle( sal_Int32 nLevel, if ( eLabelFollowedBy == LabelFollow::LISTTAB && nListtabStopPosition > 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nListtabStopPosition ); + OUString sAttr = GetExport().GetMM100UnitConverter().convertMeasureToXML( + nListtabStopPosition ); GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_LIST_TAB_STOP_POSITION, - sBuffer.makeStringAndClear() ); + sAttr ); } if ( nFirstLineIndent != 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nFirstLineIndent ); + OUString sAttr = GetExport().GetMM100UnitConverter().convertMeasureToXML( + nFirstLineIndent ); GetExport().AddAttribute( XML_NAMESPACE_FO, XML_TEXT_INDENT, - sBuffer.makeStringAndClear() ); + sAttr ); } if ( nIndentAt != 0 ) { - GetExport().GetMM100UnitConverter().convertMeasureToXML( - sBuffer, nIndentAt ); + OUString sAttr = GetExport().GetMM100UnitConverter().convertMeasureToXML( + nIndentAt ); GetExport().AddAttribute( XML_NAMESPACE_FO, XML_MARGIN_LEFT, - sBuffer.makeStringAndClear() ); + sAttr ); } SvXMLElementExport aLabelAlignmentElement( GetExport(), XML_NAMESPACE_STYLE, @@ -582,6 +575,7 @@ void SvxXMLNumRuleExport::exportLevelStyle( sal_Int32 nLevel, } else { + OUStringBuffer sBuffer; ::sax::Converter::convertColor( sBuffer, nColor ); GetExport().AddAttribute( XML_NAMESPACE_FO, XML_COLOR, sBuffer.makeStringAndClear() ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits