chart2/source/view/main/ChartItemPool.cxx          |   13 
 dbaccess/source/ui/dlg/dbadmin.cxx                 |  124 +++----
 dbaccess/source/ui/misc/UITools.cxx                |   12 
 editeng/source/editeng/editdoc.cxx                 |  116 +++----
 extensions/source/propctrlr/fontdialog.cxx         |   42 +-
 include/svl/itempool.hxx                           |   48 +-
 include/svl/itemset.hxx                            |    2 
 include/svl/poolitem.hxx                           |   25 +
 reportdesign/source/ui/misc/UITools.cxx            |  118 +++----
 reportdesign/source/ui/report/ReportController.cxx |   64 +--
 sc/source/core/data/docpool.cxx                    |  180 +++++-----
 sc/source/ui/app/msgpool.cxx                       |   22 -
 sc/source/ui/condformat/condformatdlgitem.cxx      |    1 
 sfx2/source/explorer/nochaos.cxx                   |    4 
 svl/qa/unit/items/stylepool.cxx                    |    8 
 svl/source/items/itempool.cxx                      |   36 --
 svl/source/items/itemset.cxx                       |   41 --
 svl/source/items/poolitem.cxx                      |    1 
 svl/source/items/stylepool.cxx                     |    4 
 svx/source/svdraw/svdattr.cxx                      |   49 +-
 svx/source/xoutdev/xpool.cxx                       |   89 ++---
 sw/source/core/attr/cellatr.cxx                    |    1 
 sw/source/core/bastyp/init.cxx                     |  344 ++++++++++-----------
 sw/source/core/layout/atrfrm.cxx                   |    7 
 sw/source/core/para/paratr.cxx                     |    2 
 sw/source/core/tox/tox.cxx                         |    3 
 sw/source/core/txtnode/atrfld.cxx                  |    3 
 sw/source/core/txtnode/atrflyin.cxx                |    1 
 sw/source/core/txtnode/atrftn.cxx                  |    1 
 sw/source/core/txtnode/atrref.cxx                  |    2 
 sw/source/core/txtnode/attrcontentcontrol.cxx      |    2 
 sw/source/core/txtnode/attrlinebreak.cxx           |    1 
 sw/source/core/txtnode/fmtatr2.cxx                 |   17 -
 33 files changed, 700 insertions(+), 683 deletions(-)

New commits:
commit 845d92e1f30eef5745480604fb9f6e4c3e3b7284
Author:     Armin Le Grand (allotropia) <armin.le.grand.ext...@allotropia.de>
AuthorDate: Fri Jan 12 18:40:24 2024 +0100
Commit:     Armin Le Grand <armin.le.gr...@me.com>
CommitDate: Sun Jan 14 21:02:46 2024 +0100

    ITEM: Move Shareable ItemFlag to SfxPolItem
    
    Currently a Pool-Attribute (in SfxItemInfo), but should
    be a SfxPoolItem property. Originally 'moved' from old
    'poolable' used as hint. I identified needs more general
    and moved it to where it belongs.
    
    Also reworked SfxItemInfo to no longer have/support
    single bollean flags, but a FlagVariable and defined
    SFX_ITEMINFOFLAG_* entries to access these, that will
    make future changes easier without having to change
    all palces where these get defined over and over again.
    
    Added CheckItemInfoFlag for gereral access to that flag
    and e.g. NeedsSurrogateSupport to directly check for
    the SFX_ITEMINFOFLAG_SUPPORT_SURROGATE flag as syntactical
    sugar, that makes the intention clear.
    
    Change-Id: I09c238c7c5b7f721b657d7b0a44dbc8d14e02528
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161982
    Tested-by: Jenkins
    Reviewed-by: Armin Le Grand <armin.le.gr...@me.com>

diff --git a/chart2/source/view/main/ChartItemPool.cxx 
b/chart2/source/view/main/ChartItemPool.cxx
index 8f787cd4bd70..afecbf047107 100644
--- a/chart2/source/view/main/ChartItemPool.cxx
+++ b/chart2/source/view/main/ChartItemPool.cxx
@@ -190,16 +190,15 @@ ChartItemPool::ChartItemPool():
     const sal_uInt16 nMax = SCHATTR_END - SCHATTR_START + 1;
     for( sal_uInt16 i = 0; i < nMax; i++ )
     {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        pItemInfos[i]._nSID = 0;
-        pItemInfos[i]._bNeedsPoolRegistration = false;
-        pItemInfos[i]._bShareable = true;
+        // _nItemInfoSlotID, _nItemInfoFlags
+        pItemInfos[i]._nItemInfoSlotID = 0;
+        pItemInfos[i]._nItemInfoFlags = SFX_ITEMINFOFLAG_NONE;
     }
 
     // slot ids differing from which ids
-    pItemInfos[SCHATTR_SYMBOL_BRUSH - SCHATTR_START]._nSID = SID_ATTR_BRUSH;
-    pItemInfos[SCHATTR_STYLE_SYMBOL - SCHATTR_START]._nSID = 
SID_ATTR_SYMBOLTYPE;
-    pItemInfos[SCHATTR_SYMBOL_SIZE - SCHATTR_START]._nSID  = 
SID_ATTR_SYMBOLSIZE;
+    pItemInfos[SCHATTR_SYMBOL_BRUSH - SCHATTR_START]._nItemInfoSlotID = 
SID_ATTR_BRUSH;
+    pItemInfos[SCHATTR_STYLE_SYMBOL - SCHATTR_START]._nItemInfoSlotID = 
SID_ATTR_SYMBOLTYPE;
+    pItemInfos[SCHATTR_SYMBOL_SIZE - SCHATTR_START]._nItemInfoSlotID  = 
SID_ATTR_SYMBOLSIZE;
 
     SetDefaults(ppPoolDefaults);
     SetItemInfos(pItemInfos.get());
diff --git a/dbaccess/source/ui/dlg/dbadmin.cxx 
b/dbaccess/source/ui/dlg/dbadmin.cxx
index 372e72e258a7..8fe5d8a5bd27 100644
--- a/dbaccess/source/ui/dlg/dbadmin.cxx
+++ b/dbaccess/source/ui/dlg/dbadmin.cxx
@@ -340,68 +340,68 @@ void 
ODbAdminDialog::createItemSet(std::unique_ptr<SfxItemSet>& _rpSet, rtl::Ref
     // create the pool
     static SfxItemInfo const aItemInfos[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID 
+ 1] =
     {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
-        {0,false,false},
+        // _nItemInfoSlotID, _nItemInfoFlags
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
+        {0, SFX_ITEMINFOFLAG_NONE },
     };
 
     OSL_ENSURE(std::size(aItemInfos) == sal_uInt16(DSID_LAST_ITEM_ID),"Invalid 
Ids!");
diff --git a/dbaccess/source/ui/misc/UITools.cxx 
b/dbaccess/source/ui/misc/UITools.cxx
index 483afced1082..d08e1f076d26 100644
--- a/dbaccess/source/ui/misc/UITools.cxx
+++ b/dbaccess/source/ui/misc/UITools.cxx
@@ -763,12 +763,12 @@ bool callColumnFormatDialog(weld::Widget* _pParent,
     // UNO->ItemSet
     static SfxItemInfo aItemInfos[] =
     {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        { 0,                                false, true },    // 
SBA_DEF_RANGEFORMAT
-        { SID_ATTR_NUMBERFORMAT_VALUE,      false, true },    // 
SBA_DEF_FMTVALUE
-        { SID_ATTR_ALIGN_HOR_JUSTIFY,       false, true },    // 
SBA_ATTR_ALIGN_HOR_JUSTIFY
-        { SID_ATTR_NUMBERFORMAT_INFO,       false, true },    // 
SID_ATTR_NUMBERFORMAT_INFO
-        { SID_ATTR_NUMBERFORMAT_ONE_AREA,   false, true }     // 
SID_ATTR_NUMBERFORMAT_ONE_AREA
+        // _nItemInfoSlotID, _nItemInfoFlags
+        { 0,                                SFX_ITEMINFOFLAG_NONE },    // 
SBA_DEF_RANGEFORMAT
+        { SID_ATTR_NUMBERFORMAT_VALUE,      SFX_ITEMINFOFLAG_NONE },    // 
SBA_DEF_FMTVALUE
+        { SID_ATTR_ALIGN_HOR_JUSTIFY,       SFX_ITEMINFOFLAG_NONE },    // 
SBA_ATTR_ALIGN_HOR_JUSTIFY
+        { SID_ATTR_NUMBERFORMAT_INFO,       SFX_ITEMINFOFLAG_NONE },    // 
SID_ATTR_NUMBERFORMAT_INFO
+        { SID_ATTR_NUMBERFORMAT_ONE_AREA,   SFX_ITEMINFOFLAG_NONE }     // 
SID_ATTR_NUMBERFORMAT_ONE_AREA
     };
     static const auto aAttrMap = svl::Items<
         SBA_DEF_RANGEFORMAT, SBA_ATTR_ALIGN_HOR_JUSTIFY,
diff --git a/editeng/source/editeng/editdoc.cxx 
b/editeng/source/editeng/editdoc.cxx
index 7dbee3890a6c..acbd97baf87b 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -159,64 +159,64 @@ bool IsScriptItemValid( sal_uInt16 nItemId, short 
nScriptType )
 
 const SfxItemInfo aItemInfos[EDITITEMCOUNT] =
 {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        { SID_ATTR_FRAMEDIRECTION, false, true },         // EE_PARA_WRITINGDIR
-        { 0, true, true },                               // EE_PARA_XMLATTRIBS
-        { SID_ATTR_PARA_HANGPUNCTUATION, false, true },   // 
EE_PARA_HANGINGPUNCTUATION
-        { SID_ATTR_PARA_FORBIDDEN_RULES, false, true },   // 
EE_PARA_FORBIDDENRULES
-        { SID_ATTR_PARA_SCRIPTSPACE, false, true },       // 
EE_PARA_ASIANCJKSPACING
-        { SID_ATTR_NUMBERING_RULE, false, true },         // EE_PARA_NUMBULL
-        { 0, false, true },                               // EE_PARA_HYPHENATE
-        { 0, false, true },                               // 
EE_PARA_HYPHENATE_NO_CAPS
-        { 0, false, true },                               // 
EE_PARA_HYPHENATE_NO_LAST_WORD
-        { 0, false, true },                               // 
EE_PARA_BULLETSTATE
-        { 0, false, true },                               // 
EE_PARA_OUTLLRSPACE
-        { SID_ATTR_PARA_OUTLLEVEL, false, true },         // EE_PARA_OUTLLEVEL
-        { SID_ATTR_PARA_BULLET, false, true },            // EE_PARA_BULLET
-        { SID_ATTR_LRSPACE, false, true },                // EE_PARA_LRSPACE
-        { SID_ATTR_ULSPACE, false, true },                // EE_PARA_ULSPACE
-        { SID_ATTR_PARA_LINESPACE, false, true },         // EE_PARA_SBL
-        { SID_ATTR_PARA_ADJUST, false, true },            // EE_PARA_JUST
-        { SID_ATTR_TABSTOP, false, true },                // EE_PARA_TABS
-        { SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD, false, true }, // 
EE_PARA_JUST_METHOD
-        { SID_ATTR_ALIGN_VER_JUSTIFY, false, true },      // EE_PARA_VER_JUST
-        { SID_ATTR_CHAR_COLOR, true, true },         // EE_CHAR_COLOR
-        { SID_ATTR_CHAR_FONT, true, true },          // EE_CHAR_FONTINFO
-        { SID_ATTR_CHAR_FONTHEIGHT, false, true },    // EE_CHAR_FONTHEIGHT
-        { SID_ATTR_CHAR_SCALEWIDTH, false, true },    // EE_CHAR_FONTWIDTH
-        { SID_ATTR_CHAR_WEIGHT, false, true },        // EE_CHAR_WEIGHT
-        { SID_ATTR_CHAR_UNDERLINE, false, true },     // EE_CHAR_UNDERLINE
-        { SID_ATTR_CHAR_STRIKEOUT, false, true },     // EE_CHAR_STRIKEOUT
-        { SID_ATTR_CHAR_POSTURE, false, true },       // EE_CHAR_ITALIC
-        { SID_ATTR_CHAR_CONTOUR, false, true },       // EE_CHAR_OUTLINE
-        { SID_ATTR_CHAR_SHADOWED, false, true },      // EE_CHAR_SHADOW
-        { SID_ATTR_CHAR_ESCAPEMENT, false, true },    // EE_CHAR_ESCAPEMENT
-        { SID_ATTR_CHAR_AUTOKERN, false, true },      // EE_CHAR_PAIRKERNING
-        { SID_ATTR_CHAR_KERNING, false, true },       // EE_CHAR_KERNING
-        { SID_ATTR_CHAR_WORDLINEMODE, false, true },  // EE_CHAR_WLM
-        { SID_ATTR_CHAR_LANGUAGE, false, true },      // EE_CHAR_LANGUAGE
-        { SID_ATTR_CHAR_CJK_LANGUAGE, false, true },  // EE_CHAR_LANGUAGE_CJK
-        { SID_ATTR_CHAR_CTL_LANGUAGE, false, true },  // EE_CHAR_LANGUAGE_CTL
-        { SID_ATTR_CHAR_CJK_FONT, true, true },      // EE_CHAR_FONTINFO_CJK
-        { SID_ATTR_CHAR_CTL_FONT, true, true },      // EE_CHAR_FONTINFO_CTL
-        { SID_ATTR_CHAR_CJK_FONTHEIGHT, false, true }, // 
EE_CHAR_FONTHEIGHT_CJK
-        { SID_ATTR_CHAR_CTL_FONTHEIGHT, false, true }, // 
EE_CHAR_FONTHEIGHT_CTL
-        { SID_ATTR_CHAR_CJK_WEIGHT, false, true },    // EE_CHAR_WEIGHT_CJK
-        { SID_ATTR_CHAR_CTL_WEIGHT, false, true },    // EE_CHAR_WEIGHT_CTL
-        { SID_ATTR_CHAR_CJK_POSTURE, false, true },   // EE_CHAR_ITALIC_CJK
-        { SID_ATTR_CHAR_CTL_POSTURE, false, true },   // EE_CHAR_ITALIC_CTL
-        { SID_ATTR_CHAR_EMPHASISMARK, false, true },  // EE_CHAR_EMPHASISMARK
-        { SID_ATTR_CHAR_RELIEF, false, true },        // EE_CHAR_RELIEF
-        { 0, false, true },                           // EE_CHAR_RUBI_DUMMY
-        { 0, true, true },                           // EE_CHAR_XMLATTRIBS
-        { SID_ATTR_CHAR_OVERLINE, false, true },      // EE_CHAR_OVERLINE
-        { SID_ATTR_CHAR_CASEMAP, false, true },       // EE_CHAR_CASEMAP
-        { SID_ATTR_CHAR_GRABBAG, false, true },       // EE_CHAR_GRABBAG
-        { SID_ATTR_CHAR_BACK_COLOR, false, true },    // EE_CHAR_BKGCOLOR
-        { 0, false, true },                           // EE_FEATURE_TAB
-        { 0, false, true },                           // EE_FEATURE_LINEBR
-        { SID_ATTR_CHAR_CHARSETCOLOR, false, true },  // EE_FEATURE_NOTCONV
-        { SID_FIELD, true, true },                    // EE_FEATURE_FIELD
+        // _nItemInfoSlotID, _nItemInfoFlags
+        { SID_ATTR_FRAMEDIRECTION, SFX_ITEMINFOFLAG_NONE  },         // 
EE_PARA_WRITINGDIR
+        { 0, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  },                            
   // EE_PARA_XMLATTRIBS
+        { SID_ATTR_PARA_HANGPUNCTUATION, SFX_ITEMINFOFLAG_NONE  },   // 
EE_PARA_HANGINGPUNCTUATION
+        { SID_ATTR_PARA_FORBIDDEN_RULES, SFX_ITEMINFOFLAG_NONE  },   // 
EE_PARA_FORBIDDENRULES
+        { SID_ATTR_PARA_SCRIPTSPACE, SFX_ITEMINFOFLAG_NONE  },       // 
EE_PARA_ASIANCJKSPACING
+        { SID_ATTR_NUMBERING_RULE, SFX_ITEMINFOFLAG_NONE  },         // 
EE_PARA_NUMBULL
+        { 0, SFX_ITEMINFOFLAG_NONE  },                               // 
EE_PARA_HYPHENATE
+        { 0, SFX_ITEMINFOFLAG_NONE  },                               // 
EE_PARA_HYPHENATE_NO_CAPS
+        { 0, SFX_ITEMINFOFLAG_NONE  },                               // 
EE_PARA_HYPHENATE_NO_LAST_WORD
+        { 0, SFX_ITEMINFOFLAG_NONE  },                               // 
EE_PARA_BULLETSTATE
+        { 0, SFX_ITEMINFOFLAG_NONE  },                               // 
EE_PARA_OUTLLRSPACE
+        { SID_ATTR_PARA_OUTLLEVEL, SFX_ITEMINFOFLAG_NONE  },         // 
EE_PARA_OUTLLEVEL
+        { SID_ATTR_PARA_BULLET, SFX_ITEMINFOFLAG_NONE  },            // 
EE_PARA_BULLET
+        { SID_ATTR_LRSPACE, SFX_ITEMINFOFLAG_NONE  },                // 
EE_PARA_LRSPACE
+        { SID_ATTR_ULSPACE, SFX_ITEMINFOFLAG_NONE  },                // 
EE_PARA_ULSPACE
+        { SID_ATTR_PARA_LINESPACE, SFX_ITEMINFOFLAG_NONE  },         // 
EE_PARA_SBL
+        { SID_ATTR_PARA_ADJUST, SFX_ITEMINFOFLAG_NONE  },            // 
EE_PARA_JUST
+        { SID_ATTR_TABSTOP, SFX_ITEMINFOFLAG_NONE  },                // 
EE_PARA_TABS
+        { SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD, SFX_ITEMINFOFLAG_NONE  }, // 
EE_PARA_JUST_METHOD
+        { SID_ATTR_ALIGN_VER_JUSTIFY, SFX_ITEMINFOFLAG_NONE  },      // 
EE_PARA_VER_JUST
+        { SID_ATTR_CHAR_COLOR, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  },         
// EE_CHAR_COLOR
+        { SID_ATTR_CHAR_FONT, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  },          
// EE_CHAR_FONTINFO
+        { SID_ATTR_CHAR_FONTHEIGHT, SFX_ITEMINFOFLAG_NONE  },    // 
EE_CHAR_FONTHEIGHT
+        { SID_ATTR_CHAR_SCALEWIDTH, SFX_ITEMINFOFLAG_NONE  },    // 
EE_CHAR_FONTWIDTH
+        { SID_ATTR_CHAR_WEIGHT, SFX_ITEMINFOFLAG_NONE  },        // 
EE_CHAR_WEIGHT
+        { SID_ATTR_CHAR_UNDERLINE, SFX_ITEMINFOFLAG_NONE  },     // 
EE_CHAR_UNDERLINE
+        { SID_ATTR_CHAR_STRIKEOUT, SFX_ITEMINFOFLAG_NONE  },     // 
EE_CHAR_STRIKEOUT
+        { SID_ATTR_CHAR_POSTURE, SFX_ITEMINFOFLAG_NONE  },       // 
EE_CHAR_ITALIC
+        { SID_ATTR_CHAR_CONTOUR, SFX_ITEMINFOFLAG_NONE  },       // 
EE_CHAR_OUTLINE
+        { SID_ATTR_CHAR_SHADOWED, SFX_ITEMINFOFLAG_NONE  },      // 
EE_CHAR_SHADOW
+        { SID_ATTR_CHAR_ESCAPEMENT, SFX_ITEMINFOFLAG_NONE  },    // 
EE_CHAR_ESCAPEMENT
+        { SID_ATTR_CHAR_AUTOKERN, SFX_ITEMINFOFLAG_NONE  },      // 
EE_CHAR_PAIRKERNING
+        { SID_ATTR_CHAR_KERNING, SFX_ITEMINFOFLAG_NONE  },       // 
EE_CHAR_KERNING
+        { SID_ATTR_CHAR_WORDLINEMODE, SFX_ITEMINFOFLAG_NONE  },  // EE_CHAR_WLM
+        { SID_ATTR_CHAR_LANGUAGE, SFX_ITEMINFOFLAG_NONE  },      // 
EE_CHAR_LANGUAGE
+        { SID_ATTR_CHAR_CJK_LANGUAGE, SFX_ITEMINFOFLAG_NONE  },  // 
EE_CHAR_LANGUAGE_CJK
+        { SID_ATTR_CHAR_CTL_LANGUAGE, SFX_ITEMINFOFLAG_NONE  },  // 
EE_CHAR_LANGUAGE_CTL
+        { SID_ATTR_CHAR_CJK_FONT, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  },      
// EE_CHAR_FONTINFO_CJK
+        { SID_ATTR_CHAR_CTL_FONT, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  },      
// EE_CHAR_FONTINFO_CTL
+        { SID_ATTR_CHAR_CJK_FONTHEIGHT, SFX_ITEMINFOFLAG_NONE  }, // 
EE_CHAR_FONTHEIGHT_CJK
+        { SID_ATTR_CHAR_CTL_FONTHEIGHT, SFX_ITEMINFOFLAG_NONE  }, // 
EE_CHAR_FONTHEIGHT_CTL
+        { SID_ATTR_CHAR_CJK_WEIGHT, SFX_ITEMINFOFLAG_NONE  },    // 
EE_CHAR_WEIGHT_CJK
+        { SID_ATTR_CHAR_CTL_WEIGHT, SFX_ITEMINFOFLAG_NONE  },    // 
EE_CHAR_WEIGHT_CTL
+        { SID_ATTR_CHAR_CJK_POSTURE, SFX_ITEMINFOFLAG_NONE  },   // 
EE_CHAR_ITALIC_CJK
+        { SID_ATTR_CHAR_CTL_POSTURE, SFX_ITEMINFOFLAG_NONE  },   // 
EE_CHAR_ITALIC_CTL
+        { SID_ATTR_CHAR_EMPHASISMARK, SFX_ITEMINFOFLAG_NONE  },  // 
EE_CHAR_EMPHASISMARK
+        { SID_ATTR_CHAR_RELIEF, SFX_ITEMINFOFLAG_NONE  },        // 
EE_CHAR_RELIEF
+        { 0, SFX_ITEMINFOFLAG_NONE  },                           // 
EE_CHAR_RUBI_DUMMY
+        { 0, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  },                           
// EE_CHAR_XMLATTRIBS
+        { SID_ATTR_CHAR_OVERLINE, SFX_ITEMINFOFLAG_NONE  },      // 
EE_CHAR_OVERLINE
+        { SID_ATTR_CHAR_CASEMAP, SFX_ITEMINFOFLAG_NONE  },       // 
EE_CHAR_CASEMAP
+        { SID_ATTR_CHAR_GRABBAG, SFX_ITEMINFOFLAG_NONE  },       // 
EE_CHAR_GRABBAG
+        { SID_ATTR_CHAR_BACK_COLOR, SFX_ITEMINFOFLAG_NONE  },    // 
EE_CHAR_BKGCOLOR
+        { 0, SFX_ITEMINFOFLAG_NONE  },                           // 
EE_FEATURE_TAB
+        { 0, SFX_ITEMINFOFLAG_NONE  },                           // 
EE_FEATURE_LINEBR
+        { SID_ATTR_CHAR_CHARSETCOLOR, SFX_ITEMINFOFLAG_NONE  },  // 
EE_FEATURE_NOTCONV
+        { SID_FIELD, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  },                    
// EE_FEATURE_FIELD
 };
 
 EditCharAttrib* MakeCharAttrib( SfxItemPool& rPool, const SfxPoolItem& rAttr, 
sal_Int32 nS, sal_Int32 nE )
diff --git a/extensions/source/propctrlr/fontdialog.cxx 
b/extensions/source/propctrlr/fontdialog.cxx
index 59757421a06e..5605560070e8 100644
--- a/extensions/source/propctrlr/fontdialog.cxx
+++ b/extensions/source/propctrlr/fontdialog.cxx
@@ -532,27 +532,27 @@ namespace pcr
         // create the pool
         static SfxItemInfo const aItemInfos[FontItemIds::CFID_LAST_ITEM_ID - 
FontItemIds::CFID_FIRST_ITEM_ID + 1] =
         {
-            // _nSID, _bNeedsPoolRegistration, _bShareable
-            { SID_ATTR_CHAR_FONT,               false, false },
-            { SID_ATTR_CHAR_FONTHEIGHT,         false, false },
-            { SID_ATTR_CHAR_WEIGHT,             false, false },
-            { SID_ATTR_CHAR_POSTURE,            false, false },
-            { SID_ATTR_CHAR_LANGUAGE,           false, false },
-            { SID_ATTR_CHAR_UNDERLINE,          false, false },
-            { SID_ATTR_CHAR_STRIKEOUT,          false, false },
-            { SID_ATTR_CHAR_WORDLINEMODE,       false, false },
-            { SID_ATTR_CHAR_COLOR,              false, false },
-            { SID_ATTR_CHAR_RELIEF,             false, false },
-            { SID_ATTR_CHAR_EMPHASISMARK,       false, false },
-            { 0,                                false, false },
-            { 0,                                false, false },
-            { 0,                                false, false },
-            { 0,                                false, false },
-            { 0,                                false, false },
-            { 0,                                false, false },
-            { 0,                                false, false },
-            { 0,                                false, false },
-            { SID_ATTR_CHAR_FONTLIST,           false, false }
+            // _nItemInfoSlotID, _nItemInfoFlags
+            { SID_ATTR_CHAR_FONT,               SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_FONT
+            { SID_ATTR_CHAR_FONTHEIGHT,         SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_HEIGHT
+            { SID_ATTR_CHAR_WEIGHT,             SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_WEIGHT
+            { SID_ATTR_CHAR_POSTURE,            SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_POSTURE
+            { SID_ATTR_CHAR_LANGUAGE,           SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_LANGUAGE
+            { SID_ATTR_CHAR_UNDERLINE,          SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_UNDERLINE
+            { SID_ATTR_CHAR_STRIKEOUT,          SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_STRIKEOUT
+            { SID_ATTR_CHAR_WORDLINEMODE,       SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_WORDLINEMODE
+            { SID_ATTR_CHAR_COLOR,              SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CHARCOLOR
+            { SID_ATTR_CHAR_RELIEF,             SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_RELIEF
+            { SID_ATTR_CHAR_EMPHASISMARK,       SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_EMPHASIS
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CJK_FONT
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CJK_HEIGHT
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CJK_WEIGHT
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CJK_POSTURE
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CJK_LANGUAGE
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CASEMAP
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_CONTOUR
+            { 0,                                SFX_ITEMINFOFLAG_NONE }, // 
FontItemIds::CFID_SHADOWED
+            { SID_ATTR_CHAR_FONTLIST,           SFX_ITEMINFOFLAG_NONE }  // 
FontItemIds::CFID_FONTLIST
         };
 
         _rpPool = new SfxItemPool("PCRControlFontItemPool", 
FontItemIds::CFID_FIRST_ITEM_ID, FontItemIds::CFID_LAST_ITEM_ID,
diff --git a/include/svl/itempool.hxx b/include/svl/itempool.hxx
index 0a2153c33267..f6193bebe374 100644
--- a/include/svl/itempool.hxx
+++ b/include/svl/itempool.hxx
@@ -31,23 +31,24 @@
 #include <salhelper/simplereferenceobject.hxx>
 #include <svl/SfxBroadcaster.hxx>
 
+// Defines if this Item needs to be registered at the pool
+// to make it accessible for the GetItemSurrogates call. It
+// will not be included when this flag is not set, but also
+// needs no registration. There are SAL_INFO calls in the
+// GetItemSurrogates impl that will mention that
+#define SFX_ITEMINFOFLAG_NONE               0x0000
+#define SFX_ITEMINFOFLAG_SUPPORT_SURROGATE  0x0001
+
 struct SfxItemInfo
 {
     // Defines a mapping between WhichID <-> SlotID
-    sal_uInt16       _nSID;
-
-    // Defines if this Item needs to be registered at the pool
-    // to make it accessible for the GetItemSurrogates call. It
-    // will not be included when this flag is not set, but also
-    // needs no registration. There are SAL_INFO calls in the
-    // GetItemSurrogates impl that will mention that
-    bool             _bNeedsPoolRegistration : 1;
-
-    // Defines if the Item can be shared/RefCounted else it will be cloned.
-    // Default is true - as it should be for all Items. It is needed by some
-    // SW items, so protected to let them set it in constructor. If this could
-    // be fixed at that Items we may remove this again.
-    bool             _bShareable : 1;
+    sal_uInt16  _nItemInfoSlotID;
+
+    // Pool-dependent Item-Attributes, please use
+    // SFX_ITEMINFOFLAG_* to create/set. Now using a
+    // sal_uInt16 and not separate bools so changes
+    // will be easier
+    sal_uInt16  _nItemInfoFlags;
 };
 
 #ifdef DBG_UTIL
@@ -102,10 +103,10 @@ private:
     sal_uInt16                      GetIndex_Impl(sal_uInt16 nWhich) const;
     sal_uInt16                      GetSize_Impl() const;
 
-    SVL_DLLPRIVATE bool             NeedsPoolRegistration_Impl(sal_uInt16 
nPos) const
-    { return pItemInfos[nPos]._bNeedsPoolRegistration; }
-    SVL_DLLPRIVATE bool             Shareable_Impl(sal_uInt16 nPos) const
-    { return pItemInfos[nPos]._bShareable; }
+    // moved to private: use the access methods, e.g. NeedsSurrogateSupport
+    SVL_DLLPRIVATE bool CheckItemInfoFlag(sal_uInt16 nWhich, sal_uInt16 nMask) 
const;
+    SVL_DLLPRIVATE bool CheckItemInfoFlag_Impl(sal_uInt16 nPos, sal_uInt16 
nMask) const
+        { return pItemInfos[nPos]._nItemInfoFlags & nMask; }
 
     void registerItemSet(SfxItemSet& rSet);
     void unregisterItemSet(SfxItemSet& rSet);
@@ -218,13 +219,10 @@ public:
 
     void                            Delete();
 
-    bool                            NeedsPoolRegistration(sal_uInt16 nWhich) 
const;
-    bool                            NeedsPoolRegistration(const SfxPoolItem 
&rItem) const
-                                    { return 
NeedsPoolRegistration(rItem.Which()); }
-
-    bool                            Shareable(sal_uInt16 nWhich) const;
-    bool                            Shareable(const SfxPoolItem &rItem) const
-                                    { return Shareable(rItem.Which()); }
+    // syntactical sugar: direct call to not have to use the flag define
+    // and make the intention clearer
+    bool NeedsSurrogateSupport(sal_uInt16 nWhich) const
+        { return CheckItemInfoFlag(nWhich, 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE); }
 
     void                            SetItemInfos( const SfxItemInfo *pInfos );
     sal_uInt16                      GetWhich( sal_uInt16 nSlot, bool bDeep = 
true ) const;
diff --git a/include/svl/itemset.hxx b/include/svl/itemset.hxx
index ae97ec991445..b8b58828e2ac 100644
--- a/include/svl/itemset.hxx
+++ b/include/svl/itemset.hxx
@@ -84,7 +84,7 @@ class SAL_WARN_UNUSED SVL_DLLPUBLIC SfxItemSet
     SfxItemPool*      m_pPool;         ///< pool that stores the items
     const SfxItemSet* m_pParent;       ///< derivation
     sal_uInt16        m_nCount;        ///< number of items
-    sal_uInt16        m_nRegister;     ///< number of items with 
NeedsPoolRegistration
+    sal_uInt16        m_nRegister;     ///< number of items with 
NeedsSurrogateSupport
     sal_uInt16        m_nTotalCount;   ///< number of WhichIDs, also size of 
m_ppItems array
 
     // bitfield (better packaging if a bool needs to be added)
diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx
index d2165a49a446..f1825831c442 100644
--- a/include/svl/poolitem.hxx
+++ b/include/svl/poolitem.hxx
@@ -129,16 +129,35 @@ class SVL_DLLPUBLIC SfxPoolItem
     sal_uInt32  m_nSerialNumber;
 #endif
 
-    // bitfield for flags (instead of SfxItemKind)
+    // bitfield for Item attributes that are Item-Dpendent
+
+    // Item is a SfxVoidItem (used for SfxItemState::DISABLED,
+    // but unfortunately also for some slot stuff with
+    // Which != 0) -> needs cleanup
     bool        m_bIsVoidItem : 1;          // bit 0
+
+    // Item is registered at some Pool as default.
+    //   m_bStaticDefault: direct Pool Item (CAUTION:
+    //     thetse are not really 'static', but should be)
+    //     -> needs cleanup
+    //   m_bPoolDefault: set by user using SetPoolDefaultItem
+    //     tho should be better called 'UserDefault'
     bool        m_bStaticDefault : 1;       // bit 1
     bool        m_bPoolDefault : 1;         // bit 2
+
+    // Item is derived from SfxSetItem -> is Pool-dependent
     bool        m_bIsSetItem : 1;           // bit 3
 
+    // Defines if the Item can be shared/RefCounted else it will be cloned.
+    // Default is true - as it should be for all Items. It is needed by some
+    // SW items, so protected to let them set it in constructor. If this could
+    // be fixed at that Items we may remove this again.
+    bool        m_bShareable : 1;           // bit 4
+
 protected:
 #ifdef DBG_UTIL
     // this flag will make debugging item stuff much simpler
-    bool        m_bDeleted : 1;             // bit 4
+    bool        m_bDeleted : 1;             // bit 5
 #endif
 
 private:
@@ -153,6 +172,7 @@ protected:
     void setStaticDefault() { m_bStaticDefault = true; }
     void setPoolDefault() { m_bPoolDefault = true; }
     void setIsSetItem() { m_bIsSetItem = true; }
+    void setNonShareable() { m_bShareable = false; }
 
 public:
     inline void AddRef(sal_uInt32 n = 1) const
@@ -170,6 +190,7 @@ public:
     bool isStaticDefault() const { return m_bStaticDefault; }
     bool isPoolDefault() const { return m_bPoolDefault; }
     bool isSetItem() const { return m_bIsSetItem; }
+    bool isShareable() const { return m_bShareable; }
 
     // version that allows nullptrs
     static bool areSame(const SfxPoolItem* pItem1, const SfxPoolItem* pItem2);
diff --git a/reportdesign/source/ui/misc/UITools.cxx 
b/reportdesign/source/ui/misc/UITools.cxx
index 9ac14c4bc10e..99b5477788d3 100644
--- a/reportdesign/source/ui/misc/UITools.cxx
+++ b/reportdesign/source/ui/misc/UITools.cxx
@@ -559,68 +559,68 @@ bool openCharDialog( const 
uno::Reference<report::XReportControlFormat >& _rxRep
     // UNO->ItemSet
     static SfxItemInfo aItemInfos[] =
     {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        { 0, false, true }, // XATTR_FILLSTYLE
-        { 0, true,  true }, // XATTR_FILLCOLOR
-        { 0, false, true }, // XATTR_FILLGRADIENT
-        { 0, false, true }, // XATTR_FILLHATCH
-        { 0, false, true }, // XATTR_FILLBITMAP
-        { 0, false, true }, // XATTR_FILLTRANSPARENCE
-        { 0, false, true }, // XATTR_GRADIENTSTEPCOUNT
-        { 0, false, true }, // XATTR_FILLBMP_TILE
-        { 0, false, true }, // XATTR_FILLBMP_POS
-        { 0, false, true }, // XATTR_FILLBMP_SIZEX
-        { 0, false, true }, // XATTR_FILLBMP_SIZEY
-        { 0, false, true }, // XATTR_FILLFLOATTRANSPARENCE
-        { 0, false, true }, // XATTR_SECONDARYFILLCOLOR
-        { 0, false, true }, // XATTR_FILLBMP_SIZELOG
-        { 0, false, true }, // XATTR_FILLBMP_TILEOFFSETX
-        { 0, false, true }, // XATTR_FILLBMP_TILEOFFSETY
-        { 0, false, true }, // XATTR_FILLBMP_STRETCH
-        { 0, false, true }, // XATTR_FILLBMP_POSOFFSETX
-        { 0, false, true }, // XATTR_FILLBMP_POSOFFSETY
-        { 0, false, true }, // XATTR_FILLBACKGROUND
-
-        { SID_ATTR_CHAR_FONT,           false, true },
-        { SID_ATTR_CHAR_FONTHEIGHT,     false, true },
-        { SID_ATTR_CHAR_LANGUAGE,       false, true },
-        { SID_ATTR_CHAR_POSTURE,        false, true },
-        { SID_ATTR_CHAR_WEIGHT,         false, true },
-        { SID_ATTR_CHAR_SHADOWED,       false, true },
-        { SID_ATTR_CHAR_WORDLINEMODE,   false, true },
-        { SID_ATTR_CHAR_CONTOUR,        false, true },
-        { SID_ATTR_CHAR_STRIKEOUT,      false, true },
-        { SID_ATTR_CHAR_UNDERLINE,      false, true },
-        { SID_ATTR_CHAR_COLOR,          false, true },
-        { SID_ATTR_CHAR_KERNING,        false, true },
-        { SID_ATTR_CHAR_CASEMAP,        false, true },
-        { SID_ATTR_CHAR_ESCAPEMENT,     false, true },
-        { SID_ATTR_CHAR_FONTLIST,       false, true },
-        { SID_ATTR_CHAR_AUTOKERN,       false, true },
-        { SID_COLOR_TABLE,              false, true },
-        { SID_ATTR_FLASH,               false, true },
-        { SID_ATTR_CHAR_EMPHASISMARK,   false, true },
-        { SID_ATTR_CHAR_TWO_LINES,      false, true },
-        { SID_ATTR_CHAR_ROTATED,        false, true },
-        { SID_ATTR_CHAR_SCALEWIDTH,     false, true },
-        { SID_ATTR_CHAR_RELIEF,         false, true },
-        { SID_ATTR_CHAR_HIDDEN,         false, true },
-        { SID_ATTR_BRUSH,               false, true },
-        { SID_ATTR_ALIGN_HOR_JUSTIFY,   false, true },
-        { SID_ATTR_ALIGN_VER_JUSTIFY,   false, true },
+        // _nItemInfoSlotID, _nItemInfoFlags
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLSTYLE
+        { 0, SFX_ITEMINFOFLAG_SUPPORT_SURROGATE }, // XATTR_FILLCOLOR
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLGRADIENT
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLHATCH
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBITMAP
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLTRANSPARENCE
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_GRADIENTSTEPCOUNT
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_TILE
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_POS
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_SIZEX
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_SIZEY
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLFLOATTRANSPARENCE
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_SECONDARYFILLCOLOR
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_SIZELOG
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_TILEOFFSETX
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_TILEOFFSETY
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_STRETCH
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_POSOFFSETX
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_POSOFFSETY
+        { 0, SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBACKGROUND
+
+        { SID_ATTR_CHAR_FONT,           SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_FONTHEIGHT,     SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_LANGUAGE,       SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_POSTURE,        SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_WEIGHT,         SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_SHADOWED,       SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_WORDLINEMODE,   SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CONTOUR,        SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_STRIKEOUT,      SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_UNDERLINE,      SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_COLOR,          SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_KERNING,        SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CASEMAP,        SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_ESCAPEMENT,     SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_FONTLIST,       SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_AUTOKERN,       SFX_ITEMINFOFLAG_NONE },
+        { SID_COLOR_TABLE,              SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_FLASH,               SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_EMPHASISMARK,   SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_TWO_LINES,      SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_ROTATED,        SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_SCALEWIDTH,     SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_RELIEF,         SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_HIDDEN,         SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_BRUSH,               SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_ALIGN_HOR_JUSTIFY,   SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_ALIGN_VER_JUSTIFY,   SFX_ITEMINFOFLAG_NONE },
 
         // Asian
-        { SID_ATTR_CHAR_CJK_FONT,       false, true },
-        { SID_ATTR_CHAR_CJK_FONTHEIGHT, false, true },
-        { SID_ATTR_CHAR_CJK_LANGUAGE,   false, true },
-        { SID_ATTR_CHAR_CJK_POSTURE,    false, true },
-        { SID_ATTR_CHAR_CJK_WEIGHT,     false, true },
+        { SID_ATTR_CHAR_CJK_FONT,       SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CJK_FONTHEIGHT, SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CJK_LANGUAGE,   SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CJK_POSTURE,    SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CJK_WEIGHT,     SFX_ITEMINFOFLAG_NONE },
         // Complex
-        { SID_ATTR_CHAR_CTL_FONT,       false, true },
-        { SID_ATTR_CHAR_CTL_FONTHEIGHT, false, true },
-        { SID_ATTR_CHAR_CTL_LANGUAGE,   false, true },
-        { SID_ATTR_CHAR_CTL_POSTURE,    false, true },
-        { SID_ATTR_CHAR_CTL_WEIGHT,     false, true }
+        { SID_ATTR_CHAR_CTL_FONT,       SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CTL_FONTHEIGHT, SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CTL_LANGUAGE,   SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CTL_POSTURE,    SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_CHAR_CTL_WEIGHT,     SFX_ITEMINFOFLAG_NONE }
     };
     FontList aFontList(Application::GetDefaultDevice());
     XColorListRef pColorList( XColorList::CreateStdColorList() );
diff --git a/reportdesign/source/ui/report/ReportController.cxx 
b/reportdesign/source/ui/report/ReportController.cxx
index 3047fd404642..b0a92b2a07e9 100644
--- a/reportdesign/source/ui/report/ReportController.cxx
+++ b/reportdesign/source/ui/report/ReportController.cxx
@@ -2329,36 +2329,36 @@ void OReportController::openPageDialog(const 
uno::Reference<report::XSection>& _
     // UNO->ItemSet
     static SfxItemInfo aItemInfos[] =
     {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        { SID_ATTR_LRSPACE,     false, true },
-        { SID_ATTR_ULSPACE,     false, true },
-        { SID_ATTR_PAGE,        false, true },
-        { SID_ATTR_PAGE_SIZE,   false, true },
-        { SID_ENUM_PAGE_MODE,   false, true },
-        { SID_PAPER_START,      false, true },
-        { SID_PAPER_END,        false, true },
-        { SID_ATTR_BRUSH,       false, true },
-        { 0,                    false, true }, // XATTR_FILLSTYLE
-        { 0,                    true,  true }, // XATTR_FILLCOLOR
-        { 0,                    false, true }, // XATTR_FILLGRADIENT
-        { 0,                    false, true }, // XATTR_FILLHATCH
-        { 0,                    false, true }, // XATTR_FILLBITMAP
-        { 0,                    false, true }, // XATTR_FILLTRANSPARENCE
-        { 0,                    false, true }, // XATTR_GRADIENTSTEPCOUNT
-        { 0,                    false, true }, // XATTR_FILLBMP_TILE
-        { 0,                    false, true }, // XATTR_FILLBMP_POS
-        { 0,                    false, true }, // XATTR_FILLBMP_SIZEX
-        { 0,                    false, true }, // XATTR_FILLBMP_SIZEY
-        { 0,                    false, true }, // XATTR_FILLFLOATTRANSPARENCE
-        { 0,                    false, true }, // XATTR_SECONDARYFILLCOLOR
-        { 0,                    false, true }, // XATTR_FILLBMP_SIZELOG
-        { 0,                    false, true }, // XATTR_FILLBMP_TILEOFFSETX
-        { 0,                    false, true }, // XATTR_FILLBMP_TILEOFFSETY
-        { 0,                    false, true }, // XATTR_FILLBMP_STRETCH
-        { 0,                    false, true }, // XATTR_FILLBMP_POSOFFSETX
-        { 0,                    false, true }, // XATTR_FILLBMP_POSOFFSETY
-        { 0,                    false, true }, // XATTR_FILLBACKGROUND
-        { SID_ATTR_METRIC,      false, true }
+        // _nItemInfoSlotID, _nItemInfoFlags
+        { SID_ATTR_LRSPACE,     SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_ULSPACE,     SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_PAGE,        SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_PAGE_SIZE,   SFX_ITEMINFOFLAG_NONE },
+        { SID_ENUM_PAGE_MODE,   SFX_ITEMINFOFLAG_NONE },
+        { SID_PAPER_START,      SFX_ITEMINFOFLAG_NONE },
+        { SID_PAPER_END,        SFX_ITEMINFOFLAG_NONE },
+        { SID_ATTR_BRUSH,       SFX_ITEMINFOFLAG_NONE },
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLSTYLE
+        { 0,                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE }, // 
XATTR_FILLCOLOR
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLGRADIENT
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLHATCH
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBITMAP
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLTRANSPARENCE
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_GRADIENTSTEPCOUNT
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_TILE
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_POS
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_SIZEX
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // XATTR_FILLBMP_SIZEY
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLFLOATTRANSPARENCE
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_SECONDARYFILLCOLOR
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLBMP_SIZELOG
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLBMP_TILEOFFSETX
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLBMP_TILEOFFSETY
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLBMP_STRETCH
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLBMP_POSOFFSETX
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLBMP_POSOFFSETY
+        { 0,                    SFX_ITEMINFOFLAG_NONE }, // 
XATTR_FILLBACKGROUND
+        { SID_ATTR_METRIC,      SFX_ITEMINFOFLAG_NONE }
     };
 
     MeasurementSystem eSystem = 
SvtSysLocale().GetLocaleData().getMeasurementSystemEnum();
@@ -4188,8 +4188,8 @@ void OReportController::openZoomDialog()
 
     static SfxItemInfo aItemInfos[] =
     {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        { SID_ATTR_ZOOM, false, true }
+        // _nItemInfoSlotID, _nItemInfoFlags
+        { SID_ATTR_ZOOM, SFX_ITEMINFOFLAG_NONE }
     };
     std::vector<SfxPoolItem*> pDefaults
     {
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index d540c9939380..fcad72a6dbea 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -89,96 +89,96 @@ SvxFontItem* getDefaultFontItem(LanguageType eLang, 
DefaultFontType nFontType, s
 
 SfxItemInfo const  aItemInfos[] =
 {
-    // _nSID, _bNeedsPoolRegistration, _bShareable
-    { SID_ATTR_CHAR_FONT,                   true,  true },    // ATTR_FONT
-    { SID_ATTR_CHAR_FONTHEIGHT,             false, true },    // 
ATTR_FONT_HEIGHT
-    { SID_ATTR_CHAR_WEIGHT,                 false, true },    // 
ATTR_FONT_WEIGHT
-    { SID_ATTR_CHAR_POSTURE,                false, true },    // 
ATTR_FONT_POSTURE
-    { SID_ATTR_CHAR_UNDERLINE,              false, true },    // 
ATTR_FONT_UNDERLINE
-    { SID_ATTR_CHAR_OVERLINE,               false, true },    // 
ATTR_FONT_OVERLINE
-    { SID_ATTR_CHAR_STRIKEOUT,              false, true },    // 
ATTR_FONT_CROSSEDOUT
-    { SID_ATTR_CHAR_CONTOUR,                false, true },    // 
ATTR_FONT_CONTOUR
-    { SID_ATTR_CHAR_SHADOWED,               false, true },    // 
ATTR_FONT_SHADOWED
-    { SID_ATTR_CHAR_COLOR,                  true,  true },    // 
ATTR_FONT_COLOR
-    { SID_ATTR_CHAR_LANGUAGE,               false, true },    // 
ATTR_FONT_LANGUAGE
-    { SID_ATTR_CHAR_CJK_FONT,               true,  true },    // ATTR_CJK_FONT 
           from 614
-    { SID_ATTR_CHAR_CJK_FONTHEIGHT,         false, true },    // 
ATTR_CJK_FONT_HEIGHT     from 614
-    { SID_ATTR_CHAR_CJK_WEIGHT,             false, true },    // 
ATTR_CJK_FONT_WEIGHT     from 614
-    { SID_ATTR_CHAR_CJK_POSTURE,            false, true },    // 
ATTR_CJK_FONT_POSTURE    from 614
-    { SID_ATTR_CHAR_CJK_LANGUAGE,           false, true },    // 
ATTR_CJK_FONT_LANGUAGE   from 614
-    { SID_ATTR_CHAR_CTL_FONT,               true,  true },    // ATTR_CTL_FONT 
           from 614
-    { SID_ATTR_CHAR_CTL_FONTHEIGHT,         false, true },    // 
ATTR_CTL_FONT_HEIGHT     from 614
-    { SID_ATTR_CHAR_CTL_WEIGHT,             false, true },    // 
ATTR_CTL_FONT_WEIGHT     from 614
-    { SID_ATTR_CHAR_CTL_POSTURE,            false, true },    // 
ATTR_CTL_FONT_POSTURE    from 614
-    { SID_ATTR_CHAR_CTL_LANGUAGE,           false, true },    // 
ATTR_CTL_FONT_LANGUAGE   from 614
-    { SID_ATTR_CHAR_EMPHASISMARK,           false, true },    // 
ATTR_FONT_EMPHASISMARK   from 614
-    { 0,                                    true,  true },    // ATTR_USERDEF  
           from 614 / 641c
-    { SID_ATTR_CHAR_WORDLINEMODE,           false, true },    // 
ATTR_FONT_WORDLINE       from 632b
-    { SID_ATTR_CHAR_RELIEF,                 false, true },    // 
ATTR_FONT_RELIEF         from 632b
-    { SID_ATTR_ALIGN_HYPHENATION,           false, true },    // 
ATTR_HYPHENATE           from 632b
-    { 0,                                    false, true },    // 
ATTR_SCRIPTSPACE         from 614d
-    { 0,                                    false, true },    // 
ATTR_HANGPUNCTUATION     from 614d
-    { SID_ATTR_PARA_FORBIDDEN_RULES,        false, true },    // 
ATTR_FORBIDDEN_RULES     from 614d
-    { SID_ATTR_ALIGN_HOR_JUSTIFY,           false, true },    // 
ATTR_HOR_JUSTIFY
-    { SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD,    false, true }, // 
ATTR_HOR_JUSTIFY_METHOD
-    { SID_ATTR_ALIGN_INDENT,                false, true },    // ATTR_INDENT   
       from 350
-    { SID_ATTR_ALIGN_VER_JUSTIFY,           false, true },    // 
ATTR_VER_JUSTIFY
-    { SID_ATTR_ALIGN_VER_JUSTIFY_METHOD,    false, true }, // 
ATTR_VER_JUSTIFY_METHOD
-    { SID_ATTR_ALIGN_STACKED,               false, true },    // ATTR_STACKED  
       from 680/dr14 (replaces ATTR_ORIENTATION)
-    { SID_ATTR_ALIGN_DEGREES,               true,  true },    // 
ATTR_ROTATE_VALUE    from 367
-    { SID_ATTR_ALIGN_LOCKPOS,               false, true },    // 
ATTR_ROTATE_MODE     from 367
-    { SID_ATTR_ALIGN_ASIANVERTICAL,         false, true },    // 
ATTR_VERTICAL_ASIAN  from 642
-    { SID_ATTR_FRAMEDIRECTION,              false, true },    // 
ATTR_WRITINGDIR      from 643
-    { SID_ATTR_ALIGN_LINEBREAK,             false, true },    // ATTR_LINEBREAK
-    { SID_ATTR_ALIGN_SHRINKTOFIT,           false, true },    // 
ATTR_SHRINKTOFIT     from 680/dr14
-    { SID_ATTR_BORDER_DIAG_TLBR,            false, true },    // 
ATTR_BORDER_TLBR     from 680/dr14
-    { SID_ATTR_BORDER_DIAG_BLTR,            false, true },    // 
ATTR_BORDER_BLTR     from 680/dr14
-    { SID_ATTR_ALIGN_MARGIN,                false, true },    // ATTR_MARGIN
-    { 0,                                    false, true },    // ATTR_MERGE
-    { 0,                                    false, true },    // 
ATTR_MERGE_FLAG
-    { SID_ATTR_NUMBERFORMAT_VALUE,          false, true },    // 
ATTR_VALUE_FORMAT
-    { 0,                                    false, true },    // 
ATTR_LANGUAGE_FORMAT from 329, is combined with SID_ATTR_NUMBERFORMAT_VALUE in 
the dialog
-    { SID_ATTR_BRUSH,                       true,  true },    // 
ATTR_BACKGROUND
-    { SID_SCATTR_PROTECTION,                false, true },    // 
ATTR_PROTECTION
-    { SID_ATTR_BORDER_OUTER,                false, true },    // ATTR_BORDER
-    { SID_ATTR_BORDER_INNER,                false, true },    // 
ATTR_BORDER_INNER
-    { SID_ATTR_BORDER_SHADOW,               false, true },    // ATTR_SHADOW
-    { 0,                                    false, true },    // ATTR_VALIDDATA
-    { 0,                                    false, true },    // 
ATTR_CONDITIONAL
-    { 0,                                    false, true },    // ATTR_HYPERLINK
-    { SID_ATTR_LRSPACE,                     false, true },    // ATTR_LRSPACE
-    { SID_ATTR_ULSPACE,                     false, true },    // ATTR_ULSPACE
-    { SID_ATTR_PAGE,                        false, true },    // ATTR_PAGE
-    { SID_ATTR_PAGE_PAPERBIN,               false, true },    // 
ATTR_PAGE_PAPERBIN
-    { SID_ATTR_PAGE_SIZE,                   false, true },    // ATTR_PAGE_SIZE
-    { SID_ATTR_PAGE_EXT1,                   false, true },    // 
ATTR_PAGE_HORCENTER
-    { SID_ATTR_PAGE_EXT2,                   false, true },    // 
ATTR_PAGE_VERCENTER
-    { SID_ATTR_PAGE_ON,                     false, true },    // ATTR_PAGE_ON
-    { SID_ATTR_PAGE_DYNAMIC,                false, true },    // 
ATTR_PAGE_DYNAMIC
-    { SID_ATTR_PAGE_SHARED,                 false, true },    // 
ATTR_PAGE_SHARED
-    { SID_ATTR_PAGE_SHARED_FIRST,           false, true },    // 
ATTR_PAGE_SHARED_FIRST
-    { 0,                                    false, true },    // 
ATTR_PAGE_NOTES aka. SID_SCATTR_PAGE_NOTES
-    { 0,                                    false, true },    // 
ATTR_PAGE_GRID aka. SID_SCATTR_PAGE_GRID
-    { 0,                                    false, true },    // 
ATTR_PAGE_HEADERS aka. SID_SCATTR_PAGE_HEADERS
-    { 0,                                    false, true },    // 
ATTR_PAGE_CHARTS aka. SID_SCATTR_PAGE_CHARTS
-    { 0,                                    false, true },    // 
ATTR_PAGE_OBJECTS aka. SID_SCATTR_PAGE_OBJECTS
-    { 0,                                    false, true },    // 
ATTR_PAGE_DRAWINGS aka. SID_SCATTR_PAGE_DRAWINGS
-    { 0,                                    false, true },    // 
ATTR_PAGE_TOPDOWN aka. SID_SCATTR_PAGE_TOPDOWN
-    { 0,                                    false, true },    // 
ATTR_PAGE_SCALE aka SID_SCATTR_PAGE_SCALE
-    { 0,                                    false, true },    // 
ATTR_PAGE_SCALETOPAGES aka SID_SCATTR_PAGE_SCALETOPAGES
-    { 0,                                    false, true },    // 
ATTR_PAGE_FIRSTPAGENO aka SID_SCATTR_PAGE_FIRSTPAGENO
-    { 0,                                    true,  true },    // 
ATTR_PAGE_HEADERLEFT aka SID_SCATTR_PAGE_HEADERLEFT
-    { 0,                                    true,  true },    // 
ATTR_PAGE_FOOTERLEFT aka SID_SCATTR_PAGE_FOOTERLEFT
-    { 0,                                    true,  true },    // 
ATTR_PAGE_HEADERRIGHT aka SID_SCATTR_PAGE_HEADERRIGHT
-    { 0,                                    true,  true },    // 
ATTR_PAGE_FOOTERRIGHT aka. SID_SCATTR_PAGE_FOOTERRIGHT
-    { 0,                                    true,  true },    // 
ATTR_PAGE_HEADERFIRST aka. SID_SCATTR_PAGE_HEADERFIRST
-    { 0,                                    true,  true },    // 
ATTR_PAGE_FOOTERFIRST aka. SID_SCATTR_PAGE_FOOTERFIRST`
-    { SID_ATTR_PAGE_HEADERSET,              false, true },    // 
ATTR_PAGE_HEADERSET
-    { SID_ATTR_PAGE_FOOTERSET,              false, true },    // 
ATTR_PAGE_FOOTERSET
-    { 0,                                    false, true },    // 
ATTR_PAGE_FORMULAS aka. SID_SCATTR_PAGE_FORMULAS
-    { 0,                                    false, true },    // 
ATTR_PAGE_NULLVALS aka. SID_SCATTR_PAGE_NULLVALS
-    { 0,                                    false, true },    // 
ATTR_PAGE_SCALETO aka. SID_SCATTR_PAGE_SCALETO
-    { 0,                                    false, true }     // ATTR_HIDDEN
+    // _nItemInfoSlotID, _nItemInfoFlags
+    { SID_ATTR_CHAR_FONT,                   SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_FONT
+    { SID_ATTR_CHAR_FONTHEIGHT,             SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_HEIGHT
+    { SID_ATTR_CHAR_WEIGHT,                 SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_WEIGHT
+    { SID_ATTR_CHAR_POSTURE,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_POSTURE
+    { SID_ATTR_CHAR_UNDERLINE,              SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_UNDERLINE
+    { SID_ATTR_CHAR_OVERLINE,               SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_OVERLINE
+    { SID_ATTR_CHAR_STRIKEOUT,              SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_CROSSEDOUT
+    { SID_ATTR_CHAR_CONTOUR,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_CONTOUR
+    { SID_ATTR_CHAR_SHADOWED,               SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_SHADOWED
+    { SID_ATTR_CHAR_COLOR,                  SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_FONT_COLOR
+    { SID_ATTR_CHAR_LANGUAGE,               SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_LANGUAGE
+    { SID_ATTR_CHAR_CJK_FONT,               SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_CJK_FONT            from 614
+    { SID_ATTR_CHAR_CJK_FONTHEIGHT,         SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CJK_FONT_HEIGHT     from 614
+    { SID_ATTR_CHAR_CJK_WEIGHT,             SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CJK_FONT_WEIGHT     from 614
+    { SID_ATTR_CHAR_CJK_POSTURE,            SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CJK_FONT_POSTURE    from 614
+    { SID_ATTR_CHAR_CJK_LANGUAGE,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CJK_FONT_LANGUAGE   from 614
+    { SID_ATTR_CHAR_CTL_FONT,               SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_CTL_FONT            from 614
+    { SID_ATTR_CHAR_CTL_FONTHEIGHT,         SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CTL_FONT_HEIGHT     from 614
+    { SID_ATTR_CHAR_CTL_WEIGHT,             SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CTL_FONT_WEIGHT     from 614
+    { SID_ATTR_CHAR_CTL_POSTURE,            SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CTL_FONT_POSTURE    from 614
+    { SID_ATTR_CHAR_CTL_LANGUAGE,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CTL_FONT_LANGUAGE   from 614
+    { SID_ATTR_CHAR_EMPHASISMARK,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_EMPHASISMARK   from 614
+    { 0,                                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_USERDEF             from 614 / 641c
+    { SID_ATTR_CHAR_WORDLINEMODE,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_WORDLINE       from 632b
+    { SID_ATTR_CHAR_RELIEF,                 SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FONT_RELIEF         from 632b
+    { SID_ATTR_ALIGN_HYPHENATION,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_HYPHENATE           from 632b
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_SCRIPTSPACE         from 614d
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_HANGPUNCTUATION     from 614d
+    { SID_ATTR_PARA_FORBIDDEN_RULES,        SFX_ITEMINFOFLAG_NONE },    // 
ATTR_FORBIDDEN_RULES     from 614d
+    { SID_ATTR_ALIGN_HOR_JUSTIFY,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_HOR_JUSTIFY
+    { SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD,    SFX_ITEMINFOFLAG_NONE }, // 
ATTR_HOR_JUSTIFY_METHOD
+    { SID_ATTR_ALIGN_INDENT,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_INDENT          from 350
+    { SID_ATTR_ALIGN_VER_JUSTIFY,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_VER_JUSTIFY
+    { SID_ATTR_ALIGN_VER_JUSTIFY_METHOD,    SFX_ITEMINFOFLAG_NONE }, // 
ATTR_VER_JUSTIFY_METHOD
+    { SID_ATTR_ALIGN_STACKED,               SFX_ITEMINFOFLAG_NONE },    // 
ATTR_STACKED         from 680/dr14 (replaces ATTR_ORIENTATION)
+    { SID_ATTR_ALIGN_DEGREES,               SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_ROTATE_VALUE    from 367
+    { SID_ATTR_ALIGN_LOCKPOS,               SFX_ITEMINFOFLAG_NONE },    // 
ATTR_ROTATE_MODE     from 367
+    { SID_ATTR_ALIGN_ASIANVERTICAL,         SFX_ITEMINFOFLAG_NONE },    // 
ATTR_VERTICAL_ASIAN  from 642
+    { SID_ATTR_FRAMEDIRECTION,              SFX_ITEMINFOFLAG_NONE },    // 
ATTR_WRITINGDIR      from 643
+    { SID_ATTR_ALIGN_LINEBREAK,             SFX_ITEMINFOFLAG_NONE },    // 
ATTR_LINEBREAK
+    { SID_ATTR_ALIGN_SHRINKTOFIT,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_SHRINKTOFIT     from 680/dr14
+    { SID_ATTR_BORDER_DIAG_TLBR,            SFX_ITEMINFOFLAG_NONE },    // 
ATTR_BORDER_TLBR     from 680/dr14
+    { SID_ATTR_BORDER_DIAG_BLTR,            SFX_ITEMINFOFLAG_NONE },    // 
ATTR_BORDER_BLTR     from 680/dr14
+    { SID_ATTR_ALIGN_MARGIN,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_MARGIN
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_MERGE
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_MERGE_FLAG
+    { SID_ATTR_NUMBERFORMAT_VALUE,          SFX_ITEMINFOFLAG_NONE },    // 
ATTR_VALUE_FORMAT
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_LANGUAGE_FORMAT from 329, is combined with SID_ATTR_NUMBERFORMAT_VALUE in 
the dialog
+    { SID_ATTR_BRUSH,                       SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_BACKGROUND
+    { SID_SCATTR_PROTECTION,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PROTECTION
+    { SID_ATTR_BORDER_OUTER,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_BORDER
+    { SID_ATTR_BORDER_INNER,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_BORDER_INNER
+    { SID_ATTR_BORDER_SHADOW,               SFX_ITEMINFOFLAG_NONE },    // 
ATTR_SHADOW
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_VALIDDATA
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_CONDITIONAL
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_HYPERLINK
+    { SID_ATTR_LRSPACE,                     SFX_ITEMINFOFLAG_NONE },    // 
ATTR_LRSPACE
+    { SID_ATTR_ULSPACE,                     SFX_ITEMINFOFLAG_NONE },    // 
ATTR_ULSPACE
+    { SID_ATTR_PAGE,                        SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE
+    { SID_ATTR_PAGE_PAPERBIN,               SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_PAPERBIN
+    { SID_ATTR_PAGE_SIZE,                   SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_SIZE
+    { SID_ATTR_PAGE_EXT1,                   SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_HORCENTER
+    { SID_ATTR_PAGE_EXT2,                   SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_VERCENTER
+    { SID_ATTR_PAGE_ON,                     SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_ON
+    { SID_ATTR_PAGE_DYNAMIC,                SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_DYNAMIC
+    { SID_ATTR_PAGE_SHARED,                 SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_SHARED
+    { SID_ATTR_PAGE_SHARED_FIRST,           SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_SHARED_FIRST
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_NOTES aka. SID_SCATTR_PAGE_NOTES
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_GRID aka. SID_SCATTR_PAGE_GRID
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_HEADERS aka. SID_SCATTR_PAGE_HEADERS
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_CHARTS aka. SID_SCATTR_PAGE_CHARTS
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_OBJECTS aka. SID_SCATTR_PAGE_OBJECTS
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_DRAWINGS aka. SID_SCATTR_PAGE_DRAWINGS
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_TOPDOWN aka. SID_SCATTR_PAGE_TOPDOWN
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_SCALE aka SID_SCATTR_PAGE_SCALE
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_SCALETOPAGES aka SID_SCATTR_PAGE_SCALETOPAGES
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_FIRSTPAGENO aka SID_SCATTR_PAGE_FIRSTPAGENO
+    { 0,                                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_PAGE_HEADERLEFT aka SID_SCATTR_PAGE_HEADERLEFT
+    { 0,                                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_PAGE_FOOTERLEFT aka SID_SCATTR_PAGE_FOOTERLEFT
+    { 0,                                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_PAGE_HEADERRIGHT aka SID_SCATTR_PAGE_HEADERRIGHT
+    { 0,                                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_PAGE_FOOTERRIGHT aka. SID_SCATTR_PAGE_FOOTERRIGHT
+    { 0,                                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_PAGE_HEADERFIRST aka. SID_SCATTR_PAGE_HEADERFIRST
+    { 0,                                    SFX_ITEMINFOFLAG_SUPPORT_SURROGATE 
},    // ATTR_PAGE_FOOTERFIRST aka. SID_SCATTR_PAGE_FOOTERFIRST`
+    { SID_ATTR_PAGE_HEADERSET,              SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_HEADERSET
+    { SID_ATTR_PAGE_FOOTERSET,              SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_FOOTERSET
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_FORMULAS aka. SID_SCATTR_PAGE_FORMULAS
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_NULLVALS aka. SID_SCATTR_PAGE_NULLVALS
+    { 0,                                    SFX_ITEMINFOFLAG_NONE },    // 
ATTR_PAGE_SCALETO aka. SID_SCATTR_PAGE_SCALETO
+    { 0,                                    SFX_ITEMINFOFLAG_NONE }     // 
ATTR_HIDDEN
 };
 static_assert(
     SAL_N_ELEMENTS(aItemInfos) == ATTR_ENDINDEX - ATTR_STARTINDEX + 1, "these 
must match");
diff --git a/sc/source/ui/app/msgpool.cxx b/sc/source/ui/app/msgpool.cxx
index 227dbce4560b..83a47c141e48 100644
--- a/sc/source/ui/app/msgpool.cxx
+++ b/sc/source/ui/app/msgpool.cxx
@@ -25,17 +25,17 @@
 
 SfxItemInfo const aMsgItemInfos[] =
 {
-    // _nSID, _bNeedsPoolRegistration, _bShareable
-    { 0,                         false, true },   // SCITEM_STRING
-    { 0,                         false, true },   // SCITEM_SEARCHDATA - stop 
using this!
-    { SID_SORT,                  false, true },   // SCITEM_SORTDATA
-    { SID_QUERY,                 false, true },   // SCITEM_QUERYDATA
-    { SID_SUBTOTALS,             false, true },   // SCITEM_SUBTDATA
-    { SID_CONSOLIDATE,           false, true },   // SCITEM_CONSOLIDATEDATA
-    { SID_PIVOT_TABLE,           false, true },   // SCITEM_PIVOTDATA
-    { SID_SOLVE,                 false, true },   // SCITEM_SOLVEDATA
-    { SID_SCUSERLISTS,           false, true },   // SCITEM_USERLIST
-    { 0,                         true,  false }  // SCITEM_CONDFORMATDLGDATA
+    // _nItemInfoSlotID, _nItemInfoFlags
+    { 0,                         SFX_ITEMINFOFLAG_NONE },   // SCITEM_STRING
+    { 0,                         SFX_ITEMINFOFLAG_NONE },   // 
SCITEM_SEARCHDATA - stop using this!
+    { SID_SORT,                  SFX_ITEMINFOFLAG_NONE },   // SCITEM_SORTDATA
+    { SID_QUERY,                 SFX_ITEMINFOFLAG_NONE },   // SCITEM_QUERYDATA
+    { SID_SUBTOTALS,             SFX_ITEMINFOFLAG_NONE },   // SCITEM_SUBTDATA
+    { SID_CONSOLIDATE,           SFX_ITEMINFOFLAG_NONE },   // 
SCITEM_CONSOLIDATEDATA
+    { SID_PIVOT_TABLE,           SFX_ITEMINFOFLAG_NONE },   // SCITEM_PIVOTDATA
+    { SID_SOLVE,                 SFX_ITEMINFOFLAG_NONE },   // SCITEM_SOLVEDATA
+    { SID_SCUSERLISTS,           SFX_ITEMINFOFLAG_NONE },   // SCITEM_USERLIST
+    { 0,                         SFX_ITEMINFOFLAG_SUPPORT_SURROGATE }  // 
SCITEM_CONDFORMATDLGDATA
 };
 
 ScMessagePool::ScMessagePool()
diff --git a/sc/source/ui/condformat/condformatdlgitem.cxx 
b/sc/source/ui/condformat/condformatdlgitem.cxx
index b0bf511c3b79..e62e720049e9 100644
--- a/sc/source/ui/condformat/condformatdlgitem.cxx
+++ b/sc/source/ui/condformat/condformatdlgitem.cxx
@@ -21,6 +21,7 @@ 
ScCondFormatDlgItem::ScCondFormatDlgItem(std::shared_ptr<ScConditionalFormatList
     meDialogType(condformat::dialog::CONDITION),
     mbManaged(bManaged)
 {
+    setNonShareable();
 }
 
 ScCondFormatDlgItem::~ScCondFormatDlgItem()
diff --git a/sfx2/source/explorer/nochaos.cxx b/sfx2/source/explorer/nochaos.cxx
index 999db2dd3de4..3d9dc5bc9450 100644
--- a/sfx2/source/explorer/nochaos.cxx
+++ b/sfx2/source/explorer/nochaos.cxx
@@ -164,8 +164,8 @@ inline void CntStaticPoolDefaults_Impl::Insert(
     sal_uInt16 nPos = pItem->Which() - WID_CHAOS_START;
 
     mvDefaults[ nPos ]         = pItem;
-    m_pItemInfos[ nPos ]._nSID   = 0;
-    m_pItemInfos[ nPos ]._bNeedsPoolRegistration = false;
+    m_pItemInfos[ nPos ]._nItemInfoSlotID   = 0;
+    m_pItemInfos[ nPos ]._nItemInfoFlags = SFX_ITEMINFOFLAG_NONE;
 }
 
 
diff --git a/svl/qa/unit/items/stylepool.cxx b/svl/qa/unit/items/stylepool.cxx
index 454db1c2faf4..c7b59e77940e 100644
--- a/svl/qa/unit/items/stylepool.cxx
+++ b/svl/qa/unit/items/stylepool.cxx
@@ -26,8 +26,8 @@ CPPUNIT_TEST_FIXTURE(StylePoolTest, testIterationOrder)
     // Set up a style pool with multiple parents.
     SfxStringItem aDefault1(1);
     std::vector<SfxPoolItem*> aDefaults{ &aDefault1 };
-    SfxItemInfo const aItems[] = { // _nSID, _bNeedsPoolRegistration, 
_bShareable
-                                   { 2, false, false }
+    SfxItemInfo const aItems[] = { // _nItemInfoSlotID, _nItemInfoFlags
+                                   { 2, SFX_ITEMINFOFLAG_NONE }
     };
 
     rtl::Reference<SfxItemPool> pPool = new SfxItemPool("test", 1, 1, aItems);
@@ -84,8 +84,8 @@ CPPUNIT_TEST_FIXTURE(StylePoolTest, testFixedItemSet)
 {
     SfxStringItem aDefault1(1);
     std::vector<SfxPoolItem*> aDefaults{ &aDefault1 };
-    SfxItemInfo const aItems[] = { // _nSID, _bNeedsPoolRegistration, 
_bShareable
-                                   { 2, false, false }
+    SfxItemInfo const aItems[] = { // _nItemInfoSlotID, _nItemInfoFlags
+                                   { 2, SFX_ITEMINFOFLAG_NONE }
     };
     rtl::Reference<SfxItemPool> pPool = new SfxItemPool("test", 1, 1, aItems);
     pPool->SetDefaults(&aDefaults);
diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx
index 0fd59788a711..341cbd3672ff 100644
--- a/svl/source/items/itempool.cxx
+++ b/svl/source/items/itempool.cxx
@@ -40,7 +40,7 @@ size_t getAllDirectlyPooledSfxPoolItemCount() { return 
nAllDirectlyPooledSfxPool
 size_t getRemainingDirectlyPooledSfxPoolItemCount() { return 
nRemainingDirectlyPooledSfxPoolItemCount; }
 #endif
 
-// WhichIDs that need to set _bNeedsPoolRegistration in SfxItemInfo
+// WhichIDs that need to set SFX_ITEMINFOFLAG_SUPPORT_SURROGATE in SfxItemInfo
 // to true to allow a register of all items of that type/with that WhichID
 // to be accessible using SfxItemPool::GetItemSurrogates. Created by
 // grepping for 'GetItemSurrogates' usages & interpreting. Some
@@ -210,7 +210,7 @@ lcl_CheckSlots2(std::map<sal_uInt16, sal_uInt16> & rSlotMap,
     sal_uInt16 const nCount(rPool.GetLastWhich() - rPool.GetFirstWhich() + 1);
     for (sal_uInt16 n = 0; n < nCount; ++n)
     {
-        sal_uInt16 const nSlotId(pInfo[n]._nSID);
+        sal_uInt16 const nSlotId(pInfo[n]._nItemInfoSlotID);
         if (nSlotId != 0
             && nSlotId != 10883  // preexisting duplicate SID_ATTR_GRAF_CROP
             && nSlotId != 10023  // preexisting duplicate SID_ATTR_BORDER_INNER
@@ -355,33 +355,19 @@ const SfxPoolItem* SfxItemPool::GetPoolDefaultItem( 
sal_uInt16 nWhich ) const
 }
 
 
-bool SfxItemPool::NeedsPoolRegistration(sal_uInt16 nWhich) const
+bool SfxItemPool::CheckItemInfoFlag(sal_uInt16 nWhich, sal_uInt16 nMask) const
 {
     if (!IsInRange(nWhich))
     {
         // get to correct pool
         if (mpSecondary)
-            return mpSecondary->NeedsPoolRegistration(nWhich);
+            return mpSecondary->CheckItemInfoFlag(nWhich, nMask);
         return false;
     }
 
-    return NeedsPoolRegistration_Impl(nWhich - mnStart);
+    return CheckItemInfoFlag_Impl(nWhich - mnStart, nMask);
 }
 
-bool SfxItemPool::Shareable(sal_uInt16 nWhich) const
-{
-    if (!IsInRange(nWhich))
-    {
-        // get to correct pool
-        if (mpSecondary)
-            return mpSecondary->Shareable(nWhich);
-        return false;
-    }
-
-    return Shareable_Impl(nWhich - mnStart);
-}
-
-
 SfxBroadcaster& SfxItemPool::BC()
 {
     return aBC;
@@ -447,7 +433,7 @@ SfxItemPool::SfxItemPool
         auto nWhich = nStartWhich;
         while (nWhich <= nEndWhich)
         {
-            if (p->_nSID == nWhich)
+            if (p->_nItemInfoSlotID == nWhich)
             {
                 SAL_WARN("svl.items", "No point mapping a SID to itself, just 
put a 0 here in the SfxItemInfo array, at index " << (p - pItemInfos));
                 assert(false);
@@ -911,7 +897,7 @@ void 
SfxItemPool::CollectSurrogates(std::unordered_set<const SfxPoolItem*>& rTar
 
     // the 3rd source for surrogates is the list of direct put items
     // but since these use SfxPoolItemHolder now they are automatically
-    // registered at 2nd source - IF NeedsPoolRegistration is set. So
+    // registered at 2nd source - IF NeedsSurrogateSupport is set. So
     // as long as we have this DirectPutItem stuff, iterate here and
     // warn if an Item was added
     const directPutSfxPoolItemHolders& 
rDirects(GetMasterPool()->maDirectPutItems);
@@ -954,7 +940,7 @@ sal_uInt16 SfxItemPool::GetWhich( sal_uInt16 nSlotId, bool 
bDeep ) const
 
     sal_uInt16 nCount = mnEnd - mnStart + 1;
     for ( sal_uInt16 nOfs = 0; nOfs < nCount; ++nOfs )
-        if ( pItemInfos[nOfs]._nSID == nSlotId )
+        if ( pItemInfos[nOfs]._nItemInfoSlotID == nSlotId )
             return nOfs + mnStart;
     if ( mpSecondary && bDeep )
         return mpSecondary->GetWhich(nSlotId);
@@ -975,7 +961,7 @@ sal_uInt16 SfxItemPool::GetSlotId( sal_uInt16 nWhich ) const
         return 0;
     }
 
-    sal_uInt16 nSID = pItemInfos[nWhich - mnStart]._nSID;
+    sal_uInt16 nSID = pItemInfos[nWhich - mnStart]._nItemInfoSlotID;
     return nSID ? nSID : nWhich;
 }
 
@@ -987,7 +973,7 @@ sal_uInt16 SfxItemPool::GetTrueWhich( sal_uInt16 nSlotId, 
bool bDeep ) const
 
     sal_uInt16 nCount = mnEnd - mnStart + 1;
     for ( sal_uInt16 nOfs = 0; nOfs < nCount; ++nOfs )
-        if ( pItemInfos[nOfs]._nSID == nSlotId )
+        if ( pItemInfos[nOfs]._nItemInfoSlotID == nSlotId )
             return nOfs + mnStart;
     if ( mpSecondary && bDeep )
         return mpSecondary->GetTrueWhich(nSlotId);
@@ -1007,7 +993,7 @@ sal_uInt16 SfxItemPool::GetTrueSlotId( sal_uInt16 nWhich ) 
const
         assert(false && "unknown WhichId - cannot get slot-id");
         return 0;
     }
-    return pItemInfos[nWhich - mnStart]._nSID;
+    return pItemInfos[nWhich - mnStart]._nItemInfoSlotID;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx
index 673cbea84c50..e734561558e1 100644
--- a/svl/source/items/itemset.cxx
+++ b/svl/source/items/itemset.cxx
@@ -83,7 +83,7 @@ SfxPoolItemHolder::SfxPoolItemHolder(SfxItemPool& rPool, 
const SfxPoolItem* pIte
 #endif
     if (nullptr != m_pItem)
         m_pItem = implCreateItemEntry(getPool(), m_pItem, m_pItem->Which(), 
bPassingOwnership);
-    if (nullptr != m_pItem && 
getPool().NeedsPoolRegistration(m_pItem->Which()))
+    if (nullptr != m_pItem && 
getPool().NeedsSurrogateSupport(m_pItem->Which()))
         getPool().registerPoolItemHolder(*this);
 }
 
@@ -101,7 +101,7 @@ SfxPoolItemHolder::SfxPoolItemHolder(const 
SfxPoolItemHolder& rHolder)
 #endif
     if (nullptr != m_pItem)
         m_pItem = implCreateItemEntry(getPool(), m_pItem, m_pItem->Which(), 
false);
-    if (nullptr != m_pItem && 
getPool().NeedsPoolRegistration(m_pItem->Which()))
+    if (nullptr != m_pItem && 
getPool().NeedsSurrogateSupport(m_pItem->Which()))
         getPool().registerPoolItemHolder(*this);
 }
 
@@ -111,7 +111,7 @@ SfxPoolItemHolder::~SfxPoolItemHolder()
     assert(!isDeleted() && "Destructed instance used (!)");
     nAllocatedSfxPoolItemHolderCount--;
 #endif
-    if (nullptr != m_pItem && 
getPool().NeedsPoolRegistration(m_pItem->Which()))
+    if (nullptr != m_pItem && 
getPool().NeedsSurrogateSupport(m_pItem->Which()))
         getPool().unregisterPoolItemHolder(*this);
     if (nullptr != m_pItem)
         implCleanupItemEntry(m_pItem);
@@ -127,7 +127,7 @@ const SfxPoolItemHolder& SfxPoolItemHolder::operator=(const 
SfxPoolItemHolder& r
     if (this == &rHolder || *this == rHolder)
         return *this;
 
-    if (nullptr != m_pItem && 
getPool().NeedsPoolRegistration(m_pItem->Which()))
+    if (nullptr != m_pItem && 
getPool().NeedsSurrogateSupport(m_pItem->Which()))
         getPool().unregisterPoolItemHolder(*this);
     if (nullptr != m_pItem)
         implCleanupItemEntry(m_pItem);
@@ -137,7 +137,7 @@ const SfxPoolItemHolder& SfxPoolItemHolder::operator=(const 
SfxPoolItemHolder& r
 
     if (nullptr != m_pItem)
         m_pItem = implCreateItemEntry(getPool(), m_pItem, m_pItem->Which(), 
false);
-    if (nullptr != m_pItem && 
getPool().NeedsPoolRegistration(m_pItem->Which()))
+    if (nullptr != m_pItem && 
getPool().NeedsSurrogateSupport(m_pItem->Which()))
         getPool().registerPoolItemHolder(*this);
 
     return *this;
@@ -328,19 +328,6 @@ SfxPoolItem const* implCreateItemEntry(SfxItemPool& rPool, 
SfxPoolItem const* pS
     // have to do this repeatedly
     SfxItemPool* pMasterPool(rPool.GetMasterPool());
     assert(nullptr != pMasterPool);
-    SfxItemPool* pTargetPool(pMasterPool);
-    while (pTargetPool && !pTargetPool->IsInRange(nWhich))
-        pTargetPool = pTargetPool->GetSecondaryPool();
-
-    // if this goes wrong, an Item with invalid ID for this pool is
-    // processed. This is not allowed (and should not happen, e.g.
-    // ItemSets already have WhichRanges that are checked against
-    // their Pool)
-    if (nullptr == pTargetPool)
-    {
-        assert(false);
-        return pSource;
-    }
 
     // // currently need to check if pSource is a default Item and
     // // avoid it to leave the Pool. This is necessary since Pools
@@ -382,10 +369,6 @@ SfxPoolItem const* implCreateItemEntry(SfxItemPool& rPool, 
SfxPoolItem const* pS
     //     }
     // }
 
-    // CAUTION: Shareable_Impl and NeedsPoolRegistration_Impl
-    // use index, not WhichID (one more reason to change the Pools)
-    const sal_uInt16 nIndex(pTargetPool->GetIndex_Impl(nWhich));
-
     // the Item itself is shareable when it already is used somewhere
     // which is equivalent to be referenced already. IsPooledItem also
     // checked for SFX_ITEMS_MAXREF, that is not needed here. Use a
@@ -404,7 +387,7 @@ SfxPoolItem const* implCreateItemEntry(SfxItemPool& rPool, 
SfxPoolItem const* pS
             // target ranges (e.g. look for ATTR_FONT_UNDERLINE)
             break;
 
-        if (!pTargetPool->Shareable_Impl(nIndex))
+        if (!pSource->isShareable())
             // not shareable, done
             break;
 
@@ -631,10 +614,10 @@ void SfxItemSet::checkRemovePoolRegistration(const 
SfxPoolItem* pItem)
         return;
 
     if (SfxItemPool::IsSlot(pItem->Which()))
-        // no slots, these do not support NeedsPoolRegistration
+        // no slots, these do not support NeedsSurrogateSupport
         return;
 
-    if(!GetPool()->NeedsPoolRegistration(pItem->Which()))
+    if(!GetPool()->NeedsSurrogateSupport(pItem->Which()))
         // not needed for this item, done
         return;
 
@@ -644,7 +627,7 @@ void SfxItemSet::checkRemovePoolRegistration(const 
SfxPoolItem* pItem)
     // decrement counter
     m_nRegister--;
 
-    // deregister when no more Items that NeedsPoolRegistration exist
+    // deregister when no more Items that NeedsSurrogateSupport exist
     if (0 == m_nRegister)
         GetPool()->unregisterItemSet(*this);
 }
@@ -660,10 +643,10 @@ void SfxItemSet::checkAddPoolRegistration(const 
SfxPoolItem* pItem)
         return;
 
     if (SfxItemPool::IsSlot(pItem->Which()))
-        // no slots, these do not support NeedsPoolRegistration
+        // no slots, these do not support NeedsSurrogateSupport
         return;
 
-    if(!GetPool()->NeedsPoolRegistration(pItem->Which()))
+    if(!GetPool()->NeedsSurrogateSupport(pItem->Which()))
         // not needed for this item, done
         return;
 
@@ -671,7 +654,7 @@ void SfxItemSet::checkAddPoolRegistration(const 
SfxPoolItem* pItem)
     // allow paired Remove/Add calls (see SfxItemSet::PutImpl)
     assert(m_nRegister <= m_nCount);
 
-    // register when first Item that NeedsPoolRegistration exist
+    // register when first Item that NeedsSurrogateSupport exist
     if (0 == m_nRegister)
         GetPool()->registerItemSet(*this);
 
diff --git a/svl/source/items/poolitem.cxx b/svl/source/items/poolitem.cxx
index 41b85ba60889..3b0ebd6fa882 100644
--- a/svl/source/items/poolitem.cxx
+++ b/svl/source/items/poolitem.cxx
@@ -498,6 +498,7 @@ SfxPoolItem::SfxPoolItem(sal_uInt16 const nWhich)
     , m_bStaticDefault(false)
     , m_bPoolDefault(false)
     , m_bIsSetItem(false)
+    , m_bShareable(true)
 #ifdef DBG_UTIL
     , m_bDeleted(false)
 #endif
diff --git a/svl/source/items/stylepool.cxx b/svl/source/items/stylepool.cxx
index 9de8d87d13b2..22900163ad59 100644
--- a/svl/source/items/stylepool.cxx
+++ b/svl/source/items/stylepool.cxx
@@ -389,7 +389,7 @@ std::shared_ptr<SfxItemSet> StylePoolImpl::insertItemSet( 
const SfxItemSet& rSet
     }
     while( pItem )
     {
-        if (!rSet.GetPool()->Shareable(pItem->Which()))
+        if (!pItem->isShareable())
             bNonShareable = true;
         if (!xFoundIgnorableItems || (xFoundIgnorableItems->Put(*pItem) == 
nullptr))
         {
@@ -403,7 +403,7 @@ std::shared_ptr<SfxItemSet> StylePoolImpl::insertItemSet( 
const SfxItemSet& rSet
         pItem = aIgnorableItemsIter.GetCurItem();
         while( pItem )
         {
-            if (!rSet.GetPool()->Shareable(pItem->Which()))
+            if (!pItem->isShareable())
                 bNonShareable = true;
             pCurNode = pCurNode->findChildNode( *pItem, true );
             pItem = aIgnorableItemsIter.NextItem();
diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx
index c518900e6f03..bf237d35ae18 100644
--- a/svx/source/svdraw/svdattr.cxx
+++ b/svx/source/svdraw/svdattr.cxx
@@ -126,12 +126,12 @@ SdrItemPool::SdrItemPool(
     // init the non-persistent items
     for(sal_uInt16 i(SDRATTR_NOTPERSIST_FIRST); i <= SDRATTR_NOTPERSIST_LAST; 
i++)
     {
-        mpLocalItemInfos[i - SDRATTR_START]._bNeedsPoolRegistration = false;
+        mpLocalItemInfos[i - SDRATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_NONE;
     }
 
-    // these slots need _bNeedsPoolRegistration == true, see
+    // these slots need SFX_ITEMINFOFLAG_SUPPORT_SURROGATE, see
     // text @svl/source/items/itempool.cxx
-    mpLocalItemInfos[SDRATTR_XMLATTRIBUTES 
-SDRATTR_START]._bNeedsPoolRegistration = true;
+    mpLocalItemInfos[SDRATTR_XMLATTRIBUTES -SDRATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
 
     // init own PoolDefaults
     std::vector<SfxPoolItem*>& rPoolDefaults = *mpLocalPoolDefaults;
@@ -353,30 +353,25 @@ SdrItemPool::SdrItemPool(
     rPoolDefaults[SDRATTR_WRITINGMODE2 - SDRATTR_START] = new 
SvxFrameDirectionItem(SvxFrameDirection::Horizontal_LR_TB, 
SDRATTR_WRITINGMODE2);
 
     // set own ItemInfos
-    mpLocalItemInfos[SDRATTR_SHADOW-SDRATTR_START]._nSID=SID_ATTR_FILL_SHADOW;
-    
mpLocalItemInfos[SDRATTR_SHADOWCOLOR-SDRATTR_START]._nSID=SID_ATTR_SHADOW_COLOR;
-    
mpLocalItemInfos[SDRATTR_SHADOWTRANSPARENCE-SDRATTR_START]._nSID=SID_ATTR_SHADOW_TRANSPARENCE;
-    
mpLocalItemInfos[SDRATTR_SHADOWBLUR-SDRATTR_START]._nSID=SID_ATTR_SHADOW_BLUR;
-    
mpLocalItemInfos[SDRATTR_SHADOWXDIST-SDRATTR_START]._nSID=SID_ATTR_SHADOW_XDISTANCE;
-    
mpLocalItemInfos[SDRATTR_SHADOWYDIST-SDRATTR_START]._nSID=SID_ATTR_SHADOW_YDISTANCE;
-    
mpLocalItemInfos[SDRATTR_TEXT_FITTOSIZE-SDRATTR_START]._nSID=SID_ATTR_TEXT_FITTOSIZE;
-    mpLocalItemInfos[SDRATTR_GRAFCROP-SDRATTR_START]._nSID=SID_ATTR_GRAF_CROP;
-
-    mpLocalItemInfos[SDRATTR_TABLE_BORDER - SDRATTR_START ]._nSID = 
SID_ATTR_BORDER_OUTER;
-    mpLocalItemInfos[SDRATTR_TABLE_BORDER_INNER - SDRATTR_START ]._nSID = 
SID_ATTR_BORDER_INNER;
-    mpLocalItemInfos[SDRATTR_TABLE_BORDER_TLBR - SDRATTR_START ]._nSID = 
SID_ATTR_BORDER_DIAG_TLBR;
-    mpLocalItemInfos[SDRATTR_TABLE_BORDER_BLTR - SDRATTR_START ]._nSID = 
SID_ATTR_BORDER_DIAG_BLTR;
-
-    mpLocalItemInfos[SDRATTR_GLOW_RADIUS - SDRATTR_START]._nSID = 
SID_ATTR_GLOW_RADIUS;
-    mpLocalItemInfos[SDRATTR_GLOW_COLOR - SDRATTR_START]._nSID = 
SID_ATTR_GLOW_COLOR;
-    mpLocalItemInfos[SDRATTR_GLOW_TRANSPARENCY - SDRATTR_START]._nSID = 
SID_ATTR_GLOW_TRANSPARENCY;
-
-    mpLocalItemInfos[SDRATTR_SOFTEDGE_RADIUS - SDRATTR_START]._nSID = 
SID_ATTR_SOFTEDGE_RADIUS;
-
-    mpLocalItemInfos[SDRATTR_TEXTCOLUMNS_NUMBER - SDRATTR_START]._nSID = 0 
/*TODO*/;
-    mpLocalItemInfos[SDRATTR_TEXTCOLUMNS_SPACING - SDRATTR_START]._nSID = 0 
/*TODO*/;
-
-    mpLocalItemInfos[SDRATTR_WRITINGMODE2 - SDRATTR_START]._nSID = 0 /*TODO*/;
+    
mpLocalItemInfos[SDRATTR_SHADOW-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_FILL_SHADOW;
+    
mpLocalItemInfos[SDRATTR_SHADOWCOLOR-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_SHADOW_COLOR;
+    
mpLocalItemInfos[SDRATTR_SHADOWTRANSPARENCE-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_SHADOW_TRANSPARENCE;
+    
mpLocalItemInfos[SDRATTR_SHADOWBLUR-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_SHADOW_BLUR;
+    
mpLocalItemInfos[SDRATTR_SHADOWXDIST-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_SHADOW_XDISTANCE;
+    
mpLocalItemInfos[SDRATTR_SHADOWYDIST-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_SHADOW_YDISTANCE;
+    
mpLocalItemInfos[SDRATTR_TEXT_FITTOSIZE-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_TEXT_FITTOSIZE;
+    
mpLocalItemInfos[SDRATTR_GRAFCROP-SDRATTR_START]._nItemInfoSlotID=SID_ATTR_GRAF_CROP;
+    mpLocalItemInfos[SDRATTR_TABLE_BORDER - SDRATTR_START ]._nItemInfoSlotID = 
SID_ATTR_BORDER_OUTER;
+    mpLocalItemInfos[SDRATTR_TABLE_BORDER_INNER - SDRATTR_START 
]._nItemInfoSlotID = SID_ATTR_BORDER_INNER;
+    mpLocalItemInfos[SDRATTR_TABLE_BORDER_TLBR - SDRATTR_START 
]._nItemInfoSlotID = SID_ATTR_BORDER_DIAG_TLBR;
+    mpLocalItemInfos[SDRATTR_TABLE_BORDER_BLTR - SDRATTR_START 
]._nItemInfoSlotID = SID_ATTR_BORDER_DIAG_BLTR;
+    mpLocalItemInfos[SDRATTR_GLOW_RADIUS - SDRATTR_START]._nItemInfoSlotID = 
SID_ATTR_GLOW_RADIUS;
+    mpLocalItemInfos[SDRATTR_GLOW_COLOR - SDRATTR_START]._nItemInfoSlotID = 
SID_ATTR_GLOW_COLOR;
+    mpLocalItemInfos[SDRATTR_GLOW_TRANSPARENCY - 
SDRATTR_START]._nItemInfoSlotID = SID_ATTR_GLOW_TRANSPARENCY;
+    mpLocalItemInfos[SDRATTR_SOFTEDGE_RADIUS - SDRATTR_START]._nItemInfoSlotID 
= SID_ATTR_SOFTEDGE_RADIUS;
+    mpLocalItemInfos[SDRATTR_TEXTCOLUMNS_NUMBER - 
SDRATTR_START]._nItemInfoSlotID = 0 /*TODO*/;
+    mpLocalItemInfos[SDRATTR_TEXTCOLUMNS_SPACING - 
SDRATTR_START]._nItemInfoSlotID = 0 /*TODO*/;
+    mpLocalItemInfos[SDRATTR_WRITINGMODE2 - SDRATTR_START]._nItemInfoSlotID = 
0 /*TODO*/;
 
     // it's my own creation level, set Defaults and ItemInfos
     SetDefaults(mpLocalPoolDefaults);
diff --git a/svx/source/xoutdev/xpool.cxx b/svx/source/xoutdev/xpool.cxx
index 017401983ced..cb91553f5390 100644
--- a/svx/source/xoutdev/xpool.cxx
+++ b/svx/source/xoutdev/xpool.cxx
@@ -159,58 +159,57 @@ XOutdevItemPool::XOutdevItemPool(SfxItemPool* _pMaster)
     // create ItemInfos
     for(sal_uInt16 i(GetFirstWhich()); i <= GetLastWhich(); i++)
     {
-        // _nSID, _bNeedsPoolRegistration, _bShareable
-        mpLocalItemInfos[i - XATTR_START]._nSID = 0;
-        mpLocalItemInfos[i - XATTR_START]._bNeedsPoolRegistration = false;
-        mpLocalItemInfos[i - XATTR_START]._bShareable = true;
+        // _nItemInfoSlotID, _nItemInfoFlags
+        mpLocalItemInfos[i - XATTR_START]._nItemInfoSlotID = 0;
+        mpLocalItemInfos[i - XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_NONE;
     }
 
-    // these slots need _bNeedsPoolRegistration == true, see
+    // these slots need SFX_ITEMINFOFLAG_SUPPORT_SURROGATE, see
     // text @svl/source/items/itempool.cxx
-    mpLocalItemInfos[XATTR_FILLBITMAP       
-XATTR_START]._bNeedsPoolRegistration = true;
-    mpLocalItemInfos[XATTR_FILLGRADIENT     
-XATTR_START]._bNeedsPoolRegistration = true;
-    mpLocalItemInfos[XATTR_FILLHATCH        
-XATTR_START]._bNeedsPoolRegistration = true;
-    mpLocalItemInfos[XATTR_FILLFLOATTRANSPARENCE - 
XATTR_START]._bNeedsPoolRegistration = true;
-    mpLocalItemInfos[XATTR_LINEEND          
-XATTR_START]._bNeedsPoolRegistration = true;
-    mpLocalItemInfos[XATTR_LINESTART        
-XATTR_START]._bNeedsPoolRegistration = true;
-    mpLocalItemInfos[XATTR_LINEDASH         
-XATTR_START]._bNeedsPoolRegistration = true;
-    mpLocalItemInfos[XATTR_FILLCOLOR        
-XATTR_START]._bNeedsPoolRegistration = true;
+    mpLocalItemInfos[XATTR_FILLBITMAP       -XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
+    mpLocalItemInfos[XATTR_FILLGRADIENT     -XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
+    mpLocalItemInfos[XATTR_FILLHATCH        -XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
+    mpLocalItemInfos[XATTR_FILLFLOATTRANSPARENCE - 
XATTR_START]._nItemInfoFlags = SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
+    mpLocalItemInfos[XATTR_LINEEND          -XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
+    mpLocalItemInfos[XATTR_LINESTART        -XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
+    mpLocalItemInfos[XATTR_LINEDASH         -XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
+    mpLocalItemInfos[XATTR_FILLCOLOR        -XATTR_START]._nItemInfoFlags = 
SFX_ITEMINFOFLAG_SUPPORT_SURROGATE;
 
     // set the SlotIDs, this is a mapping used by GetWhich()/GetSlotId()
-    mpLocalItemInfos[XATTR_LINESTYLE        -XATTR_START]._nSID = 
SID_ATTR_LINE_STYLE;
-    mpLocalItemInfos[XATTR_LINEDASH         -XATTR_START]._nSID = 
SID_ATTR_LINE_DASH;
-    mpLocalItemInfos[XATTR_LINEWIDTH        -XATTR_START]._nSID = 
SID_ATTR_LINE_WIDTH;
-    mpLocalItemInfos[XATTR_LINECOLOR        -XATTR_START]._nSID = 
SID_ATTR_LINE_COLOR;
-    mpLocalItemInfos[XATTR_LINESTART        -XATTR_START]._nSID = 
SID_ATTR_LINE_START;
-    mpLocalItemInfos[XATTR_LINEEND          -XATTR_START]._nSID = 
SID_ATTR_LINE_END;
-    mpLocalItemInfos[XATTR_LINESTARTWIDTH   -XATTR_START]._nSID = 
SID_ATTR_LINE_STARTWIDTH;
-    mpLocalItemInfos[XATTR_LINEENDWIDTH     -XATTR_START]._nSID = 
SID_ATTR_LINE_ENDWIDTH;
-    mpLocalItemInfos[XATTR_LINESTARTCENTER  -XATTR_START]._nSID = 
SID_ATTR_LINE_STARTCENTER;
-    mpLocalItemInfos[XATTR_LINEENDCENTER    -XATTR_START]._nSID = 
SID_ATTR_LINE_ENDCENTER;
-    mpLocalItemInfos[XATTR_FILLSTYLE        -XATTR_START]._nSID = 
SID_ATTR_FILL_STYLE;
-    mpLocalItemInfos[XATTR_FILLCOLOR        -XATTR_START]._nSID = 
SID_ATTR_FILL_COLOR;
-    mpLocalItemInfos[XATTR_FILLGRADIENT     -XATTR_START]._nSID = 
SID_ATTR_FILL_GRADIENT;
-    mpLocalItemInfos[XATTR_FILLHATCH        -XATTR_START]._nSID = 
SID_ATTR_FILL_HATCH;
-    mpLocalItemInfos[XATTR_FILLBITMAP       -XATTR_START]._nSID = 
SID_ATTR_FILL_BITMAP;
-    mpLocalItemInfos[XATTR_FORMTXTSTYLE     -XATTR_START]._nSID = 
SID_FORMTEXT_STYLE;
-    mpLocalItemInfos[XATTR_FORMTXTADJUST    -XATTR_START]._nSID = 
SID_FORMTEXT_ADJUST;
-    mpLocalItemInfos[XATTR_FORMTXTDISTANCE  -XATTR_START]._nSID = 
SID_FORMTEXT_DISTANCE;
-    mpLocalItemInfos[XATTR_FORMTXTSTART     -XATTR_START]._nSID = 
SID_FORMTEXT_START;
-    mpLocalItemInfos[XATTR_FORMTXTMIRROR    -XATTR_START]._nSID = 
SID_FORMTEXT_MIRROR;
-    mpLocalItemInfos[XATTR_FORMTXTOUTLINE   -XATTR_START]._nSID = 
SID_FORMTEXT_OUTLINE;
-    mpLocalItemInfos[XATTR_FORMTXTSHADOW    -XATTR_START]._nSID = 
SID_FORMTEXT_SHADOW;
-    mpLocalItemInfos[XATTR_FORMTXTSHDWCOLOR -XATTR_START]._nSID = 
SID_FORMTEXT_SHDWCOLOR;
-    mpLocalItemInfos[XATTR_FORMTXTSHDWXVAL  -XATTR_START]._nSID = 
SID_FORMTEXT_SHDWXVAL;
-    mpLocalItemInfos[XATTR_FORMTXTSHDWYVAL  -XATTR_START]._nSID = 
SID_FORMTEXT_SHDWYVAL;
-    mpLocalItemInfos[XATTR_FORMTXTHIDEFORM  -XATTR_START]._nSID = 
SID_FORMTEXT_HIDEFORM;
+    mpLocalItemInfos[XATTR_LINESTYLE        -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_STYLE;
+    mpLocalItemInfos[XATTR_LINEDASH         -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_DASH;
+    mpLocalItemInfos[XATTR_LINEWIDTH        -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_WIDTH;
+    mpLocalItemInfos[XATTR_LINECOLOR        -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_COLOR;
+    mpLocalItemInfos[XATTR_LINESTART        -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_START;
+    mpLocalItemInfos[XATTR_LINEEND          -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_END;
+    mpLocalItemInfos[XATTR_LINESTARTWIDTH   -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_STARTWIDTH;
+    mpLocalItemInfos[XATTR_LINEENDWIDTH     -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_ENDWIDTH;
+    mpLocalItemInfos[XATTR_LINESTARTCENTER  -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_STARTCENTER;
+    mpLocalItemInfos[XATTR_LINEENDCENTER    -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_ENDCENTER;
+    mpLocalItemInfos[XATTR_FILLSTYLE        -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_FILL_STYLE;
+    mpLocalItemInfos[XATTR_FILLCOLOR        -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_FILL_COLOR;
+    mpLocalItemInfos[XATTR_FILLGRADIENT     -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_FILL_GRADIENT;
+    mpLocalItemInfos[XATTR_FILLHATCH        -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_FILL_HATCH;
+    mpLocalItemInfos[XATTR_FILLBITMAP       -XATTR_START]._nItemInfoSlotID = 
SID_ATTR_FILL_BITMAP;
+    mpLocalItemInfos[XATTR_FORMTXTSTYLE     -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_STYLE;
+    mpLocalItemInfos[XATTR_FORMTXTADJUST    -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_ADJUST;
+    mpLocalItemInfos[XATTR_FORMTXTDISTANCE  -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_DISTANCE;
+    mpLocalItemInfos[XATTR_FORMTXTSTART     -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_START;
+    mpLocalItemInfos[XATTR_FORMTXTMIRROR    -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_MIRROR;
+    mpLocalItemInfos[XATTR_FORMTXTOUTLINE   -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_OUTLINE;
+    mpLocalItemInfos[XATTR_FORMTXTSHADOW    -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_SHADOW;
+    mpLocalItemInfos[XATTR_FORMTXTSHDWCOLOR -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_SHDWCOLOR;
+    mpLocalItemInfos[XATTR_FORMTXTSHDWXVAL  -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_SHDWXVAL;
+    mpLocalItemInfos[XATTR_FORMTXTSHDWYVAL  -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_SHDWYVAL;
+    mpLocalItemInfos[XATTR_FORMTXTHIDEFORM  -XATTR_START]._nItemInfoSlotID = 
SID_FORMTEXT_HIDEFORM;
 
     // associate new slots for panels with known items
-    mpLocalItemInfos[XATTR_FILLUSESLIDEBACKGROUND - XATTR_START]._nSID = 
SID_ATTR_FILL_USE_SLIDE_BACKGROUND;
-    mpLocalItemInfos[XATTR_FILLTRANSPARENCE - XATTR_START]._nSID = 
SID_ATTR_FILL_TRANSPARENCE;
-    mpLocalItemInfos[XATTR_FILLFLOATTRANSPARENCE - XATTR_START]._nSID = 
SID_ATTR_FILL_FLOATTRANSPARENCE;
-    mpLocalItemInfos[XATTR_LINETRANSPARENCE - XATTR_START]._nSID = 
SID_ATTR_LINE_TRANSPARENCE;
-    mpLocalItemInfos[XATTR_LINEJOINT - XATTR_START]._nSID = 
SID_ATTR_LINE_JOINT;
-    mpLocalItemInfos[XATTR_LINECAP - XATTR_START]._nSID = SID_ATTR_LINE_CAP;
+    mpLocalItemInfos[XATTR_FILLUSESLIDEBACKGROUND - 
XATTR_START]._nItemInfoSlotID = SID_ATTR_FILL_USE_SLIDE_BACKGROUND;
+    mpLocalItemInfos[XATTR_FILLTRANSPARENCE - XATTR_START]._nItemInfoSlotID = 
SID_ATTR_FILL_TRANSPARENCE;
+    mpLocalItemInfos[XATTR_FILLFLOATTRANSPARENCE - 
XATTR_START]._nItemInfoSlotID = SID_ATTR_FILL_FLOATTRANSPARENCE;
+    mpLocalItemInfos[XATTR_LINETRANSPARENCE - XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_TRANSPARENCE;
+    mpLocalItemInfos[XATTR_LINEJOINT - XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_JOINT;
+    mpLocalItemInfos[XATTR_LINECAP - XATTR_START]._nItemInfoSlotID = 
SID_ATTR_LINE_CAP;
 
     // if it's my own creation level, set Defaults and ItemInfos
     if(XATTR_START == GetFirstWhich() && XATTR_END == GetLastWhich())
diff --git a/sw/source/core/attr/cellatr.cxx b/sw/source/core/attr/cellatr.cxx
index 69eb6b1dd314..a14d28a55d2f 100644
--- a/sw/source/core/attr/cellatr.cxx
+++ b/sw/source/core/attr/cellatr.cxx
@@ -58,6 +58,7 @@ SwTableBoxFormula::SwTableBoxFormula( const OUString& 
rFormula )
     SwTableFormula( rFormula ),
     m_pDefinedIn( nullptr )
 {
+    setNonShareable();
 }
 
 bool SwTableBoxFormula::operator==( const SfxPoolItem& rAttr ) const
diff --git a/sw/source/core/bastyp/init.cxx b/sw/source/core/bastyp/init.cxx
index 146b99fbf4f5..0fe5cb710857 100644
--- a/sw/source/core/bastyp/init.cxx
+++ b/sw/source/core/bastyp/init.cxx
@@ -265,181 +265,181 @@ SwDfltAttrTab aAttrTab( POOLATTR_END - POOLATTR_BEGIN, 
nullptr );
 
 SfxItemInfo aSlotTab[] =
 {
-    // _nSID, _bNeedsPoolRegistration, _bShareable
-    { SID_ATTR_CHAR_CASEMAP,            false, true },  // RES_CHRATR_CASEMAP
-    { SID_ATTR_CHAR_CHARSETCOLOR,       false, true },  // 
RES_CHRATR_CHARSETCOLOR
-    { SID_ATTR_CHAR_COLOR,              true,  true },  // RES_CHRATR_COLOR
-    { SID_ATTR_CHAR_CONTOUR,            false, true },  // RES_CHRATR_CONTOUR
-    { SID_ATTR_CHAR_STRIKEOUT,          false, true },  // 
RES_CHRATR_CROSSEDOUT
-    { SID_ATTR_CHAR_ESCAPEMENT,         false, true },  // 
RES_CHRATR_ESCAPEMENT
-    { SID_ATTR_CHAR_FONT,               true,  true },  // RES_CHRATR_FONT
-    { SID_ATTR_CHAR_FONTHEIGHT,         false, true },  // RES_CHRATR_FONTSIZE
-    { SID_ATTR_CHAR_KERNING,            false, true },  // RES_CHRATR_KERNING
-    { SID_ATTR_CHAR_LANGUAGE,           false, true },  // RES_CHRATR_LANGUAGE
-    { SID_ATTR_CHAR_POSTURE,            false, true },  // RES_CHRATR_POSTURE
-    { 0,                                false, true },  // RES_CHRATR_UNUSED1
-    { SID_ATTR_CHAR_SHADOWED,           false, true },  // RES_CHRATR_SHADOWED
-    { SID_ATTR_CHAR_UNDERLINE,          true,  true },  // RES_CHRATR_UNDERLINE
-    { SID_ATTR_CHAR_WEIGHT,             false, true },  // RES_CHRATR_WEIGHT
-    { SID_ATTR_CHAR_WORDLINEMODE,       false, true },  // 
RES_CHRATR_WORDLINEMODE
-    { SID_ATTR_CHAR_AUTOKERN,           false, true },  // RES_CHRATR_AUTOKERN
-    { SID_ATTR_FLASH,                   false, true },  // RES_CHRATR_BLINK
-    { 0,                                false, true },  // RES_CHRATR_UNUSED2
-    { 0,                                false, true },  // RES_CHRATR_NOHYPHEN
-    { SID_ATTR_BRUSH_CHAR,              true,  true },  // 
RES_CHRATR_BACKGROUND
-    { SID_ATTR_CHAR_CJK_FONT,           true,  true },  // RES_CHRATR_CJK_FONT
-    { SID_ATTR_CHAR_CJK_FONTHEIGHT,     false, true },  // 
RES_CHRATR_CJK_FONTSIZE
-    { SID_ATTR_CHAR_CJK_LANGUAGE,       false, true },  // 
RES_CHRATR_CJK_LANGUAGE
-    { SID_ATTR_CHAR_CJK_POSTURE,        false, true },  // 
RES_CHRATR_CJK_POSTURE
-    { SID_ATTR_CHAR_CJK_WEIGHT,         false, true },  // 
RES_CHRATR_CJK_WEIGHT
-    { SID_ATTR_CHAR_CTL_FONT,           true,  true },  // RES_CHRATR_CTL_FONT
-    { SID_ATTR_CHAR_CTL_FONTHEIGHT,     false, true },  // 
RES_CHRATR_CTL_FONTSIZE
-    { SID_ATTR_CHAR_CTL_LANGUAGE,       false, true },  // 
RES_CHRATR_CTL_LANGUAGE
-    { SID_ATTR_CHAR_CTL_POSTURE,        false, true },  // 
RES_CHRATR_CTL_POSTURE
-    { SID_ATTR_CHAR_CTL_WEIGHT,         false, true },  // 
RES_CHRATR_CTL_WEIGHT
-    { SID_ATTR_CHAR_ROTATED,            false, true },  // RES_CHRATR_ROTATE
-    { SID_ATTR_CHAR_EMPHASISMARK,       false, true },  // 
RES_CHRATR_EMPHASIS_MARK
-    { SID_ATTR_CHAR_TWO_LINES,          false, true },  // RES_CHRATR_TWO_LINES
-    { SID_ATTR_CHAR_SCALEWIDTH,         false, true },  // RES_CHRATR_SCALEW
-    { SID_ATTR_CHAR_RELIEF,             false, true },  // RES_CHRATR_RELIEF
-    { SID_ATTR_CHAR_HIDDEN,             false, true },  // RES_CHRATR_HIDDEN
-    { SID_ATTR_CHAR_OVERLINE,           true,  true },  // RES_CHRATR_OVERLINE
-    { 0,                                false, true },  // RES_CHRATR_RSID
-    { SID_ATTR_CHAR_BOX,                true,  true },  // RES_CHRATR_BOX
-    { SID_ATTR_CHAR_SHADOW,             false, true },  // RES_CHRATR_SHADOW
-    { 0,                                true,  true },  // RES_CHRATR_HIGHLIGHT
-    { SID_ATTR_CHAR_GRABBAG,            false, true },  // RES_CHRATR_GRABBAG
-    { 0,                                false, true },  // RES_CHRATR_BIDIRTL
-    { 0,                                false, true },  // RES_CHRATR_IDCTHINT
-
-    { 0,                                true,  false }, // RES_TXTATR_REFMARK
-    { 0,                                true,  false }, // RES_TXTATR_TOXMARK
-    { 0,                                false, false }, // RES_TXTATR_META
-    { 0,                                false, false }, // RES_TXTATR_METAFIELD
-    { 0,                                false, true },  // RES_TXTATR_AUTOFMT
-    { FN_TXTATR_INET,                   true,  false }, // RES_TXTATR_INETFMT
-    { 0,                                false, false }, // RES_TXTATR_CHARFMT
-    { SID_ATTR_CHAR_CJK_RUBY,           true,  false }, // RES_TXTATR_CJK_RUBY
-    { 0,                                true,  true },  // 
RES_TXTATR_UNKNOWN_CONTAINER
-    { 0,                                true,  false }, // 
RES_TXTATR_INPUTFIELD
-    { 0,                                false, false }, // 
RES_TXTATR_CONTENTCONTROL
-
-    { 0,                                true,  false }, // RES_TXTATR_FIELD
-    { 0,                                false, false }, // RES_TXTATR_FLYCNT
-    { 0,                                false, false }, // RES_TXTATR_FTN
-    { 0,                                false, false }, // 
RES_TXTATR_ANNOTATION
-    { 0,                                false, false }, // RES_TXTATR_LINEBREAK
-    { 0,                                false, true },  // RES_TXTATR_DUMMY1
-
-    { SID_ATTR_PARA_LINESPACE,          false, true },  // 
RES_PARATR_LINESPACING
-    { SID_ATTR_PARA_ADJUST,             false, true },  // RES_PARATR_ADJUST
-    { SID_ATTR_PARA_SPLIT,              false, true },  // RES_PARATR_SPLIT
-    { SID_ATTR_PARA_ORPHANS,            false, true },  // RES_PARATR_ORPHANS
-    { SID_ATTR_PARA_WIDOWS,             false, true },  // RES_PARATR_WIDOWS
-    { SID_ATTR_TABSTOP,                 true,  true },  // RES_PARATR_TABSTOP
-    { SID_ATTR_PARA_HYPHENZONE,         false, true },  // 
RES_PARATR_HYPHENZONE
-    { FN_FORMAT_DROPCAPS,               false, false }, // RES_PARATR_DROP
-    { SID_ATTR_PARA_REGISTER,           false, true },  // RES_PARATR_REGISTER
-    { SID_ATTR_PARA_NUMRULE,            false, true },  // RES_PARATR_NUMRULE
-    { SID_ATTR_PARA_SCRIPTSPACE,        false, true },  // 
RES_PARATR_SCRIPTSPACE
-    { SID_ATTR_PARA_HANGPUNCTUATION,    false, true },  // 
RES_PARATR_HANGINGPUNCTUATION
-
-    { SID_ATTR_PARA_FORBIDDEN_RULES,    false, true },  // 
RES_PARATR_FORBIDDEN_RULES
-    { SID_PARA_VERTALIGN,               false, true },  // RES_PARATR_VERTALIGN
-    { SID_ATTR_PARA_SNAPTOGRID,         false, true },  // 
RES_PARATR_SNAPTOGRID
-    { SID_ATTR_BORDER_CONNECT,          false, true },  // 
RES_PARATR_CONNECT_BORDER
-
-    { SID_ATTR_PARA_OUTLINE_LEVEL,      false, true },  // 
RES_PARATR_OUTLINELEVEL //#outline level
-    { 0,                                false, true },  // RES_PARATR_RSID
-    { SID_ATTR_PARA_GRABBAG,            false, true },  // RES_PARATR_GRABBAG
-    { 0,                                false, true },  // RES_PARATR_LIST_ID
-    { 0,                                false, true },  // 
RES_PARATR_LIST_LEVEL
-    { 0,                                false, true },  // 
RES_PARATR_LIST_ISRESTART
-    { 0,                                false, true },  // 
RES_PARATR_LIST_RESTARTVALUE
-    { 0,                                false, true },  // 
RES_PARATR_LIST_ISCOUNTED
-    { 0,                                false, true },  // 
RES_PARATR_LIST_AUTOFMT
-
-    { 0,                                false, true },  // RES_FILL_ORDER
-    { 0,                                false, true },  // RES_FRM_SIZE
-    { SID_ATTR_PAGE_PAPERBIN,           false, true },  // RES_PAPER_BIN
-    { SID_ATTR_PARA_FIRSTLINESPACE,     false, true },  // RES_MARGIN_FIRSTLINE
-    { SID_ATTR_PARA_LEFTSPACE,          false, true },  // RES_MARGIN_TEXTLEFT
-    { SID_ATTR_PARA_RIGHTSPACE,         false, true },  // RES_MARGIN_RIGHT
-    { 0,                                false, true },  // RES_MARGIN_LEFT
-    { 0,                                false, true },  // RES_MARGIN_GUTTER
-    { 0,                                false, true },  // 
RES_MARGIN_GUTTER_RIGHT
-    { SID_ATTR_LRSPACE,                 false, true },  // RES_LR_SPACE
-e 
... etc. - the rest is truncated
  • core.git: chart2/source dbacces... Armin Le Grand (allotropia) (via logerrit)

Reply via email to