6.3.0.0.beta2: calendarImpl: name clash

balducci at units.it balducci at units.it
Thu Jun 27 07:35:06 UTC 2019


hello

apparently due to 942de6a01ba990e5f3bc55ce4ab3737a03f67f39, 6.3.0.0.beta2 build
stops for me with:

      ----8<----
      /home/balducci/tmp/install-us-d/libreoffice-6.2.5.1.d/libreoffice-6.3.0.0.beta2/i18npool/source/calendar/calendarImpl.cxx:44:44: error: reference to 'Locale' is ambiguous
         44 | CalendarImpl::loadDefaultCalendarTZ( const Locale& rLocale, const OUString& rTimeZone )
            |                                            ^~~~~~
      [...]
      /home/balducci/tmp/install-us-d/libreoffice-6.2.5.1.d/libreoffice-6.3.0.0.beta2/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/lang/Locale.hdl:17:43: note: candidates are: 'struct com::sun::star::lang::Locale'
         17 | struct SAL_DLLPUBLIC_RTTI SAL_WARN_UNUSED Locale {
            |                                           ^~~~~~
      [...]
      /usr/include/unicode/locid.h:192:20: note:                 'class icu::Locale'
        192 | class U_COMMON_API Locale : public UObject {
            |                    ^~~~~~
      [...]
      /home/balducci/tmp/install-us-d/libreoffice-6.2.5.1.d/libreoffice-6.3.0.0.beta2/i18npool/source/calendar/calendarImpl.cxx:132:1: error: reference to 'Calendar' is ambiguous
        132 | Calendar SAL_CALL
            | ^~~~~~~~
      [...]
      /home/balducci/tmp/install-us-d/libreoffice-6.2.5.1.d/libreoffice-6.3.0.0.beta2/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/i18n/Calendar.hdl:20:43: note: candidates are: 'struct com::sun::star::i18n::Calendar'
         20 | struct SAL_DLLPUBLIC_RTTI SAL_WARN_UNUSED Calendar {
            |                                           ^~~~~~~~
      [...]
      /usr/include/unicode/calendar.h:185:18: note:                 'class icu::Calendar'
        185 | class U_I18N_API Calendar : public UObject {
            |                  ^~~~~~~~
      ---->8----

AFAICS, Locale and Calendar clash w/ corresponding declarations in
headers from icu4c (64.2).

As a matter of fact, the following fixes the build for me

      ----8<----
      diff -c i18npool/source/calendar/calendarImpl.cxx.FIX_CALENDAR i18npool/source/calendar/calendarImpl.cxx
      *** i18npool/source/calendar/calendarImpl.cxx.FIX_CALENDAR	Wed Jun 26 13:36:23 2019
      --- i18npool/source/calendar/calendarImpl.cxx	Wed Jun 26 13:36:23 2019
      ***************
      *** 41,47 ****
        }

        void SAL_CALL
      ! CalendarImpl::loadDefaultCalendarTZ( const Locale& rLocale, const OUString& rTimeZone )
        {
            Sequence< Calendar2 > xC = LocaleDataImpl::get()->getAllCalendars2(rLocale);
            for (sal_Int32 i = 0; i < xC.getLength(); i++) {
      --- 41,47 ----
        }

        void SAL_CALL
      ! CalendarImpl::loadDefaultCalendarTZ( const css::lang::Locale& rLocale, const OUString& rTimeZone )
        {
            Sequence< Calendar2 > xC = LocaleDataImpl::get()->getAllCalendars2(rLocale);
            for (sal_Int32 i = 0; i < xC.getLength(); i++) {
      ***************
      *** 54,60 ****
        }

        void SAL_CALL
      ! CalendarImpl::loadCalendarTZ( const OUString& uniqueID, const Locale& rLocale, const OUString& rTimeZone )
        {
            Reference < XCalendar4 > xOldCalendar( xCalendar );  // backup
            const OUString aCacheID( uniqueID + "_" + rTimeZone);
      --- 54,60 ----
        }

        void SAL_CALL
      ! CalendarImpl::loadCalendarTZ( const OUString& uniqueID, const css::lang::Locale& rLocale, const OUString& rTimeZone )
        {
            Reference < XCalendar4 > xOldCalendar( xCalendar );  // backup
            const OUString aCacheID( uniqueID + "_" + rTimeZone);
      ***************
      *** 129,135 ****
            return xCalendar->getLoadedCalendar2();
        }

      ! Calendar SAL_CALL
        CalendarImpl::getLoadedCalendar()
        {
            if (!xCalendar.is())
      --- 129,135 ----
            return xCalendar->getLoadedCalendar2();
        }

      ! com::sun::star::i18n::Calendar SAL_CALL
        CalendarImpl::getLoadedCalendar()
        {
            if (!xCalendar.is())
      ***************
      *** 138,144 ****
        }

        Sequence< OUString > SAL_CALL
      ! CalendarImpl::getAllCalendars( const Locale& rLocale )
        {
            Sequence< Calendar2 > xC = LocaleDataImpl::get()->getAllCalendars2(rLocale);
            sal_Int32 nLen = xC.getLength();
      --- 138,144 ----
        }

        Sequence< OUString > SAL_CALL
      ! CalendarImpl::getAllCalendars( const css::lang::Locale& rLocale )
        {
            Sequence< Calendar2 > xC = LocaleDataImpl::get()->getAllCalendars2(rLocale);
            sal_Int32 nLen = xC.getLength();
      ---->8----



thanks
ciao
-g


More information about the LibreOffice mailing list