configure.ac                                   |    1 
 solenv/gbuild/extensions/pre_MergedLibsList.mk |    1 
 vcl/source/helper/svtaccessiblefactory.cxx     |  193 +------------------------
 3 files changed, 16 insertions(+), 179 deletions(-)

New commits:
commit 15df1df235cbe199d770d67a03fe923c94aa2dcc
Author:     Noel Grandin <[email protected]>
AuthorDate: Fri Mar 1 08:35:53 2024 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Fri Mar 1 14:47:08 2024 +0100

    add accessibility to --enable-mergedlibs=more
    
    Also
    (*) fix the definition of ENABLE_MERGELIBS_MORE in configure.ac
    (*) Remove the dummy accessible factory in vcl, it creates
    more problems than it solves, because code will break when
    trying to use it, and then I get crashes far removed from the
    source of the problem (failure to find the acc factory).
    
    Change-Id: I969481d5ad2cfd7104d8240fdd0dce9d285fdb61
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164176
    Tested-by: Noel Grandin <[email protected]>
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/configure.ac b/configure.ac
index b46ecdfbec4d..dd4ed7107aa8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14875,6 +14875,7 @@ if test -n "$enable_mergelibs" -a "$enable_mergelibs" 
!= "no"; then
         MERGELIBS_MORE="TRUE"
         AC_MSG_RESULT([yes (more)])
         AC_DEFINE(ENABLE_MERGELIBS)
+        AC_DEFINE(ENABLE_MERGELIBS_MORE)
     elif test "$enable_mergelibs" = "yes" -o "$enable_mergelibs" = ""; then
         MERGELIBS="TRUE"
         AC_MSG_RESULT([yes])
diff --git a/solenv/gbuild/extensions/pre_MergedLibsList.mk 
b/solenv/gbuild/extensions/pre_MergedLibsList.mk
index 6a6cb1eebe11..91e40b381181 100644
--- a/solenv/gbuild/extensions/pre_MergedLibsList.mk
+++ b/solenv/gbuild/extensions/pre_MergedLibsList.mk
@@ -118,6 +118,7 @@ gb_MERGE_LIBRARY_LIST := \
 ifneq ($(MERGELIBS_MORE),)
 
 gb_MERGE_LIBRARY_LIST += \
+       acc \
        analysis \
        animcore \
        $(call gb_Helper_optional,AVMEDIA, \
diff --git a/vcl/source/helper/svtaccessiblefactory.cxx 
b/vcl/source/helper/svtaccessiblefactory.cxx
index fa9e151fcc23..06f482863576 100644
--- a/vcl/source/helper/svtaccessiblefactory.cxx
+++ b/vcl/source/helper/svtaccessiblefactory.cxx
@@ -19,6 +19,7 @@
 
 #include <config_feature_desktop.h>
 #include <config_wasm_strip.h>
+#include <config_options.h>
 
 #include <vcl/svtaccessiblefactory.hxx>
 #include <vcl/accessiblefactory.hxx>
@@ -49,166 +50,6 @@ namespace vcl
 #endif
 #endif
         ::rtl::Reference< IAccessibleFactory >   s_pFactory;
-
-
-        //= AccessibleDummyFactory
-
-        class AccessibleDummyFactory:
-            public IAccessibleFactory
-        {
-        public:
-            AccessibleDummyFactory();
-            AccessibleDummyFactory(const AccessibleDummyFactory&) = delete;
-            AccessibleDummyFactory& operator=(const AccessibleDummyFactory&) = 
delete;
-
-        protected:
-            virtual ~AccessibleDummyFactory() override;
-
-        public:
-            // IAccessibleFactory
-            virtual vcl::IAccessibleTabListBox*
-                createAccessibleTabListBox(
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*rxParent*/,
-                    SvHeaderTabListBox& /*rBox*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleTreeListBox(
-                    SvTreeListBox& /*_rListBox*/,
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_xParent*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleIconView(
-                    SvTreeListBox& /*_rListBox*/,
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_xParent*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual rtl::Reference<vcl::IAccessibleBrowseBox>
-                createAccessibleBrowseBox(
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_rxParent*/,
-                    vcl::IAccessibleTableProvider& /*_rBrowseBox*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual rtl::Reference<table::IAccessibleTableControl>
-                createAccessibleTableControl(
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_rxParent*/,
-                    table::IAccessibleTable& /*_rTable*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleIconChoiceCtrl(
-                    SvtIconChoiceCtrl& /*_rIconCtrl*/,
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_xParent*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleTabBar(
-                    TabBar& /*_rTabBar*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< 
css::accessibility::XAccessibleContext >
-                createAccessibleTextWindowContext(
-                    VCLXWindow* /*pVclXWindow*/, TextEngine& /*rEngine*/, 
TextView& /*rView*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleBrowseBoxHeaderBar(
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*rxParent*/,
-                    vcl::IAccessibleTableProvider& /*_rOwningTable*/,
-                    AccessibleBrowseBoxObjType /*_eObjType*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleBrowseBoxTableCell(
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_rxParent*/,
-                    vcl::IAccessibleTableProvider& /*_rBrowseBox*/,
-                    const css::uno::Reference< css::awt::XWindow >& 
/*_xFocusWindow*/,
-                    sal_Int32 /*_nRowId*/,
-                    sal_uInt16 /*_nColId*/,
-                    sal_Int32 /*_nOffset*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleBrowseBoxHeaderCell(
-                    sal_Int32 /*_nColumnRowId*/,
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*rxParent*/,
-                    vcl::IAccessibleTableProvider& /*_rBrowseBox*/,
-                    const css::uno::Reference< css::awt::XWindow >& 
/*_xFocusWindow*/,
-                    AccessibleBrowseBoxObjType  /*_eObjType*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createAccessibleCheckBoxCell(
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_rxParent*/,
-                    vcl::IAccessibleTableProvider& /*_rBrowseBox*/,
-                    const css::uno::Reference< css::awt::XWindow >& 
/*_xFocusWindow*/,
-                    sal_Int32 /*_nRowPos*/,
-                    sal_uInt16 /*_nColPos*/,
-                    const TriState& /*_eState*/,
-                    bool /*_bIsTriState*/
-                ) const override
-            {
-                return nullptr;
-            }
-
-            virtual css::uno::Reference< css::accessibility::XAccessible >
-                createEditBrowseBoxTableCellAccess(
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_rxParent*/,
-                    const css::uno::Reference< css::accessibility::XAccessible 
>& /*_rxControlAccessible*/,
-                    const css::uno::Reference< css::awt::XWindow >& 
/*_rxFocusWindow*/,
-                    vcl::IAccessibleTableProvider& /*_rBrowseBox*/,
-                    sal_Int32 /*_nRowPos*/,
-                    sal_uInt16 /*_nColPos*/
-                ) const override
-            {
-                return nullptr;
-            }
-        };
-
-
-        AccessibleDummyFactory::AccessibleDummyFactory()
-        {
-        }
-
-
-        AccessibleDummyFactory::~AccessibleDummyFactory()
-        {
-        }
-
     }
 
 
@@ -243,36 +84,30 @@ namespace vcl
         if (!s_pFactory)
         {
 #ifndef DISABLE_DYNLOADING
+#if ENABLE_MERGELIBS_MORE
+            s_hAccessibleImplementationModule = osl_loadModuleRelative( 
&thisModule, u"" SVLIBRARY( "merged" ) ""_ustr.pData, 0 );
+#else
             s_hAccessibleImplementationModule = osl_loadModuleRelative( 
&thisModule, u"" SVLIBRARY( "acc" ) ""_ustr.pData, 0 );
-            if ( s_hAccessibleImplementationModule != nullptr )
-            {
-                s_pAccessibleFactoryFunc = 
reinterpret_cast<GetSvtAccessibilityComponentFactory>(
-                    osl_getFunctionSymbol( s_hAccessibleImplementationModule, 
u"getSvtAccessibilityComponentFactory"_ustr.pData ));
+#endif
+            assert(s_hAccessibleImplementationModule);
+            s_pAccessibleFactoryFunc = 
reinterpret_cast<GetSvtAccessibilityComponentFactory>(
+                osl_getFunctionSymbol( s_hAccessibleImplementationModule, 
u"getSvtAccessibilityComponentFactory"_ustr.pData ));
 
-            }
-            OSL_ENSURE( s_pAccessibleFactoryFunc, "ac_registerClient: could 
not load the library, or not retrieve the needed symbol!" );
+            assert( s_pAccessibleFactoryFunc && "ac_registerClient: could not 
load the library, or not retrieve the needed symbol!" );
 #else
             s_pAccessibleFactoryFunc = getSvtAccessibilityComponentFactory;
 #endif // DISABLE_DYNLOADING
 
             // get a factory instance
-            if ( s_pAccessibleFactoryFunc )
-            {
-                IAccessibleFactory* pFactory = static_cast< 
IAccessibleFactory* >( (*s_pAccessibleFactoryFunc)() );
-                if ( pFactory )
-                {
-                    s_pFactory = pFactory;
-                    pFactory->release();
-                }
-            }
+            IAccessibleFactory* pFactory = static_cast< IAccessibleFactory* >( 
(*s_pAccessibleFactoryFunc)() );
+            assert(pFactory);
+            s_pFactory = pFactory;
+            pFactory->release();
         }
 #endif // HAVE_FEATURE_DESKTOP
 #endif // ENABLE_WASM_STRIP_ACCESSIBILITY
 
-        if (!s_pFactory)
-            // the attempt to load the lib, or to create the factory, failed
-            // -> fall back to a dummy factory
-            s_pFactory = new AccessibleDummyFactory;
+        assert(s_pFactory);
 
         m_bInitialized = true;
     }

Reply via email to