[Libreoffice] Unknown property

Eike Rathke ooo at erack.de
Tue Aug 30 07:23:31 PDT 2011


Hi julien2412,

On Monday, 2011-08-29 15:58:21 -0700, julien2412 wrote:

> I thought this patch would be ok :
> diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx
> index 1d6fa46..7e0424e 100644
> --- a/sd/source/core/stlsheet.cxx
> +++ b/sd/source/core/stlsheet.cxx
> @@ -90,6 +90,7 @@ static SvxItemPropertySet& GetStylePropertySet()
>          { RTL_CONSTASCII_STRINGPARAM("DisplayName"),           
> WID_STYLE_DISPNAME,     &::getCppuType((const OUString*)0), PropertyAttrib
>  
>          SVX_UNOEDIT_NUMBERING_PROPERTIE,
> +        SVX_UNOEDIT_OUTLINER_PROPERTIES,
>          SHADOW_PROPERTIES
>          LINE_PROPERTIES
>          LINE_PROPERTIES_START_END
> 
> but when I tried it I got this :
> Error: unknown which - dont ask me for defaults
> with Id/Pos: 3901 From File
> /home/maryline/compile-libreoffice/libo/svl/source/items/itempool.cxx at
> Line 900
> Error: Which-Id nicht im Pool-Bereich From File
> /home/maryline/compile-libreoffice/libo/svl/source/inc/poolio.hxx at Line
> 212
> 
> Program received signal SIGSEGV, Segmentation fault.

Ouch, the SfxItemPool hit you ;-)

You can't simply add a property without adjusting the corresponding item
pool and its defaults. I think for the EditEngine and Draw case that's
in editeng/source/editeng/eerdll.cxx GlobalEditData::GetDefItems(),
though I don't know if nowadays it's sufficient to adapt just that place
and editeng/inc/editeng/eeitem.hxx, maybe someone familiar with Draw can
shed some light.

> Could someone explain what do " EE_PARA_NUMBULLET", "WID_NUMLEVEL", ... that
> we can read for the define of  "SVX_UNOEDIT_NUMBERING_PROPERTIE" or
> "SVX_UNOEDIT_OUTLINER_PROPERTIES" mean ?

Each core attribute/property is represented by a SfxPoolItem,
EE_PARA_NUMBULLET and so on are so-called Which-IDs, the ID an item has
in an SfxItemPool. For each item the pool knows a default value, shared
across all SfxItemSet instances that use the same pool, so only
differing values need to be stored. The pool is of a fixed map size and
anything unknown leads to unpredictable behavior and crashes at best.

Bjoern can sing a song about that ;-)

  Eike

-- 
 PGP/OpenPGP/GnuPG encrypted mail preferred in all private communication.
 Key ID: 0x293C05FD - 997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110830/f141ce63/attachment.pgp>


More information about the LibreOffice mailing list