[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.3' - 69 commits - avmedia/source basctl/source basic/qa basic/source bin/findunusedcode canvas/source chart2/source comphelper/source compilerplugins/clang config_host/config_graphite.h.in config_host.mk.in configure.ac connectivity/source cui/source dbaccess/source desktop/source distro-configs/LibreOfficeEmscripten.conf editeng/source extensions/source filter/source forms/source formula/source fpicker/source framework/source include/basic include/editeng include/rtl include/sfx2 include/svl include/svtools include/svx include/tools include/unotools include/vcl libreofficekit/source linguistic/source oox/source reportdesign/source sal/qa sal/rtl sal/util sc/inc scripting/source sc/source sdext/source sd/source sfx2/source slideshow/source sot/source starmath/inc starmath/source svgio/source svl/source svtools/source svx/inc svx/source sw/inc sw/qa sw/source toolkit/source tools/inc tools/qa tools/source ucb/source unotools/source uui/ source vbahelper/source vcl/CustomTarget_afm_hash.mk vcl/headless vcl/inc vcl/Library_vcl.mk vcl/Module_vcl.mk vcl/opengl vcl/qa vcl/quartz vcl/source vcl/unx vcl/win xmloff/source

Michael Meeks michael.meeks at collabora.com
Mon Dec 18 06:21:16 UTC 2017


 avmedia/source/gstreamer/gstmanager.cxx                           |    2 
 avmedia/source/macavf/manager.mm                                  |    2 
 avmedia/source/quicktime/manager.mm                               |    2 
 avmedia/source/viewer/mediawindow.cxx                             |    4 
 avmedia/source/viewer/mediawindow_impl.cxx                        |    2 
 avmedia/source/win/manager.cxx                                    |    2 
 basctl/source/basicide/baside2.cxx                                |   18 
 basctl/source/basicide/baside2.hxx                                |    5 
 basctl/source/basicide/baside3.cxx                                |    2 
 basctl/source/basicide/basides1.cxx                               |    4 
 basctl/source/basicide/basidesh.cxx                               |    4 
 basctl/source/basicide/bastypes.cxx                               |    4 
 basctl/source/basicide/iderdll.cxx                                |    6 
 basctl/source/basicide/iderdll2.hxx                               |    2 
 basctl/source/basicide/moduldl2.cxx                               |   22 
 basctl/source/inc/basidesh.hxx                                    |    2 
 basctl/source/inc/bastypes.hxx                                    |    7 
 basic/qa/cppunit/test_vba.cxx                                     |    1 
 basic/source/basmgr/basmgr.cxx                                    |   14 
 basic/source/classes/errobject.cxx                                |    7 
 basic/source/classes/sb.cxx                                       |   10 
 basic/source/classes/sbunoobj.cxx                                 |    9 
 basic/source/classes/sbxmod.cxx                                   |   44 
 basic/source/inc/runtime.hxx                                      |   68 
 basic/source/inc/sbintern.hxx                                     |    4 
 basic/source/runtime/methods.cxx                                  |   10 
 basic/source/runtime/methods1.cxx                                 |    2 
 basic/source/runtime/runtime.cxx                                  |   30 
 basic/source/uno/namecont.cxx                                     |  114 
 basic/source/uno/scriptcont.cxx                                   |   16 
 bin/findunusedcode                                                |    1 
 canvas/source/vcl/canvashelper.cxx                                |    8 
 chart2/source/controller/drawinglayer/ViewElementListProvider.cxx |    3 
 chart2/source/controller/main/ElementSelector.cxx                 |    4 
 chart2/source/controller/main/ElementSelector.hxx                 |    2 
 comphelper/source/misc/documentinfo.cxx                           |    2 
 compilerplugins/clang/fpcomparison.cxx                            |    6 
 config_host.mk.in                                                 |    1 
 config_host/config_graphite.h.in                                  |    6 
 configure.ac                                                      |   47 
 connectivity/source/drivers/calc/CConnection.cxx                  |    2 
 connectivity/source/drivers/dbase/DTable.cxx                      |   30 
 connectivity/source/drivers/file/FConnection.cxx                  |    2 
 connectivity/source/drivers/file/FDatabaseMetaData.cxx            |    8 
 connectivity/source/drivers/flat/ETable.cxx                       |    2 
 connectivity/source/drivers/writer/WConnection.cxx                |    2 
 cui/source/customize/macropg.cxx                                  |    4 
 cui/source/dialogs/SpellDialog.cxx                                |    4 
 cui/source/dialogs/cuigaldlg.cxx                                  |   10 
 cui/source/dialogs/hldocntp.cxx                                   |   14 
 cui/source/dialogs/hlinettp.cxx                                   |    4 
 cui/source/dialogs/hlmailtp.cxx                                   |    2 
 cui/source/dialogs/hltpbase.cxx                                   |    6 
 cui/source/dialogs/insdlg.cxx                                     |    6 
 cui/source/dialogs/linkdlg.cxx                                    |    6 
 cui/source/dialogs/multipat.cxx                                   |    4 
 cui/source/inc/SpellDialog.hxx                                    |    2 
 cui/source/inc/headertablistbox.hxx                               |    2 
 cui/source/inc/treeopt.hxx                                        |    2 
 cui/source/options/connpooloptions.cxx                            |    4 
 cui/source/options/connpooloptions.hxx                            |    2 
 cui/source/options/doclinkdialog.cxx                              |    2 
 cui/source/options/optjava.cxx                                    |    4 
 cui/source/options/optlingu.cxx                                   |    2 
 cui/source/options/optpath.cxx                                    |    2 
 cui/source/options/treeopt.cxx                                    |    4 
 cui/source/tabpages/numpages.cxx                                  |    2 
 cui/source/tabpages/tplnedef.cxx                                  |    8 
 cui/source/tabpages/tplneend.cxx                                  |    8 
 dbaccess/source/core/dataaccess/databasecontext.cxx               |    2 
 dbaccess/source/core/dataaccess/databasedocument.cxx              |    2 
 dbaccess/source/core/dataaccess/datasource.cxx                    |    2 
 dbaccess/source/ext/macromigration/macromigrationpages.cxx        |    2 
 dbaccess/source/filter/xml/xmlfilter.cxx                          |    4 
 dbaccess/source/ui/app/AppController.cxx                          |    6 
 dbaccess/source/ui/app/AppDetailPageHelper.cxx                    |    6 
 dbaccess/source/ui/browser/dbloader.cxx                           |    2 
 dbaccess/source/ui/browser/unodatbr.cxx                           |    6 
 dbaccess/source/ui/control/opendoccontrols.cxx                    |    4 
 dbaccess/source/ui/control/sqledit.cxx                            |    2 
 dbaccess/source/ui/dlg/ConnectionHelper.cxx                       |   12 
 dbaccess/source/ui/dlg/dbfindex.cxx                               |    2 
 dbaccess/source/ui/dlg/dbwizsetup.cxx                             |   14 
 dbaccess/source/ui/inc/sqledit.hxx                                |    3 
 dbaccess/source/ui/misc/TableCopyHelper.cxx                       |    2 
 dbaccess/source/ui/misc/UITools.cxx                               |    4 
 dbaccess/source/ui/querydesign/limitboxcontroller.cxx             |    8 
 desktop/source/app/app.cxx                                        |    4 
 desktop/source/deployment/gui/dp_gui_dialog2.cxx                  |    6 
 desktop/source/deployment/gui/dp_gui_dialog2.hxx                  |    2 
 desktop/source/deployment/gui/dp_gui_extlistbox.cxx               |    4 
 desktop/source/deployment/gui/dp_gui_extlistbox.hxx               |    2 
 desktop/source/deployment/gui/license_dialog.cxx                  |    3 
 desktop/source/lib/init.cxx                                       |   11 
 desktop/source/migration/migration.cxx                            |    6 
 desktop/source/migration/services/basicmigration.cxx              |    4 
 desktop/source/migration/services/oo3extensionmigration.cxx       |    4 
 desktop/source/migration/services/wordbookmigration.cxx           |    4 
 distro-configs/LibreOfficeEmscripten.conf                         |    1 
 editeng/source/editeng/editdoc.cxx                                |    2 
 editeng/source/editeng/editdoc.hxx                                |   23 
 editeng/source/editeng/editeng.cxx                                |   29 
 editeng/source/editeng/editundo.cxx                               |    2 
 editeng/source/editeng/editundo.hxx                               |   10 
 editeng/source/editeng/editview.cxx                               |    4 
 editeng/source/editeng/edtspell.cxx                               |    2 
 editeng/source/editeng/eehtml.cxx                                 |    2 
 editeng/source/editeng/impedit.cxx                                |   20 
 editeng/source/editeng/impedit.hxx                                |   51 
 editeng/source/editeng/impedit2.cxx                               |   48 
 editeng/source/editeng/impedit3.cxx                               |   18 
 editeng/source/editeng/impedit5.cxx                               |    6 
 editeng/source/items/flditem.cxx                                  |    8 
 editeng/source/misc/acorrcfg.cxx                                  |    2 
 editeng/source/misc/svxacorr.cxx                                  |    8 
 extensions/source/abpilot/abpfinalpage.cxx                        |    2 
 extensions/source/abpilot/datasourcehandling.cxx                  |    4 
 extensions/source/dbpilots/controlwizard.cxx                      |    2 
 extensions/source/propctrlr/browserlistbox.cxx                    |    4 
 extensions/source/propctrlr/browserlistbox.hxx                    |    2 
 extensions/source/propctrlr/browserview.cxx                       |    4 
 extensions/source/propctrlr/browserview.hxx                       |    2 
 extensions/source/propctrlr/formcomponenthandler.cxx              |    2 
 filter/source/config/cache/filtercache.cxx                        |    2 
 filter/source/config/cache/typedetection.cxx                      |    2 
 filter/source/flash/swfwriter1.cxx                                |    8 
 filter/source/graphicfilter/eps/eps.cxx                           |   16 
 filter/source/graphicfilter/icgm/actimpr.cxx                      |    6 
 filter/source/graphicfilter/icgm/class4.cxx                       |    8 
 filter/source/graphicfilter/icgm/outact.hxx                       |    2 
 filter/source/msfilter/escherex.cxx                               |    8 
 filter/source/msfilter/msdffimp.cxx                               |   10 
 filter/source/pdf/pdfexport.cxx                                   |    2 
 filter/source/storagefilterdetect/filterdetect.cxx                |    2 
 filter/source/svg/svgwriter.cxx                                   |    2 
 filter/source/textfilterdetect/filterdetect.cxx                   |    2 
 filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx               |    4 
 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx              |    8 
 filter/source/xsltdialog/xmlfiltersettingsdialog.hxx              |    4 
 filter/source/xsltdialog/xmlfiltertestdialog.cxx                  |    2 
 filter/source/xsltfilter/XSLTFilter.cxx                           |    6 
 forms/source/component/Button.cxx                                 |    2 
 forms/source/component/DatabaseForm.cxx                           |   14 
 forms/source/component/ImageButton.cxx                            |    2 
 forms/source/richtext/richtextvclcontrol.cxx                      |    6 
 forms/source/richtext/richtextvclcontrol.hxx                      |    2 
 forms/source/xforms/submission/replace.cxx                        |    2 
 forms/source/xforms/submission/submission_get.cxx                 |    2 
 forms/source/xforms/submission/submission_post.cxx                |    2 
 forms/source/xforms/submission/submission_put.cxx                 |    2 
 formula/source/ui/dlg/funcutl.cxx                                 |    2 
 fpicker/source/office/OfficeFilePicker.cxx                        |    6 
 fpicker/source/office/OfficeFolderPicker.cxx                      |    2 
 fpicker/source/office/PlacesListBox.cxx                           |    4 
 fpicker/source/office/PlacesListBox.hxx                           |    2 
 fpicker/source/office/RemoteFilesDialog.cxx                       |   22 
 fpicker/source/office/iodlg.cxx                                   |   50 
 fpicker/source/office/iodlg.hxx                                   |    2 
 fpicker/source/office/iodlgimp.cxx                                |    2 
 framework/source/fwe/helper/titlehelper.cxx                       |    8 
 framework/source/services/substitutepathvars.cxx                  |    6 
 framework/source/services/uriabbreviation.cxx                     |    2 
 framework/source/services/urltransformer.cxx                      |   26 
 framework/source/uielement/fontmenucontroller.cxx                 |    2 
 framework/source/uielement/generictoolbarcontroller.cxx           |    2 
 framework/source/uielement/recentfilesmenucontroller.cxx          |    2 
 include/basic/sbdef.hxx                                           |   17 
 include/basic/sbmeth.hxx                                          |    8 
 include/basic/sbstar.hxx                                          |   14 
 include/editeng/editeng.hxx                                       |    6 
 include/rtl/alloc.h                                               |   17 
 include/sfx2/basedlgs.hxx                                         |    4 
 include/sfx2/dockwin.hxx                                          |    2 
 include/sfx2/new.hxx                                              |    7 
 include/sfx2/objface.hxx                                          |    5 
 include/sfx2/prnmon.hxx                                           |    2 
 include/sfx2/shell.hxx                                            |   23 
 include/sfx2/sidebar/Deck.hxx                                     |    2 
 include/sfx2/sidebar/SidebarToolBox.hxx                           |    2 
 include/sfx2/sidebar/TabBar.hxx                                   |    2 
 include/svl/hint.hxx                                              |    1 
 include/svl/urihelper.hxx                                         |   10 
 include/svtools/ctrltool.hxx                                      |    6 
 include/svtools/editbrowsebox.hxx                                 |    2 
 include/svtools/fileurlbox.hxx                                    |    2 
 include/svtools/fmtfield.hxx                                      |    2 
 include/svtools/inettbc.hxx                                       |    2 
 include/svtools/place.hxx                                         |    2 
 include/svtools/prnsetup.hxx                                      |    2 
 include/svtools/urlcontrol.hxx                                    |    2 
 include/svtools/wizdlg.hxx                                        |    2 
 include/svx/colrctrl.hxx                                          |    2 
 include/svx/itemwin.hxx                                           |    8 
 include/svx/ruler.hxx                                             |    1 
 include/svx/sidebar/PanelLayout.hxx                               |    2 
 include/svx/svdpntv.hxx                                           |    2 
 include/svx/svdview.hxx                                           |    2 
 include/svx/xoutbmp.hxx                                           |    3 
 include/svx/xpoly.hxx                                             |   17 
 include/tools/fontenum.hxx                                        |    3 
 include/tools/poly.hxx                                            |   15 
 include/tools/urlobj.hxx                                          |   90 
 include/unotools/options.hxx                                      |   24 
 include/unotools/syslocaleoptions.hxx                             |   10 
 include/vcl/combobox.hxx                                          |    2 
 include/vcl/ctrl.hxx                                              |    2 
 include/vcl/dialog.hxx                                            |    2 
 include/vcl/dockwin.hxx                                           |    2 
 include/vcl/field.hxx                                             |   24 
 include/vcl/floatwin.hxx                                          |    2 
 include/vcl/font.hxx                                              |   10 
 include/vcl/layout.hxx                                            |    2 
 include/vcl/longcurr.hxx                                          |    4 
 include/vcl/metric.hxx                                            |    6 
 include/vcl/outdev.hxx                                            |    6 
 include/vcl/settings.hxx                                          |    3 
 include/vcl/spinfld.hxx                                           |    2 
 include/vcl/syswin.hxx                                            |    2 
 include/vcl/tabctrl.hxx                                           |    2 
 include/vcl/toolbox.hxx                                           |    2 
 include/vcl/vclmedit.hxx                                          |    2 
 include/vcl/window.hxx                                            |    2 
 libreofficekit/source/gtk/lokdocview.cxx                          |    2 
 linguistic/source/convdiclist.cxx                                 |    8 
 linguistic/source/dlistimp.cxx                                    |    2 
 linguistic/source/misc2.cxx                                       |    6 
 oox/source/export/drawingml.cxx                                   |    8 
 oox/source/ppt/pptimport.cxx                                      |    2 
 reportdesign/source/ui/inc/ColorListener.hxx                      |    1 
 reportdesign/source/ui/inc/ScrollHelper.hxx                       |    2 
 reportdesign/source/ui/inc/StartMarker.hxx                        |    1 
 reportdesign/source/ui/inc/ViewsWindow.hxx                        |    2 
 reportdesign/source/ui/report/ScrollHelper.cxx                    |    4 
 reportdesign/source/ui/report/ViewsWindow.cxx                     |    2 
 sal/qa/rtl/alloc/rtl_alloc.cxx                                    |   70 
 sal/rtl/alloc_arena.cxx                                           |   31 
 sal/rtl/alloc_arena.hxx                                           |    8 
 sal/rtl/alloc_cache.cxx                                           |   20 
 sal/rtl/alloc_global.cxx                                          |    4 
 sal/rtl/strimp.cxx                                                |   68 
 sal/rtl/strimp.hxx                                                |    6 
 sal/rtl/string.cxx                                                |    6 
 sal/rtl/strtmpl.cxx                                               |    4 
 sal/rtl/ustring.cxx                                               |    8 
 sal/util/sal.map                                                  |    4 
 sc/inc/chgtrack.hxx                                               |    2 
 sc/inc/column.hxx                                                 |    1 
 sc/inc/scmod.hxx                                                  |    2 
 sc/source/core/data/column.cxx                                    |    3 
 sc/source/core/data/column2.cxx                                   |    2 
 sc/source/core/data/documen2.cxx                                  |    2 
 sc/source/core/data/documen8.cxx                                  |    4 
 sc/source/core/data/document.cxx                                  |    6 
 sc/source/core/data/global2.cxx                                   |    6 
 sc/source/core/data/globalx.cxx                                   |    2 
 sc/source/core/tool/autoform.cxx                                  |    4 
 sc/source/core/tool/chgtrack.cxx                                  |    2 
 sc/source/core/tool/compiler.cxx                                  |    4 
 sc/source/core/tool/formulalogger.cxx                             |    2 
 sc/source/core/tool/interpr1.cxx                                  |    2 
 sc/source/filter/excel/xecontent.cxx                              |    6 
 sc/source/filter/excel/xicontent.cxx                              |    2 
 sc/source/filter/lotus/lotus.cxx                                  |    2 
 sc/source/filter/xcl97/xcl97rec.cxx                               |    2 
 sc/source/ui/app/drwtrans.cxx                                     |    2 
 sc/source/ui/app/inputhdl.cxx                                     |  258 -
 sc/source/ui/app/inputwin.cxx                                     |   14 
 sc/source/ui/app/scmod.cxx                                        |    5 
 sc/source/ui/cctrl/checklistmenu.cxx                              |    4 
 sc/source/ui/condformat/condformatdlgentry.cxx                    |    4 
 sc/source/ui/dbgui/csvgrid.cxx                                    |    2 
 sc/source/ui/docshell/docsh.cxx                                   |    4 
 sc/source/ui/docshell/docsh3.cxx                                  |    2 
 sc/source/ui/docshell/docsh8.cxx                                  |   12 
 sc/source/ui/docshell/externalrefmgr.cxx                          |    6 
 sc/source/ui/drawfunc/chartsh.cxx                                 |    3 
 sc/source/ui/drawfunc/drawsh.cxx                                  |    3 
 sc/source/ui/drawfunc/drformsh.cxx                                |    3 
 sc/source/ui/drawfunc/drtxtob.cxx                                 |    3 
 sc/source/ui/drawfunc/graphsh.cxx                                 |    3 
 sc/source/ui/drawfunc/mediash.cxx                                 |    2 
 sc/source/ui/drawfunc/oleobjsh.cxx                                |    3 
 sc/source/ui/formdlg/formula.cxx                                  |    2 
 sc/source/ui/inc/checklistmenu.hxx                                |    2 
 sc/source/ui/inc/condformatdlgentry.hxx                           |    5 
 sc/source/ui/inc/csvgrid.hxx                                      |    2 
 sc/source/ui/inc/inputhdl.hxx                                     |    3 
 sc/source/ui/inc/inputwin.hxx                                     |    2 
 sc/source/ui/inc/navipi.hxx                                       |    9 
 sc/source/ui/inc/tabvwsh.hxx                                      |    5 
 sc/source/ui/navipi/navipi.cxx                                    |    8 
 sc/source/ui/navipi/scenwnd.cxx                                   |    4 
 sc/source/ui/vba/vbaworkbook.cxx                                  |    4 
 sc/source/ui/view/cellsh.cxx                                      |    3 
 sc/source/ui/view/formatsh.cxx                                    |    3 
 sc/source/ui/view/gridwin5.cxx                                    |    2 
 sc/source/ui/view/prevwsh.cxx                                     |    7 
 sc/source/ui/view/printfun.cxx                                    |    4 
 sc/source/ui/view/tabvwsh.cxx                                     |    3 
 sc/source/ui/view/tabvwsh3.cxx                                    |    2 
 sc/source/ui/view/tabvwsh4.cxx                                    |   21 
 sc/source/ui/view/tabvwsha.cxx                                    |    6 
 sc/source/ui/view/viewfun4.cxx                                    |    2 
 sc/source/ui/xmlsource/xmlsourcedlg.cxx                           |    2 
 scripting/source/dlgprov/dlgprov.cxx                              |    2 
 scripting/source/provider/MasterScriptProvider.cxx                |    2 
 scripting/source/stringresource/stringresource.cxx                |    4 
 sd/source/core/CustomAnimationCloner.cxx                          |    7 
 sd/source/core/CustomAnimationEffect.cxx                          |    1 
 sd/source/core/EffectMigration.cxx                                |    3 
 sd/source/core/TransitionPreset.cxx                               |    1 
 sd/source/core/annotations/AnnotationEnumeration.cxx              |    1 
 sd/source/core/drawdoc.cxx                                        |    2 
 sd/source/core/drawdoc2.cxx                                       |    2 
 sd/source/core/drawdoc3.cxx                                       |    2 
 sd/source/core/drawdoc4.cxx                                       |    2 
 sd/source/core/sdpage_animations.cxx                              |    1 
 sd/source/filter/cgm/sdcgmfilter.cxx                              |    2 
 sd/source/filter/eppt/epptso.cxx                                  |    4 
 sd/source/filter/grf/sdgrffilter.cxx                              |    2 
 sd/source/filter/html/htmlex.cxx                                  |    4 
 sd/source/filter/html/pubdlg.cxx                                  |   10 
 sd/source/filter/ppt/pptin.cxx                                    |   10 
 sd/source/ui/animations/CustomAnimationDialog.cxx                 |    2 
 sd/source/ui/app/sdmod.cxx                                        |    2 
 sd/source/ui/dlg/PhotoAlbumDialog.cxx                             |    6 
 sd/source/ui/dlg/RemoteDialogClientBox.cxx                        |    4 
 sd/source/ui/dlg/RemoteDialogClientBox.hxx                        |    2 
 sd/source/ui/dlg/docprev.cxx                                      |    4 
 sd/source/ui/dlg/navigatr.cxx                                     |    8 
 sd/source/ui/dlg/sdpreslt.cxx                                     |    2 
 sd/source/ui/dlg/sdtreelb.cxx                                     |    2 
 sd/source/ui/dlg/tpaction.cxx                                     |    6 
 sd/source/ui/docshell/docshel4.cxx                                |    2 
 sd/source/ui/func/fucon3d.cxx                                     |   16 
 sd/source/ui/func/fudraw.cxx                                      |   10 
 sd/source/ui/func/fuinsert.cxx                                    |    2 
 sd/source/ui/func/fusel.cxx                                       |    4 
 sd/source/ui/func/futext.cxx                                      |    2 
 sd/source/ui/inc/DrawViewShell.hxx                                |    2 
 sd/source/ui/inc/Window.hxx                                       |    2 
 sd/source/ui/inc/WindowUpdater.hxx                                |    2 
 sd/source/ui/inc/docprev.hxx                                      |    2 
 sd/source/ui/inc/navigatr.hxx                                     |    2 
 sd/source/ui/sidebar/MasterPageDescriptor.cxx                     |    2 
 sd/source/ui/slideshow/slideshowimpl.cxx                          |    6 
 sd/source/ui/slidesorter/inc/view/SlideSorterView.hxx             |    2 
 sd/source/ui/slidesorter/shell/SlideSorter.cxx                    |    4 
 sd/source/ui/slidesorter/view/SlideSorterView.cxx                 |    2 
 sd/source/ui/unoidl/UnoDocumentSettings.cxx                       |    2 
 sd/source/ui/view/WindowUpdater.cxx                               |    2 
 sd/source/ui/view/drviews3.cxx                                    |    2 
 sd/source/ui/view/drviewse.cxx                                    |    4 
 sd/source/ui/view/drviewsk.cxx                                    |    2 
 sd/source/ui/view/outlnvsh.cxx                                    |    4 
 sd/source/ui/view/presvish.cxx                                    |    8 
 sd/source/ui/view/sdview4.cxx                                     |    2 
 sd/source/ui/view/sdwindow.cxx                                    |    4 
 sdext/source/minimizer/optimizerdialog.cxx                        |    2 
 sfx2/source/appl/appdde.cxx                                       |    8 
 sfx2/source/appl/appopen.cxx                                      |    2 
 sfx2/source/appl/macroloader.cxx                                  |    6 
 sfx2/source/appl/newhelp.cxx                                      |   26 
 sfx2/source/appl/newhelp.hxx                                      |   10 
 sfx2/source/appl/opengrf.cxx                                      |    6 
 sfx2/source/appl/sfxhelp.cxx                                      |    2 
 sfx2/source/appl/sfxpicklist.cxx                                  |    4 
 sfx2/source/appl/shutdowniconaqua.mm                              |    2 
 sfx2/source/appl/workwin.cxx                                      |   61 
 sfx2/source/bastyp/fltfnc.cxx                                     |    4 
 sfx2/source/bastyp/frmhtmlw.cxx                                   |    2 
 sfx2/source/bastyp/helper.cxx                                     |    4 
 sfx2/source/control/dispatch.cxx                                  |   35 
 sfx2/source/control/objface.cxx                                   |   51 
 sfx2/source/control/recentdocsview.cxx                            |    2 
 sfx2/source/control/recentdocsviewitem.cxx                        |    2 
 sfx2/source/control/unoctitm.cxx                                  |    2 
 sfx2/source/dialog/basedlgs.cxx                                   |   16 
 sfx2/source/dialog/dinfdlg.cxx                                    |    6 
 sfx2/source/dialog/dockwin.cxx                                    |   14 
 sfx2/source/dialog/filedlghelper.cxx                              |   26 
 sfx2/source/dialog/mailmodel.cxx                                  |   10 
 sfx2/source/dialog/partwnd.cxx                                    |    4 
 sfx2/source/dialog/templdlg.cxx                                   |    8 
 sfx2/source/doc/docfile.cxx                                       |   76 
 sfx2/source/doc/docinsert.cxx                                     |    2 
 sfx2/source/doc/docmacromode.cxx                                  |    2 
 sfx2/source/doc/doctempl.cxx                                      |   34 
 sfx2/source/doc/doctemplates.cxx                                  |  114 
 sfx2/source/doc/frmdescr.cxx                                      |    2 
 sfx2/source/doc/guisaveas.cxx                                     |   26 
 sfx2/source/doc/iframe.cxx                                        |    4 
 sfx2/source/doc/new.cxx                                           |   16 
 sfx2/source/doc/objcont.cxx                                       |    2 
 sfx2/source/doc/objmisc.cxx                                       |   26 
 sfx2/source/doc/objstor.cxx                                       |    8 
 sfx2/source/doc/objxtor.cxx                                       |    2 
 sfx2/source/doc/printhelper.cxx                                   |    4 
 sfx2/source/doc/sfxbasemodel.cxx                                  |    2 
 sfx2/source/doc/templatedlg.cxx                                   |    4 
 sfx2/source/inc/partwnd.hxx                                       |    2 
 sfx2/source/inc/templdgi.hxx                                      |    4 
 sfx2/source/inc/workwin.hxx                                       |   26 
 sfx2/source/inet/inettbc.cxx                                      |    2 
 sfx2/source/notify/eventsupplier.cxx                              |    2 
 sfx2/source/sidebar/Deck.cxx                                      |    4 
 sfx2/source/sidebar/SidebarToolBox.cxx                            |    6 
 sfx2/source/sidebar/TabBar.cxx                                    |    2 
 sfx2/source/view/frame2.cxx                                       |    8 
 sfx2/source/view/printer.cxx                                      |    4 
 sfx2/source/view/viewfrm.cxx                                      |   12 
 sfx2/source/view/viewfrm2.cxx                                     |    2 
 sfx2/source/view/viewsh.cxx                                       |    4 
 slideshow/source/engine/shapes/gdimtftools.cxx                    |    2 
 slideshow/source/engine/shapes/shapeimporter.cxx                  |    2 
 slideshow/source/engine/soundplayer.cxx                           |    2 
 sot/source/sdstor/storage.cxx                                     |    4 
 sot/source/sdstor/ucbstorage.cxx                                  |   10 
 starmath/inc/smmod.hxx                                            |    2 
 starmath/source/smmod.cxx                                         |    2 
 starmath/source/view.cxx                                          |    3 
 svgio/source/svgreader/svgnode.cxx                                |    2 
 svl/source/config/cjkoptions.cxx                                  |    4 
 svl/source/config/ctloptions.cxx                                  |   16 
 svl/source/fsstor/fsstorage.cxx                                   |   74 
 svl/source/misc/filenotation.cxx                                  |    2 
 svl/source/misc/inethist.cxx                                      |   14 
 svl/source/misc/lockfilecommon.cxx                                |    4 
 svl/source/misc/urihelper.cxx                                     |   20 
 svl/source/numbers/zforlist.cxx                                   |   10 
 svtools/source/brwbox/editbrowsebox.cxx                           |    4 
 svtools/source/config/accessibilityoptions.cxx                    |    2 
 svtools/source/config/colorcfg.cxx                                |    4 
 svtools/source/contnr/fileview.cxx                                |   14 
 svtools/source/contnr/foldertree.cxx                              |    4 
 svtools/source/contnr/simptabl.cxx                                |    2 
 svtools/source/control/breadcrumb.cxx                             |    4 
 svtools/source/control/calendar.cxx                               |    6 
 svtools/source/control/ctrltool.cxx                               |   25 
 svtools/source/control/fileurlbox.cxx                             |    6 
 svtools/source/control/fmtfield.cxx                               |    4 
 svtools/source/control/inettbc.cxx                                |   50 
 svtools/source/control/urlcontrol.cxx                             |    6 
 svtools/source/dialogs/PlaceEditDialog.cxx                        |   10 
 svtools/source/dialogs/ServerDetailsControls.cxx                  |    4 
 svtools/source/dialogs/addresstemplate.cxx                        |    4 
 svtools/source/dialogs/prnsetup.cxx                               |    4 
 svtools/source/dialogs/wizdlg.cxx                                 |    4 
 svtools/source/hatchwindow/ipwin.cxx                              |    4 
 svtools/source/hatchwindow/ipwin.hxx                              |    2 
 svtools/source/misc/imagemgr.cxx                                  |    6 
 svtools/source/misc/imap.cxx                                      |    2 
 svtools/source/misc/templatefoldercache.cxx                       |    6 
 svtools/source/misc/transfer.cxx                                  |    2 
 svtools/source/table/tabledatawindow.cxx                          |    4 
 svtools/source/table/tabledatawindow.hxx                          |    2 
 svx/inc/galbrws2.hxx                                              |    1 
 svx/inc/xpolyimp.hxx                                              |    2 
 svx/source/core/graphichelper.cxx                                 |    6 
 svx/source/dialog/docrecovery.cxx                                 |    6 
 svx/source/dialog/imapdlg.cxx                                     |    8 
 svx/source/dialog/imapwnd.cxx                                     |    2 
 svx/source/dialog/langbox.cxx                                     |    2 
 svx/source/form/databaselocationinput.cxx                         |    2 
 svx/source/form/datanavi.cxx                                      |    6 
 svx/source/form/fmpage.cxx                                        |    2 
 svx/source/form/fmshell.cxx                                       |   12 
 svx/source/gallery2/galbrws1.cxx                                  |    2 
 svx/source/gallery2/galbrws1.hxx                                  |    1 
 svx/source/gallery2/galbrws2.cxx                                  |    6 
 svx/source/gallery2/galctrl.cxx                                   |    4 
 svx/source/gallery2/galexpl.cxx                                   |    2 
 svx/source/gallery2/galini.cxx                                    |    2 
 svx/source/gallery2/gallery1.cxx                                  |   12 
 svx/source/gallery2/galmisc.cxx                                   |   24 
 svx/source/gallery2/galobj.cxx                                    |    2 
 svx/source/gallery2/galtheme.cxx                                  |   66 
 svx/source/gengal/gengal.cxx                                      |    6 
 svx/source/inc/datanavi.hxx                                       |    2 
 svx/source/inc/filtnav.hxx                                        |    1 
 svx/source/inc/fmexpl.hxx                                         |    1 
 svx/source/sidebar/PanelLayout.cxx                                |    4 
 svx/source/sidebar/nbdtmg.cxx                                     |    4 
 svx/source/svdraw/svdoedge.cxx                                    |   36 
 svx/source/svdraw/svdomedia.cxx                                   |    2 
 svx/source/svdraw/svdopath.cxx                                    |   62 
 svx/source/svdraw/svdotxln.cxx                                    |    6 
 svx/source/svdraw/svdpntv.cxx                                     |    2 
 svx/source/svdraw/svdview.cxx                                     |    4 
 svx/source/tbxctrls/colrctrl.cxx                                  |    4 
 svx/source/tbxctrls/grafctrl.cxx                                  |    6 
 svx/source/tbxctrls/itemwin.cxx                                   |   16 
 svx/source/tbxctrls/tbcontrl.cxx                                  |   12 
 svx/source/tbxctrls/tbunocontroller.cxx                           |    6 
 svx/source/toolbars/extrusionbar.cxx                              |    2 
 svx/source/toolbars/fontworkbar.cxx                               |    2 
 svx/source/unogallery/unogalitem.cxx                              |    2 
 svx/source/xoutdev/_xoutbmp.cxx                                   |   23 
 svx/source/xoutdev/_xpoly.cxx                                     |   48 
 svx/source/xoutdev/xtable.cxx                                     |    6 
 sw/inc/crsrsh.hxx                                                 |    2 
 sw/inc/doc.hxx                                                    |    2 
 sw/inc/ndgrf.hxx                                                  |    4 
 sw/inc/ndnotxt.hxx                                                |    6 
 sw/inc/ndole.hxx                                                  |    4 
 sw/inc/ndtxt.hxx                                                  |    4 
 sw/inc/ndtyp.hxx                                                  |   27 
 sw/inc/node.hxx                                                   |   52 
 sw/inc/swmodule.hxx                                               |    2 
 sw/qa/core/uwriter.cxx                                            |    6 
 sw/source/core/access/accdoc.cxx                                  |    1 
 sw/source/core/access/accdoc.hxx                                  |    1 
 sw/source/core/access/accfootnote.cxx                             |    1 
 sw/source/core/access/accframebase.cxx                            |    4 
 sw/source/core/access/accframebase.hxx                            |    2 
 sw/source/core/access/accheaderfooter.cxx                         |    1 
 sw/source/core/access/acchyperlink.cxx                            |    1 
 sw/source/core/access/accmap.cxx                                  |    9 
 sw/source/core/access/accnotextframe.cxx                          |    3 
 sw/source/core/access/accpara.cxx                                 |    2 
 sw/source/core/access/accportions.cxx                             |    2 
 sw/source/core/access/accselectionhelper.hxx                      |    1 
 sw/source/core/access/acctextframe.cxx                            |    1 
 sw/source/core/attr/format.cxx                                    |    1 
 sw/source/core/bastyp/breakit.cxx                                 |    1 
 sw/source/core/bastyp/calc.cxx                                    |    1 
 sw/source/core/bastyp/init.cxx                                    |    2 
 sw/source/core/crsr/callnk.cxx                                    |   14 
 sw/source/core/crsr/callnk.hxx                                    |    4 
 sw/source/core/crsr/crsrsh.cxx                                    |   10 
 sw/source/core/crsr/swcrsr.cxx                                    |    1 
 sw/source/core/doc/DocumentContentOperationsManager.cxx           |    2 
 sw/source/core/doc/DocumentLayoutManager.cxx                      |    8 
 sw/source/core/doc/DocumentLinksAdministrationManager.cxx         |    2 
 sw/source/core/doc/DocumentStatisticsManager.cxx                  |   15 
 sw/source/core/doc/doc.cxx                                        |    7 
 sw/source/core/doc/doccomp.cxx                                    |   43 
 sw/source/core/doc/docedt.cxx                                     |    7 
 sw/source/core/doc/docfmt.cxx                                     |    2 
 sw/source/core/doc/docglbl.cxx                                    |    2 
 sw/source/core/doc/doclay.cxx                                     |   21 
 sw/source/core/doc/docnew.cxx                                     |    5 
 sw/source/core/doc/docnum.cxx                                     |    8 
 sw/source/core/doc/docsort.cxx                                    |    2 
 sw/source/core/doc/docxforms.cxx                                  |    1 
 sw/source/core/doc/notxtfrm.cxx                                   |   10 
 sw/source/core/doc/tblrwcl.cxx                                    |    1 
 sw/source/core/doc/visiturl.cxx                                   |    2 
 sw/source/core/docnode/finalthreadmanager.cxx                     |    1 
 sw/source/core/docnode/ndnotxt.cxx                                |    2 
 sw/source/core/docnode/ndsect.cxx                                 |    2 
 sw/source/core/docnode/ndtbl.cxx                                  |   15 
 sw/source/core/docnode/node.cxx                                   |   61 
 sw/source/core/docnode/nodes.cxx                                  |   64 
 sw/source/core/draw/dpage.cxx                                     |    8 
 sw/source/core/draw/drawdoc.cxx                                   |    1 
 sw/source/core/edit/edattr.cxx                                    |    6 
 sw/source/core/edit/edfldexp.cxx                                  |    2 
 sw/source/core/edit/edglss.cxx                                    |    4 
 sw/source/core/edit/editsh.cxx                                    |    9 
 sw/source/core/edit/edlingu.cxx                                   |    1 
 sw/source/core/edit/edtab.cxx                                     |    1 
 sw/source/core/edit/edws.cxx                                      |    7 
 sw/source/core/fields/docufld.cxx                                 |   21 
 sw/source/core/fields/macrofld.cxx                                |    1 
 sw/source/core/fields/reffld.cxx                                  |    1 
 sw/source/core/frmedt/feflyole.cxx                                |    1 
 sw/source/core/frmedt/feshview.cxx                                |   10 
 sw/source/core/graphic/grfatr.cxx                                 |   12 
 sw/source/core/graphic/ndgrf.cxx                                  |   10 
 sw/source/core/inc/retrieveinputstream.hxx                        |    1 
 sw/source/core/inc/rolbck.hxx                                     |    6 
 sw/source/core/inc/unofootnote.hxx                                |    1 
 sw/source/core/inc/unoparaframeenum.hxx                           |    3 
 sw/source/core/inc/unosection.hxx                                 |    1 
 sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx |    1 
 sw/source/core/ole/ndole.cxx                                      |    8 
 sw/source/core/para/paratr.cxx                                    |   13 
 sw/source/core/swg/SwXMLTextBlocks.cxx                            |    2 
 sw/source/core/swg/swblocks.cxx                                   |    2 
 sw/source/core/text/EnhancedPDFExportHelper.cxx                   |    2 
 sw/source/core/text/itradj.cxx                                    |    1 
 sw/source/core/text/itratr.cxx                                    |    1 
 sw/source/core/text/pormulti.cxx                                  |    1 
 sw/source/core/tox/toxhlp.cxx                                     |    1 
 sw/source/core/txtnode/fntcache.cxx                               |   30 
 sw/source/core/txtnode/ndtxt.cxx                                  |   14 
 sw/source/core/txtnode/txtedt.cxx                                 |    1 
 sw/source/core/undo/rolbck.cxx                                    |    6 
 sw/source/core/undo/undel.cxx                                     |    4 
 sw/source/core/undo/unins.cxx                                     |   12 
 sw/source/core/undo/unmove.cxx                                    |    6 
 sw/source/core/undo/untbl.cxx                                     |    4 
 sw/source/core/unocore/swunohelper.cxx                            |    6 
 sw/source/core/unocore/unocoll.cxx                                |   12 
 sw/source/core/unocore/unoobj2.cxx                                |    6 
 sw/source/core/unocore/unoredline.cxx                             |    6 
 sw/source/core/unocore/unotext.cxx                                |    4 
 sw/source/core/view/vprint.cxx                                    |    1 
 sw/source/filter/basflt/iodetect.cxx                              |    2 
 sw/source/filter/basflt/shellio.cxx                               |    4 
 sw/source/filter/html/SwAppletImpl.cxx                            |    2 
 sw/source/filter/html/htmlgrin.cxx                                |    2 
 sw/source/filter/html/htmlplug.cxx                                |    2 
 sw/source/filter/html/wrthtml.cxx                                 |    2 
 sw/source/filter/writer/wrt_fn.cxx                                |    6 
 sw/source/filter/ww8/writerhelper.cxx                             |    4 
 sw/source/filter/ww8/wrtw8esh.cxx                                 |    6 
 sw/source/filter/ww8/wrtw8nds.cxx                                 |   23 
 sw/source/filter/ww8/ww8graf2.cxx                                 |    4 
 sw/source/filter/ww8/ww8par.cxx                                   |    6 
 sw/source/filter/ww8/ww8par2.cxx                                  |    4 
 sw/source/filter/xml/xmltexti.cxx                                 |    4 
 sw/source/ui/chrdlg/chardlg.cxx                                   |    2 
 sw/source/ui/dbui/addresslistdialog.cxx                           |    2 
 sw/source/ui/dbui/createaddresslistdialog.cxx                     |    2 
 sw/source/ui/dbui/mmaddressblockpage.hxx                          |    2 
 sw/source/ui/dbui/mmdocselectpage.cxx                             |    2 
 sw/source/ui/dbui/mmresultdialogs.cxx                             |    6 
 sw/source/ui/dialog/uiregionsw.cxx                                |   12 
 sw/source/ui/frmdlg/frmpage.cxx                                   |    4 
 sw/source/ui/index/cnttab.cxx                                     |    6 
 sw/source/ui/misc/glosbib.cxx                                     |    2 
 sw/source/ui/vba/vbatemplate.cxx                                  |    2 
 sw/source/uibase/app/apphdl.cxx                                   |   12 
 sw/source/uibase/app/applab.cxx                                   |    1 
 sw/source/uibase/app/docsh.cxx                                    |    4 
 sw/source/uibase/app/docsh2.cxx                                   |    5 
 sw/source/uibase/app/swmodule.cxx                                 |    1 
 sw/source/uibase/cctrl/actctrl.cxx                                |    4 
 sw/source/uibase/config/uinums.cxx                                |    2 
 sw/source/uibase/config/usrpref.cxx                               |    1 
 sw/source/uibase/dbui/dbmgr.cxx                                   |   38 
 sw/source/uibase/dbui/dbtree.cxx                                  |    5 
 sw/source/uibase/dbui/mmconfigitem.cxx                            |    4 
 sw/source/uibase/dochdl/gloshdl.cxx                               |    2 
 sw/source/uibase/dochdl/swdtflvr.cxx                              |   17 
 sw/source/uibase/docvw/edtwin2.cxx                                |    4 
 sw/source/uibase/fldui/fldmgr.cxx                                 |    2 
 sw/source/uibase/fldui/xfldui.cxx                                 |    2 
 sw/source/uibase/frmdlg/frmmgr.cxx                                |    1 
 sw/source/uibase/inc/SwXFilterOptions.hxx                         |    1 
 sw/source/uibase/inc/actctrl.hxx                                  |    3 
 sw/source/uibase/inc/conttree.hxx                                 |   20 
 sw/source/uibase/inc/cption.hxx                                   |    7 
 sw/source/uibase/inc/dbinsdlg.hxx                                 |    1 
 sw/source/uibase/inc/glossary.hxx                                 |    7 
 sw/source/uibase/inc/labimp.hxx                                   |   44 
 sw/source/uibase/inc/navipi.hxx                                   |    1 
 sw/source/uibase/inc/redlndlg.hxx                                 |    1 
 sw/source/uibase/inc/srcedtw.hxx                                  |    1 
 sw/source/uibase/inc/swrenamexnameddlg.hxx                        |    3 
 sw/source/uibase/inc/swuicnttab.hxx                               |    2 
 sw/source/uibase/inc/uivwimp.hxx                                  |    1 
 sw/source/uibase/inc/unotools.hxx                                 |    2 
 sw/source/uibase/inc/unotxvw.hxx                                  |    1 
 sw/source/uibase/inc/wrtsh.hxx                                    |    1 
 sw/source/uibase/index/idxmrk.cxx                                 |    3 
 sw/source/uibase/lingu/hyp.cxx                                    |    1 
 sw/source/uibase/lingu/olmenu.cxx                                 |    5 
 sw/source/uibase/lingu/sdrhhcwrap.cxx                             |    1 
 sw/source/uibase/ribbar/workctrl.cxx                              |   12 
 sw/source/uibase/shells/annotsh.cxx                               |    4 
 sw/source/uibase/shells/beziersh.cxx                              |    2 
 sw/source/uibase/shells/drawsh.cxx                                |    2 
 sw/source/uibase/shells/drformsh.cxx                              |    2 
 sw/source/uibase/shells/drwtxtex.cxx                              |    1 
 sw/source/uibase/shells/drwtxtsh.cxx                              |    2 
 sw/source/uibase/shells/frmsh.cxx                                 |    2 
 sw/source/uibase/shells/grfsh.cxx                                 |    4 
 sw/source/uibase/shells/grfshex.cxx                               |    3 
 sw/source/uibase/shells/listsh.cxx                                |    2 
 sw/source/uibase/shells/mediash.cxx                               |    2 
 sw/source/uibase/shells/olesh.cxx                                 |    2 
 sw/source/uibase/shells/tabsh.cxx                                 |    2 
 sw/source/uibase/shells/textsh.cxx                                |    2 
 sw/source/uibase/shells/textsh1.cxx                               |    2 
 sw/source/uibase/shells/textsh2.cxx                               |    8 
 sw/source/uibase/sidebar/PageFooterPanel.cxx                      |    3 
 sw/source/uibase/sidebar/PageFooterPanel.hxx                      |    1 
 sw/source/uibase/sidebar/PageFormatPanel.cxx                      |    3 
 sw/source/uibase/sidebar/PageFormatPanel.hxx                      |    1 
 sw/source/uibase/sidebar/PageHeaderPanel.cxx                      |    3 
 sw/source/uibase/sidebar/PageHeaderPanel.hxx                      |    1 
 sw/source/uibase/sidebar/PageOrientationControl.cxx               |    2 
 sw/source/uibase/sidebar/PageOrientationControl.hxx               |    2 
 sw/source/uibase/sidebar/PageStylesPanel.cxx                      |    3 
 sw/source/uibase/sidebar/PageStylesPanel.hxx                      |    1 
 sw/source/uibase/sidebar/StylePresetsPanel.cxx                    |    4 
 sw/source/uibase/sidebar/StylePresetsPanel.hxx                    |    1 
 sw/source/uibase/sidebar/ThemePanel.cxx                           |    5 
 sw/source/uibase/sidebar/ThemePanel.hxx                           |    1 
 sw/source/uibase/table/chartins.cxx                               |    4 
 sw/source/uibase/uiview/pview.cxx                                 |    3 
 sw/source/uibase/uiview/srcview.cxx                               |    5 
 sw/source/uibase/uiview/uivwimp.cxx                               |    2 
 sw/source/uibase/uiview/view0.cxx                                 |    2 
 sw/source/uibase/uiview/view1.cxx                                 |    1 
 sw/source/uibase/uiview/view2.cxx                                 |    5 
 sw/source/uibase/uiview/viewling.cxx                              |    1 
 sw/source/uibase/uiview/viewprt.cxx                               |    1 
 sw/source/uibase/uno/dlelstnr.cxx                                 |    2 
 sw/source/uibase/uno/unoatxt.cxx                                  |    3 
 sw/source/uibase/uno/unomailmerge.cxx                             |    6 
 sw/source/uibase/uno/unomod.cxx                                   |    1 
 sw/source/uibase/utlui/content.cxx                                |    4 
 sw/source/uibase/utlui/glbltree.cxx                               |   72 
 sw/source/uibase/utlui/navipi.cxx                                 |    2 
 sw/source/uibase/utlui/numfmtlb.cxx                               |    1 
 sw/source/uibase/web/wformsh.cxx                                  |    2 
 sw/source/uibase/web/wfrmsh.cxx                                   |    2 
 sw/source/uibase/web/wgrfsh.cxx                                   |    2 
 sw/source/uibase/web/wlistsh.cxx                                  |    2 
 sw/source/uibase/web/wolesh.cxx                                   |    2 
 sw/source/uibase/web/wtabsh.cxx                                   |    2 
 sw/source/uibase/web/wtextsh.cxx                                  |    2 
 sw/source/uibase/web/wview.cxx                                    |    2 
 sw/source/uibase/wrtsh/wrtsh1.cxx                                 |    1 
 toolkit/source/awt/animatedimagespeer.cxx                         |    2 
 toolkit/source/controls/controlmodelcontainerbase.cxx             |    2 
 tools/inc/poly.h                                                  |    7 
 tools/qa/cppunit/test_urlobj.cxx                                  |   56 
 tools/source/fsys/urlobj.cxx                                      |  112 
 tools/source/generic/poly.cxx                                     |   76 
 ucb/source/core/FileAccess.cxx                                    |   46 
 ucb/source/ucp/cmis/cmis_content.cxx                              |    8 
 ucb/source/ucp/cmis/cmis_url.cxx                                  |   10 
 unotools/source/config/lingucfg.cxx                               |    4 
 unotools/source/config/options.cxx                                |   10 
 unotools/source/config/pathoptions.cxx                            |   16 
 unotools/source/config/syslocaleoptions.cxx                       |   32 
 unotools/source/config/useroptions.cxx                            |    2 
 unotools/source/misc/syslocale.cxx                                |    8 
 unotools/source/ucbhelper/ucbhelper.cxx                           |   14 
 uui/source/fltdlg.cxx                                             |    2 
 uui/source/passworddlg.cxx                                        |    2 
 vbahelper/source/vbahelper/vbadocumentbase.cxx                    |    2 
 vcl/CustomTarget_afm_hash.mk                                      |   20 
 vcl/Library_vcl.mk                                                |   23 
 vcl/Module_vcl.mk                                                 |    1 
 vcl/headless/svpbmp.cxx                                           |  203 -
 vcl/headless/svpframe.cxx                                         |    4 
 vcl/headless/svpgdi.cxx                                           |  335 +-
 vcl/headless/svptext.cxx                                          |    9 
 vcl/headless/svpvd.cxx                                            |   21 
 vcl/inc/BitmapProcessor.hxx                                       |    6 
 vcl/inc/PhysicalFontCollection.hxx                                |    2 
 vcl/inc/PhysicalFontFace.hxx                                      |    1 
 vcl/inc/PhysicalFontFamily.hxx                                    |    4 
 vcl/inc/fontattributes.hxx                                        |   12 
 vcl/inc/graphite_features.hxx                                     |   65 
 vcl/inc/graphite_layout.hxx                                       |  159 -
 vcl/inc/graphite_serverfont.hxx                                   |  110 
 vcl/inc/graphite_static.hxx                                       |   21 
 vcl/inc/headless/svpgdi.hxx                                       |   18 
 vcl/inc/headless/svpvd.hxx                                        |    1 
 vcl/inc/impfont.hxx                                               |   16 
 vcl/inc/impfontmetric.hxx                                         |    6 
 vcl/inc/impfontmetricdata.hxx                                     |    9 
 vcl/inc/listbox.hxx                                               |    2 
 vcl/inc/openglgdiimpl.hxx                                         |    8 
 vcl/inc/pch/precompiled_vcl.hxx                                   |    1 
 vcl/inc/quartz/salgdi.h                                           |   15 
 vcl/inc/salgdi.hxx                                                |   19 
 vcl/inc/salgdiimpl.hxx                                            |    9 
 vcl/inc/sallayout.hxx                                             |    2 
 vcl/inc/svdata.hxx                                                |    2 
 vcl/inc/textlineinfo.hxx                                          |   11 
 vcl/inc/textrender.hxx                                            |    2 
 vcl/inc/unx/cairotextrender.hxx                                   |    4 
 vcl/inc/unx/fontmanager.hxx                                       |  177 -
 vcl/inc/unx/freetype_glyphcache.hxx                               |   12 
 vcl/inc/unx/genpspgraphics.h                                      |   15 
 vcl/inc/unx/glyphcache.hxx                                        |   56 
 vcl/inc/unx/gtk/gtkframe.hxx                                      |    2 
 vcl/inc/unx/printergfx.hxx                                        |   34 
 vcl/inc/unx/salgdi.h                                              |   13 
 vcl/inc/win/salgdi.h                                              |   44 
 vcl/inc/win/winlayout.hxx                                         |   59 
 vcl/opengl/gdiimpl.cxx                                            |   12 
 vcl/qa/cppunit/font.cxx                                           |   50 
 vcl/qa/cppunit/fontmetric.cxx                                     |   38 
 vcl/qa/cppunit/lifecycle.cxx                                      |    2 
 vcl/quartz/CTRunData.cxx                                          |   94 
 vcl/quartz/CTRunData.hxx                                          |   42 
 vcl/quartz/ctfonts.cxx                                            |   28 
 vcl/quartz/ctlayout.cxx                                           |  787 -----
 vcl/quartz/salgdi.cxx                                             |   30 
 vcl/quartz/salgdicommon.cxx                                       |    8 
 vcl/source/app/settings.cxx                                       |    6 
 vcl/source/app/svdata.cxx                                         |    2 
 vcl/source/bitmap/BitmapProcessor.cxx                             |    3 
 vcl/source/bitmap/CommandImageResolver.cxx                        |    2 
 vcl/source/components/dtranscomp.cxx                              |   20 
 vcl/source/components/fontident.cxx                               |    5 
 vcl/source/control/combobox.cxx                                   |    4 
 vcl/source/control/ctrl.cxx                                       |    4 
 vcl/source/control/field.cxx                                      |   24 
 vcl/source/control/field2.cxx                                     |   24 
 vcl/source/control/imp_listbox.cxx                                |    4 
 vcl/source/control/longcurr.cxx                                   |    8 
 vcl/source/control/notebookbar.cxx                                |    1 
 vcl/source/control/spinfld.cxx                                    |    4 
 vcl/source/control/tabctrl.cxx                                    |    4 
 vcl/source/edit/textview.cxx                                      |    5 
 vcl/source/edit/vclmedit.cxx                                      |    4 
 vcl/source/filter/graphicfilter.cxx                               |    9 
 vcl/source/filter/graphicfilter2.cxx                              |    2 
 vcl/source/filter/igif/decode.cxx                                 |   20 
 vcl/source/filter/igif/decode.hxx                                 |    8 
 vcl/source/filter/sgvmain.cxx                                     |    4 
 vcl/source/filter/wmf/emfwr.cxx                                   |    4 
 vcl/source/filter/wmf/winmtf.cxx                                  |    6 
 vcl/source/font/PhysicalFontCollection.cxx                        |    7 
 vcl/source/font/PhysicalFontFace.cxx                              |   40 
 vcl/source/font/PhysicalFontFamily.cxx                            |   13 
 vcl/source/font/font.cxx                                          |   17 
 vcl/source/font/fontattributes.cxx                                |   12 
 vcl/source/font/fontcharmap.cxx                                   |   11 
 vcl/source/font/fontmetric.cxx                                    |   40 
 vcl/source/gdi/CommonSalLayout.cxx                                |    2 
 vcl/source/gdi/impgraph.cxx                                       |   10 
 vcl/source/gdi/pdfwriter_impl.cxx                                 |  274 -
 vcl/source/gdi/pdfwriter_impl2.cxx                                |    4 
 vcl/source/gdi/pngread.cxx                                        |   84 
 vcl/source/gdi/salgdilayout.cxx                                   |    8 
 vcl/source/gdi/sallayout.cxx                                      |    1 
 vcl/source/gdi/svmconverter.cxx                                   |    2 
 vcl/source/gdi/virdev.cxx                                         |    2 
 vcl/source/glyphs/graphite_features.cxx                           |  265 -
 vcl/source/glyphs/graphite_layout.cxx                             | 1143 -------
 vcl/source/helper/commandinfoprovider.cxx                         |    4 
 vcl/source/image/Image.cxx                                        |    2 
 vcl/source/image/ImageArrayData.cxx                               |    2 
 vcl/source/image/ImplImageTree.cxx                                |    7 
 vcl/source/outdev/curvedshapes.cxx                                |    8 
 vcl/source/outdev/font.cxx                                        |   23 
 vcl/source/outdev/line.cxx                                        |    4 
 vcl/source/outdev/polygon.cxx                                     |   12 
 vcl/source/outdev/polyline.cxx                                    |    8 
 vcl/source/outdev/rect.cxx                                        |    4 
 vcl/source/outdev/text.cxx                                        |   98 
 vcl/source/uitest/uno/uitest_uno.cxx                              |    5 
 vcl/source/window/dialog.cxx                                      |    4 
 vcl/source/window/dockwin.cxx                                     |    6 
 vcl/source/window/event.cxx                                       |    2 
 vcl/source/window/floatwin.cxx                                    |    4 
 vcl/source/window/layout.cxx                                      |    4 
 vcl/source/window/mouse.cxx                                       |    6 
 vcl/source/window/syswin.cxx                                      |    4 
 vcl/source/window/toolbox.cxx                                     |   10 
 vcl/source/window/window.cxx                                      |    4 
 vcl/source/window/window2.cxx                                     |   16 
 vcl/unx/generic/app/wmadaptor.cxx                                 |   16 
 vcl/unx/generic/dtrans/config.cxx                                 |    9 
 vcl/unx/generic/fontmanager/adobe_encoding_table.hxx              | 1078 -------
 vcl/unx/generic/fontmanager/afm_keyword_list                      |   62 
 vcl/unx/generic/fontmanager/fontcache.cxx                         |  161 -
 vcl/unx/generic/fontmanager/fontconfig.cxx                        |   24 
 vcl/unx/generic/fontmanager/fontmanager.cxx                       | 1028 -------
 vcl/unx/generic/fontmanager/helper.cxx                            |    2 
 vcl/unx/generic/fontmanager/parseAFM.cxx                          | 1465 ----------
 vcl/unx/generic/fontmanager/parseAFM.hxx                          |  323 --
 vcl/unx/generic/gdi/cairotextrender.cxx                           |   97 
 vcl/unx/generic/gdi/font.cxx                                      |    9 
 vcl/unx/generic/gdi/gdiimpl.cxx                                   |    8 
 vcl/unx/generic/gdi/gdiimpl.hxx                                   |    8 
 vcl/unx/generic/gdi/salbmp.cxx                                    |  165 -
 vcl/unx/generic/gdi/salgdi.cxx                                    |    8 
 vcl/unx/generic/glyphs/freetype_glyphcache.cxx                    |  364 --
 vcl/unx/generic/glyphs/gcach_layout.cxx                           |  621 ----
 vcl/unx/generic/glyphs/glyphcache.cxx                             |    6 
 vcl/unx/generic/glyphs/graphite_serverfont.cxx                    |  134 
 vcl/unx/generic/print/bitmap_gfx.cxx                              |   15 
 vcl/unx/generic/print/common_gfx.cxx                              |   22 
 vcl/unx/generic/print/genprnpsp.cxx                               |   17 
 vcl/unx/generic/print/genpspgraphics.cxx                          |  391 --
 vcl/unx/generic/print/glyphset.cxx                                |  456 ---
 vcl/unx/generic/print/glyphset.hxx                                |   32 
 vcl/unx/generic/print/text_gfx.cxx                                |  482 ---
 vcl/unx/generic/printer/ppdparser.cxx                             |   10 
 vcl/unx/generic/printer/printerinfomanager.cxx                    |    4 
 vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx                          |    4 
 vcl/unx/gtk3/gtk3gtkframe.cxx                                     |   67 
 vcl/win/gdi/gdiimpl.cxx                                           |   36 
 vcl/win/gdi/gdiimpl.hxx                                           |    8 
 vcl/win/gdi/salfont.cxx                                           |  356 --
 vcl/win/gdi/salgdi.cxx                                            |    8 
 vcl/win/gdi/winlayout.cxx                                         |  178 -
 xmloff/source/core/xmlexp.cxx                                     |    4 
 xmloff/source/core/xmlimp.cxx                                     |    6 
 xmloff/source/draw/eventimp.cxx                                   |    2 
 892 files changed, 4134 insertions(+), 14344 deletions(-)

New commits:
commit 9afbb77b635dc61bd75541adc1eb05f7bceed7cd
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Thu Nov 30 18:59:30 2017 +0000

    sal: add pre-initialization scheme for allocations.
    
    This saves several megabytes of dirtied pages for each LOK
    client of Online.
    
    Change-Id: I425a2e7896879f0a64d71fcc0655e9e1fa1256aa
    Reviewed-on: https://gerrit.libreoffice.org/46592
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 0dc4b38dab6e..dd843e83e68d 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -3589,6 +3589,9 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
     if (bInitialized)
         return 1;
 
+    if (eStage == PRE_INIT)
+        rtl_alloc_preInit(sal_True);
+
     if (eStage != SECOND_INIT)
         comphelper::LibreOfficeKit::setActive();
 
@@ -3729,6 +3732,10 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
         fprintf(stderr, "Bootstrapping exception '%s'\n",
                  OUStringToOString(exception.Message, RTL_TEXTENCODING_UTF8).getStr());
     }
+
+    if (eStage == PRE_INIT)
+        rtl_alloc_preInit(sal_False);
+
     return bInitialized;
 }
 
diff --git a/include/rtl/alloc.h b/include/rtl/alloc.h
index ccb8d4183b20..4d8ff69d45a8 100644
--- a/include/rtl/alloc.h
+++ b/include/rtl/alloc.h
@@ -294,6 +294,23 @@ SAL_DLLPUBLIC void SAL_CALL rtl_cache_free (
 ) SAL_THROW_EXTERN_C();
 
 
+#ifdef LIBO_INTERNAL_ONLY
+
+/** rtl_alloc_preInit
+ *
+ * This function, is called at the beginning and again
+ * at the end of LibreOfficeKit pre-initialization to enable
+ * various optimizations. It is almost certainly not the method
+ * that you want.
+ *
+ * @since LibreOffice 6.1
+ */
+SAL_DLLPUBLIC void SAL_CALL rtl_alloc_preInit (
+    sal_Bool start
+) SAL_THROW_EXTERN_C();
+
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/sal/qa/rtl/alloc/rtl_alloc.cxx b/sal/qa/rtl/alloc/rtl_alloc.cxx
index ed0a9def1dbe..9ea21456ca94 100644
--- a/sal/qa/rtl/alloc/rtl_alloc.cxx
+++ b/sal/qa/rtl/alloc/rtl_alloc.cxx
@@ -18,11 +18,14 @@
  */
 
 #include <rtl/alloc.h>
+#include <rtl/ustrbuf.hxx>
 #include <sal/types.h>
 #include <cppunit/TestFixture.h>
 #include <cppunit/extensions/HelperMacros.h>
 #include <cppunit/plugin/TestPlugIn.h>
 
+#define SAL_STRING_STATIC_FLAG 0x40000000
+
 #include <memory.h>
 
 namespace rtl_alloc
@@ -132,8 +135,75 @@ public:
     CPPUNIT_TEST_SUITE_END();
 };
 
+class TestPreinit : public CppUnit::TestFixture
+{
+public:
+    TestPreinit()
+    {
+    }
+
+    // initialise your test code values here.
+    void setUp() override
+    {
+    }
+
+    void tearDown() override
+    {
+    }
+
+    // insert your test code here.
+
+    void test()
+    {
+        const char *sample = "Hello World";
+        std::vector<OUString> aStrings;
+
+        rtl_alloc_preInit(true);
+
+        OUString aFoo("foo");
+
+        // fill some cache bits
+        for (int iter = 0; iter < 4; iter++)
+        {
+            for (int i = 1; i < 4096; i += 8)
+            {
+                OUStringBuffer aBuf(i);
+                aBuf.appendAscii(sample, (i/8) % (sizeof(sample)-1));
+                OUString aStr = aBuf.makeStringAndClear();
+                aStrings.push_back(aStr);
+            }
+            // free some pieces to make holes
+            for (size_t i = iter; i < aStrings.size(); i += 17)
+                aStrings[i] = aFoo;
+        }
+
+        for (size_t i = 0; i < aStrings.size(); ++i)
+        {
+            CPPUNIT_ASSERT_MESSAGE( "not static before.", !(aStrings[i].pData->refCount & SAL_STRING_STATIC_FLAG) );
+        }
+
+        // should static-ize all the strings.
+        rtl_alloc_preInit(false);
+
+        for (size_t i = 0; i < aStrings.size(); ++i)
+            CPPUNIT_ASSERT_MESSAGE( "static after.", (aStrings[i].pData->refCount & SAL_STRING_STATIC_FLAG) );
+    }
+
+    void test2()
+    {
+        // should never happen but lets try it again.
+        test();
+    }
+
+    CPPUNIT_TEST_SUITE(TestPreinit);
+    CPPUNIT_TEST(test);
+    CPPUNIT_TEST(test2);
+    CPPUNIT_TEST_SUITE_END();
+};
+
 CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::Memory);
 CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::TestZeroMemory);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::TestPreinit);
 } // namespace rtl_alloc
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/rtl/alloc_arena.cxx b/sal/rtl/alloc_arena.cxx
index 234a3d5c6755..6e0a55dbb886 100644
--- a/sal/rtl/alloc_arena.cxx
+++ b/sal/rtl/alloc_arena.cxx
@@ -17,6 +17,8 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include "sal/config.h"
+
 #include "alloc_arena.hxx"
 
 #include "alloc_impl.hxx"
@@ -728,6 +730,35 @@ rtl_arena_activate (
     return arena;
 }
 
+extern "C" {
+void rtl_arena_foreach(rtl_arena_type *arena, ArenaForeachFn foreachFn, void *user_data) SAL_THROW_EXTERN_C()
+{
+    // quantum caches
+    if ((arena->m_qcache_max > 0) && (arena->m_qcache_ptr != nullptr))
+    {
+        int i, n = (arena->m_qcache_max >> arena->m_quantum_shift);
+        for (i = 1; i <= n; i++)
+        {
+            if (arena->m_qcache_ptr[i - 1] != nullptr)
+                rtl_cache_foreach (arena->m_qcache_ptr[i - 1],
+                                   foreachFn, user_data);
+        }
+    }
+
+    /* used segments */
+    for (int i = 0, n = arena->m_hash_size; i < n; i++)
+    {
+        for (rtl_arena_segment_type *segment = arena->m_hash_table[i];
+             segment != nullptr; segment = segment->m_fnext)
+        {
+            foreachFn(reinterpret_cast<void *>(segment->m_addr),
+                      segment->m_size, user_data);
+        }
+    }
+}
+} // extern "C"
+
+
 /** rtl_arena_deactivate()
  */
 void
diff --git a/sal/rtl/alloc_arena.hxx b/sal/rtl/alloc_arena.hxx
index da2ebeacc683..85a0b4b8c0b3 100644
--- a/sal/rtl/alloc_arena.hxx
+++ b/sal/rtl/alloc_arena.hxx
@@ -112,6 +112,14 @@ struct rtl_arena_st
  */
 extern rtl_arena_type * gp_default_arena;
 
+extern "C" {
+
+typedef void (*ArenaForeachFn)(void *addr, sal_Size size, void *user_data);
+void SAL_CALL rtl_arena_foreach(rtl_arena_type *arena, ArenaForeachFn fn, void *user_data) SAL_THROW_EXTERN_C();
+void SAL_CALL rtl_cache_foreach(rtl_cache_type *arena, ArenaForeachFn foreachFn, void *user_data) SAL_THROW_EXTERN_C();
+
+}
+
 #endif // INCLUDED_SAL_RTL_ALLOC_ARENA_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/alloc_cache.cxx b/sal/rtl/alloc_cache.cxx
index d91908879c70..e6c7ddad24c7 100644
--- a/sal/rtl/alloc_cache.cxx
+++ b/sal/rtl/alloc_cache.cxx
@@ -1290,6 +1290,26 @@ SAL_CALL rtl_cache_free (
     }
 }
 
+// FIXME: foreachFn called for free'd blocks and will break free-chains.
+extern "C" {
+void SAL_CALL rtl_cache_foreach(rtl_cache_type *cache, ArenaForeachFn foreachFn, void *user_data) SAL_THROW_EXTERN_C()
+{
+    for (rtl_cache_slab_type *cur = &(cache->m_used_head);
+         cur && cur->m_slab_next != &(cache->m_used_head);
+         cur = cur->m_slab_next)
+    {
+        for (char *item = reinterpret_cast<char *>(cur->m_data);
+             item < reinterpret_cast<char *>(cur->m_bp);
+             item += cache->m_type_size)
+        {
+            foreachFn(item, cache->m_type_size, user_data);
+        }
+    }
+
+    RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
+}
+} // extern "C"
+
 #if defined(SAL_UNX)
 
 void SAL_CALL
diff --git a/sal/rtl/alloc_global.cxx b/sal/rtl/alloc_global.cxx
index 703a42b0902a..3f0ad42d928c 100644
--- a/sal/rtl/alloc_global.cxx
+++ b/sal/rtl/alloc_global.cxx
@@ -381,6 +381,8 @@ void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
     }
 }
 
+/* ================================================================= */
+
 void* SAL_CALL rtl_allocateAlignedMemory (sal_Size Alignment, sal_Size Bytes) SAL_THROW_EXTERN_C()
 {
     return osl_aligned_alloc(Alignment, Bytes);
@@ -391,6 +393,4 @@ void SAL_CALL rtl_freeAlignedMemory (void* Ptr) SAL_THROW_EXTERN_C()
     osl_aligned_free(Ptr);
 }
 
-/* ================================================================= */
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/strimp.cxx b/sal/rtl/strimp.cxx
index db554644f6a9..39b08a4ff2c3 100644
--- a/sal/rtl/strimp.cxx
+++ b/sal/rtl/strimp.cxx
@@ -16,8 +16,15 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
+#include "sal/config.h"
+
+#include <assert.h>
+#include <rtl/alloc.h>
+#include <rtl/ustring.h>
 
 #include "strimp.hxx"
+#include "alloc_impl.hxx"
+#include "alloc_arena.hxx"
 
 sal_Int16 rtl_ImplGetDigit( sal_Unicode ch, sal_Int16 nRadix )
 {
@@ -49,4 +56,65 @@ bool rtl_ImplIsWhitespace( sal_Unicode c )
     return false;
 }
 
+/*
+ * TODO: add a slower, more awful, but more space efficient
+ * custom allocator for the pre-init phase. Existing slab
+ * allocator's minimum alloc size is 24bytes, and by default
+ * is 32bits.
+ */
+static rtl_arena_type *pre_arena = nullptr;
+
+rtl_allocateStringFn rtl_allocateString = rtl_allocateMemory;
+rtl_freeStringFn rtl_freeString = rtl_freeMemory;
+
+extern "C" {
+static void *pre_allocateStringFn(sal_Size n)
+{
+    sal_Size size = RTL_MEMORY_ALIGN(n + 4, 4);
+    char *addr = static_cast<char*>(rtl_arena_alloc(pre_arena, &size));
+    assert(size>= 12);
+    reinterpret_cast<sal_uInt32*>(addr)[0] = size - 12;
+    return addr + 4;
+}
+
+static void pre_freeStringFn(void *data)
+{
+    char    *addr = static_cast<char*>(data) - 4;
+    sal_Size size = reinterpret_cast<sal_uInt32*>(addr)[0] + 12;
+
+    rtl_arena_free(pre_arena, addr, size);
+}
+
+static void mark_static(void *addr, sal_Size /* size */, void *)
+{
+    char *inner = static_cast<char*>(addr) + 4;
+    rtl_uString *str = reinterpret_cast<rtl_uString *>(inner);
+    str->refCount |= SAL_STRING_STATIC_FLAG;
+}
+} // extern "C"
+
+void SAL_CALL rtl_alloc_preInit (sal_Bool start) SAL_THROW_EXTERN_C()
+{
+    if (getenv("SAL_DISABLE_PREINIT"))
+        return;
+
+    if (start)
+    {
+        rtl_allocateString = pre_allocateStringFn;
+        rtl_freeString = pre_freeStringFn;
+        pre_arena = rtl_arena_create("pre-init strings", 4, 0,
+                                     nullptr, rtl_arena_alloc,
+                                     rtl_arena_free, 0);
+    }
+    else // back to normal
+    {
+        rtl_arena_foreach(pre_arena, mark_static, nullptr);
+        rtl_allocateString = rtl_allocateMemory;
+        rtl_freeString = rtl_freeMemory;
+
+        // TODO: also re-intialize main allocator as well.
+    }
+}
+
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/strimp.hxx b/sal/rtl/strimp.hxx
index 5583a82f2249..3089a516ad97 100644
--- a/sal/rtl/strimp.hxx
+++ b/sal/rtl/strimp.hxx
@@ -49,6 +49,12 @@ sal_Int16 rtl_ImplGetDigit( sal_Unicode ch, sal_Int16 nRadix );
 
 bool rtl_ImplIsWhitespace( sal_Unicode c );
 
+typedef void *(*rtl_allocateStringFn)(sal_Size size);
+typedef void  (*rtl_freeStringFn)(void *);
+
+extern rtl_allocateStringFn rtl_allocateString;
+extern rtl_freeStringFn rtl_freeString;
+
 // string lifetime instrumentation / diagnostics
 #if USE_SDT_PROBES
 #  define PROBE_SNAME(n,b) n ## _ ## b
diff --git a/sal/rtl/string.cxx b/sal/rtl/string.cxx
index 863d6b870b3e..3678865c07f6 100644
--- a/sal/rtl/string.cxx
+++ b/sal/rtl/string.cxx
@@ -274,7 +274,7 @@ bool SAL_CALL rtl_impl_convertUStringToString(rtl_String ** pTarget,
                                                    &nInfo, &nSrcChars );
             if (bCheckErrors && (nInfo & RTL_UNICODETOTEXT_INFO_ERROR) != 0)
             {
-                rtl_freeMemory(pTemp);
+                rtl_freeString(pTemp);
                 rtl_destroyUnicodeToTextConverter(hConverter);
                 return false;
             }
@@ -283,7 +283,7 @@ bool SAL_CALL rtl_impl_convertUStringToString(rtl_String ** pTarget,
                 break;
 
             /* Buffer not big enough, try again with enough space */
-            rtl_freeMemory( pTemp );
+            rtl_freeString( pTemp );
 
             /* Try with the max. count of characters with
                additional overhead for replacing functionality */
@@ -298,7 +298,7 @@ bool SAL_CALL rtl_impl_convertUStringToString(rtl_String ** pTarget,
             rtl_String* pTemp2 = rtl_string_ImplAlloc( nDestBytes );
             OSL_ASSERT(pTemp2 != nullptr);
             rtl_str_ImplCopy( pTemp2->buffer, pTemp->buffer, nDestBytes );
-            rtl_freeMemory( pTemp );
+            rtl_freeString( pTemp );
             pTemp = pTemp2;
         }
         else
diff --git a/sal/rtl/strtmpl.cxx b/sal/rtl/strtmpl.cxx
index 6748209fb50f..2bc1a71d5372 100644
--- a/sal/rtl/strtmpl.cxx
+++ b/sal/rtl/strtmpl.cxx
@@ -1149,7 +1149,7 @@ static IMPL_RTL_STRINGDATA* IMPL_RTL_STRINGNAME( ImplAlloc )( sal_Int32 nLen )
         = (sal::static_int_cast< sal_uInt32 >(nLen)
            <= ((SAL_MAX_UINT32 - sizeof (IMPL_RTL_STRINGDATA))
                / sizeof (IMPL_RTL_STRCODE)))
-        ? static_cast<IMPL_RTL_STRINGDATA *>(rtl_allocateMemory(
+        ? static_cast<IMPL_RTL_STRINGDATA *>(rtl_allocateString(
             sizeof (IMPL_RTL_STRINGDATA) + nLen * sizeof (IMPL_RTL_STRCODE)))
         : nullptr;
     if (pData != nullptr) {
@@ -1230,7 +1230,7 @@ void SAL_CALL IMPL_RTL_STRINGNAME( release )( IMPL_RTL_STRINGDATA* pThis )
     if ( !osl_atomic_decrement( &(pThis->refCount) ) )
     {
         RTL_LOG_STRING_DELETE( pThis );
-        rtl_freeMemory( pThis );
+        rtl_freeString( pThis );
     }
 }
 
diff --git a/sal/rtl/ustring.cxx b/sal/rtl/ustring.cxx
index 3d157270ef3c..a518bffc2f58 100644
--- a/sal/rtl/ustring.cxx
+++ b/sal/rtl/ustring.cxx
@@ -819,7 +819,7 @@ retry:
                code here. Could be the case for apple encodings */
             while ( nInfo & RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL )
             {
-                rtl_freeMemory( pTemp );
+                rtl_freeString( pTemp );
                 nNewLen += 8;
                 pTemp = rtl_uString_ImplAlloc( nNewLen );
                 if (pTemp == nullptr) {
@@ -848,7 +848,7 @@ retry:
             if (pTemp2 != nullptr)
             {
                 rtl_str_ImplCopy(pTemp2->buffer, pTemp->buffer, nDestChars);
-                rtl_freeMemory(pTemp);
+                rtl_freeString(pTemp);
                 pTemp = pTemp2;
             }
             else
@@ -932,7 +932,7 @@ static void rtl_ustring_intern_internal( rtl_uString ** newStr,
 
     if( can_return && *newStr != str )
     { /* we dupped, then found a match */
-        rtl_freeMemory( str );
+        rtl_freeString( str );
     }
 }
 
@@ -1083,7 +1083,7 @@ internRelease (rtl_uString *pThis)
         osl_releaseMutex( pPoolMutex );
     }
     if (pFree)
-        rtl_freeMemory (pFree);
+        rtl_freeString (pFree);
 }
 
 sal_uInt32 SAL_CALL rtl_uString_iterateCodePoints(
diff --git a/sal/util/sal.map b/sal/util/sal.map
index c8f3a7426964..bbc0e926846c 100644
--- a/sal/util/sal.map
+++ b/sal/util/sal.map
@@ -728,6 +728,10 @@ PRIVATE_1.2 { # LibreOffice 3.5
         sal_detail_logFormat;
 } PRIVATE_1.1;
 
+PRIVATE_1.3 { # LibreOffice 6.1
+	rtl_alloc_preInit;
+} PRIVATE_1.2;
+
 PRIVATE_textenc.1 { # LibreOffice 3.6
     global:
         _ZN3sal6detail7textenc20convertCharToUnicode*;
commit 53e79c6eab3566b4c3476a5467370ad103bb6e5e
Author: abdulwd <abdulwd97 at gmail.com>
Date:   Tue Dec 27 12:22:43 2016 +0530

    tdf#97228 Move include file include/vcl/BitmapProcessor.hxx to vcl/inc/
    
    Adapt users, all in vcl, accordingly.
    
    Change-Id: I4531840091da73fa8fc29175407fa8a737deac18
    Reviewed-on: https://gerrit.libreoffice.org/32442
    Reviewed-by: Tor Lillqvist <tml at collabora.com>
    Tested-by: Tor Lillqvist <tml at collabora.com>
    (cherry picked from commit e61fe745d12055ee3915a957714772eeb46fdcd3)
    (cherry picked from commit 85a40facb074366cd06b226077f83e713d0c421c)

diff --git a/include/vcl/BitmapProcessor.hxx b/vcl/inc/BitmapProcessor.hxx
similarity index 83%
rename from include/vcl/BitmapProcessor.hxx
rename to vcl/inc/BitmapProcessor.hxx
index 0f0f13869d3f..8c07188ba19b 100644
--- a/include/vcl/BitmapProcessor.hxx
+++ b/vcl/inc/BitmapProcessor.hxx
@@ -7,8 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#ifndef INCLUDED_VCL_BITMAP_PROCESSOR_HXX
-#define INCLUDED_VCL_BITMAP_PROCESSOR_HXX
+#ifndef VCL_INC_BITMAP_PROCESSOR_HXX
+#define VCL_INC_BITMAP_PROCESSOR_HXX
 
 #include <vcl/bitmapex.hxx>
 
@@ -20,6 +20,6 @@ public:
     static void colorizeImage(BitmapEx& rBitmapEx, Color aColor);
 };
 
-#endif // INCLUDED_VCL_BITMAP_PROCESSOR_HXX
+#endif // VCL_INC_BITMAP_PROCESSOR_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/bitmap/BitmapProcessor.cxx b/vcl/source/bitmap/BitmapProcessor.cxx
index b3cdf86783d0..371d71523de8 100644
--- a/vcl/source/bitmap/BitmapProcessor.cxx
+++ b/vcl/source/bitmap/BitmapProcessor.cxx
@@ -8,10 +8,11 @@
  *
  */
 
-#include <vcl/BitmapProcessor.hxx>
 #include <vcl/bitmapaccess.hxx>
 #include <basegfx/color/bcolortools.hxx>
 
+#include "BitmapProcessor.hxx"
+
 BitmapEx BitmapProcessor::createLightImage(const BitmapEx& rBitmapEx)
 {
     const Size aSize(rBitmapEx.GetSizePixel());
diff --git a/vcl/source/image/Image.cxx b/vcl/source/image/Image.cxx
index 51dcca4ed94e..e4dde10e4d5c 100644
--- a/vcl/source/image/Image.cxx
+++ b/vcl/source/image/Image.cxx
@@ -34,7 +34,7 @@
 #include <sal/types.h>
 #include <image.h>
 
-#include <vcl/BitmapProcessor.hxx>
+#include "BitmapProcessor.hxx"
 
 #if OSL_DEBUG_LEVEL > 0
 #include <rtl/strbuf.hxx>
diff --git a/vcl/source/image/ImageArrayData.cxx b/vcl/source/image/ImageArrayData.cxx
index 543543804a70..e1854d2aa55a 100644
--- a/vcl/source/image/ImageArrayData.cxx
+++ b/vcl/source/image/ImageArrayData.cxx
@@ -35,7 +35,7 @@
 #include <rtl/strbuf.hxx>
 #endif
 
-#include <vcl/BitmapProcessor.hxx>
+#include "BitmapProcessor.hxx"
 
 ImageAryData::ImageAryData( const ImageAryData& rData ) :
     maName( rData.maName ),
diff --git a/vcl/source/image/ImplImageTree.cxx b/vcl/source/image/ImplImageTree.cxx
index 8e34ff6cb56b..a8127a85a0a8 100644
--- a/vcl/source/image/ImplImageTree.cxx
+++ b/vcl/source/image/ImplImageTree.cxx
@@ -45,10 +45,11 @@
 #include <vcl/settings.hxx>
 #include <vcl/svapp.hxx>
 
-#include <vcl/BitmapProcessor.hxx>
 #include <vcl/BitmapTools.hxx>
 #include <vcl/pngwrite.hxx>
 
+#include "BitmapProcessor.hxx"
+
 bool ImageRequestParameters::convertToDarkTheme()
 {
     static bool bIconsForDarkTheme = !!getenv("VCL_ICONS_FOR_DARK_THEME");
commit a70e47b273cee294e5eece3f47a8f37094bdc441
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Jun 20 00:21:57 2017 +0200

    Remove unused ScColumn::mbDirtyGroups
    
    Change-Id: If8ed724ccec136653db5fcf43f9e74a82826add7
    (cherry picked from commit 96a307be540fd609bed5b1a35dfe27d7e6652f21)
    (cherry picked from commit 5b6e1f435e1e61a07dff55873c220290aab2a4c8)

diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index f0a30d82e568..569f1ec06e5c 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -142,7 +142,6 @@ class ScColumn
 
     ScAttrArray*          pAttrArray;
     ScDocument*           pDocument;
-    bool mbDirtyGroups;     /// formula groups are dirty.
 
     size_t mnBlkCountFormula;
 
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index d868333c8b7a..350b5b19a67f 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -92,7 +92,6 @@ ScColumn::ScColumn() :
     nTab( 0 ),
     pAttrArray( nullptr ),
     pDocument( nullptr ),
-    mbDirtyGroups(true),
     mnBlkCountFormula(0)
 {
     maCells.resize(MAXROWCOUNT);
@@ -1906,8 +1905,6 @@ void ScColumn::SwapCol(ScColumn& rCol)
     pAttrArray->SetCol(nCol);
     rCol.pAttrArray->SetCol(rCol.nCol);
 
-    std::swap(mbDirtyGroups, rCol.mbDirtyGroups);
-
     // Reset column positions in formula cells.
     resetColumnPosition(maCells, nCol);
     resetColumnPosition(rCol.maCells, rCol.nCol);
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 73ebc5ab6dce..0e68d17ca32e 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -1504,8 +1504,6 @@ void ScColumn::CellStorageModified()
 {
     // TODO: Update column's "last updated" timestamp here.
 
-    mbDirtyGroups = true;
-
 #if DEBUG_COLUMN_STORAGE
     if (maCells.size() != MAXROWCOUNT)
     {
commit a4352bd95e7a4e894df552336554909b5ac25a83
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Tue Nov 29 08:34:29 2016 +0200

    Drop a bunch of font metrics flags
    
    These flags mean nothing these days, there are either always true or
    always false, since we no longer support bitmap or Type 1 fonts.
    
    Change-Id: Ie14ca480225a6346d868a44e58e7666c3a06931d
    Reviewed-on: https://gerrit.libreoffice.org/31346
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
    (cherry picked from commit 74314b11a4b5a2887bd1ff19bdcfb3572b09240c)
    (cherry picked from commit 40b1cadc63523a3b3269838748f47d5ac251877e)

diff --git a/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx b/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
index a4af2d83ff33..bebf04e8db03 100644
--- a/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
+++ b/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
@@ -192,8 +192,7 @@ FontList* ViewElementListProvider::getFontList() const
         OutputDevice* pRefDev    = m_pDrawModelWrapper ? m_pDrawModelWrapper->getReferenceDevice() : nullptr;
         OutputDevice* pDefaultOut = Application::GetDefaultDevice();
         m_pFontList = new FontList( pRefDev ? pRefDev    : pDefaultOut
-                                , pRefDev ? pDefaultOut : nullptr
-                                , false );
+                                , pRefDev ? pDefaultOut : nullptr);
     }
     return m_pFontList;
 }
diff --git a/include/svtools/ctrltool.hxx b/include/svtools/ctrltool.hxx
index 7e2ec66fae84..48196a0169ea 100644
--- a/include/svtools/ctrltool.hxx
+++ b/include/svtools/ctrltool.hxx
@@ -152,13 +152,11 @@ private:
 
     SVT_DLLPRIVATE ImplFontListNameInfo*    ImplFind( const OUString& rSearchName, sal_uLong* pIndex ) const;
     SVT_DLLPRIVATE ImplFontListNameInfo*    ImplFindByName( const OUString& rStr ) const;
-    SVT_DLLPRIVATE void                 ImplInsertFonts( OutputDevice* pDev, bool bAll,
-                                             bool bInsertData );
+    SVT_DLLPRIVATE void                     ImplInsertFonts(OutputDevice* pDev, bool bInsertData);
 
 public:
                             FontList( OutputDevice* pDevice,
-                                      OutputDevice* pDevice2 = nullptr,
-                                      bool bAll = true );
+                                      OutputDevice* pDevice2 = nullptr);
                             ~FontList();
 
     FontList*               Clone() const;
diff --git a/include/tools/fontenum.hxx b/include/tools/fontenum.hxx
index ce5736b192d1..eeb35be1985c 100644
--- a/include/tools/fontenum.hxx
+++ b/include/tools/fontenum.hxx
@@ -75,9 +75,6 @@ namespace o3tl
 }
 
 
-enum FontType { TYPE_DONTKNOW, TYPE_RASTER, TYPE_VECTOR, TYPE_SCALABLE,
-                FontType_FORCE_EQUAL_SIZE=SAL_MAX_ENUM };
-
 enum FontEmbeddedBitmap { EMBEDDEDBITMAP_DONTKNOW, EMBEDDEDBITMAP_FALSE, EMBEDDEDBITMAP_TRUE };
 
 enum FontAntiAlias { ANTIALIAS_DONTKNOW, ANTIALIAS_FALSE, ANTIALIAS_TRUE };
diff --git a/include/vcl/font.hxx b/include/vcl/font.hxx
index 9e0a637c85c1..2dc0a5b326cd 100644
--- a/include/vcl/font.hxx
+++ b/include/vcl/font.hxx
@@ -87,21 +87,11 @@ public:
     // Device dependent functions
     int                 GetQuality() const;
 
-    bool                IsBuiltInFont() const;
-    bool                CanEmbed() const;
-    bool                CanSubset() const;
-    bool                CanRotate() const;
-
     void                SetQuality(int);
     void                IncreaseQualityBy(int);
     void                DecreaseQualityBy(int);
     void                SetMapNames(OUString const &);
 
-    void                SetBuiltInFontFlag(bool);
-    void                SetEmbeddableFlag(bool);
-    void                SetSubsettableFlag(bool);
-    void                SetOrientationFlag(bool);
-
     // setting the color on the font is obsolete, the only remaining
     // valid use is for keeping backward compatibility with old MetaFiles
     const Color&        GetColor() const;
diff --git a/include/vcl/metric.hxx b/include/vcl/metric.hxx
index 22c28496f58d..3709364a0b5c 100644
--- a/include/vcl/metric.hxx
+++ b/include/vcl/metric.hxx
@@ -38,8 +38,6 @@ public:
                         FontMetric( const FontMetric& );  // TODO make this explicit
     virtual             ~FontMetric() override;
 
-    FontType            GetType() const;
-
     long                GetAscent() const;
     long                GetDescent() const;
     long                GetInternalLeading() const;
@@ -56,13 +54,9 @@ public:
     void                SetSlant(long);
     void                SetBulletOffset(long);
 
-    bool                IsScalable() const;
     bool                IsFullstopCentered() const;
-    bool                IsBuiltInFont() const;
 
-    void                SetScalableFlag(bool);
     void                SetFullstopCenteredFlag(bool);
-    void                SetBuiltInFontFlag(bool);
 
     FontMetric&         operator=( const FontMetric& rMetric );
     FontMetric&         operator=( FontMetric&& rMetric );
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 6dd859031c70..9963f9824a2a 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -454,7 +454,7 @@ void ScDocShell::UpdateFontList()
 {
     delete pImpl->pFontList;
     // pImpl->pFontList = new FontList( GetPrinter(), Application::GetDefaultDevice() );
-    pImpl->pFontList = new FontList( GetRefDevice(), nullptr, false ); // sal_False or sal_True???
+    pImpl->pFontList = new FontList(GetRefDevice(), nullptr);
     SvxFontListItem aFontListItem( pImpl->pFontList, SID_ATTR_CHAR_FONTLIST );
     PutItem( aFontListItem );
 
diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx
index ef4169836c9f..f9aa985b59a2 100644
--- a/sd/source/ui/animations/CustomAnimationDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationDialog.cxx
@@ -280,7 +280,7 @@ FontPropertyBox::FontPropertyBox( sal_Int32 nControlType, vcl::Window* pParent,
 
     if(!pFontList)
     {
-        pFontList = new FontList( Application::GetDefaultDevice(), nullptr, false );
+        pFontList = new FontList(Application::GetDefaultDevice(), nullptr);
         bMustDelete = true;
     }
 
diff --git a/sd/source/ui/docshell/docshel4.cxx b/sd/source/ui/docshell/docshel4.cxx
index 395bda129fa2..a94c79ea4126 100644
--- a/sd/source/ui/docshell/docshel4.cxx
+++ b/sd/source/ui/docshell/docshel4.cxx
@@ -163,7 +163,7 @@ void DrawDocShell::UpdateFontList()
         pRefDevice = GetPrinter(true);
     else
         pRefDevice = SD_MOD()->GetVirtualRefDevice();
-    mpFontList = new FontList( pRefDevice, nullptr, false );
+    mpFontList = new FontList(pRefDevice, nullptr);
     SvxFontListItem aFontListItem( mpFontList, SID_ATTR_CHAR_FONTLIST );
     PutItem( aFontListItem );
 }
diff --git a/svtools/source/control/ctrltool.cxx b/svtools/source/control/ctrltool.cxx
index 341a1f83e8bb..4a31b22ba7f4 100644
--- a/svtools/source/control/ctrltool.cxx
+++ b/svtools/source/control/ctrltool.cxx
@@ -238,8 +238,7 @@ ImplFontListNameInfo* FontList::ImplFindByName(const OUString& rStr) const
     return ImplFind( aSearchName, nullptr );
 }
 
-void FontList::ImplInsertFonts( OutputDevice* pDevice, bool bAll,
-                                bool bInsertData )
+void FontList::ImplInsertFonts(OutputDevice* pDevice, bool bInsertData)
 {
     rtl_TextEncoding eSystemEncoding = osl_getThreadTextEncoding();
 
@@ -260,11 +259,6 @@ void FontList::ImplInsertFonts( OutputDevice* pDevice, bool bAll,
     for (int i = 0; i < n; ++i)
     {
         FontMetric aFontMetric = pDevice->GetDevFont( i );
-
-        // ignore raster-fonts if they are not to be displayed
-        if ( !bAll && (aFontMetric.GetType() == TYPE_RASTER) )
-            continue;
-
         OUString aSearchName(aFontMetric.GetFamilyName());
         ImplFontListNameInfo*   pData;
         sal_uLong                   nIndex;
@@ -338,7 +332,7 @@ void FontList::ImplInsertFonts( OutputDevice* pDevice, bool bAll,
     }
 }
 
-FontList::FontList( OutputDevice* pDevice, OutputDevice* pDevice2, bool bAll )
+FontList::FontList(OutputDevice* pDevice, OutputDevice* pDevice2)
 {
     // initialise variables
     mpDev = pDevice;
@@ -355,7 +349,7 @@ FontList::FontList( OutputDevice* pDevice, OutputDevice* pDevice2, bool bAll )
     maBlack         = SVT_RESSTR(STR_SVT_STYLE_BLACK);
     maBlackItalic   = SVT_RESSTR(STR_SVT_STYLE_BLACK_ITALIC);
 
-    ImplInsertFonts( pDevice, bAll, true );
+    ImplInsertFonts(pDevice, true);
 
     // if required compare to the screen fonts
     // in order to map the duplicates to Equal
@@ -368,7 +362,7 @@ FontList::FontList( OutputDevice* pDevice, OutputDevice* pDevice2, bool bAll )
 
     if ( pDevice2 &&
          (pDevice2->GetOutDevType() != pDevice->GetOutDevType()) )
-        ImplInsertFonts( pDevice2, bAll, !bCompareWindow );
+        ImplInsertFonts(pDevice2, !bCompareWindow);
 }
 
 FontList::~FontList()
@@ -392,8 +386,7 @@ FontList::~FontList()
 
 FontList* FontList::Clone() const
 {
-    FontList* pReturn = new FontList(
-            mpDev, mpDev2, sal::static_int_cast<int>(GetFontNameCount()) == mpDev->GetDevFontCount());
+    FontList* pReturn = new FontList(mpDev, mpDev2);
     return pReturn;
 }
 
@@ -538,14 +531,6 @@ OUString FontList::GetFontMapText( const FontMetric& rInfo ) const
             const_cast<FontList*>(this)->maMapPrinterOnly = SVT_RESSTR(STR_SVT_FONTMAP_PRINTERONLY);
         return maMapPrinterOnly;
     }
-    // Only Screen-Font?
-    else if ( nType == FontListFontNameType::SCREEN
-            && rInfo.GetType() == TYPE_RASTER )
-    {
-        if (maMapScreenOnly.isEmpty())
-            const_cast<FontList*>(this)->maMapScreenOnly = SVT_RESSTR(STR_SVT_FONTMAP_SCREENONLY);
-        return maMapScreenOnly;
-    }
     else
     {
         if (maMapBoth.isEmpty())
diff --git a/vcl/inc/PhysicalFontCollection.hxx b/vcl/inc/PhysicalFontCollection.hxx
index ca499e718885..0ff6868b9853 100644
--- a/vcl/inc/PhysicalFontCollection.hxx
+++ b/vcl/inc/PhysicalFontCollection.hxx
@@ -62,7 +62,7 @@ public:
     void                    SetFallbackHook( ImplGlyphFallbackFontSubstitution* );
 
     // misc utilities
-    PhysicalFontCollection* Clone( bool bEmbeddable ) const;
+    PhysicalFontCollection* Clone() const;
     ImplDeviceFontList*     GetDeviceFontList() const;
     ImplDeviceFontSizeList* GetDeviceFontSizeList( const OUString& rFontName ) const;
 
diff --git a/vcl/inc/PhysicalFontFace.hxx b/vcl/inc/PhysicalFontFace.hxx
index f4b1c1ada339..051ffcb6c288 100644
--- a/vcl/inc/PhysicalFontFace.hxx
+++ b/vcl/inc/PhysicalFontFace.hxx
@@ -78,7 +78,6 @@ public:
     int                     GetHeight() const           { return mnHeight; }
     int                     GetWidth() const            { return mnWidth; }
     virtual sal_IntPtr      GetFontId() const = 0;
-    bool                    IsScalable() const          { return (mnHeight == 0); }
 
     bool                    IsBetterMatch( const FontSelectPattern&, FontMatchStatus& ) const;
     sal_Int32               CompareWithSize( const PhysicalFontFace& ) const;
diff --git a/vcl/inc/PhysicalFontFamily.hxx b/vcl/inc/PhysicalFontFamily.hxx
index 07d329c711d9..34548785c56d 100644
--- a/vcl/inc/PhysicalFontFamily.hxx
+++ b/vcl/inc/PhysicalFontFamily.hxx
@@ -54,7 +54,6 @@ public:
     const OUString&     GetFamilyName() const    { return maFamilyName; }
     const OUString&     GetSearchName() const    { return maSearchName; }
     const OUString&     GetAliasNames() const    { return maMapNames; }
-    bool                IsScalable() const       { return maFontFaces[0]->IsScalable(); }
     int                 GetMinQuality() const    { return mnMinQuality; }
     FontTypeFaces       GetTypeFaces() const     { return mnTypeFaces; }
     void                GetFontHeights( std::set<int>& rHeights ) const;
@@ -71,8 +70,7 @@ public:
     PhysicalFontFace*   FindBestFontFace( const FontSelectPattern& rFSD ) const;
 
     void                UpdateDevFontList( ImplDeviceFontList& ) const;
-    void                UpdateCloneFontList( PhysicalFontCollection&,
-                                             bool bEmbeddable ) const;
+    void                UpdateCloneFontList(PhysicalFontCollection&) const;
 
 static void             CalcType( ImplFontAttrs& rType, FontWeight& rWeight, FontWidth& rWidth,
                                   FontFamily eFamily, const utl::FontNameAttr* pFontAttr );
diff --git a/vcl/inc/fontattributes.hxx b/vcl/inc/fontattributes.hxx
index fcd2fa825f72..9b3cc7f65363 100644
--- a/vcl/inc/fontattributes.hxx
+++ b/vcl/inc/fontattributes.hxx
@@ -63,19 +63,11 @@ public:
     int                 GetQuality() const                          { return mnQuality; }
     const OUString&     GetMapNames() const                         { return maMapNames; }
 
-    bool                IsBuiltInFont() const                       { return mbDevice; }
-    bool                CanEmbed() const                            { return mbEmbeddable; }
-    bool                CanSubset() const                           { return mbSubsettable; }
 
     void                SetQuality( int nQuality )                  { mnQuality = nQuality; }
     void                IncreaseQualityBy( int nQualityAmount )     { mnQuality += nQualityAmount; }
     void                AddMapName( OUString const& );
 
-    void                SetBuiltInFontFlag( bool bIsBuiltInFont )   { mbDevice = bIsBuiltInFont; }
-    void                SetEmbeddableFlag ( bool bEmbeddable )      { mbEmbeddable = bEmbeddable; }
-    void                SetSubsettableFlag( bool bSubsettable )     { mbSubsettable = bSubsettable; }
-    void                SetOrientationFlag( bool bCanRotate )       { mbOrientation = bCanRotate; }
-
 private:
     // device independent variables
     OUString            maFamilyName;               // Font Family Name
@@ -91,10 +83,6 @@ private:
     // device dependent variables
     OUString            maMapNames;                 // List of family name aliases separated with ';'
     int                 mnQuality;                  // Quality (used when similar fonts compete)
-    bool                mbOrientation;              // true: physical font can be rotated
-    bool                mbDevice;                   // true: built in font
-    bool                mbSubsettable;              // true: a subset of the font can be created
-    bool                mbEmbeddable;               // true: the font can be embedded
 
 };
 
diff --git a/vcl/inc/impfont.hxx b/vcl/inc/impfont.hxx
index 7584dda707b1..654dc0c7429b 100644
--- a/vcl/inc/impfont.hxx
+++ b/vcl/inc/impfont.hxx
@@ -78,16 +78,6 @@ public:
     void                DecreaseQualityBy( int nQualityAmount )         { mnQuality -= nQualityAmount; }
     void                SetMapNames( OUString const & aMapNames )       { maMapNames = aMapNames; }
 
-    bool                IsBuiltInFont() const                           { return mbDevice; }
-    bool                CanEmbed() const                                { return mbEmbeddable; }
-    bool                CanSubset() const                               { return mbSubsettable; }
-    bool                CanRotate() const                               { return mbRotatable; }
-
-    void                SetBuiltInFontFlag( bool bIsBuiltInFont )       { mbDevice = bIsBuiltInFont; }
-    void                SetEmbeddableFlag( bool bEmbeddable )           { mbEmbeddable = bEmbeddable; }
-    void                SetSubsettableFlag( bool bSubsettable )         { mbSubsettable = bSubsettable; }
-    void                SetOrientationFlag( bool bCanRotate )           { mbRotatable = bCanRotate; }
-
     bool                operator==( const ImplFont& ) const;
 
 private:
@@ -132,11 +122,7 @@ private:
 
     // Device dependent variables
     OUString            maMapNames;
-    bool                mbWordLine:1,
-                        mbEmbeddable:1,
-                        mbSubsettable:1,
-                        mbRotatable:1,      // is "rotatable" even a word?!? I'll keep it for consistency for now
-                        mbDevice:1;
+    bool                mbWordLine:1;
 
     // TODO: metric data, should be migrated to ImplFontMetric
     short               mnOrientation;
diff --git a/vcl/inc/impfontmetric.hxx b/vcl/inc/impfontmetric.hxx
index c0d7c60a4d5b..6267a30fddfd 100644
--- a/vcl/inc/impfontmetric.hxx
+++ b/vcl/inc/impfontmetric.hxx
@@ -44,13 +44,9 @@ public:
     void                SetSlant( long nSlant )                     { mnSlant = nSlant; }
     void                SetBulletOffset( long nOffset )             { mnBulletOffset = nOffset; }
 
-    bool                IsScalable() const                          { return mbScalableFont; }
     bool                IsFullstopCentered() const                  { return mbFullstopCentered; }
-    bool                IsBuiltInFont() const                       { return mbDevice; }
 
-    void                SetScalableFlag( bool bScalable )           { mbScalableFont = bScalable; }
     void                SetFullstopCenteredFlag( bool bCentered )   { mbFullstopCentered = bCentered; }
-    void                SetBuiltInFontFlag( bool bIsBuiltInFont )   { mbDevice = bIsBuiltInFont; }
 
     bool                operator==( const ImplFontMetric& ) const;
 
@@ -65,9 +61,7 @@ private:
     long                mnSlant;                       // Slant
     long                mnBulletOffset;                // Offset for non-printing character
 
-    bool                mbScalableFont;
     bool                mbFullstopCentered;
-    bool                mbDevice;
 
 };
 
diff --git a/vcl/inc/impfontmetricdata.hxx b/vcl/inc/impfontmetricdata.hxx
index 8122bbd30ca8..31a0557f341e 100644
--- a/vcl/inc/impfontmetricdata.hxx
+++ b/vcl/inc/impfontmetricdata.hxx
@@ -58,15 +58,9 @@ public:
     void            SetMinKashida( long nMinKashida )                               { mnMinKashida=nMinKashida; }
 
     // font attributes queried from the font instance
-    bool            IsScalable()                                                    { return mbScalableFont; }
-    bool            IsTrueTypeFont()                                                { return mbTrueTypeFont; }
-    bool            IsKernable()                                                    { return mbKernableFont; }
     bool            IsFullstopCentered()                                            { return mbFullstopCentered; }
     long            GetBulletOffset()                                               { return mnBulletOffset; }
 
-    void            SetScalableFlag(bool bScalable)                                 { mbScalableFont = bScalable; }
-    void            SetTrueTypeFlag(bool bTrueTypeFont)                             { mbTrueTypeFont = bTrueTypeFont; }
-    void            SetKernableFlag(bool bKernable)                                 { mbKernableFont = bKernable; }
     void            SetFullstopCenteredFlag(bool bFullstopCentered)                 { mbFullstopCentered = bFullstopCentered; }
 
     // font metrics that are usually derived from the measurements
@@ -117,9 +111,6 @@ private:
     long            mnMinKashida;               // Minimal width of kashida (Arabic)
 
     // font attributes queried from the font instance
-    bool            mbScalableFont;
-    bool            mbTrueTypeFont;
-    bool            mbKernableFont;
     bool            mbFullstopCentered;
     long            mnBulletOffset;             // Offset to position non-print character
 
diff --git a/vcl/qa/cppunit/font.cxx b/vcl/qa/cppunit/font.cxx
index d496ebe418d3..f31a6f4bfb62 100644
--- a/vcl/qa/cppunit/font.cxx
+++ b/vcl/qa/cppunit/font.cxx
@@ -28,10 +28,6 @@ public:
     void testItalic();
     void testAlignment();
     void testQuality();
-    void testBuiltInFontFlag();
-    void testEmbeddableFontFlag();
-    void testSubsettableFontFlag();
-    void testOrientationFlag();
     void testSymbolFlagAndCharSet();
 
     CPPUNIT_TEST_SUITE(VclFontTest);
@@ -42,10 +38,6 @@ public:
     CPPUNIT_TEST(testItalic);
     CPPUNIT_TEST(testAlignment);
     CPPUNIT_TEST(testQuality);
-    CPPUNIT_TEST(testBuiltInFontFlag);
-    CPPUNIT_TEST(testEmbeddableFontFlag);
-    CPPUNIT_TEST(testSubsettableFontFlag);
-    CPPUNIT_TEST(testOrientationFlag);
     CPPUNIT_TEST(testSymbolFlagAndCharSet);
     CPPUNIT_TEST_SUITE_END();
 };
@@ -131,48 +123,6 @@ void VclFontTest::testQuality()
     CPPUNIT_ASSERT_EQUAL( (int)50, aFont.GetQuality() );
 }
 
-void VclFontTest::testBuiltInFontFlag()
-{
-    vcl::Font aFont;
-
-    CPPUNIT_ASSERT_EQUAL( false, aFont.IsBuiltInFont() );
-
-    aFont.SetBuiltInFontFlag( true );
-    CPPUNIT_ASSERT_EQUAL( true, aFont.IsBuiltInFont() );
-}
-
-void VclFontTest::testEmbeddableFontFlag()
-{
-    vcl::Font aFont;
-
-    CPPUNIT_ASSERT_EQUAL( false, aFont.CanEmbed() );
-
-    aFont.SetEmbeddableFlag( true );
-    CPPUNIT_ASSERT_EQUAL( true, aFont.CanEmbed() );
-}
-
-
-void VclFontTest::testSubsettableFontFlag()
-{
-    vcl::Font aFont;
-
-    CPPUNIT_ASSERT_EQUAL( false, aFont.CanSubset() );
-
-    aFont.SetSubsettableFlag( true );
-    CPPUNIT_ASSERT_EQUAL( true, aFont.CanSubset() );
-}
-
-
-void VclFontTest::testOrientationFlag()
-{
-    vcl::Font aFont;
-
-    CPPUNIT_ASSERT_EQUAL( false, aFont.CanRotate() );
-
-    aFont.SetOrientationFlag( true );
-    CPPUNIT_ASSERT_EQUAL( true, aFont.CanRotate() );
-}
-
 
 void VclFontTest::testSymbolFlagAndCharSet()
 {
diff --git a/vcl/qa/cppunit/fontmetric.cxx b/vcl/qa/cppunit/fontmetric.cxx
index 4f82adc61698..f28aa0d5bff7 100644
--- a/vcl/qa/cppunit/fontmetric.cxx
+++ b/vcl/qa/cppunit/fontmetric.cxx
@@ -23,18 +23,14 @@ class VclFontMetricTest : public test::BootstrapFixture
 public:
     VclFontMetricTest() : BootstrapFixture(true, false) {}
 
-    void testScalableFlag();
     void testFullstopCenteredFlag();
-    void testBuiltInFontFlag();
     void testSpacings();
     void testSlant();
     void testBulletOffset();
     void testEqualityOperator();
 
     CPPUNIT_TEST_SUITE(VclFontMetricTest);
-    CPPUNIT_TEST(testScalableFlag);
     CPPUNIT_TEST(testFullstopCenteredFlag);
-    CPPUNIT_TEST(testBuiltInFontFlag);
     CPPUNIT_TEST(testSpacings);
     CPPUNIT_TEST(testSlant);
     CPPUNIT_TEST(testBulletOffset);
@@ -42,18 +38,6 @@ public:
     CPPUNIT_TEST_SUITE_END();
 };
 
-void VclFontMetricTest::testScalableFlag()
-{
-    // default constructor should set scalable flag to false
-    FontMetric aFontMetric;
-
-    CPPUNIT_ASSERT_MESSAGE( "Scalable flag should be false after default constructor called", !aFontMetric.IsScalable() );
-
-    aFontMetric.SetScalableFlag(true);
-
-    CPPUNIT_ASSERT_MESSAGE( "Scalable flag should be true", aFontMetric.IsScalable() );
-}
-
 void VclFontMetricTest::testFullstopCenteredFlag()
 {
     // default constructor should set scalable flag to false
@@ -66,18 +50,6 @@ void VclFontMetricTest::testFullstopCenteredFlag()
     CPPUNIT_ASSERT_MESSAGE( "Fullstop centered flag should be true", aFontMetric.IsFullstopCentered() );
 }
 
-void VclFontMetricTest::testBuiltInFontFlag()
-{
-    // default constructor should set scalable flag to false
-    FontMetric aFontMetric;
-
-    CPPUNIT_ASSERT_MESSAGE( "Built-in font flag should be false after default constructor called", !aFontMetric.IsBuiltInFont() );
-
-    aFontMetric.SetBuiltInFontFlag(true);
-
-    CPPUNIT_ASSERT_MESSAGE( "Built-in font flag should be true", aFontMetric.IsBuiltInFont() );
-}
-
 void VclFontMetricTest::testSpacings()
 {
     // default constructor should set scalable flag to false
@@ -133,21 +105,11 @@ void VclFontMetricTest::testEqualityOperator()
     // default constructor should set scalable flag to false
     FontMetric aLhs, aRhs;
 
-    aLhs.SetScalableFlag(true);
-    aRhs.SetScalableFlag(true);
-    CPPUNIT_ASSERT_MESSAGE( "Scalable flag set same, aLhs == aRhs failed", aLhs == aRhs );
-    CPPUNIT_ASSERT_MESSAGE( "Scalable flag set same, aLhs != aRhs succeeded", !(aLhs != aRhs) );
-
     aLhs.SetFullstopCenteredFlag(true);
     aRhs.SetFullstopCenteredFlag(true);
     CPPUNIT_ASSERT_MESSAGE( "Fullstop centered flag set same, aLhs == aRhs failed", aLhs == aRhs );
     CPPUNIT_ASSERT_MESSAGE( "Fullstop centered flag set same, aLhs != aRhs succeeded", !(aLhs != aRhs) );
 
-    aLhs.SetBuiltInFontFlag(true);
-    aRhs.SetBuiltInFontFlag(true);
-    CPPUNIT_ASSERT_MESSAGE( "Builtin font flag set same, aLHS == aRhs failed", aLhs == aRhs );
-    CPPUNIT_ASSERT_MESSAGE( "Builtin font flag set same, aLHS != aRhs succeeded", !(aLhs != aRhs) );
-
     aLhs.SetExternalLeading(10);
     aRhs.SetExternalLeading(10);
     CPPUNIT_ASSERT_MESSAGE( "External leading set same, aLHS == aRhs failed", aLhs == aRhs );
diff --git a/vcl/quartz/ctfonts.cxx b/vcl/quartz/ctfonts.cxx
index e628be42d247..acc8add0b9f3 100644
--- a/vcl/quartz/ctfonts.cxx
+++ b/vcl/quartz/ctfonts.cxx
@@ -138,11 +138,6 @@ void CoreTextStyle::GetFontMetric( ImplFontMetricDataRef& rxFontMetric ) const
     // it also makes the calculation of the stretch factor simple
     rxFontMetric->SetWidth( lrint( CTFontGetSize( aCTFontRef ) * mfFontStretch) );
 
-    // all CoreText fonts are scalable
-    rxFontMetric->SetScalableFlag( true );
-    rxFontMetric->SetTrueTypeFlag( true ); // Not sure, but this field is used only for Windows so far
-    rxFontMetric->SetKernableFlag( true );
-
     UniChar nKashidaCh = 0x0640;
     CGGlyph nKashidaGid = 0;
     if (CTFontGetGlyphsForCharacters(aCTFontRef, &nKashidaCh, &nKashidaGid, 1))
@@ -310,8 +305,6 @@ FontAttributes DevFontFromCTFontDescriptor( CTFontDescriptorRef pFD, bool* bFont
 {
     // all CoreText fonts are device fonts that can rotate just fine
     FontAttributes rDFA;
-    rDFA.SetOrientationFlag( true );
-    rDFA.SetBuiltInFontFlag( true );
     rDFA.SetQuality( 0 );
 
     // reset the font attributes
@@ -322,10 +315,6 @@ FontAttributes DevFontFromCTFontDescriptor( CTFontDescriptorRef pFD, bool* bFont
     rDFA.SetItalic( ITALIC_NONE );
     rDFA.SetSymbolFlag( false );
 
-    // all scalable fonts on this platform are subsettable
-    rDFA.SetEmbeddableFlag( false );
-    rDFA.SetSubsettableFlag( true );
-
     // get font name
 #ifdef MACOSX
     const OUString aUILang = Application::GetSettings().GetUILanguageTag().getLanguage();
diff --git a/vcl/quartz/salgdi.cxx b/vcl/quartz/salgdi.cxx
index 0333bbf0f6c2..e46ad771ace8 100644
--- a/vcl/quartz/salgdi.cxx
+++ b/vcl/quartz/salgdi.cxx
@@ -777,16 +777,6 @@ void AquaSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFontData, bool bV
     rGlyphWidths.clear();
     rUnicodeEnc.clear();
 
-    if( !pFontData->CanSubset() )
-    {
-        if( pFontData->CanEmbed() )
-        {
-            // get individual character widths
-            OSL_FAIL("not implemented for non-subsettable fonts!\n");
-        }
-        return;
-    }
-
     std::vector<unsigned char> aBuffer;
     if( !GetRawFontData( pFontData, aBuffer, nullptr ) )
         return;
diff --git a/vcl/source/font/PhysicalFontCollection.cxx b/vcl/source/font/PhysicalFontCollection.cxx
index 295de0452eca..3a7da5921b62 100644
--- a/vcl/source/font/PhysicalFontCollection.cxx
+++ b/vcl/source/font/PhysicalFontCollection.cxx
@@ -158,9 +158,6 @@ void PhysicalFontCollection::ImplInitGenericGlyphFallback() const
         if( !pFallbackFont )
             continue;
 
-        if( !pFallbackFont->IsScalable() )
-            continue;
-
         // keep the best font of the glyph fallback sub-list
         if( nBestQuality < pFallbackFont->GetMinQuality() )
         {
@@ -919,7 +916,7 @@ PhysicalFontFamily* PhysicalFontCollection::ImplFindFontFamilyOfDefaultFont() co
     return pFoundData;
 }
 
-PhysicalFontCollection* PhysicalFontCollection::Clone( bool bEmbeddable ) const
+PhysicalFontCollection* PhysicalFontCollection::Clone() const
 {
     PhysicalFontCollection* pClonedCollection = new PhysicalFontCollection;
     pClonedCollection->mbMapNames     = mbMapNames;
@@ -933,7 +930,7 @@ PhysicalFontCollection* PhysicalFontCollection::Clone( bool bEmbeddable ) const
     for(; it != maPhysicalFontFamilies.end(); ++it )
     {
         const PhysicalFontFamily* pFontFace = (*it).second;
-        pFontFace->UpdateCloneFontList( *pClonedCollection, bEmbeddable );
+        pFontFace->UpdateCloneFontList(*pClonedCollection);
     }
 
     return pClonedCollection;
diff --git a/vcl/source/font/PhysicalFontFace.cxx b/vcl/source/font/PhysicalFontFace.cxx
index a0fb7210cc9b..044cd36063da 100644
--- a/vcl/source/font/PhysicalFontFace.cxx
+++ b/vcl/source/font/PhysicalFontFace.cxx
@@ -158,45 +158,15 @@ bool PhysicalFontFace::IsBetterMatch( const FontSelectPattern& rFSD, FontMatchSt
             nMatch += 600;
     }
 
-    if( IsBuiltInFont() )
-        nMatch += 1;
-
     int nHeightMatch = 0;
     int nWidthMatch = 0;
 
-    if( IsScalable() )
-    {
-        if( rFSD.mnOrientation != 0 )
-            nMatch += 80;
-        else if( rFSD.mnWidth != 0 )
-            nMatch += 25;
-        else
-            nMatch += 5;
-    }
+    if( rFSD.mnOrientation != 0 )
+        nMatch += 80;
+    else if( rFSD.mnWidth != 0 )
+        nMatch += 25;
     else
-    {
-        if( rFSD.mnHeight == mnHeight )
-        {
-            nMatch += 20;
-            if( rFSD.mnWidth == mnWidth )
-                nMatch += 10;
-        }
-        else
-        {
-            // for non-scalable fonts the size difference is very important
-            // prefer the smaller font face because of clipping/overlapping issues
-            int nHeightDiff = (rFSD.mnHeight - mnHeight) * 1000;
-            nHeightMatch = (nHeightDiff >= 0) ? -nHeightDiff : 100+nHeightDiff;
-            if( rFSD.mnHeight )
-                nHeightMatch /= rFSD.mnHeight;
-
-            if( (rFSD.mnWidth != 0) && (mnWidth != 0) && (rFSD.mnWidth != mnWidth) )
-            {
-                int nWidthDiff = (rFSD.mnWidth - mnWidth) * 100;
-                nWidthMatch = (nWidthDiff >= 0) ? -nWidthDiff : +nWidthDiff;
-            }
-        }
-    }
+        nMatch += 5;
 
     if( rStatus.mnFaceMatch > nMatch )
         return false;
diff --git a/vcl/source/font/PhysicalFontFamily.cxx b/vcl/source/font/PhysicalFontFamily.cxx
index e56935c99707..5e28ab37a03f 100644
--- a/vcl/source/font/PhysicalFontFamily.cxx
+++ b/vcl/source/font/PhysicalFontFamily.cxx
@@ -128,8 +128,7 @@ bool PhysicalFontFamily::AddFontFace( PhysicalFontFace* pNewFontFace )
     }
 
     // set attributes for attribute based font matching
-    if( pNewFontFace->IsScalable() )
-        mnTypeFaces |= FontTypeFaces::Scalable;
+    mnTypeFaces |= FontTypeFaces::Scalable;
 
     if( pNewFontFace->IsSymbolFont() )
         mnTypeFaces |= FontTypeFaces::Symbol;
@@ -173,7 +172,7 @@ bool PhysicalFontFamily::AddFontFace( PhysicalFontFace* pNewFontFace )
             return false;
 
         // keep the device font if its quality is good enough
-        if( (pNewFontFace->GetQuality() == pFoundFontFace->GetQuality()) && (pFoundFontFace->IsBuiltInFont() || !pNewFontFace->IsBuiltInFont()) )
+        if( pNewFontFace->GetQuality() == pFoundFontFace->GetQuality() )
             return false;
 
         // replace existing font face with a better one
@@ -260,8 +259,7 @@ void PhysicalFontFamily::GetFontHeights( std::set<int>& rHeights ) const
     }
 }
 
-void PhysicalFontFamily::UpdateCloneFontList( PhysicalFontCollection& rFontCollection,
-                                              bool bEmbeddable ) const
+void PhysicalFontFamily::UpdateCloneFontList(PhysicalFontCollection& rFontCollection) const
 {
     OUString aFamilyName = GetEnglishSearchFontName( GetFamilyName() );
     PhysicalFontFamily* pFamily(nullptr);
@@ -270,11 +268,6 @@ void PhysicalFontFamily::UpdateCloneFontList( PhysicalFontCollection& rFontColle
     {
         PhysicalFontFace *pFoundFontFace = *it;
 
-        if( !pFoundFontFace->IsScalable() )
-            continue;
-        if( bEmbeddable && !pFoundFontFace->CanEmbed() && !pFoundFontFace->CanSubset() )
-            continue;
-
         if (!pFamily)
         {   // tdf#98989 lazy create as family without faces won't work
             pFamily = rFontCollection.FindOrCreateFontFamily(aFamilyName);
diff --git a/vcl/source/font/font.cxx b/vcl/source/font/font.cxx
index df0f89165f68..ebf89250d650 100644
--- a/vcl/source/font/font.cxx
+++ b/vcl/source/font/font.cxx
@@ -706,15 +706,6 @@ void Font::DecreaseQualityBy( int nQualityAmount ) { mpImplFont->DecreaseQuality
 
 void Font::SetMapNames( OUString const & aMapNames ) { mpImplFont->SetMapNames(aMapNames); }
 
-bool Font::IsBuiltInFont() const { return mpImplFont->IsBuiltInFont(); }
-void Font::SetBuiltInFontFlag( bool bIsBuiltInFontFlag ) { mpImplFont->SetBuiltInFontFlag( bIsBuiltInFontFlag ); }
-bool Font::CanEmbed() const { return mpImplFont->CanEmbed(); }
-void Font::SetEmbeddableFlag( bool bEmbeddable ) { mpImplFont->SetEmbeddableFlag( bEmbeddable ); }
-bool Font::CanSubset() const { return mpImplFont->CanSubset(); }
-void Font::SetSubsettableFlag( bool bSubsettable ) { mpImplFont->SetSubsettableFlag( bSubsettable ); }
-bool Font::CanRotate() const { return mpImplFont->CanRotate(); }
-void Font::SetOrientationFlag( bool bCanRotate ) { mpImplFont->SetOrientationFlag( bCanRotate ); }
-
 bool Font::IsOutline() const { return mpImplFont->mbOutline; }
 bool Font::IsShadow() const { return mpImplFont->mbShadow; }
 FontRelief Font::GetRelief() const { return mpImplFont->meRelief; }
@@ -751,10 +742,6 @@ ImplFont::ImplFont() :
     maColor( COL_TRANSPARENT ),
     maFillColor( COL_TRANSPARENT ),
     mbWordLine( false ),
-    mbEmbeddable( false ),
-    mbSubsettable( false ),
-    mbRotatable( false ),
-    mbDevice( false ),
     mnOrientation( 0 ),
     mnQuality( 0 )
 {}
@@ -788,10 +775,6 @@ ImplFont::ImplFont( const ImplFont& rImplFont ) :
     maFillColor( rImplFont.maFillColor ),
     maMapNames( rImplFont.maMapNames ),
     mbWordLine( rImplFont.mbWordLine ),
-    mbEmbeddable( rImplFont.mbEmbeddable ),
-    mbSubsettable( rImplFont.mbSubsettable ),
-    mbRotatable( rImplFont.mbRotatable ),
-    mbDevice( rImplFont.mbDevice ),
     mnOrientation( rImplFont.mnOrientation ),
     mnQuality( rImplFont.mnQuality )
 {}
diff --git a/vcl/source/font/fontattributes.cxx b/vcl/source/font/fontattributes.cxx
index f800f18fce0c..890f4f20b2d8 100644
--- a/vcl/source/font/fontattributes.cxx
+++ b/vcl/source/font/fontattributes.cxx
@@ -30,11 +30,7 @@ FontAttributes::FontAttributes()
     meItalic ( ITALIC_NONE ),
     meCharSet( RTL_TEXTENCODING_DONTKNOW ),
     mbSymbolFlag( false ),
-    mnQuality( 0 ),
-    mbOrientation( false ),
-    mbDevice( false ),
-    mbSubsettable( false ),
-    mbEmbeddable ( false )
+    mnQuality( 0 )
 {}
 
 FontAttributes::FontAttributes( const FontAttributes& rFontAttributes ) :
@@ -48,11 +44,7 @@ FontAttributes::FontAttributes( const FontAttributes& rFontAttributes ) :
     meCharSet( rFontAttributes.meCharSet ),
     mbSymbolFlag( rFontAttributes.mbSymbolFlag ),
     maMapNames( rFontAttributes.maMapNames ),
-    mnQuality( rFontAttributes.mnQuality ),
-    mbOrientation( rFontAttributes.mbOrientation ),
-    mbDevice( rFontAttributes.mbDevice ),
-    mbSubsettable( rFontAttributes.mbSubsettable ),
-    mbEmbeddable( rFontAttributes.mbEmbeddable )
+    mnQuality( rFontAttributes.mnQuality )
 {}
 
 bool FontAttributes::CompareDeviceIndependentFontAttributes(const FontAttributes& rOther) const
diff --git a/vcl/source/font/fontmetric.cxx b/vcl/source/font/fontmetric.cxx
index b48b0aaca348..42d8ea593a5a 100644
--- a/vcl/source/font/fontmetric.cxx
+++ b/vcl/source/font/fontmetric.cxx
@@ -74,11 +74,6 @@ bool FontMetric::operator==( const FontMetric& rFontMetric ) const
     return false;
 }
 
-FontType FontMetric::GetType() const
-{
-    return (mxImplMetric->IsScalable() ? TYPE_SCALABLE : TYPE_RASTER);
-}
-
 long FontMetric::GetAscent() const
 {
     return mxImplMetric->GetAscent();
@@ -149,16 +144,6 @@ void FontMetric::SetBulletOffset( long nOffset )
     mxImplMetric->SetBulletOffset( nOffset );
 }
 
-bool FontMetric::IsScalable() const
-{
-    return mxImplMetric->IsScalable();
-}
-
-void FontMetric::SetScalableFlag(bool bScalable)
-{
-    mxImplMetric->SetScalableFlag( bScalable );
-}
-
 bool FontMetric::IsFullstopCentered() const
 {
     return mxImplMetric->IsFullstopCentered();
@@ -169,16 +154,6 @@ void FontMetric::SetFullstopCenteredFlag(bool bScalable)
     mxImplMetric->SetFullstopCenteredFlag( bScalable );
 }
 
-bool FontMetric::IsBuiltInFont() const
-{
-    return mxImplMetric->IsBuiltInFont();
-}
-
-void FontMetric::SetBuiltInFontFlag( bool bIsBuiltInFont )
-{
-    mxImplMetric->SetBuiltInFontFlag( bIsBuiltInFont );
-}
-
 
 ImplFontMetric::ImplFontMetric()
 :   mnAscent( 0 ),
@@ -188,16 +163,12 @@ ImplFontMetric::ImplFontMetric()
     mnLineHeight( 0 ),
     mnSlant( 0 ),
     mnBulletOffset( 0 ),
-    mbScalableFont( false ),
-    mbFullstopCentered( false ),
-    mbDevice( false )
+    mbFullstopCentered( false )
 {}
 
 bool ImplFontMetric::operator==( const ImplFontMetric& r ) const
 {
-    if(    mbScalableFont     != r.mbScalableFont
-        || mbFullstopCentered != r.mbFullstopCentered
-        || mbDevice           != r.mbDevice) // mbDevice == built-in font flag
+    if (mbFullstopCentered != r.mbFullstopCentered)
         return false;
     if( mnAscent     != r.mnAscent )
         return false;
@@ -224,9 +195,6 @@ ImplFontMetricData::ImplFontMetricData( const FontSelectPattern& rFontSelData )
     , mnExtLeading( 0 )
     , mnSlant( 0 )
     , mnMinKashida( 0 )
-    , mbScalableFont( false )
-    , mbTrueTypeFont( false )
-    , mbKernableFont( false )
     , mbFullstopCentered( false )
     , mnBulletOffset( 0 )
     , mnUnderlineSize( 0 )
@@ -260,16 +228,12 @@ ImplFontMetricData::ImplFontMetricData( const FontSelectPattern& rFontSelData )
     {
         SetFamilyName( rFontSelData.mpFontData->GetFamilyName() );
         SetStyleName( rFontSelData.mpFontData->GetStyleName() );
-        SetBuiltInFontFlag( rFontSelData.mpFontData->IsBuiltInFont() );
-        SetKernableFlag( true );
     }
     else
     {
         sal_Int32 nTokenPos = 0;
         SetFamilyName( GetNextFontToken( rFontSelData.GetFamilyName(), nTokenPos ) );
         SetStyleName( rFontSelData.GetStyleName() );
-        SetBuiltInFontFlag( false );
-        SetKernableFlag( false );
     }
 }
 
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index f667f12f0c91..76f43382ebb6 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -2243,11 +2243,7 @@ static FontAttributes GetDevFontAttributes( const PDFWriterImpl::BuiltinFont& rB
     aDFA.SetItalic( rBuiltin.m_eItalic );
     aDFA.SetWidthType( rBuiltin.m_eWidthType );
 
-    aDFA.SetOrientationFlag( true );
-    aDFA.SetBuiltInFontFlag( true );
     aDFA.SetQuality( 50000 );
-    aDFA.SetSubsettableFlag( false );
-    aDFA.SetEmbeddableFlag( false );
     return aDFA;
 }
 
@@ -2947,63 +2943,34 @@ std::map< sal_Int32, sal_Int32 > PDFWriterImpl::emitSystemFont( const PhysicalFo
 
     assert(pGraphics);
 
-    if( pFont->CanEmbed() )
-    {
-        const unsigned char* pFontData = nullptr;
-        long nFontLen = 0;
-        sal_Ucs nEncodedCodes[256];
-        sal_Int32 pEncWidths[256];
-
-        //TODO: surely this is utterly broken because GetEmbedFontData loops over the uninitialized nEncodedCodes as input
-        pFontData = static_cast<const unsigned char*>(pGraphics->GetEmbedFontData( pFont, nEncodedCodes, pEncWidths, 256, aInfo, &nFontLen ));
+    aSubType = OString( "/TrueType" );
+    std::vector< sal_Int32 > aGlyphWidths;
+    Ucs2UIntMap aUnicodeMap;
+    pGraphics->GetGlyphWidths( pFont, false, aGlyphWidths, aUnicodeMap );
 
-        if( pFontData )
-        {
-            pGraphics->FreeEmbedFontData( pFontData, nFontLen );
-            for( int i = 0; i < 256; i++ )
-            {
-                if( nEncodedCodes[i] >= 32 && nEncodedCodes[i] < 256 )
-                {
-                    pWidths[i] = pEncWidths[ i ];
-                }
-            }
-        }
-    }
-    else if( pFont->CanSubset() )
-    {
-        aSubType = OString( "/TrueType" );
-        std::vector< sal_Int32 > aGlyphWidths;
-        Ucs2UIntMap aUnicodeMap;
-        pGraphics->GetGlyphWidths( pFont, false, aGlyphWidths, aUnicodeMap );
-
-        OUString aTmpName;
-        osl_createTempFile( nullptr, nullptr, &aTmpName.pData );
-        sal_GlyphId aGlyphIds[ 256 ];
-        sal_uInt8 pEncoding[ 256 ];
-        sal_Int32 pDuWidths[ 256 ];
-
-        memset( aGlyphIds, 0, sizeof( aGlyphIds ) );
-        memset( pEncoding, 0, sizeof( pEncoding ) );
-        memset( pDuWidths, 0, sizeof( pDuWidths ) );
-
-        for( sal_Ucs c = 32; c < 256; c++ )
-        {
-            pEncoding[c] = c;
-            aGlyphIds[c] = 0;
-            if( aUnicodeMap.find( c ) != aUnicodeMap.end() )
-                pWidths[ c ] = aGlyphWidths[ aUnicodeMap[ c ] ];
-        }
-        //TODO: surely this is utterly broken because aGlyphIds is just all zeros, if we
-        //had the right glyphids here then I imagine we could replace pDuWidths with
-        //pWidths and remove pWidths assignment above. i.e. start with the glyph ids
-        //and map those to unicode rather than try and reverse map them ?
-        pGraphics->CreateFontSubset( aTmpName, pFont, aGlyphIds, pEncoding, pDuWidths, 256, aInfo );
-        osl_removeFile( aTmpName.pData );
-    }
-    else
-    {
-        OSL_FAIL( "system font neither embeddable nor subsettable" );
-    }
+    OUString aTmpName;
+    osl_createTempFile( nullptr, nullptr, &aTmpName.pData );
+    sal_GlyphId aGlyphIds[ 256 ];
+    sal_uInt8 pEncoding[ 256 ];
+    sal_Int32 pDuWidths[ 256 ];
+
+    memset( aGlyphIds, 0, sizeof( aGlyphIds ) );
+    memset( pEncoding, 0, sizeof( pEncoding ) );
+    memset( pDuWidths, 0, sizeof( pDuWidths ) );
+
+    for( sal_Ucs c = 32; c < 256; c++ )
+    {
+        pEncoding[c] = c;
+        aGlyphIds[c] = 0;
+        if( aUnicodeMap.find( c ) != aUnicodeMap.end() )
+            pWidths[ c ] = aGlyphWidths[ aUnicodeMap[ c ] ];
+    }
+    //TODO: surely this is utterly broken because aGlyphIds is just all zeros, if we
+    //had the right glyphids here then I imagine we could replace pDuWidths with
+    //pWidths and remove pWidths assignment above. i.e. start with the glyph ids
+    //and map those to unicode rather than try and reverse map them ?
+    pGraphics->CreateFontSubset( aTmpName, pFont, aGlyphIds, pEncoding, pDuWidths, 256, aInfo );
+    osl_removeFile( aTmpName.pData );
 
     // write font descriptor
     nFontDescriptor = emitFontDescriptor( pFont, aInfo, 0, 0 );
@@ -8919,139 +8886,47 @@ void PDFWriterImpl::registerGlyphs( int nGlyphs,
         const int nFontGlyphId = pGlyphs[i] & (GF_IDXMASK | GF_ISCHAR | GF_GSUB);
         const PhysicalFontFace* pCurrentFont = pFallbackFonts[i] ? pFallbackFonts[i] : pDevFont;
 
-        if( pCurrentFont->CanSubset() )
+        FontSubset& rSubset = m_aSubsets[ pCurrentFont ];
+        // search for font specific glyphID
+        FontMapping::iterator it = rSubset.m_aMapping.find( nFontGlyphId );
+        if( it != rSubset.m_aMapping.end() )
         {
-            FontSubset& rSubset = m_aSubsets[ pCurrentFont ];
-            // search for font specific glyphID
-            FontMapping::iterator it = rSubset.m_aMapping.find( nFontGlyphId );
-            if( it != rSubset.m_aMapping.end() )
-            {
-                pMappedFontObjects[i] = it->second.m_nFontID;
-                pMappedGlyphs[i] = it->second.m_nSubsetGlyphID;
-            }
-            else
-            {
-                // create new subset if necessary
-                if( rSubset.m_aSubsets.empty()
-                || (rSubset.m_aSubsets.back().m_aMapping.size() > 254) )
-                {
-                    rSubset.m_aSubsets.push_back( FontEmit( m_nNextFID++ ) );
-                }
-
-                // copy font id
-                pMappedFontObjects[i] = rSubset.m_aSubsets.back().m_nFontID;
-                // create new glyph in subset
-                sal_uInt8 nNewId = sal::static_int_cast<sal_uInt8>(rSubset.m_aSubsets.back().m_aMapping.size()+1);
-                pMappedGlyphs[i] = nNewId;
-
-                // add new glyph to emitted font subset
-                GlyphEmit& rNewGlyphEmit = rSubset.m_aSubsets.back().m_aMapping[ nFontGlyphId ];
-                rNewGlyphEmit.setGlyphId( nNewId );
-                for( sal_Int32 n = 0; n < pUnicodesPerGlyph[i]; n++ )
-                    rNewGlyphEmit.addCode( pCurUnicode[n] );
-
-                // add new glyph to font mapping
-                Glyph& rNewGlyph = rSubset.m_aMapping[ nFontGlyphId ];
-                rNewGlyph.m_nFontID = pMappedFontObjects[i];
-                rNewGlyph.m_nSubsetGlyphID = nNewId;
-            }
-            if (!getReferenceDevice()->AcquireGraphics())
-                return;
-            const bool bVertical = ((pGlyphs[i] & GF_ROTMASK) != 0);
-            pGlyphWidths[i] = m_aFontCache.getGlyphWidth( pCurrentFont,
-                                                          nFontGlyphId,
-                                                          bVertical,
-                                                          pGraphics );
-        }
-        else if( pCurrentFont->CanEmbed() )
-        {
-            sal_Int32 nFontID = 0;
-            FontEmbedData::iterator it = m_aEmbeddedFonts.find( pCurrentFont );
-            if( it != m_aEmbeddedFonts.end() )
-                nFontID = it->second.m_nNormalFontID;
-            else
+            pMappedFontObjects[i] = it->second.m_nFontID;
+            pMappedGlyphs[i] = it->second.m_nSubsetGlyphID;
+        }
+        else
+        {
+            // create new subset if necessary
+            if( rSubset.m_aSubsets.empty()
+            || (rSubset.m_aSubsets.back().m_aMapping.size() > 254) )
             {
-                nFontID = m_nNextFID++;
-                m_aEmbeddedFonts[ pCurrentFont ] = EmbedFont();
-                m_aEmbeddedFonts[ pCurrentFont ].m_nNormalFontID = nFontID;
+                rSubset.m_aSubsets.push_back( FontEmit( m_nNextFID++ ) );
             }
-            EmbedFont& rEmbedFont = m_aEmbeddedFonts[pCurrentFont];
-
-            const Ucs2SIntMap* pEncoding = nullptr;
-            const Ucs2OStrMap* pNonEncoded = nullptr;
-            if (!getReferenceDevice()->AcquireGraphics())
-                return;
-            pEncoding = pGraphics->GetFontEncodingVector( pCurrentFont, &pNonEncoded, nullptr);
 
-            Ucs2SIntMap::const_iterator enc_it;
-            Ucs2OStrMap::const_iterator nonenc_it;
+            // copy font id
+            pMappedFontObjects[i] = rSubset.m_aSubsets.back().m_nFontID;
+            // create new glyph in subset
+            sal_uInt8 nNewId = sal::static_int_cast<sal_uInt8>(rSubset.m_aSubsets.back().m_aMapping.size()+1);
+            pMappedGlyphs[i] = nNewId;
 
-            sal_Int32 nCurFontID = nFontID;
-            sal_Ucs cChar = *pCurUnicode;
-            if( pEncoding )
-            {
-                enc_it = pEncoding->find( cChar );
-                if( enc_it != pEncoding->end() && enc_it->second > 0 )
-                {
-                    SAL_WARN_IF( (enc_it->second & 0xffffff00) != 0, "vcl", "Invalid character code" );
-                    cChar = (sal_Ucs)enc_it->second;
-                }
-                else if( (enc_it == pEncoding->end() || enc_it->second == -1) &&
-                         pNonEncoded &&
-                         (nonenc_it = pNonEncoded->find( cChar )) != pNonEncoded->end() )
-                {
-                    nCurFontID = 0;
-                    // find non encoded glyph
-                    for( std::list< EmbedEncoding >::iterator nec_it = rEmbedFont.m_aExtendedEncodings.begin(); nec_it != rEmbedFont.m_aExtendedEncodings.end(); ++nec_it )
-                    {
-                        if( nec_it->m_aCMap.find( cChar ) != nec_it->m_aCMap.end() )
-                        {
-                            nCurFontID = nec_it->m_nFontID;
-                            cChar = (sal_Ucs)nec_it->m_aCMap[ cChar ];
-                            break;
-                        }
-                    }
-                    if( nCurFontID == 0 ) // new nonencoded glyph
-                    {
-                        if( rEmbedFont.m_aExtendedEncodings.empty() || rEmbedFont.m_aExtendedEncodings.back().m_aEncVector.size() == 255 )
-                        {
-                            rEmbedFont.m_aExtendedEncodings.push_back( EmbedEncoding() );
-                            rEmbedFont.m_aExtendedEncodings.back().m_nFontID = m_nNextFID++;
-                        }
-                        EmbedEncoding& rEncoding = rEmbedFont.m_aExtendedEncodings.back();
-                        rEncoding.m_aEncVector.push_back( EmbedCode() );
-                        rEncoding.m_aEncVector.back().m_aUnicode = cChar;
-                        rEncoding.m_aEncVector.back().m_aName = nonenc_it->second;
-                        rEncoding.m_aCMap[ cChar ] = (sal_Int8)(rEncoding.m_aEncVector.size()-1);
-                        nCurFontID = rEncoding.m_nFontID;
-                        cChar = (sal_Ucs)rEncoding.m_aCMap[ cChar ];
-                    }
-                }
-                else
-                    pEncoding = nullptr;
-            }
-            if( ! pEncoding )
-            {
-                if( cChar & 0xff00 )
-                {
-                    // some characters can be used by conversion
-                    if( cChar >= 0xf000 && cChar <= 0xf0ff ) // symbol encoding in private use area
-                        cChar -= 0xf000;
-                    else
-                    {
-                        OString aChar(&cChar, 1, RTL_TEXTENCODING_MS_1252);
-                        cChar = !aChar.isEmpty() ? (static_cast<sal_Ucs>(aChar[0]) & 0x00ff) : 0;
-                    }
-                }
-            }
+            // add new glyph to emitted font subset
+            GlyphEmit& rNewGlyphEmit = rSubset.m_aSubsets.back().m_aMapping[ nFontGlyphId ];
+            rNewGlyphEmit.setGlyphId( nNewId );
+            for( sal_Int32 n = 0; n < pUnicodesPerGlyph[i]; n++ )
+                rNewGlyphEmit.addCode( pCurUnicode[n] );
 
-            pMappedGlyphs[ i ] = (sal_Int8)cChar;
-            pMappedFontObjects[ i ] = nCurFontID;
-            pGlyphWidths[ i ] = m_aFontCache.getGlyphWidth( pCurrentFont,
-                                                            (pEncoding ? *pCurUnicode : cChar) | GF_ISCHAR,
-                                                            false,
-                                                            pGraphics );
+            // add new glyph to font mapping
+            Glyph& rNewGlyph = rSubset.m_aMapping[ nFontGlyphId ];
+            rNewGlyph.m_nFontID = pMappedFontObjects[i];
+            rNewGlyph.m_nSubsetGlyphID = nNewId;
         }
+        if (!getReferenceDevice()->AcquireGraphics())
+            return;
+        const bool bVertical = ((pGlyphs[i] & GF_ROTMASK) != 0);
+        pGlyphWidths[i] = m_aFontCache.getGlyphWidth( pCurrentFont,
+                                                      nFontGlyphId,
+                                                      bVertical,
+                                                      pGraphics );
     }
 }
 
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index c174aca6b77a..61cf67e7491e 100644
--- a/vcl/source/gdi/virdev.cxx
+++ b/vcl/source/gdi/virdev.cxx
@@ -518,7 +518,7 @@ void VirtualDevice::ImplSetReferenceDevice( RefDevMode i_eRefDevMode, sal_Int32
 
     // get font list with scalable fonts only
     AcquireGraphics();
-    mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone( false );
+    mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone();
 
     // prepare to use new font lists
     mpFontCache = new ImplFontCache();
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index 8edcb9a1501a..c30d4231da63 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -55,8 +55,6 @@ FontMetric OutputDevice::GetDevFont( int nDevFontIndex ) const
         aFontMetric.SetItalic( rData.GetItalic() );
         aFontMetric.SetAlignment( TextAlign::ALIGN_TOP );
         aFontMetric.SetWidthType( rData.GetWidthType() );
-        aFontMetric.SetScalableFlag( rData.IsScalable() );
-        aFontMetric.SetBuiltInFontFlag( rData.IsBuiltInFont() );
         aFontMetric.SetQuality( rData.GetQuality() );
         aFontMetric.SetMapNames( rData.GetMapNames() );
     }
@@ -194,12 +192,8 @@ FontMetric OutputDevice::GetFontMetric() const
         aMetric.SetOrientation( pFontInstance->mnOwnOrientation );
     else
         aMetric.SetOrientation( xFontMetric->GetOrientation() );
-    if( !pFontInstance->mxFontMetric->IsKernable() )
-         aMetric.SetKerning( maFont.GetKerning() & ~FontKerning::FontSpecific );
 
     // set remaining metric fields
-    aMetric.SetBuiltInFontFlag( xFontMetric->IsBuiltInFont() );
-    aMetric.SetScalableFlag( xFontMetric->IsScalable() );
     aMetric.SetFullstopCenteredFlag( xFontMetric->IsFullstopCentered() );
     aMetric.SetBulletOffset( xFontMetric->GetBulletOffset() );
     aMetric.SetAscent( ImplDevicePixelToLogicHeight( xFontMetric->GetAscent() + mnEmphasisAscent ) );
@@ -572,7 +566,7 @@ void OutputDevice::ImplRefreshFontData( const bool bNewFontLists )
             {
                 if( mpPDFWriter )
                 {
-                    mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone( true );
+                    mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone();
                     mpFontCache = new ImplFontCache();
                 }
                 else
@@ -1116,9 +1110,7 @@ bool OutputDevice::ImplNewFont() const
     // enable kerning array if requested
     if ( maFont.GetKerning() & FontKerning::FontSpecific )
     {
-        // TODO: test if physical font supports kerning and disable if not
-        if( pFontInstance->mxFontMetric->IsKernable() )
-            mbKerning = true;
+        mbKerning = true;
     }
     else
     {
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index dd68e0b8647d..8e3d2dc0d212 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -459,22 +459,6 @@ void Window::SetZoomedPointFont(vcl::RenderContext& rRenderContext, const vcl::F
         aSize.Height() = WinFloatRound(n);
         aFont.SetFontSize(aSize);
         SetPointFont(rRenderContext, aFont);
-
-        // Use another font if the representation is to be scaled,
-        // and the actual font is not scalable
-        FontMetric aMetric = rRenderContext.GetFontMetric();
-        long nFontDiff = std::abs(rRenderContext.GetFont().GetFontSize().Height() - aMetric.GetFontSize().Height());
-        if ((aMetric.GetType() == TYPE_RASTER) && (nFontDiff >= 2))
-        {
-            DefaultFontType nType;
-            if (aMetric.GetPitch() == PITCH_FIXED)
-                nType = DefaultFontType::FIXED;
-            else
-                nType = DefaultFontType::UI_SANS;
-            vcl::Font aTempFont = OutputDevice::GetDefaultFont(nType, rRenderContext.GetSettings().GetLanguageTag().getLanguageType(), GetDefaultFontFlags::NONE);
-            aFont.SetFamilyName(aTempFont.GetFamilyName());
-            SetPointFont(rRenderContext, aFont);
-        }
     }
     else
     {
diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
index 54006e1aac01..4f41cb7d1650 100644
--- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
+++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
@@ -365,8 +365,6 @@ FreetypeFontFace::FreetypeFontFace( FreetypeFontInfo* pFI, const FontAttributes&
 :   PhysicalFontFace( rDFA ),
     mpFreetypeFontInfo( pFI )
 {
-    SetBuiltInFontFlag( false );
-    SetOrientationFlag( true );
 }
 
 LogicalFontInstance* FreetypeFontFace::CreateFontInstance( FontSelectPattern& rFSD ) const
@@ -573,10 +571,6 @@ void FreetypeFont::GetFontMetric(ImplFontMetricDataRef& rxTo) const
 {
     rxTo->FontAttributes::operator =(mpFontInfo->GetFontAttributes());
 
-    rxTo->SetScalableFlag( true ); // FIXME: Shouldn't this check FT_IS_SCALABLE( maFaceFT )?
-    rxTo->SetTrueTypeFlag( FT_IS_SFNT( maFaceFT ) != 0 );
-    rxTo->SetBuiltInFontFlag( true );
-    rxTo->SetKernableFlag( FT_HAS_KERNING( maFaceFT ) != 0 );
     rxTo->SetOrientation( GetFontSelData().mnOrientation );
 
     //Always consider [star]symbol as symbol fonts
diff --git a/vcl/unx/generic/print/genpspgraphics.cxx b/vcl/unx/generic/print/genpspgraphics.cxx
index 7a25889ee191..2c51d04defbc 100644
--- a/vcl/unx/generic/print/genpspgraphics.cxx
+++ b/vcl/unx/generic/print/genpspgraphics.cxx
@@ -892,12 +892,7 @@ FontAttributes GenPspGraphics::Info2FontAttributes( const psp::FastPrintFontInfo
     aDFA.SetWidthType( rInfo.m_eWidth );
     aDFA.SetPitch( rInfo.m_ePitch );
     aDFA.SetSymbolFlag( (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL) );
-    aDFA.SetSubsettableFlag( rInfo.m_bSubsettable );
-    aDFA.SetEmbeddableFlag(false);
     aDFA.SetQuality(512);
-    aDFA.SetBuiltInFontFlag(false);
-
-    aDFA.SetOrientationFlag( true );
 
     // add font family name aliases
     ::std::list< OUString >::const_iterator it = rInfo.m_aAliases.begin();
diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx
index 4a3d61d53ed9..32fb4a79e21a 100644
--- a/vcl/win/gdi/salfont.cxx
+++ b/vcl/win/gdi/salfont.cxx
@@ -515,7 +515,7 @@ inline BYTE ImplPitchToWin( FontPitch ePitch )
 }
 
 static FontAttributes WinFont2DevFontAttributes( const ENUMLOGFONTEXW& rEnumFont,
-    const NEWTEXTMETRICW& rMetric, DWORD nFontType )
+    const NEWTEXTMETRICW& rMetric)
 {
     FontAttributes aDFA;
 
@@ -542,46 +542,13 @@ static FontAttributes WinFont2DevFontAttributes( const ENUMLOGFONTEXW& rEnumFont
     if( p < pEnd )
         aDFA.SetStyleName(OUString(reinterpret_cast<const sal_Unicode*>(pStyleName)));
 
-    // get device specific font attributes
-    aDFA.SetOrientationFlag( ((nFontType & RASTER_FONTTYPE) == 0) );
-    aDFA.SetBuiltInFontFlag( ((rMetric.tmPitchAndFamily & TMPF_DEVICE) != 0) );
-
-    aDFA.SetEmbeddableFlag( false );
-    aDFA.SetSubsettableFlag( false );
-    if( 0 != (rMetric.ntmFlags & (NTM_TT_OPENTYPE | NTM_PS_OPENTYPE))
-     || 0 != (rMetric.tmPitchAndFamily & TMPF_TRUETYPE))
-        aDFA.SetSubsettableFlag( true );
-    else if( 0 != (rMetric.ntmFlags & NTM_TYPE1) ) // TODO: implement subsetting for type1 too
-        aDFA.SetEmbeddableFlag( true );
-
     // heuristics for font quality
-    // -   standard-type1 > opentypeTT > truetype > non-standard-type1 > raster
-    // -   subsetting > embedding > none
+    // -   opentypeTT > truetype
     aDFA.SetQuality( 0 );
     if( rMetric.tmPitchAndFamily & TMPF_TRUETYPE )
         aDFA.IncreaseQualityBy( 50 );
     if( 0 != (rMetric.ntmFlags & (NTM_TT_OPENTYPE | NTM_PS_OPENTYPE)) )
         aDFA.IncreaseQualityBy( 10 );
-    if( aDFA.CanSubset() )
-        aDFA.IncreaseQualityBy( 200 );
-    else if( aDFA.CanEmbed() )
-        aDFA.IncreaseQualityBy( 100 );
-
-    // #i38665# prefer Type1 versions of the standard postscript fonts
-    if( aDFA.CanEmbed() )
-    {
-        if( aDFA.GetFamilyName() == "AvantGarde"
-        ||  aDFA.GetFamilyName() == "Bookman"
-        ||  aDFA.GetFamilyName() == "Courier"
-        ||  aDFA.GetFamilyName() == "Helvetica"
-        ||  aDFA.GetFamilyName() == "NewCenturySchlbk"
-        ||  aDFA.GetFamilyName() == "Palatino"
-        ||  aDFA.GetFamilyName() == "Symbol"
-        ||  aDFA.GetFamilyName() == "Times"
-        ||  aDFA.GetFamilyName() == "ZapfChancery"
-        ||  aDFA.GetFamilyName() == "ZapfDingbats" )
-            aDFA.IncreaseQualityBy( 500 );
-    }
 
     // TODO: add alias names
     return aDFA;
@@ -597,7 +564,7 @@ static WinFontFace* ImplLogMetricToDevFontDataW( const ENUMLOGFONTEXW* pLogFont,
         nHeight = pMetric->tmHeight - pMetric->tmInternalLeading;
 
     WinFontFace* pData = new WinFontFace(
-        WinFont2DevFontAttributes(*pLogFont, *pMetric, nFontType),
+        WinFont2DevFontAttributes(*pLogFont, *pMetric),
         nHeight,
         pLogFont->elfLogFont.lfCharSet,
         pMetric->tmPitchAndFamily );
@@ -1132,25 +1099,6 @@ void WinSalGraphics::GetFontMetric( ImplFontMetricDataRef& rxFontMetric, int nFa
     rxFontMetric->SetItalic(aWinMetric.tmItalic ? ITALIC_NORMAL : ITALIC_NONE);
     rxFontMetric->SetSlant( 0 );
 
-    // device dependent font attributes
-    rxFontMetric->SetBuiltInFontFlag( (aWinMetric.tmPitchAndFamily & TMPF_DEVICE) != 0 );
-    rxFontMetric->SetScalableFlag( (aWinMetric.tmPitchAndFamily & (TMPF_VECTOR|TMPF_TRUETYPE)) != 0 );
-    rxFontMetric->SetTrueTypeFlag( (aWinMetric.tmPitchAndFamily & TMPF_TRUETYPE) != 0 );
-    if( rxFontMetric->IsScalable() )
-    {
-        // check if there are kern pairs
-        // TODO: does this work with GPOS kerning?
-        DWORD nKernPairs = ::GetKerningPairsA( getHDC(), 0, nullptr );
-        rxFontMetric->SetKernableFlag( (nKernPairs > 0) );
-    }
-    else
-    {
-        // bitmap fonts cannot be rotated directly
-        rxFontMetric->SetOrientation( 0 );
-        // bitmap fonts have no kerning
-        rxFontMetric->SetKernableFlag( false );
-    }
-
     // transformation dependent font metrics
     rxFontMetric->SetWidth( static_cast<int>( mfFontScale[nFallbackLevel] * aWinMetric.tmAveCharWidth ) );
 
@@ -1378,14 +1326,11 @@ static bool ImplGetFontAttrFromFile( const OUString& rFontFileURL,
     // get FontAttributes from a *fot file
     // TODO: use GetTTGlobalFontInfo() to access the font directly
     rDFA.SetQuality( 1000 );
-    rDFA.SetBuiltInFontFlag( true );
     rDFA.SetFamilyType(FAMILY_DONTKNOW);
     rDFA.SetWidthType(WIDTH_DONTKNOW);
     rDFA.SetWeight(WEIGHT_DONTKNOW);
     rDFA.SetItalic(ITALIC_DONTKNOW);
     rDFA.SetPitch(PITCH_DONTKNOW);
-    rDFA.SetSubsettableFlag( true );
-    rDFA.SetEmbeddableFlag( false );
 
     // Create temporary file name
     char aFileName[] = "soAAT.fot";
@@ -1471,7 +1416,6 @@ bool WinSalGraphics::AddTempDevFont( PhysicalFontCollection* pFontCollection,
     FontAttributes aDFA;
     aDFA.SetFamilyName(rFontName);
     aDFA.SetQuality( 1000 );
-    aDFA.SetBuiltInFontFlag( true );
 
     // Retrieve font name from font resource
     if( aDFA.GetFamilyName().isEmpty() )
@@ -1493,8 +1437,6 @@ bool WinSalGraphics::AddTempDevFont( PhysicalFontCollection* pFontCollection,
     aDFA.SetWeight(WEIGHT_DONTKNOW);
     aDFA.SetItalic(ITALIC_DONTKNOW);
     aDFA.SetPitch(PITCH_DONTKNOW);
-    aDFA.SetSubsettableFlag( true );
-    aDFA.SetEmbeddableFlag( false );
 
     /*
     // TODO: improve FontAttributes using the "font resource file"
@@ -2065,29 +2007,9 @@ void WinSalGraphics::FreeEmbedFontData( const void* pData, long /*nLen*/ )
     delete[] static_cast<char const *>(pData);
 }
 
-const Ucs2SIntMap* WinSalGraphics::GetFontEncodingVector( const PhysicalFontFace* pFont, const Ucs2OStrMap** pNonEncoded, std::set<sal_Unicode> const**)
+const Ucs2SIntMap* WinSalGraphics::GetFontEncodingVector(const PhysicalFontFace*, const Ucs2OStrMap**, std::set<sal_Unicode> const**)
 {
-    // TODO: even for builtin fonts we get here... why?
-    if( !pFont->CanEmbed() )
-        return nullptr;
-
-    // fill the encoding vector
-    // currently no nonencoded vector
-    if( pNonEncoded )
-        *pNonEncoded = nullptr;
-
-    const WinFontFace* pWinFontData = static_cast<const WinFontFace*>(pFont);
-    const Ucs2SIntMap* pEncoding = pWinFontData->GetEncodingVector();
-    if( pEncoding == nullptr )
-    {
-        Ucs2SIntMap* pNewEncoding = new Ucs2SIntMap;
-        for( sal_Unicode i = 32; i < 256; ++i )
-            (*pNewEncoding)[i] = i;
-        pWinFontData->SetEncodingVector( pNewEncoding );
-    pEncoding = pNewEncoding;
-    }
-
-    return pEncoding;
+    return nullptr;
 }
 
 void WinSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
@@ -2106,78 +2028,59 @@ void WinSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
     HFONT hOldFont = nullptr;
     ImplDoSetFont( &aIFSD, fScale, hOldFont );
 
-    if( pFont->CanSubset() )
-    {
-        // get raw font file data
-        const RawFontData xRawFontData( getHDC() );
-        if( !xRawFontData.get() )
-            return;
-
-        // open font file
-        sal_uInt32 nFaceNum = 0;
-        if( !*xRawFontData.get() )  // TTC candidate
-            nFaceNum = ~0U;  // indicate "TTC font extracts only"
-
-        ScopedTrueTypeFont aSftTTF;
-        int nRC = aSftTTF.open( xRawFontData.get(), xRawFontData.size(), nFaceNum );
-        if( nRC != SF_OK )
-            return;
-
-        int nGlyphs = GetTTGlyphCount( aSftTTF.get() );
-        if( nGlyphs > 0 )
-        {
-            rWidths.resize(nGlyphs);
-            std::vector<sal_uInt16> aGlyphIds(nGlyphs);
-            for( int i = 0; i < nGlyphs; i++ )
-                aGlyphIds[i] = sal_uInt16(i);
-            TTSimpleGlyphMetrics* pMetrics = ::GetTTSimpleGlyphMetrics( aSftTTF.get(),
-                                                                        &aGlyphIds[0],
-                                                                        nGlyphs,
-                                                                        bVertical );
-            if( pMetrics )
-            {
-                for( int i = 0; i< nGlyphs; i++ )
-                    rWidths[i] = pMetrics[i].adv;
-                free( pMetrics );
-                rUnicodeEnc.clear();
-            }
-            const WinFontFace* pWinFont = static_cast<const WinFontFace*>(pFont);
-            FontCharMapRef xFCMap = pWinFont->GetFontCharMap();
-            SAL_WARN_IF( !xFCMap.Is() || !xFCMap->GetCharCount(), "vcl", "no map" );
+    // get raw font file data
+    const RawFontData xRawFontData( getHDC() );
+    if( !xRawFontData.get() )
+        return;
 
-            int nCharCount = xFCMap->GetCharCount();
-            sal_uInt32 nChar = xFCMap->GetFirstChar();
-            for( int i = 0; i < nCharCount; i++ )
-            {
-                if( nChar < 0x00010000 )
-                {
-                    sal_uInt16 nGlyph = ::MapChar( aSftTTF.get(),
-                                                   static_cast<sal_Ucs>(nChar),
-                                                   bVertical );
-                    if( nGlyph )
-                        rUnicodeEnc[ static_cast<sal_Unicode>(nChar) ] = nGlyph;
-                }
-                nChar = xFCMap->GetNextChar( nChar );
-            }
+    // open font file
+    sal_uInt32 nFaceNum = 0;
+    if( !*xRawFontData.get() )  // TTC candidate
+        nFaceNum = ~0U;  // indicate "TTC font extracts only"
 
-            xFCMap = nullptr;
-        }
-    }
-    else if( pFont->CanEmbed() )
+    ScopedTrueTypeFont aSftTTF;
+    int nRC = aSftTTF.open( xRawFontData.get(), xRawFontData.size(), nFaceNum );
+    if( nRC != SF_OK )
+        return;
+
+    int nGlyphs = GetTTGlyphCount( aSftTTF.get() );
+    if( nGlyphs > 0 )
     {
-        // get individual character widths
-        rWidths.clear();
-        rUnicodeEnc.clear();
-        rWidths.reserve( 224 );
-        for( sal_Unicode i = 32; i < 256; ++i )
+        rWidths.resize(nGlyphs);
+        std::vector<sal_uInt16> aGlyphIds(nGlyphs);
+        for( int i = 0; i < nGlyphs; i++ )
+            aGlyphIds[i] = sal_uInt16(i);
+        TTSimpleGlyphMetrics* pMetrics = ::GetTTSimpleGlyphMetrics( aSftTTF.get(),
+                                                                    &aGlyphIds[0],
+                                                                    nGlyphs,
+                                                                    bVertical );
+        if( pMetrics )
         {
-            int nCharWidth = 0;
-            if( ::GetCharWidth32W( getHDC(), i, i, &nCharWidth ) )
+            for( int i = 0; i< nGlyphs; i++ )
+                rWidths[i] = pMetrics[i].adv;
+            free( pMetrics );
+            rUnicodeEnc.clear();
+        }
+        const WinFontFace* pWinFont = static_cast<const WinFontFace*>(pFont);
+        FontCharMapRef xFCMap = pWinFont->GetFontCharMap();
+        SAL_WARN_IF( !xFCMap.Is() || !xFCMap->GetCharCount(), "vcl", "no map" );
+
+        int nCharCount = xFCMap->GetCharCount();
+        sal_uInt32 nChar = xFCMap->GetFirstChar();
+        for( int i = 0; i < nCharCount; i++ )
+        {
+            if( nChar < 0x00010000 )
             {
-                rUnicodeEnc[ i ] = rWidths.size();
-                rWidths.push_back( nCharWidth );
+                sal_uInt16 nGlyph = ::MapChar( aSftTTF.get(),
+                                               static_cast<sal_Ucs>(nChar),
+                                               bVertical );
+                if( nGlyph )
+                    rUnicodeEnc[ static_cast<sal_Unicode>(nChar) ] = nGlyph;
             }
+            nChar = xFCMap->GetNextChar( nChar );
         }
+
+        xFCMap = nullptr;
     }
 }
 
commit 297fce55c46b772c835d3d8fc4f9dd678fa821df
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Tue Nov 29 08:25:57 2016 +0200

    Use Freetypefont::GetFontMetric()
    
    Change-Id: I1c0d2bc228d5b2006bba24621be3a75f61f4432b
    Reviewed-on: https://gerrit.libreoffice.org/31345
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
    (cherry picked from commit 63ca9554f24194521cfbc7fa90bfef37ea7759c1)
    (cherry picked from commit 4017309721bd3e0439246c3d63afec809d40b81a)

diff --git a/vcl/unx/generic/print/genpspgraphics.cxx b/vcl/unx/generic/print/genpspgraphics.cxx
index 44924dbc6152..7a25889ee191 100644
--- a/vcl/unx/generic/print/genpspgraphics.cxx
+++ b/vcl/unx/generic/print/genpspgraphics.cxx
@@ -774,33 +774,13 @@ void GenPspGraphics::ClearDevFontCache()
     GlyphCache::GetInstance().ClearFontCache();
 }
 
-void GenPspGraphics::GetFontMetric( ImplFontMetricDataRef& rxFontMetric, int )
+void GenPspGraphics::GetFontMetric(ImplFontMetricDataRef& rxFontMetric, int nFallbackLevel)
 {
-    const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
-    psp::PrintFontInfo aInfo;
+    if (nFallbackLevel >= MAX_FALLBACK)
+        return;
 
-    if (rMgr.getFontInfo (m_pPrinterGfx->GetFontID(), aInfo))
-    {
-        FontAttributes aDFA = Info2FontAttributes( aInfo );
-        static_cast< FontAttributes& >(*rxFontMetric) = aDFA;
-        rxFontMetric->SetBuiltInFontFlag( aDFA.IsBuiltInFont() );
-        rxFontMetric->SetScalableFlag( true );
-        rxFontMetric->SetTrueTypeFlag( false ); // FIXME, needed?
-
-        rxFontMetric->SetOrientation( m_pPrinterGfx->GetFontAngle() );
-        rxFontMetric->SetSlant( 0 );
-
-        sal_Int32 nTextHeight   = m_pPrinterGfx->GetFontHeight();
-        sal_Int32 nTextWidth    = m_pPrinterGfx->GetFontWidth();
-        if( ! nTextWidth )
-            nTextWidth = nTextHeight;
-
-        rxFontMetric->SetWidth( nTextWidth );
-        rxFontMetric->SetAscent( ( aInfo.m_nAscend * nTextHeight + 500 ) / 1000 );
-        rxFontMetric->SetDescent( ( aInfo.m_nDescend * nTextHeight + 500 ) / 1000 );
-        rxFontMetric->SetInternalLeading( ( aInfo.m_nLeading * nTextHeight + 500 ) / 1000 );
-        rxFontMetric->SetExternalLeading( 0 );
-    }
+    if (m_pFreetypeFont[nFallbackLevel])
+        m_pFreetypeFont[nFallbackLevel]->GetFontMetric(rxFontMetric);
 }
 
 bool GenPspGraphics::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect )
commit ac360e56999b50ec23a6915277131745366842c4
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Tue Nov 29 08:17:25 2016 +0200

    Drop assigned but never used parameter
    
    Change-Id: If043960898b6388df7a5ecf5fe34172ed08bba9f
    Reviewed-on: https://gerrit.libreoffice.org/31344
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
    (cherry picked from commit 0f4777a19634e64db884f39611be0d5075ea24e3)
    (cherry picked from commit 58740f2b26a34234633b4e756dc1bf3350b2b6eb)

diff --git a/vcl/inc/unx/glyphcache.hxx b/vcl/inc/unx/glyphcache.hxx
index 28a3665e8e6d..f109e610a6d9 100644
--- a/vcl/inc/unx/glyphcache.hxx
+++ b/vcl/inc/unx/glyphcache.hxx
@@ -157,7 +157,7 @@ public:
 
     const FontSelectPattern& GetFontSelData() const      { return maFontSelData; }
 
-    void                    GetFontMetric( ImplFontMetricDataRef&, long& rFactor ) const;
+    void                    GetFontMetric(ImplFontMetricDataRef&) const;
     const unsigned char*    GetTable( const char* pName, sal_uLong* pLength );
     int                     GetEmUnits() const { return maFaceFT->units_per_EM;}
     double                  GetStretch() { return mfStretch; }
diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx
index 9e75162b6caf..d53e18f2efbf 100644
--- a/vcl/unx/generic/gdi/cairotextrender.cxx
+++ b/vcl/unx/generic/gdi/cairotextrender.cxx
@@ -426,10 +426,7 @@ void CairoTextRender::GetFontMetric( ImplFontMetricDataRef& rxFontMetric, int nF
         return;
 
     if( mpFreetypeFont[nFallbackLevel] != nullptr )
-    {
-        long rDummyFactor;
-        mpFreetypeFont[nFallbackLevel]->GetFontMetric( rxFontMetric, rDummyFactor );
-    }
+        mpFreetypeFont[nFallbackLevel]->GetFontMetric(rxFontMetric);
 }
 
 bool CairoTextRender::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect )
diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
index 67b8d62a66d5..54006e1aac01 100644
--- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
+++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
@@ -569,7 +569,7 @@ FreetypeFont::~FreetypeFont()
 }
 
 
-void FreetypeFont::GetFontMetric( ImplFontMetricDataRef& rxTo, long& rFactor ) const
+void FreetypeFont::GetFontMetric(ImplFontMetricDataRef& rxTo) const
 {
     rxTo->FontAttributes::operator =(mpFontInfo->GetFontAttributes());
 
@@ -585,8 +585,6 @@ void FreetypeFont::GetFontMetric( ImplFontMetricDataRef& rxTo, long& rFactor ) c
 
     FT_Activate_Size( maSizeFT );
 
-    rFactor = 0x100;
-
     sal_uLong nHhea = 0;
     const uint8_t* pHheaBuf = mpFontInfo->GetTable("hhea", &nHhea);
     const std::vector<uint8_t> rHhea(pHheaBuf, pHheaBuf + nHhea);
commit b43c98776c9ae04e88e21373e59f828c7465d43b
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Fri Nov 25 14:00:07 2016 +0200

    Kill old Core Text layout engine
    
    Reviewed-on: https://gerrit.libreoffice.org/31232
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
    (cherry picked from commit d761d952f460e1943e94c5a7556b3b01d2259666)
    
    Change-Id: If80d65899255d8be72f374fbec232d103a08a006
    (cherry picked from commit afee24b73e379bf7f9e9d2cf647d8686896f9f8a)

diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 5e71bf1dcab9..1b45b8703bcf 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -142,11 +142,10 @@ enum class SalLayoutFlags
     SubstituteDigits        = 0x0400,
     KashidaJustification    = 0x0800,
     ForFallback             = 0x2000,
-    DrawBullet              = 0x4000,
 };
 namespace o3tl
 {
-    template<> struct typed_flags<SalLayoutFlags> : is_typed_flags<SalLayoutFlags, 0x6f77> {};
+    template<> struct typed_flags<SalLayoutFlags> : is_typed_flags<SalLayoutFlags, 0x2f77> {};
 }
 
 typedef std::vector< Rectangle > MetricVector;
@@ -1180,7 +1179,7 @@ private:
     SAL_DLLPRIVATE void         ImplInitAboveTextLineSize();
 
 
-    SAL_DLLPRIVATE bool         ImplDrawTextDirect( SalLayout&, bool bTextLines, sal_uInt32 flags = 0 );
+    SAL_DLLPRIVATE void         ImplDrawTextDirect( SalLayout&, bool bTextLines);
     SAL_DLLPRIVATE void         ImplDrawSpecialText( SalLayout& );
     SAL_DLLPRIVATE void         ImplDrawTextRect( long nBaseX, long nBaseY, long nX, long nY, long nWidth, long nHeight );
 
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 86a3de71f03b..e333d4680358 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -1490,11 +1490,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
 
         nScrPos = pScrArray[ 0 ];
 
-        if( bBullet
-#if defined(MACOSX) || defined(IOS)
-            && OutputDevice::UseCommonLayout()
-#endif
-          )
+        if( bBullet )
         {
             // !!! HACK !!!
             // The Arabic layout engine requires some context of the string
@@ -1557,23 +1553,11 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
             if ( bSwitchH2V )
                 rInf.GetFrame()->SwitchHorizontalToVertical( aTextOriginPos );
 
-#if defined(MACOSX) || defined(IOS)
-            if (!OutputDevice::UseCommonLayout())
-            {
-                rInf.GetOut().DrawTextArray( aTextOriginPos, rInf.GetText(),
-                                         pKernArray, rInf.GetIdx(), 1, bBullet ? SalLayoutFlags::DrawBullet : SalLayoutFlags::NONE );
-            }
-            else
-            {
-#endif
             rInf.GetOut().DrawTextArray( aTextOriginPos, rInf.GetText(),
                                          pKernArray.get(), rInf.GetIdx(), 1 );
             if( bBullet )
                 rInf.GetOut().DrawTextArray( aTextOriginPos, *pStr, pKernArray.get(),
                                              rInf.GetIdx() ? 1 : 0, 1 );
-#if defined(MACOSX) || defined(IOS)
-            }
-#endif
         }
         else
         {
@@ -1754,15 +1738,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                 if ( bSwitchH2V )
                     rInf.GetFrame()->SwitchHorizontalToVertical( aTextOriginPos );
 
-#if defined(MACOSX) || defined(IOS)
-                if (!OutputDevice::UseCommonLayout())
-                {
-                        rInf.GetOut().DrawTextArray( aTextOriginPos, *pStr, pKernArray + nOffs,
-                                             rInf.GetIdx() + nOffs , nLen - nOffs, bBullet ? SalLayoutFlags::DrawBullet : SalLayoutFlags::NONE );
-                }
-                else
-                {
-#endif
                 // If we paint bullets instead of spaces, we use a copy of
                 // the paragraph string. For the layout engine, the copy
                 // of the string has to be an environment of the range which
@@ -1817,9 +1792,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                     pTmpFont->SetStrikeout(aPreviousStrikeout);
                     rInf.GetOut().Pop();
                 }
-#if defined(MACOSX) || defined(IOS)
-                }
-#endif
             }
         }
     }
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 7465d47f5b66..0588a419c47a 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -426,9 +426,7 @@ vcl_quartz_code= \
     vcl/quartz/salvd \
 
 vcl_coretext_code= \

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list