solenv/bin/native-code.py | 76 ++++++++++++++++++++++++++--------- sw/Library_swd.mk | 1 sw/source/filter/basflt/iodetect.cxx | 6 ++ sw/source/ui/uno/swdet2.cxx | 71 -------------------------------- sw/source/ui/uno/swdetect.cxx | 36 +++++++++++++++- 5 files changed, 96 insertions(+), 94 deletions(-)
New commits: commit fc1762f96540e18561fbc93c28a36e37ca6e6168 Author: Matúš Kukan <matus.ku...@collabora.com> Date: Thu Jan 9 09:54:38 2014 +0100 Merge these source files. Also move a function to where it's used. Change-Id: Ia0378a58c63364a73c40dd901d93e20a596a4c29 diff --git a/sw/Library_swd.mk b/sw/Library_swd.mk index 477bcea..fd53b7b 100644 --- a/sw/Library_swd.mk +++ b/sw/Library_swd.mk @@ -56,7 +56,6 @@ $(eval $(call gb_Library_use_libraries,swd,\ $(eval $(call gb_Library_add_exception_objects,swd,\ sw/source/filter/basflt/iodetect \ sw/source/ui/uno/detreg \ - sw/source/ui/uno/swdet2 \ sw/source/ui/uno/swdetect \ )) diff --git a/sw/source/filter/basflt/iodetect.cxx b/sw/source/filter/basflt/iodetect.cxx index 2a1ad72..a71587e 100644 --- a/sw/source/filter/basflt/iodetect.cxx +++ b/sw/source/filter/basflt/iodetect.cxx @@ -24,8 +24,12 @@ #include <sot/storage.hxx> #include <svtools/parhtml.hxx> #include <tools/urlobj.hxx> +#include <unotools/moduleoptions.hxx> -bool IsDocShellRegistered(); +static bool IsDocShellRegistered() +{ + return SvtModuleOptions().IsWriter(); +} SwIoDetect aFilterDetect[] = { diff --git a/sw/source/ui/uno/swdet2.cxx b/sw/source/ui/uno/swdet2.cxx deleted file mode 100644 index 0eacb62..0000000 --- a/sw/source/ui/uno/swdet2.cxx +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "rtl/ustring.hxx" // for OUString, operator== -#include "sal/types.h" // for sal_Bool -#include "tools/errcode.hxx" // for ERRCODE_ABORT, ERRCODE_NONE -#include "tools/solar.h" // for sal_uLong - -#include <sfx2/docfilt.hxx> -#include <sfx2/fcontnr.hxx> -#include <sfx2/docfile.hxx> -#include <iodetect.hxx> -#include <swdetect.hxx> - -#include <unotools/moduleoptions.hxx> - -bool IsDocShellRegistered() -{ - return SvtModuleOptions().IsWriter(); -} - -sal_uLong SwFilterDetect::DetectFilter( SfxMedium& rMedium, const SfxFilter** ppFilter ) -{ - sal_uLong nRet = ERRCODE_NONE; - if( *ppFilter ) - { - // verify the given filter - OUString aPrefFlt = (*ppFilter)->GetUserData(); - - // detection for TextFilter needs an additional checking - sal_Bool bDetected = SwIoSystem::IsFileFilter(rMedium, aPrefFlt); - return bDetected ? nRet : ERRCODE_ABORT; - } - - // mba: without preselection there is no PrefFlt - OUString aPrefFlt; - const SfxFilter* pTmp = SwIoSystem::GetFileFilter( rMedium.GetPhysicalName(), aPrefFlt, &rMedium ); - if( !pTmp ) - return ERRCODE_ABORT; - - else - { - //Bug 41417: JP 09.07.97: HTML documents should be loaded by WebWriter - SfxFilterContainer aFilterContainer( OUString("swriter/web") ); - if( !pTmp->GetUserData().equals(sHTML) || - pTmp->GetServiceName() == "com.sun.star.text.WebDocument" || - 0 == ( (*ppFilter) = SwIoSystem::GetFilterOfFormat( OUString(sHTML), - &aFilterContainer ) ) ) - *ppFilter = pTmp; - } - - return nRet; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/ui/uno/swdetect.cxx b/sw/source/ui/uno/swdetect.cxx index bdfd354..81a0f11 100644 --- a/sw/source/ui/uno/swdetect.cxx +++ b/sw/source/ui/uno/swdetect.cxx @@ -56,8 +56,7 @@ #include <vcl/FilterConfigItem.hxx> #include <unotools/moduleoptions.hxx> #include <comphelper/ihwrapnofilter.hxx> - -#include <swdll.hxx> +#include <iodetect.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -418,6 +417,39 @@ OUString SAL_CALL SwFilterDetect::detect( Sequence< PropertyValue >& lDescriptor return aTypeName; } +sal_uLong SwFilterDetect::DetectFilter( SfxMedium& rMedium, const SfxFilter** ppFilter ) +{ + sal_uLong nRet = ERRCODE_NONE; + if( *ppFilter ) + { + // verify the given filter + OUString aPrefFlt = (*ppFilter)->GetUserData(); + + // detection for TextFilter needs an additional checking + sal_Bool bDetected = SwIoSystem::IsFileFilter(rMedium, aPrefFlt); + return bDetected ? nRet : ERRCODE_ABORT; + } + + // mba: without preselection there is no PrefFlt + OUString aPrefFlt; + const SfxFilter* pTmp = SwIoSystem::GetFileFilter( rMedium.GetPhysicalName(), aPrefFlt, &rMedium ); + if( !pTmp ) + return ERRCODE_ABORT; + + else + { + //Bug 41417: JP 09.07.97: HTML documents should be loaded by WebWriter + SfxFilterContainer aFilterContainer( OUString("swriter/web") ); + if( !pTmp->GetUserData().equals(sHTML) || + pTmp->GetServiceName() == "com.sun.star.text.WebDocument" || + 0 == ( (*ppFilter) = SwIoSystem::GetFilterOfFormat( OUString(sHTML), + &aFilterContainer ) ) ) + *ppFilter = pTmp; + } + + return nRet; +} + /* XServiceInfo */ OUString SAL_CALL SwFilterDetect::getImplementationName() throw( RuntimeException ) { commit 27014f48f47b1c90699d51dbf665cc57c3de1705 Author: Matúš Kukan <matus.ku...@collabora.com> Date: Thu Jan 9 09:20:55 2014 +0100 native code generator: Use groups for constructors too. Change-Id: I42570b4b7b68e36cab1286948d03df0c2f0d4103 diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py index ba8ebc2..603a849 100755 --- a/solenv/bin/native-code.py +++ b/solenv/bin/native-code.py @@ -13,11 +13,8 @@ from optparse import OptionParser # relevant function sections will be referenced in lo_get_factory_map(). # That prevents garbage collector to ignore them as unused. -# We need the same groups for new constructor functions, started in -# ae3a0c8da50b36db395984637f5ad74d3b4887bc -# For now, there are only constructor functions for implementations in 'core' -# group, so no need for other groups, core_constructor_list is enough. -# (These functions are referenced in lo_get_constructor_map().) +# The same groups are used for constructor based implementations +# referenced in lo_get_constructor_map(). core_factory_list = [ ("libembobj.a", "embobj_component_getFactory"), @@ -60,6 +57,16 @@ core_factory_list = [ ("libxstor.a", "xstor_component_getFactory"), ] +core_constructor_list = [ +# sax/source/expatwrap/expwrap.component + "com_sun_star_comp_extensions_xml_sax_ParserExpat", + "com_sun_star_comp_extensions_xml_sax_FastParser", +# svtools/util/svt.component + "com_sun_star_comp_graphic_GraphicProvider_get_implementation", +# svx/util/svx.component + "com_sun_star_drawing_EnhancedCustomShapeEngine_implementation_getFactory", + ] + extended_core_factory_list = core_factory_list + [ ("libanimcorelo.a", "animcore_component_getFactory"), ("libavmedialo.a", "avmedia_component_getFactory"), @@ -77,23 +84,35 @@ extended_core_factory_list = core_factory_list + [ ("libxmlfdlo.a", "xmlfd_component_getFactory"), ] +extended_core_constructor_list = core_constructor_list + [ + ] + base_core_factory_list = [ ("libdbalo.a", "dba_component_getFactory"), ("libdbaxmllo.a", "dbaxml_component_getFactory"), ] +base_core_constructor_list = [ + ] + calc_core_factory_list = [ ("libscdlo.a", "scd_component_getFactory"), ("libscfiltlo.a", "scfilt_component_getFactory"), ("libsclo.a", "sc_component_getFactory"), ] +calc_core_constructor_list = [ + ] + calc_factory_list = calc_core_factory_list + [ ("libanalysislo.a", "analysis_component_getFactory"), ("libdatelo.a", "date_component_getFactory"), ("libpricinglo.a", "pricing_component_getFactory"), ] +calc_constructor_list = calc_core_constructor_list + [ + ] + draw_core_factory_list = [ ("libsddlo.a", "sdd_component_getFactory"), ("libsdlo.a", "sd_component_getFactory"), @@ -101,23 +120,35 @@ draw_core_factory_list = [ ("libwpftdrawlo.a", "wpftdraw_component_getFactory"), ] +draw_core_constructor_list = [ + ] + math_factory_list = [ ("libsmdlo.a", "smd_component_getFactory"), ("libsmlo.a", "sm_component_getFactory"), ] +math_constructor_list = [ + ] + writer_core_factory_list = [ ("libswdlo.a", "swd_component_getFactory"), ("libswlo.a", "sw_component_getFactory"), ("libwriterfilterlo.a", "writerfilter_component_getFactory"), ] +writer_core_constructor_list = [ + ] + writer_factory_list = writer_core_factory_list + [ ("libhwplo.a", "hwp_component_getFactory"), ("libt602filterlo.a", "t602filter_component_getFactory"), ("libwpftwriterlo.a", "wpftwriter_component_getFactory"), ] +writer_constructor_list = writer_core_constructor_list + [ + ] + factory_map = { 'core' : core_factory_list, 'extended_core' : extended_core_factory_list, @@ -130,15 +161,17 @@ factory_map = { 'writer' : writer_factory_list, } -core_constructor_list = [ -# sax/source/expatwrap/expwrap.component - "com_sun_star_comp_extensions_xml_sax_ParserExpat", - "com_sun_star_comp_extensions_xml_sax_FastParser", -# svtools/util/svt.component - "com_sun_star_comp_graphic_GraphicProvider_get_implementation", -# svx/util/svx.component - "com_sun_star_drawing_EnhancedCustomShapeEngine_implementation_getFactory", - ] +constructor_map = { + 'core' : core_constructor_list, + 'extended_core' : extended_core_constructor_list, + 'base_core' : base_core_constructor_list, + 'calc_core' : calc_core_constructor_list, + 'calc' : calc_constructor_list, + 'draw_core' : draw_core_constructor_list, + 'math' : math_constructor_list, + 'writer_core' : writer_core_constructor_list, + 'writer' : writer_constructor_list, + } opts = OptionParser() opts.add_option("-j", "--java-guard", action="store_true", help="include external java functions", dest="java", default=False) @@ -148,7 +181,7 @@ opts.add_option("-g", "--group", action="append", help="group of implementations print ("""/* * This is a generated file. Do not edit. - * file generated by solenc/bin/native-code.py + * file generated by solenv/bin/native-code.py */ #include <osl/detail/component-mapping.h> @@ -162,8 +195,10 @@ if options.groups: print ('void * '+factory_function+'( const char* , void* , void* );') print ('') -for constructor in core_constructor_list: - print ('void * '+constructor+'( void *, void * );') +if options.groups: + for constructor_group in options.groups: + for constructor in constructor_map[constructor_group]: + print ('void * '+constructor+'( void *, void * );') print (""" const lib_to_factory_mapping * @@ -199,8 +234,11 @@ const lib_to_constructor_mapping * lo_get_constructor_map(void) { static lib_to_constructor_mapping map[] = {""") -for constructor in core_constructor_list: - print (' { "' +constructor+ '", ' +constructor+ ' },') + +if options.groups: + for constructor_group in options.groups: + for constructor in constructor_map[constructor_group]: + print (' { "' +constructor+ '", ' +constructor+ ' },') print (""" { 0, 0 }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits