Index: branches/2020Q4/editors/openoffice-4/Makefile
===================================================================
--- branches/2020Q4/editors/openoffice-4/Makefile (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/Makefile (revision 554862)
@@ -1,517 +1,513 @@
# Created by: Martin Blapp
# $FreeBSD$
PORTNAME= apache-openoffice
PORTVERSION= ${AOOVERSION}
-PORTREVISION= 3
CATEGORIES= editors java
MASTER_SITES= APACHE/openoffice/${PORTVERSION}/source \
http://tools.openoffice.org/unowinreg_prebuild/680/:unoreg \
LOCAL/truckman/openoffice:extsrc \
SF/oooextras.mirror/:sf
.if defined(LANG_PKGNAME)
PKGNAMEPREFIX= ${LANG_PKGNAME}-
.endif
.if defined(LANG_SUFFIX)
PKGNAMESUFFIX= -${LANG_SUFFIX}
.endif
DISTFILES= ${AOOSRC} ${EXTSRC}:extsrc ${PYTHON_DISTFILE}:sf
DIST_SUBDIR= openoffice
EXTRACT_ONLY= ${AOOSRC}
MAINTAINER= office@FreeBSD.org
#de facto maintainer is truckman@FreeBSD.org
#Frequent Patch submitters should (optionally) sign the Apache iCLA
COMMENT= Integrated wordprocessor/dbase/spreadsheet/drawing/chart/browser
LICENSE= APACHE20 ADOBE BSD3CLAUSE BSD4CLAUSE BSL ICU MIT MPL10 \
MPL11 PSFL TWAIN W3C
LICENSE_COMB= multi
LICENSE_NAME_ADOBE= Adobe Systems Incorporated license
LICENSE_NAME_ICU= ICU License
LICENSE_NAME_TWAIN= TWAIN Working Group license
LICENSE_NAME_W3C= W3C license
LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE_ALv2
LICENSE_FILE_ADOBE= ${WRKSRC}/LICENSE_ADOBE
LICENSE_FILE_BSD3CLAUSE= ${WRKSRC}/LICENSE_BSD3CLAUSE
LICENSE_FILE_BSD4CLAUSE= ${WRKSRC}/LICENSE_BSD4CLAUSE
LICENSE_FILE_BSL= ${WRKSRC}/LICENSE_BSL
LICENSE_FILE_ICU= ${WRKSRC}/LICENSE_ICU
LICENSE_FILE_MIT= ${WRKSRC}/LICENSE_MIT
LICENSE_FILE_MPL10= ${WRKSRC}/LICENSE_MPL10
LICENSE_FILE_MPL11= ${WRKSRC}/LICENSE_MPL11
LICENSE_FILE_PSFL= ${WRKSRC}/LICENSE_PSFL
LICENSE_FILE_TWAIN= ${WRKSRC}/LICENSE_TWAIN
LICENSE_FILE_W3C= ${WRKSRC}/LICENSE_W3C
LICENSE_PERMS_ADOBE= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LICENSE_PERMS_ICU= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LICENSE_PERMS_TWAIN= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LICENSE_PERMS_W3C= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
ONLY_FOR_ARCHS= amd64 i386 powerpc64
BUILD_DEPENDS= \
p5-Archive-Zip>=0:archivers/p5-Archive-Zip \
${LOCALBASE}/bin/unzip:archivers/unzip \
zip:archivers/zip \
ant:devel/apache-ant \
dmake:devel/dmake \
epm:devel/epm \
${LOCALBASE}/bin/gperf:devel/gperf \
imake:devel/imake \
gpatch:devel/patch \
${LOCALBASE}/include/sane/sane.h:graphics/sane-backends \
${JAVALIBDIR}/commons-lang.jar:java/apache-commons-lang \
${JAVALIBDIR}/junit.jar:java/junit \
${JAVALIBDIR}/bsh.jar:lang/bsh \
bash:shells/bash \
${JAVALIBDIR}/lucene-core-3.6.2.jar:textproc/lucene \
p5-XML-Parser>=0:textproc/p5-XML-Parser \
p5-libwww>=0:www/p5-libwww \
p5-LWP-Protocol-https>0:www/p5-LWP-Protocol-https
LIB_DEPENDS= \
libapr-1.so:devel/apr1 \
libnspr4.so:devel/nspr \
libcurl.so:ftp/curl \
libcairo.so:graphics/cairo \
libpng.so:graphics/png \
libgraphite.so:graphics/silgraphite \
libCoinMP.so:math/coinmp \
libfreetype.so:print/freetype2 \
libnss3.so:security/nss \
libexpat.so:textproc/expat2 \
libhunspell-1.7.so:textproc/hunspell \
libhyphen.so:textproc/hyphen \
libtextcat.so:textproc/libtextcat \
libmythes-1.2.so:textproc/mythes \
librdf.so:textproc/redland \
libserf-1.so:www/serf \
libfontconfig.so:x11-fonts/fontconfig
RUN_DEPENDS= \
${LOCALBASE}/share/icons/hicolor/index.theme:misc/hicolor-icon-theme \
${JAVALIBDIR}/commons-lang.jar:java/apache-commons-lang \
${JAVALIBDIR}/bsh.jar:lang/bsh \
${LOCALBASE}/share/fonts/Caladea/Caladea-Bold.ttf:x11-fonts/crosextrafonts-caladea-ttf \
${LOCALBASE}/share/fonts/Carlito/Carlito-Bold.ttf:x11-fonts/crosextrafonts-carlito-ttf \
${LOCALBASE}/share/fonts/ChromeOS/Arimo-Bold.ttf:x11-fonts/croscorefonts-fonts-ttf
USES= autoreconf bison compiler:c++11-lib cpe desktop-file-utils \
gettext-runtime gl gmake gnome iconv jpeg perl5 pkgconfig \
shared-mime-info ssl tar:bzip2 xorg
USE_GL= gl glu
USE_GNOME= gtk20 libxslt libidl glib20
USE_JAVA= yes
JAVA_BUILD= jdk
JAVA_RUN= jdk
JAVA_VENDOR= openjdk
USE_PERL5= build
USE_XORG= ice sm x11 xau xaw xcomposite xcursor xdamage xext xfixes xi \
xinerama xrandr xrender xt
CONFLICTS_INSTALL= apache-openoffice-devel-*
AOOVERSION1= 4
AOOVERSION2= 1
-AOOVERSION3= 7
+AOOVERSION3= 8
# From solenv/inc/minor.mk SOURCEREVISION LAST_MINOR BUILD
-AOOTAG= AOO417m1\(Build:9800\)
-GITREVISION= 46059c9192
+AOOTAG= AOO418m3\(Build:9803\)
+GITREVISION= 18848f57b6
EXTSRC= ApacheOpenOffice.ext_sources.${AOOVERSION1}.x.x.20150707.tar.gz
AOOVERSION= ${AOOVERSION1}.${AOOVERSION2}.${AOOVERSION3}
AOOXXX= ${AOOVERSION1}${AOOVERSION2}${AOOVERSION3}
AOOSUFFIX= ${PORTVERSION}
AOOSRC= apache-openoffice-${AOOVERSION}-${GITREVISION}-src${EXTRACT_SUFX}
AOOUDIR= .openoffice.org\/${AOOVERSION1}
INSTALLATION_BASEDIR?= openoffice-${AOOSUFFIX}
PRINSTALLATION_BASEDIR= ${PREFIX}/${INSTALLATION_BASEDIR}
OOPATH= ${PRINSTALLATION_BASEDIR}/openoffice${AOOVERSION1}
XDGDIR= ${OOPATH}/share/xdg
XDGREL= ../../${INSTALLATION_BASEDIR}/openoffice${AOOVERSION1}/share/xdg
EXECBASE?= openoffice-${AOOSUFFIX}
INSTALLS_ICONS= yes
WITHOUT_CPU_CFLAGS= true
CPE_PRODUCT= ${PORTNAME:S|apache-||}
CPE_VENDOR= apache
-OPTIONS_DEFINE= CRASHDUMP CUPS DBGUTIL DEBUG GNOME GNOMEVFS MMEDIA \
+OPTIONS_DEFINE= CRASHDUMP CUPS DBGUTIL DEBUG GNOME GNOMEVFS \
SDK WIKI_PUBLISHER
-OPTIONS_DEFAULT= CUPS GNOME GNOMEVFS MMEDIA WIKI_PUBLISHER
+OPTIONS_DEFAULT= CUPS GNOME GNOMEVFS WIKI_PUBLISHER
CRASHDUMP_DESC= Enable crashdumps, you also need to set WITH_DEBUG_PORTS+=${PKGORIGIN}
DBGUTIL_DESC= Enable assertions, object counting. (non-production)
DEBUG_DESC= Compile with -O0, you also need to set WITH_DEBUG_PORTS+=${PKGORIGIN}
GNOME_DESC= GConf + screensaver presentation control via DBUS
GNOMEVFS_DESC= GNOME Virtual File System
-MMEDIA_DESC= Multimedia backend for impress
SDK_DESC= Build and install software development kit
WIKI_PUBLISHER_DESC= Build and install Wiki Publisher extension
CRASHDUMP_CONFIGURE_ENABLE= crashdump
CUPS_CONFIGURE_ENABLE= cups
CUPS_LIB_DEPENDS= libcups.so:print/cups
DBGUTIL_CONFIGURE_ENABLE= dbgutil
DEBUG_CONFIGURE_ENABLE= debug
GNOME_CONFIGURE_ENABLE= dbus gconf lockdown
GNOME_LIB_DEPENDS= libdbus-1.so:devel/dbus \
libdbus-glib-1.so:devel/dbus-glib
GNOME_USE= GNOME=gconf2
GNOMEVFS_CONFIGURE_ENABLE= gnome-vfs
GNOMEVFS_CONFIGURE_OFF= --enable-gio
GNOMEVFS_CONFIGURE_ON= --disable-gio
GNOMEVFS_USE= GNOME=gnomevfs2
-MMEDIA_CONFIGURE_ENABLE= gstreamer
-MMEDIA_LIB_DEPENDS= libgstreamer-0.10.so:multimedia/gstreamer
-MMEDIA_USE= GSTREAMER=yes
-
SDK_CONFIGURE_ENABLE= odk
SDK_DISTFILES= unowinreg.dll:unoreg
WIKI_PUBLISHER_CONFIGURE_ENABLE= wiki-publisher
WIKI_PUBLISHER_CONFIGURE_WITH= \
commons-codec-jar=${JAVALIBDIR}/commons-codec.jar \
commons-httpclient-jar=${JAVALIBDIR}/commons-httpclient.jar \
commons-logging-jar=${JAVALIBDIR}/commons-logging.jar
WIKI_PUBLISHER_JAR_DEPENDS= \
${JAVALIBDIR}/commons-codec.jar:java/apache-commons-codec \
${JAVALIBDIR}/commons-httpclient.jar:java/apache-commons-httpclient \
${JAVALIBDIR}/commons-logging.jar:java/apache-commons-logging
WIKI_PUBLISHER_BUILD_DEPENDS= ${WIKI_PUBLISHER_JAR_DEPENDS}
WIKI_PUBLISHER_RUN_DEPENDS= ${WIKI_PUBLISHER_JAR_DEPENDS}
WIKI_PUBLISHER_VARS= BUNDLED_EXTENSIONS+=swext/wiki-publisher.oxt
# Don't run gnome-post-icons until after post-install generates the plist
TARGET_ORDER_OVERRIDE= 710:gnome-post-icons
# Force the SDK option on for makesum to ensure that unowinreg.dll is
# included in distinfo
.if make(makesum) || make(distclean)
WITH= SDK
.endif
.include
.if defined(WITH_DEBUG)
CONFIGURE_ARGS+= --enable-symbols
.endif
.include <${FILESDIR}/Makefile.localized>
-PYTHON_DISTFILE= 1d8728eb0dfcac72a0fd99c17ec7f386-Python-2.7.6.tgz
+PYTHON_DISTFILE= 38c84292658ed4456157195f1c9bcbe1-Python-2.7.18.tgz
GCC_EXTRA_DISTFILES= d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2 \
d62650a6f908e85643e557a236ea989c-vigra1.6.0.tar.gz
.if ${CHOSEN_COMPILER_TYPE} == clang
CPPFLAGS+= -I${LOCALBASE}/include
CONFIGURE_ARGS+= --with-system-boost --with-system-vigra
BUILD_DEPENDS+= ${LOCALBASE}/include/boost/shared_ptr.hpp:devel/boost-libs \
${LOCALBASE}/bin/vigra-config:graphics/vigra
. if ${ARCH} == amd64
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-align16
. endif
.endif
# These extra distfiles are needed to use the bundled versions of
# boost and vigra for compatiblity with gcc. Also include them
# for the makesum target so they are included in distinfo
.if ${CHOSEN_COMPILER_TYPE} == gcc || make(makesum) || make(distclean)
DISTFILES+= ${GCC_EXTRA_DISTFILES:C/.*/&:sf/g}
.endif
.if ${ARCH} == amd64
FREEBSD_ENV_SET= FreeBSDAMDEnv.Set.sh
PACKAGE_MIDDLE= ${PORTVERSION}_${OPSYS}_x86-64
.elif ${ARCH} == i386
FREEBSD_ENV_SET= FreeBSDX86Env.Set.sh
PACKAGE_MIDDLE= ${PORTVERSION}_${OPSYS}_x86
.elif ${ARCH} == powerpc64
FREEBSD_ENV_SET= FreeBSDPPC64Env.Set.sh
PACKAGE_MIDDLE= ${PORTVERSION}_${OPSYS}_ppc64
.endif
PACKAGE_PREFIX= Apache_OpenOffice
LOCALIZED_LANG?= en-US
-AOO_MAKE_ENV= ${MAKE_ENV:NCPPFLAGS=*:NCFLAGS=*:NCXXFLAGS=*}
+AOO_MAKE_ENV= ${MAKE_ENV:NCPPFLAGS=*:NCFLAGS=*:NCXXFLAGS=*:NLDFLAGS=*}
GNU_CONFIGURE= yes
WRKSUBDIR= ${WRKDIR}/aoo-${AOOVERSION}
WRKSRC?= ${WRKSUBDIR}/main
SUB_FILES= pkg-message
SUB_LIST= EXECBASE=${EXECBASE} AOOTAG=${AOOTAG} AOOUDIR=${AOOUDIR} \
PRINSTALLATION_BASEDIR=${PRINSTALLATION_BASEDIR}
CONFIGURE_ARGS+= \
--with-unix-wrapper=${EXECBASE} \
--with-alloc=system \
--with-ant-home=${LOCALBASE}/share/java/apache-ant \
--with-system-apache-commons=yes \
--with-commons-lang-jar=${JAVALIBDIR}/commons-lang.jar \
--with-system-apr \
--with-system-apr-util \
--with-system-beanshell \
--with-beanshell-jar=${JAVALIBDIR}/bsh.jar \
--enable-category-b \
--with-system-cairo --enable-cairo \
--with-system-coinmp \
--with-system-curl \
--with-system-dicts \
--with-epm=${LOCALBASE}/bin/epm \
--with-system-expat \
--disable-fetch-external \
--without-fonts \
--with-gnu-patch=${LOCALBASE}/bin/gpatch \
--with-gperf=${LOCALBASE}/bin/gperf \
--with-system-graphite \
--enable-gtk \
--with-system-hunspell \
--with-external-dict-dir=${LOCALBASE}/share/hunspell \
--with-system-hyphen \
--with-external-hyph-dir=${LOCALBASE}/share/hyphen \
--with-jdk-home=${JAVA_HOME} \
--with-system-jpeg \
--with-junit=${JAVALIBDIR}/junit.jar \
--with-system-libtextcat \
--disable-kde \
--disable-kde4 \
--with-system-libxml \
--with-system-libxslt \
--with-system-lucene \
--with-lucene-core-jar=${JAVALIBDIR}/lucene-core-3.6.2.jar \
--with-lucene-analyzers-jar=${JAVALIBDIR}/lucene-analyzers-3.6.2.jar \
--with-system-mythes \
--with-external-thes-dir=${LOCALBASE}/share/mythes \
--with-system-nss \
--enable-opengl \
--with-system-openssl \
--with-package-format="archive" \
--without-system-python \
--with-system-redland \
--with-system-sane \
--with-system-serf \
--with-system-stdlibs \
--with-vendor="FreeBSD ports system" \
--with-build-version="PKGNAME: ${PKGNAME:S/,/@/g}" \
--enable-verbose \
--with-system-xrender \
--with-system-zlib
.if defined (BUNDLED_EXTENSIONS)
CONFIGURE_ARGS+= --with-bundled-prereg-extensions="${BUNDLED_EXTENSIONS}"
.endif
CREATE_TREE= ${WRKSRC}/sysui/desktop/share/create_tree.sh
.include <${FILESDIR}/Makefile.knobs>
pre-everything::
# really tweak, extremely useful when you build all localized language versions
# needed after when you build with ALL_LOCALIZED_LANGS.
.if defined(TWEAK_L10N)
${RM} ${WRKDIR}/.PLIST*
${RM} ${WRKDIR}/.install_done.*
${RM} ${WRKDIR}/.package_done.*
${RM} ${WRKDIR}/.extract_done.*
${RM} ${WRKDIR}/.patch_done.*
${RM} ${WRKDIR}/.configure_done.*
${RM} ${WRKDIR}/.build_done.*
${MKDIR} ${WRKDIR}
${TOUCH} ${EXTRACT_COOKIE}
${TOUCH} ${PATCH_COOKIE}
${TOUCH} ${CONFIGURE_COOKIE}
${TOUCH} ${BUILD_COOKIE}
.endif
do-extract-SDK-on:
${CP} ${DISTDIR}/${DIST_SUBDIR}/unowinreg.dll ${WRKSRC}/external/unowinreg/
post-extract:
${TAR} -C ${WRKSUBDIR} -xzf ${DISTDIR}/${DIST_SUBDIR}/${EXTSRC}
${CP} ${DISTDIR}/${DIST_SUBDIR}/${PYTHON_DISTFILE} ${WRKSUBDIR}/ext_sources/${PYTHON_DISTFILE}
.if ${CHOSEN_COMPILER_TYPE} == gcc
. for f in ${GCC_EXTRA_DISTFILES}
${CP} ${DISTDIR}/${DIST_SUBDIR}/${f} ${WRKSUBDIR}/ext_sources/${f}
. endfor
.endif
${CP} ${FILESDIR}/freebsd-aoo-intro.png \
${WRKSRC}/default_images/introabout/intro.png
${CP} ${FILESDIR}/freebsd-aoo-about.png \
${WRKSRC}/default_images/introabout/about.png
${RM} -r ${WRKSRC}/l10n
${LN} -sf ${UNZIP_CMD} ${WRKSRC}/solenv/bin/unzip
${SED} -e '\|^For main/vcl/unx/generic/fontmanager/parseAFM|,/^__/p' \
-e '\|^For PostScript(R) AFM|,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_ADOBE}
${SED} -e '\|^For main/unixODBC|,/^__/p' \
-e '\|^For main/connectivity|,/^__/p' \
-e '\|^For main/libtextcat/data|,/^__/p' \
-e '\|^For integration of HSQLDB|,/^__/p' \
-e '\|^For C preprocessor|,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_BSD3CLAUSE}
${SED} -e '\|^For ICC |,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_BSD4CLAUSE}
${SED} -e '\|^For integration of the C++ Boost |,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_BSL}
${SED} -e '\|^For main/i18npool/source/breakiterator|,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_ICU}
${SED} -e '\|^For Multi-Dimensional Data|,/^__/p' \
-e '\|^For XSLT MathML Library|,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_MIT}
${SED} -e '\|^For XMLSec Library|,/^__/p' \
-e d ${WRKSRC}/LICENSE_category_b >> ${LICENSE_FILE_MIT}
${SED} -e '\|^For Saxon|,/^__/p' \
-e d ${WRKSRC}/LICENSE_category_b > ${LICENSE_FILE_MPL10}
- ${SED} -e '\|^For Saxon|,$$d' \
- ${WRKSRC}/LICENSE_category_b > ${LICENSE_FILE_MPL11}
+ ${SED} -e '\|^The following Licenses have some restrictions|,/^- For Network/p' \
+ -e d ${WRKSRC}/LICENSE_category_b | \
+ ${SED} -e :a -e '$d;N;2,3ba' -e 'P;D' > ${LICENSE_FILE_MPL11}
${SED} -e '\|^For main/filter/source/config/tools/merge/pyAltFCFGMerge|,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_PSFL}
+ ${ECHO} '' >> ${LICENSE_FILE_PSFL}
+ ${SED} -e '\|^For Python|,/^__/p' \
+ -e d ${WRKSRC}/LICENSE >> ${LICENSE_FILE_PSFL}
${SED} -e '\|^For main/twain|,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_TWAIN}
${SED} -e '\|^For main/MathMLDTD|,/^__/p' \
-e d ${WRKSRC}/LICENSE > ${LICENSE_FILE_W3C}
post-patch:
${REINPLACE_CMD} -e "/^ICONVERSION/s/=.*/= '${AOOVERSION1}'/" \
${WRKSRC}/sysui/desktop/productversion.mk
${REINPLACE_CMD} -e "s|%%JAVA_HOME%%|${JAVA_HOME}|" \
${WRKSRC}/desktop/scripts/soffice.sh
- ${REINPLACE_CMD} -e "/#test/i\\${.newline} return '${GITREVISION}';" \
- ${WRKSRC}/solenv/bin/modules/SvnRevision.pm
${REINPLACE_CMD} -e '/^mkdir -p/,$$d' ${CREATE_TREE}
.if ${CHOSEN_COMPILER_TYPE} == gcc
# g++49 -Os sometimes leaves inline class methods undefined,
# affects fmgridif.cxx and ColumnControl.cxx
# See:
if [ ${CXX} = g++49 ]; then \
${REINPLACE_CMD} -e "s/ := -Os/ := -Os -fno-devirtualize -fno-devirtualize-speculatively/" ${WRKSRC}/solenv/gbuild/platform/freebsd.mk; \
${REINPLACE_CMD} -e "s/=-Os /=-Os -fno-devirtualize -fno-devirtualize-speculatively /" ${WRKSRC}/solenv/inc/unxfbsdi.mk; \
fi
.elif ${ARCH} == i386 && ${CHOSEN_COMPILER_TYPE} == clang
# autodoc and uno (bridgetest) core dump when built with with -Os
# on i386, affects file.cxx and bridgetest.cxx (at least).
# Using -O2 optimiztion works, and -Os is essentially -O2 with out
# loop unrolling.
# Changing optimization in just unxfbsdi.mk is sufficient to get
# a successful build, but change it in both places to avoid the
# possibility of obscure runtime problems, which is likely
# since this seems to be a generic bug in code generation for
# exception handling.
# See:
${REINPLACE_CMD} -e "s/=-Os /=-O2 -fno-unroll-loops /" ${WRKSRC}/solenv/inc/unxfbsdi.mk
${REINPLACE_CMD} -e "s/ := -Os/ := -O2 -fno-unroll-loops/" ${WRKSRC}/solenv/gbuild/platform/freebsd.mk
.endif
do-build:
${PRINTF} "[repositories]\nmain=active\nextras=active\n" > ${WRKSUBDIR}/source_config
cd ${WRKSRC} ; ./bootstrap
#
# numproc controls the number of parallel makes.
#
# dmproc is passed to dmake and controls parallelization at that
# level.
#
# dmproc > numproc seems to give shorter build times than
# numproc > dmproc.
#
# Select values for numproc and dmproc such that:
# * numproc*dmproc >= MAKE_JOBS_NUMBER
# * minimize numproc*dmproc-MAKE_JOBS_NUMBER
# * dmproc >= numproc
# * dmproc <= 2*numproc if MAKE_JOBS_NUMBER <= 3
#
if [ ${MAKE_JOBS_NUMBER} -le 3 ] ; then \
numproc=1 ; dmproc=${MAKE_JOBS_NUMBER} ; \
else \
a=1 ; \
while [ $$(( 2 * $${a} * $${a} )) -lt ${MAKE_JOBS_NUMBER} ]; do \
a=$$(( $${a} + 1 )) ; \
done ; \
b=$$(( $${a} + 1 )) ; \
ad=$$(( ( ${MAKE_JOBS_NUMBER} + $${a} - 1 ) / $${a} )) ; \
ap=$$(( $${a} * $${ad} )) ; \
bd=$$(( ( ${MAKE_JOBS_NUMBER} + $${b} - 1 ) / $${b} )) ; \
bp=$$(( $${b} * $${bd} )) ; \
if [ $${ap} -le $${bp} ]; then \
numproc=$${a} ; dmproc=$${ad} ; \
else \
numproc=$${b} ; dmproc=$${bd} ; \
fi ; \
fi ; \
cd ${WRKSRC}/instsetoo_native ; \
export ${AOO_MAKE_ENV} ; \
. ../${FREEBSD_ENV_SET} ; \
build.pl --all -P$${numproc} -- -P$${dmproc}
do-install:
@${MKDIR} ${STAGEDIR}${PRINSTALLATION_BASEDIR} \
${STAGEDIR}${PREFIX}/share/mime/packages
@cd ${WRKSRC} ; \
. ${FREEBSD_ENV_SET} ; \
cd instsetoo_native/$${INPATH}/Apache_OpenOffice/archive/install/${LOCALIZED_LANG}/ ; \
for i in *.tar.?z ; do \
${ECHO_CMD} "extracting $$i" ; \
${TAR} -s '|./[^/]*/||' -xz -f $$i \
-C ${STAGEDIR}${PRINSTALLATION_BASEDIR} ; \
done
${FIND} ${STAGEDIR}${PRINSTALLATION_BASEDIR} -type d -exec ${CHMOD} 755 {} \;
${REINPLACE_CMD} \
-e '/^UserInstallation/s/=.*/=$$SYSUSERCONFIG\/${AOOUDIR}/' \
${STAGEDIR}${OOPATH}/program/bootstraprc
@${RM} ${STAGEDIR}${OOPATH}/program/bootstraprc.bak
@${ECHO_CMD} "adding wrapper scripts";
@${CP} ${FILESDIR}/openoffice-wrapper ${WRKDIR}/
@${REINPLACE_CMD} -e 's#%%OOPATH%%#${OOPATH}#g' \
-e 's#%%EXECBASE%%#${EXECBASE}#g' \
${WRKDIR}/openoffice-wrapper
${INSTALL_SCRIPT} ${WRKDIR}/openoffice-wrapper \
${STAGEDIR}${PREFIX}/bin/${EXECBASE}
@cd ${STAGEDIR}${PREFIX}/bin; for i in printeradmin sbase scalc sdraw \
simpress smath spadmin swriter ; do \
${LN} -f ${EXECBASE} ${EXECBASE}-$${i} ; \
done
@${ECHO_CMD} "adding desktop support"
@cd ${WRKSRC} ; \
. ${FREEBSD_ENV_SET} ; \
cd sysui/$${INPATH}/misc/openoffice ; \
DESTDIR=${STAGEDIR} \
GNOMEDIR=${PREFIX} \
ICON_PREFIX=openoffice${AOOVERSION1} \
ICON_SOURCE_DIR=${WRKSRC}/sysui/desktop/icons \
ICON_THEMES="hicolor/??x??" \
KDEMAINDIR=${PREFIX} \
PREFIX=openoffice${AOOVERSION1} \
${SH} ${CREATE_TREE} ; \
${INSTALL_DATA} apacheopenoffice.xml \
${STAGEDIR}/${PREFIX}/share/mime/packages
@cd ${STAGEDIR}${DESKTOPDIR}; for i in base calc draw impress \
javafilter math printeradmin qstart startcenter writer ; do \
${LN} -sf ${XDGREL}/$${i}.desktop ${EXECBASE}-$${i}.desktop ; \
done
do-install-SDK-on:
${TAR} -s '|./[^/]*/||' -xz -C ${STAGEDIR}${PRINSTALLATION_BASEDIR} \
-f ${WRKSRC}/instsetoo_native/unxfbsd*.pro/Apache_OpenOffice_SDK/archive/install/${LOCALIZED_LANG}/*.tar.gz
@f=${STAGEDIR}${OOPATH}/sdk/bin/unoapploader ; \
${CHMOD} 644 $${f} ; ${STRIP_CMD} $${f} ; ${CHMOD} 444 $${f}
post-install:
@${ECHO_CMD} "generating plist";
@cd ${STAGEDIR}${PREFIX} ; (\
${FIND} -s bin -name "${EXECBASE}*" ; \
${FIND} -s ${INSTALLATION_BASEDIR} share/applications \
share/application-registry share/icons \
share/mime-info share/mime share/mimelnk \! -type d ; \
${FIND} ${INSTALLATION_BASEDIR} -type d -empty | ${SORT} -r | \
${SED} -e 's/^/@dir /' ; \
) >> ${TMPPLIST}
.include <${FILESDIR}/Makefile.others>
.include
Index: branches/2020Q4/editors/openoffice-4/distinfo
===================================================================
--- branches/2020Q4/editors/openoffice-4/distinfo (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/distinfo (revision 554862)
@@ -1,13 +1,13 @@
-TIMESTAMP = 1589749652
-SHA256 (openoffice/apache-openoffice-4.1.7-46059c9192-src.tar.bz2) = 512952c78b3ec22b15bc1a444b4fa7e7c76c25c985a75b6977e62c6ddae2e3ed
-SIZE (openoffice/apache-openoffice-4.1.7-46059c9192-src.tar.bz2) = 220014716
+TIMESTAMP = 1604092476
+SHA256 (openoffice/apache-openoffice-4.1.8-18848f57b6-src.tar.bz2) = 7ae5ef30dd931f369fff6d9d33a089ba749d019dce94403a1a7c9aeb4a100098
+SIZE (openoffice/apache-openoffice-4.1.8-18848f57b6-src.tar.bz2) = 228610492
SHA256 (openoffice/ApacheOpenOffice.ext_sources.4.x.x.20150707.tar.gz) = 966a8333c83a18ddd84401389006d6e0b52b8175924b808b54b88211669985fa
SIZE (openoffice/ApacheOpenOffice.ext_sources.4.x.x.20150707.tar.gz) = 28957004
-SHA256 (openoffice/1d8728eb0dfcac72a0fd99c17ec7f386-Python-2.7.6.tgz) = 99c6860b70977befa1590029fae092ddb18db1d69ae67e8b9385b66ed104ba58
-SIZE (openoffice/1d8728eb0dfcac72a0fd99c17ec7f386-Python-2.7.6.tgz) = 14725931
+SHA256 (openoffice/38c84292658ed4456157195f1c9bcbe1-Python-2.7.18.tgz) = da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814
+SIZE (openoffice/38c84292658ed4456157195f1c9bcbe1-Python-2.7.18.tgz) = 17539408
SHA256 (openoffice/unowinreg.dll) = f563e522922133db9340b0306711c2d8767cc3481dd9e7d9b0d059906d12653c
SIZE (openoffice/unowinreg.dll) = 6144
SHA256 (openoffice/d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2) = fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52
SIZE (openoffice/d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2) = 58146647
SHA256 (openoffice/d62650a6f908e85643e557a236ea989c-vigra1.6.0.tar.gz) = 1f188ac03a8aa4663223eca8c82f91a55293d066d67127082e29a7dba1a98c9f
SIZE (openoffice/d62650a6f908e85643e557a236ea989c-vigra1.6.0.tar.gz) = 16525605
Index: branches/2020Q4/editors/openoffice-4/files/patch-vcl_source_glyphs_graphite__layout.cxx
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-vcl_source_glyphs_graphite__layout.cxx (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-vcl_source_glyphs_graphite__layout.cxx (nonexistent)
@@ -1,14 +0,0 @@
---- vcl/source/glyphs/graphite_layout.cxx.orig 2014-02-25 08:33:06 UTC
-+++ vcl/source/glyphs/graphite_layout.cxx
-@@ -107,9 +107,10 @@ namespace
- typedef ext_std::pair glyph_range_t;
- typedef ext_std::pair glyph_set_range_t;
-
-- inline long round(const float n) {
-+ inline long round_(const float n) {
- return long(n + (n < 0 ? -0.5 : 0.5));
- }
-+#define round round_
-
-
- template
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-vcl_source_glyphs_graphite__layout.cxx
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-configure.in
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-configure.in (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-configure.in (nonexistent)
@@ -1,32 +0,0 @@
---- configure.in.orig 2019-11-12 05:10:21 UTC
-+++ configure.in
-@@ -367,11 +367,11 @@ AC_ARG_WITH(bundled-extension-blobs,
- and comply with their distribution requirements by updating the
- files LICENSE_aggregated and NOTICE_aggregated accordingly
- ],,)
--#AC_ARG_WITH(bundled-prereg-extensions,
--#[ --with-bundled-prereg-extensions Whitespace seperated list of files in the tarball directory that
--# are to be bundled as pre-registered extensions. Make sure to only bundle
--# extensions which can be installed without requiring a license dialog
--#],,)
-+AC_ARG_WITH(bundled-prereg-extensions,
-+[ --with-bundled-prereg-extensions Whitespace seperated list of files in the tarball directory that
-+ are to be bundled as pre-registered extensions. Make sure to only bundle
-+ extensions which can be installed without requiring a license dialog
-+],,)
- AC_ARG_ENABLE(bundled-dictionaries,
- [ --enable-bundled-dictionaries Download dictionaries (spelling, hyphenation, thesaurus)
- according to main/extensions.lst and bundle them. Make sure to
-@@ -1538,9 +1538,9 @@ else
- fi
- AC_SUBST(BUNDLED_EXTENSION_BLOBS)
-
--#dnl ===================================================================
--#dnl Check extensions that are to be bundled as pre-registerd
--#dnl ===================================================================
-+dnl ===================================================================
-+dnl Check extensions that are to be bundled as pre-registerd
-+dnl ===================================================================
- if test -n "$with_bundled_prereg_extensions"; then
- BUNDLED_PREREG_EXTENSIONS="$with_bundled_prereg_extensions"
- else
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-configure.in
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-boost1.67
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-boost1.67 (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-boost1.67 (nonexistent)
@@ -1,36 +0,0 @@
-Index: basegfx/source/range/b2drangeclipper.cxx
-===================================================================
---- basegfx/source/range/b2drangeclipper.cxx (revision 1829412)
-+++ basegfx/source/range/b2drangeclipper.cxx (working copy)
-@@ -35,7 +35,12 @@
-
- #include
- #include
--#include
-+#include
-+#if BOOST_VERSION < 106700
-+# include
-+#else
-+# include
-+#endif
-
- #include
- #include
-Index: slideshow/source/inc/listenercontainer.hxx
-===================================================================
---- slideshow/source/inc/listenercontainer.hxx (revision 1829412)
-+++ slideshow/source/inc/listenercontainer.hxx (working copy)
-@@ -24,7 +24,12 @@
- #define INCLUDED_SLIDESHOW_LISTENERCONTAINER_HXX
-
- #include
--#include
-+#include
-+#if BOOST_VERSION < 106700
-+# include
-+#else
-+# include
-+#endif
- #include
- #include
-
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-boost1.67
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-gmake43
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-gmake43 (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-gmake43 (nonexistent)
@@ -1,11 +0,0 @@
---- solenv/gbuild/Tempfile.mk.orig 2019-09-17 22:55:21 UTC
-+++ solenv/gbuild/Tempfile.mk
-@@ -27,7 +27,7 @@ $(strip $(1)
- $(eval gb_var2file_helpervar := $$(shell printf "%s" "" > $(1) ))\
- $(foreach item,$(3),$(eval gb_var2file_curblock += $(item)
- ifeq ($$(words $$(gb_var2file_curblock)),$(2))
-- gb_var2file_helpervar := $$(shell printf "%s" "$$(gb_var2file_curblock)" >> $(1) )
-+ gb_var2file_helpervar := $$(shell printf " %s" "$$(gb_var2file_curblock)" >> $(1) )
- gb_var2file_curblock :=
- endif
- ))\
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-gmake43
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-lingucomponent_source_spellcheck_spell_sspellimp.cxx
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-lingucomponent_source_spellcheck_spell_sspellimp.cxx (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-lingucomponent_source_spellcheck_spell_sspellimp.cxx (nonexistent)
@@ -1,14 +0,0 @@
-Minimal exceprt from upstream fix only to unbreak build
-
-https://cgit.freedesktop.org/libreoffice/core/commit/?id=072b32442e3f6f220936a93ad1fcbde57746b747
-
---- lingucomponent/source/spellcheck/spell/sspellimp.cxx.orig 2016-01-29 07:10:27 UTC
-+++ lingucomponent/source/spellcheck/spell/sspellimp.cxx
-@@ -37,7 +37,6 @@
-
- #include
- #include
--#include
- #include
-
- #include
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-lingucomponent_source_spellcheck_spell_sspellimp.cxx
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-nss
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-nss (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-nss (nonexistent)
@@ -1,69 +0,0 @@
---- extensions/source/mozbootstrap/MNSProfileDiscover.cxx.orig 2014-04-22 09:27:50 UTC
-+++ extensions/source/mozbootstrap/MNSProfileDiscover.cxx
-@@ -123,9 +123,14 @@ namespace connectivity
- {
- isRelative = sIsRelative.toInt32();
- }
-+ if (isRelative)
-+ {
-+ // Make it absolute
-+ profilePath = regDir + profilePath;
-+ }
-
- ProfileStruct* profileItem = new ProfileStruct(product,profileName,
-- regDir + profilePath);
-+ profilePath);
- m_Product.mProfileList[profileName] = profileItem;
-
- sal_Int32 isDefault = 0;
---- xmlsecurity/source/xmlsec/nss/makefile.mk.orig 2015-09-28 07:58:41 UTC
-+++ xmlsecurity/source/xmlsec/nss/makefile.mk
-@@ -42,6 +42,10 @@ CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
- @echo "No nss -> no libxmlsec -> no xmlsecurity/nss"
- .ENDIF
-
-+.IF "$(SYSTEM_NSS)" == "YES"
-+CFLAGS+=-DSYSTEM_NSS
-+.ENDIF
-+
- .IF "$(SYSTEM_NSS)" != "YES"
- MOZ_INC = $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/mozilla
- NSS_CFLAGS = -I$(MOZ_INC)$/nss
---- xmlsecurity/source/xmlsec/nss/nssinitializer.cxx.orig 2015-09-24 07:42:09 UTC
-+++ xmlsecurity/source/xmlsec/nss/nssinitializer.cxx
-@@ -234,7 +234,7 @@ void deleteRootsModule()
- //the location of the roots module to the profile, which makes FF2 and TB2 use
- //it instead of there own module.
- //
--//When using SYSTEM_MOZILLA then the libnss3.so lib is typically found in
-+//When using SYSTEM_NSS then the libnss3.so lib is typically found in
- ///usr/lib. This folder may, however, NOT contain the roots certificate
- //module. That is, just providing the library name in SECMOD_LoadUserModule or
- //SECMOD_AddNewModule will FAIL to load the mozilla unless the LD_LIBRARY_PATH
-@@ -289,7 +289,7 @@ bool nsscrypto_initialize( const css::un
- out_nss_init = true;
-
- #ifdef XMLSEC_CRYPTO_NSS
--#if defined SYSTEM_MOZILLA
-+#if defined SYSTEM_NSS
- if (!SECMOD_HasRootCerts())
- {
- #endif
-@@ -298,7 +298,7 @@ bool nsscrypto_initialize( const css::un
- #if defined OS2
- // YD the nss system dlls names are ending with 'k'
- OUString rootModule(RTL_CONSTASCII_USTRINGPARAM( "nssckbik" SAL_DLLEXTENSION));
--#elif defined SYSTEM_MOZILLA
-+#elif defined SYSTEM_NSS
- OUString rootModule(RTL_CONSTASCII_USTRINGPARAM( "libnssckbi" SAL_DLLEXTENSION));
- #else
- OUString rootModule(RTL_CONSTASCII_USTRINGPARAM( "${OOO_BASE_DIR}/program/libnssckbi" SAL_DLLEXTENSION));
-@@ -352,7 +352,7 @@ bool nsscrypto_initialize( const css::un
- xmlsec_trace("Adding new root certificate module failed.");
- return_value = false;
- }
--#if SYSTEM_MOZILLA
-+#if SYSTEM_NSS
- }
- #endif
- #endif
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-nss
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-basebmp_inc_basebmp_packedpixeliterator.hxx
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-basebmp_inc_basebmp_packedpixeliterator.hxx (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-basebmp_inc_basebmp_packedpixeliterator.hxx (nonexistent)
@@ -1,20 +0,0 @@
---- basebmp/inc/basebmp/packedpixeliterator.hxx.orig 2019-08-14 17:37:07 UTC
-+++ basebmp/inc/basebmp/packedpixeliterator.hxx
-@@ -606,14 +606,17 @@ template< typename Valuetype, (public)
- >> get_shift(remainder));
- }
-
-+/***** XXX - This appears to be unused and fails to compile with gcc9
- value_type get(difference_type const & d) const
- {
-+// XXX - should x(d.x) be (x + dx)?
- const int remainder( x(d.x) % num_intraword_positions );
-
- return (unsigned_cast(*current(d.x,d.y) &
- get_mask(remainder))
- >> get_shift(remainder));
- }
-+******/
-
- void set( value_type v ) const
- {
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-basebmp_inc_basebmp_packedpixeliterator.hxx
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-bridges_source_cpp__uno_gcc3__freebsd__x86-64_uno2cpp.cxx
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-bridges_source_cpp__uno_gcc3__freebsd__x86-64_uno2cpp.cxx (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-bridges_source_cpp__uno_gcc3__freebsd__x86-64_uno2cpp.cxx (nonexistent)
@@ -1,12 +0,0 @@
---- bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx.orig 2016-09-10 13:54:56 UTC
-+++ bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx
-@@ -28,6 +28,9 @@
- #include
- #include
- #include
-+#if OSL_DEBUG_LEVEL > 1
-+#include
-+#endif
- #include
- #include
-
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-bridges_source_cpp__uno_gcc3__freebsd__x86-64_uno2cpp.cxx
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-openoffice4_powerpc64
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-openoffice4_powerpc64 (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-openoffice4_powerpc64 (nonexistent)
@@ -1,3967 +0,0 @@
---- bridges/prj/build.lst.orig
-+++ bridges/prj/build.lst
-@@ -9,6 +9,8 @@
- br bridges\source\cpp_uno\gcc3_freebsd_intel nmake - u br_gcc3fi br_cppuno_shared br_unotypes br_inc NULL
- br bridges\source\cpp_uno\gcc3_linux_x86-64 nmake - u br_gcc3lx br_cppuno_shared br_unotypes br_inc NULL
- br bridges\source\cpp_uno\gcc3_freebsd_x86-64 nmake - u br_gcc3fx br_cppuno_shared br_unotypes br_inc NULL
-+br bridges\source\cpp_uno\gcc3_freebsd_powerpc nmake - u br_gcc3fp br_cppuno_shared br_unotypes br_inc NULL
-+br bridges\source\cpp_uno\gcc3_freebsd_powerpc64 nmake - u br_gcc3fp_64 br_cppuno_shared br_unotypes br_inc NULL
- br bridges\source\cpp_uno\gcc3_linux_powerpc nmake - u br_gcc3lp br_cppuno_shared br_unotypes br_inc NULL
- br bridges\source\cpp_uno\gcc3_linux_powerpc64 nmake - u br_gcc3lp_64 br_cppuno_shared br_unotypes br_inc NULL
- br bridges\source\cpp_uno\gcc3_linux_mips nmake - u br_gcc3lmips br_cppuno_shared br_unotypes br_inc NULL
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc/cpp2uno.cxx
-@@ -0,0 +1,791 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_bridges.hxx"
-+
-+#include
-+
-+#include
-+#include
-+#include
-+
-+#include "bridges/cpp_uno/shared/bridge.hxx"
-+#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
-+#include "bridges/cpp_uno/shared/types.hxx"
-+#include "bridges/cpp_uno/shared/vtablefactory.hxx"
-+
-+#include "share.hxx"
-+// #include
-+
-+
-+using namespace ::com::sun::star::uno;
-+
-+namespace
-+{
-+
-+//==================================================================================================
-+static typelib_TypeClass cpp2uno_call(
-+ bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
-+ const typelib_TypeDescription * pMemberTypeDescr,
-+ typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
-+ sal_Int32 nParams, typelib_MethodParameter * pParams,
-+ void ** gpreg, void ** fpreg, void ** ovrflw,
-+ sal_Int64 * pRegisterReturn /* space for register return */ )
-+{
-+ int ng = 0; //number of gpr registers used
-+#ifndef __NO_FPRS__
-+ int nf = 0; //number of fpr regsiters used
-+#endif
-+ void ** pCppStack; //temporary stack pointer
-+
-+ // gpreg: [ret *], this, [gpr params]
-+ // fpreg: [fpr params]
-+ // ovrflw: [gpr or fpr params (properly aligned)]
-+
-+ // return
-+ typelib_TypeDescription * pReturnTypeDescr = 0;
-+ if (pReturnTypeRef)
-+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-+
-+ void * pUnoReturn = 0;
-+ void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
-+
-+ if (pReturnTypeDescr)
-+ {
-+ if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
-+ {
-+ pUnoReturn = pRegisterReturn; // direct way for simple types
-+ }
-+ else // complex return via ptr (pCppReturn)
-+ {
-+ pCppReturn = *(void **)gpreg;
-+ gpreg++;
-+ ng++;
-+
-+ pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-+ ? alloca( pReturnTypeDescr->nSize )
-+ : pCppReturn); // direct way
-+ }
-+ }
-+ // pop this
-+ gpreg++;
-+ ng++;
-+
-+ // stack space
-+ OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
-+ // parameters
-+ void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
-+ void ** pCppArgs = pUnoArgs + nParams;
-+ // indizes of values this have to be converted (interface conversion cpp<=>uno)
-+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
-+ // type descriptions for reconversions
-+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
-+
-+ sal_Int32 nTempIndizes = 0;
-+
-+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
-+ {
-+ const typelib_MethodParameter & rParam = pParams[nPos];
-+ typelib_TypeDescription * pParamTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-+
-+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
-+ // value
-+ {
-+
-+ switch (pParamTypeDescr->eTypeClass)
-+ {
-+
-+ case typelib_TypeClass_DOUBLE:
-+#ifndef __NO_FPRS__
-+ if (nf < 8) {
-+ pCppArgs[nPos] = fpreg;
-+ pUnoArgs[nPos] = fpreg;
-+ nf++;
-+ fpreg += 2;
-+#else
-+ if (ng & 1) {
-+ ng++;
-+ gpreg++;
-+ }
-+ if (ng < 8) {
-+ pCppArgs[nPos] = gpreg;
-+ pUnoArgs[nPos] = gpreg;
-+ ng += 2;
-+ gpreg += 2;
-+#endif
-+ } else {
-+ if (((long)ovrflw) & 4) ovrflw++;
-+ pCppArgs[nPos] = ovrflw;
-+ pUnoArgs[nPos] = ovrflw;
-+ ovrflw += 2;
-+ }
-+ break;
-+
-+ case typelib_TypeClass_FLOAT:
-+ // fpreg are all double values so need to
-+ // modify fpreg to be a single word float value
-+#ifndef __NO_FPRS__
-+ if (nf < 8) {
-+ float tmp = (float) (*((double *)fpreg));
-+ (*((float *) fpreg)) = tmp;
-+ pCppArgs[nPos] = fpreg;
-+ pUnoArgs[nPos] = fpreg;
-+ nf++;
-+ fpreg += 2;
-+#else
-+ if (ng < 8) {
-+ pCppArgs[nPos] = gpreg;
-+ pUnoArgs[nPos] = gpreg;
-+ ng++;
-+ gpreg++;
-+#endif
-+ } else {
-+#if 0 /* abi is not being followed correctly */
-+ if (((long)ovrflw) & 4) ovrflw++;
-+ float tmp = (float) (*((double *)ovrflw));
-+ (*((float *) ovrflw)) = tmp;
-+ pCppArgs[nPos] = ovrflw;
-+ pUnoArgs[nPos] = ovrflw;
-+ ovrflw += 2;
-+#else
-+ pCppArgs[nPos] = ovrflw;
-+ pUnoArgs[nPos] = ovrflw;
-+ ovrflw += 1;
-+#endif
-+ }
-+ break;
-+
-+ case typelib_TypeClass_HYPER:
-+ case typelib_TypeClass_UNSIGNED_HYPER:
-+ if (ng & 1) {
-+ ng++;
-+ gpreg++;
-+ }
-+ if (ng < 8) {
-+ pCppArgs[nPos] = gpreg;
-+ pUnoArgs[nPos] = gpreg;
-+ ng += 2;
-+ gpreg += 2;
-+ } else {
-+ if (((long)ovrflw) & 4) ovrflw++;
-+ pCppArgs[nPos] = ovrflw;
-+ pUnoArgs[nPos] = ovrflw;
-+ ovrflw += 2;
-+ }
-+ break;
-+
-+ case typelib_TypeClass_BYTE:
-+ case typelib_TypeClass_BOOLEAN:
-+ if (ng < 8) {
-+ pCppArgs[nPos] = (((char *)gpreg) + 3);
-+ pUnoArgs[nPos] = (((char *)gpreg) + 3);
-+ ng++;
-+ gpreg++;
-+ } else {
-+ pCppArgs[nPos] = (((char *)ovrflw) + 3);
-+ pUnoArgs[nPos] = (((char *)ovrflw) + 3);
-+ ovrflw++;
-+ }
-+ break;
-+
-+
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ if (ng < 8) {
-+ pCppArgs[nPos] = (((char *)gpreg)+ 2);
-+ pUnoArgs[nPos] = (((char *)gpreg)+ 2);
-+ ng++;
-+ gpreg++;
-+ } else {
-+ pCppArgs[nPos] = (((char *)ovrflw) + 2);
-+ pUnoArgs[nPos] = (((char *)ovrflw) + 2);
-+ ovrflw++;
-+ }
-+ break;
-+
-+
-+ default:
-+ if (ng < 8) {
-+ pCppArgs[nPos] = gpreg;
-+ pUnoArgs[nPos] = gpreg;
-+ ng++;
-+ gpreg++;
-+ } else {
-+ pCppArgs[nPos] = ovrflw;
-+ pUnoArgs[nPos] = ovrflw;
-+ ovrflw++;
-+ }
-+ break;
-+
-+ }
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ else // ptr to complex value | ref
-+ {
-+
-+ if (ng < 8) {
-+ pCppArgs[nPos] = *(void **)gpreg;
-+ pCppStack = gpreg;
-+ ng++;
-+ gpreg++;
-+ } else {
-+ pCppArgs[nPos] = *(void **)ovrflw;
-+ pCppStack = ovrflw;
-+ ovrflw++;
-+ }
-+
-+ if (! rParam.bIn) // is pure out
-+ {
-+ // uno out is unconstructed mem!
-+ pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
-+ pTempIndizes[nTempIndizes] = nPos;
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ // is in/inout
-+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
-+ {
-+ uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-+ *(void **)pCppStack, pParamTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ else // direct way
-+ {
-+ pUnoArgs[nPos] = *(void **)pCppStack;
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ }
-+ }
-+
-+ // ExceptionHolder
-+ uno_Any aUnoExc; // Any will be constructed by callee
-+ uno_Any * pUnoExc = &aUnoExc;
-+
-+ // invoke uno dispatch call
-+ (*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
-+
-+ // in case an exception occured...
-+ if (pUnoExc)
-+ {
-+ // destruct temporary in/inout params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+
-+ if (pParams[nIndex].bIn) // is in/inout => was constructed
-+ uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
-+ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
-+ }
-+ if (pReturnTypeDescr)
-+ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-+
-+ CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() );
-+ // has to destruct the any
-+ // is here for dummy
-+ return typelib_TypeClass_VOID;
-+ }
-+ else // else no exception occured...
-+ {
-+ // temporary params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
-+
-+ if (pParams[nIndex].bOut) // inout/out
-+ {
-+ // convert and assign
-+ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-+ uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
-+ pThis->getBridge()->getUno2Cpp() );
-+ }
-+ // destroy temp uno param
-+ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
-+
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ // return
-+ if (pCppReturn) // has complex return
-+ {
-+ if (pUnoReturn != pCppReturn) // needs reconversion
-+ {
-+ uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
-+ pThis->getBridge()->getUno2Cpp() );
-+ // destroy temp uno return
-+ uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
-+ }
-+ // complex return ptr is set to return reg
-+ *(void **)pRegisterReturn = pCppReturn;
-+ }
-+ if (pReturnTypeDescr)
-+ {
-+ typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
-+ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-+ return eRet;
-+ }
-+ else
-+ return typelib_TypeClass_VOID;
-+ }
-+}
-+
-+
-+//==================================================================================================
-+static typelib_TypeClass cpp_mediate(
-+ sal_Int32 nFunctionIndex,
-+ sal_Int32 nVtableOffset,
-+ void ** gpreg, void ** fpreg, void ** ovrflw,
-+ sal_Int64 * pRegisterReturn /* space for register return */ )
-+{
-+ OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
-+
-+ // gpreg: [ret *], this, [other gpr params]
-+ // fpreg: [fpr params]
-+ // ovrflw: [gpr or fpr params (properly aligned)]
-+
-+ void * pThis;
-+ if (nFunctionIndex & 0x80000000 )
-+ {
-+ nFunctionIndex &= 0x7fffffff;
-+ pThis = gpreg[1];
-+ }
-+ else
-+ {
-+ pThis = gpreg[0];
-+ }
-+
-+ pThis = static_cast< char * >(pThis) - nVtableOffset;
-+ bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
-+ = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
-+ pThis);
-+
-+ typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
-+
-+ OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
-+ if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
-+ {
-+ throw RuntimeException(
-+ rtl::OUString::createFromAscii("illegal vtable index!"),
-+ (XInterface *)pThis );
-+ }
-+
-+ // determine called method
-+ sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
-+ OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
-+
-+ TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
-+
-+ typelib_TypeClass eRet;
-+ switch (aMemberDescr.get()->eTypeClass)
-+ {
-+ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-+ {
-+ if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
-+ {
-+ // is GET method
-+ eRet = cpp2uno_call(
-+ pCppI, aMemberDescr.get(),
-+ ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
-+ 0, 0, // no params
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ else
-+ {
-+ // is SET method
-+ typelib_MethodParameter aParam;
-+ aParam.pTypeRef =
-+ ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
-+ aParam.bIn = sal_True;
-+ aParam.bOut = sal_False;
-+
-+ eRet = cpp2uno_call(
-+ pCppI, aMemberDescr.get(),
-+ 0, // indicates void return
-+ 1, &aParam,
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ break;
-+ }
-+ case typelib_TypeClass_INTERFACE_METHOD:
-+ {
-+ // is METHOD
-+ switch (nFunctionIndex)
-+ {
-+ case 1: // acquire()
-+ pCppI->acquireProxy(); // non virtual call!
-+ eRet = typelib_TypeClass_VOID;
-+ break;
-+ case 2: // release()
-+ pCppI->releaseProxy(); // non virtual call!
-+ eRet = typelib_TypeClass_VOID;
-+ break;
-+ case 0: // queryInterface() opt
-+ {
-+ typelib_TypeDescription * pTD = 0;
-+ TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
-+ if (pTD)
-+ {
-+ XInterface * pInterface = 0;
-+ (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
-+ pCppI->getBridge()->getCppEnv(),
-+ (void **)&pInterface, pCppI->getOid().pData,
-+ (typelib_InterfaceTypeDescription *)pTD );
-+
-+ if (pInterface)
-+ {
-+ ::uno_any_construct(
-+ reinterpret_cast< uno_Any * >( gpreg[0] ),
-+ &pInterface, pTD, cpp_acquire );
-+ pInterface->release();
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ *(void **)pRegisterReturn = gpreg[0];
-+ eRet = typelib_TypeClass_ANY;
-+ break;
-+ }
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ }
-+ } // else perform queryInterface()
-+ default:
-+ eRet = cpp2uno_call(
-+ pCppI, aMemberDescr.get(),
-+ ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
-+ ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
-+ ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ break;
-+ }
-+ default:
-+ {
-+ throw RuntimeException(
-+ rtl::OUString::createFromAscii("no member description found!"),
-+ (XInterface *)pThis );
-+ // is here for dummy
-+ eRet = typelib_TypeClass_VOID;
-+ }
-+ }
-+
-+ return eRet;
-+}
-+
-+//==================================================================================================
-+/**
-+ * is called on incoming vtable calls
-+ * (called by asm snippets)
-+ */
-+static void cpp_vtable_call( int nFunctionIndex, int nVtableOffset, void** gpregptr, void** fpregptr, void** ovrflw)
-+{
-+ sal_Int32 gpreg[8];
-+ memcpy( gpreg, gpregptr, 32);
-+
-+#ifndef __NO_FPRS__
-+ double fpreg[8];
-+ memcpy( fpreg, fpregptr, 64);
-+#endif
-+
-+ volatile long nRegReturn[2];
-+
-+ // fprintf(stderr,"in cpp_vtable_call nFunctionIndex is %x\n",nFunctionIndex);
-+ // fprintf(stderr,"in cpp_vtable_call nVtableOffset is %x\n",nVtableOffset);
-+ // fflush(stderr);
-+
-+ typelib_TypeClass aType =
-+ cpp_mediate( nFunctionIndex, nVtableOffset, (void**)gpreg,
-+#ifndef __NO_FPRS__
-+ (void**)fpreg,
-+#else
-+ NULL,
-+#endif
-+ ovrflw, (sal_Int64*)nRegReturn );
-+
-+ switch( aType )
-+ {
-+
-+ // move return value into register space
-+ // (will be loaded by machine code snippet)
-+
-+ case typelib_TypeClass_BOOLEAN:
-+ case typelib_TypeClass_BYTE:
-+ __asm__( "lbz 3,%0\n\t" : :
-+ "m"(nRegReturn[0]) );
-+ break;
-+
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ __asm__( "lhz 3,%0\n\t" : :
-+ "m"(nRegReturn[0]) );
-+ break;
-+
-+ case typelib_TypeClass_FLOAT:
-+#ifndef __NO_FPRS__
-+ __asm__( "lfs 1,%0\n\t" : :
-+ "m" (*((float*)nRegReturn)) );
-+ #else
-+ __asm__( "lwz 3,%0\n\t" : :
-+ "m"(nRegReturn[0]) );
-+#endif
-+ break;
-+
-+ case typelib_TypeClass_DOUBLE:
-+#ifndef __NO_FPRS__
-+ __asm__( "lfd 1,%0\n\t" : :
-+ "m" (*((double*)nRegReturn)) );
-+#else
-+ __asm__( "lwz 3,%0\n\t" : :
-+ "m"(nRegReturn[0]) );
-+ __asm__( "lwz 4,%0\n\t" : :
-+ "m"(nRegReturn[1]) );
-+#endif
-+ break;
-+
-+ case typelib_TypeClass_HYPER:
-+ case typelib_TypeClass_UNSIGNED_HYPER:
-+ __asm__( "lwz 4,%0\n\t" : :
-+ "m"(nRegReturn[1]) ); // fall through
-+
-+ default:
-+ __asm__( "lwz 3,%0\n\t" : :
-+ "m"(nRegReturn[0]) );
-+ break;
-+ }
-+}
-+
-+
-+int const codeSnippetSize = 108;
-+
-+unsigned char * codeSnippet( unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset,
-+ bool simpleRetType)
-+{
-+
-+ // fprintf(stderr,"in codeSnippet functionIndex is %x\n", functionIndex);
-+ // fprintf(stderr,"in codeSnippet vtableOffset is %x\n", vtableOffset);
-+ // fflush(stderr);
-+
-+ if (! simpleRetType )
-+ functionIndex |= 0x80000000;
-+
-+ unsigned long * p = (unsigned long *) code;
-+
-+ // OSL_ASSERT( sizeof (long) == 4 );
-+ OSL_ASSERT((((unsigned long)code) & 0x3) == 0 ); //aligned to 4 otherwise a mistake
-+
-+ /* generate this code */
-+ // # so first save gpr 3 to gpr 10 (aligned to 4)
-+ // stw r3,-2048(r1)
-+ // stw r4,-2044(r1)
-+ // stw r5,-2040(r1)
-+ // stw r6,-2036(r1)
-+ // stw r7,-2032(r1)
-+ // stw r8,-2028(r1)
-+ // stw r9,-2024(r1)
-+ // stw r10,-2020(r1)
-+
-+
-+ // # next save fpr 1 to fpr 8 (aligned to 8)
-+ // if dedicated floating point registers are used
-+ // stfd f1,-2016(r1)
-+ // stfd f2,-2008(r1)
-+ // stfd f3,-2000(r1)
-+ // stfd f4,-1992(r1)
-+ // stfd f5,-1984(r1)
-+ // stfd f6,-1976(r1)
-+ // stfd f7,-1968(r1)
-+ // stfd f8,-1960(r1)
-+
-+ // # now here is where cpp_vtable_call must go
-+ // lis r3,-8531
-+ // ori r3,r3,48879
-+ // mtctr r3
-+
-+ // # now load up the functionIndex
-+ // lis r3,-8531
-+ // ori r3,r3,48879
-+
-+ // # now load up the vtableOffset
-+ // lis r4,-8531
-+ // ori r4,r4,48879
-+
-+ // #now load up the pointer to the saved gpr registers
-+ // addi r5,r1,-2048
-+
-+ // #now load up the pointer to the saved fpr registers
-+ // addi r6,r1,-2016
-+ // if no dedicated floating point registers are used than we have NULL
-+ // pointer there
-+ // li r6, 0
-+ //
-+
-+ // #now load up the pointer to the overflow call stack
-+ // addi r7,r1,8
-+ // bctr
-+
-+ * p++ = 0x9061f800;
-+ * p++ = 0x9081f804;
-+ * p++ = 0x90a1f808;
-+ * p++ = 0x90c1f80c;
-+ * p++ = 0x90e1f810;
-+ * p++ = 0x9101f814;
-+ * p++ = 0x9121f818;
-+ * p++ = 0x9141f81c;
-+#ifndef __NO_FPRS__
-+ * p++ = 0xd821f820;
-+ * p++ = 0xd841f828;
-+ * p++ = 0xd861f830;
-+ * p++ = 0xd881f838;
-+ * p++ = 0xd8a1f840;
-+ * p++ = 0xd8c1f848;
-+ * p++ = 0xd8e1f850;
-+ * p++ = 0xd901f858;
-+#else
-+ /* these nops could be replaced with a smaller codeSnippetSize - 8 * 4 */
-+ * p++ = 0x60000000;
-+ * p++ = 0x60000000;
-+ * p++ = 0x60000000;
-+ * p++ = 0x60000000;
-+ * p++ = 0x60000000;
-+ * p++ = 0x60000000;
-+ * p++ = 0x60000000;
-+ * p++ = 0x60000000;
-+#endif
-+ * p++ = 0x3c600000 | (((unsigned long)cpp_vtable_call) >> 16);
-+ * p++ = 0x60630000 | (((unsigned long)cpp_vtable_call) & 0x0000FFFF);
-+ * p++ = 0x7c6903a6;
-+ * p++ = 0x3c600000 | (((unsigned long)functionIndex) >> 16);
-+ * p++ = 0x60630000 | (((unsigned long)functionIndex) & 0x0000FFFF);
-+ * p++ = 0x3c800000 | (((unsigned long)vtableOffset) >> 16);
-+ * p++ = 0x60840000 | (((unsigned long)vtableOffset) & 0x0000FFFF);
-+ * p++ = 0x38a1f800;
-+#ifndef __NO_FPRS__
-+ * p++ = 0x38c1f820;
-+#else
-+ * p++ = 0x38c00000;
-+#endif
-+ * p++ = 0x38e10008;
-+ * p++ = 0x4e800420;
-+ return (code + codeSnippetSize);
-+
-+}
-+
-+
-+}
-+
-+void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const * bptr, unsigned char const * eptr)
-+{
-+ int const lineSize = 32;
-+ for (unsigned char const * p = bptr; p < eptr + lineSize; p += lineSize) {
-+ __asm__ volatile ("dcbst 0, %0" : : "r"(p) : "memory");
-+ }
-+ __asm__ volatile ("sync" : : : "memory");
-+ for (unsigned char const * p = bptr; p < eptr + lineSize; p += lineSize) {
-+ __asm__ volatile ("icbi 0, %0" : : "r"(p) : "memory");
-+ }
-+ __asm__ volatile ("isync" : : : "memory");
-+}
-+
-+struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
-+
-+bridges::cpp_uno::shared::VtableFactory::Slot *
-+bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
-+{
-+ return static_cast< Slot * >(block) + 2;
-+}
-+
-+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
-+ sal_Int32 slotCount)
-+{
-+ return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
-+}
-+
-+bridges::cpp_uno::shared::VtableFactory::Slot *
-+bridges::cpp_uno::shared::VtableFactory::initializeBlock(
-+ void * block, sal_Int32 slotCount)
-+{
-+ Slot * slots = mapBlockToVtable(block);
-+ slots[-2].fn = 0;
-+ slots[-1].fn = 0;
-+ return slots + slotCount;
-+}
-+
-+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
-+ Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff,
-+ typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
-+ sal_Int32 functionCount, sal_Int32 vtableOffset)
-+{
-+ (*slots) -= functionCount;
-+ Slot * s = *slots;
-+ // fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
-+ // fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
-+ // fflush(stderr);
-+
-+ for (sal_Int32 i = 0; i < type->nMembers; ++i) {
-+ typelib_TypeDescription * member = 0;
-+ TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
-+ OSL_ASSERT(member != 0);
-+ switch (member->eTypeClass) {
-+ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-+ // Getter:
-+ (s++)->fn = code + writetoexecdiff;
-+ code = codeSnippet(
-+ code, functionOffset++, vtableOffset,
-+ bridges::cpp_uno::shared::isSimpleType(
-+ reinterpret_cast<
-+ typelib_InterfaceAttributeTypeDescription * >(
-+ member)->pAttributeTypeRef));
-+
-+ // Setter:
-+ if (!reinterpret_cast<
-+ typelib_InterfaceAttributeTypeDescription * >(
-+ member)->bReadOnly)
-+ {
-+ (s++)->fn = code + writetoexecdiff;
-+ code = codeSnippet(code, functionOffset++, vtableOffset, true);
-+ }
-+ break;
-+
-+ case typelib_TypeClass_INTERFACE_METHOD:
-+ (s++)->fn = code + writetoexecdiff;
-+ code = codeSnippet(
-+ code, functionOffset++, vtableOffset,
-+ bridges::cpp_uno::shared::isSimpleType(
-+ reinterpret_cast<
-+ typelib_InterfaceMethodTypeDescription * >(
-+ member)->pReturnTypeRef));
-+ break;
-+
-+ default:
-+ OSL_ASSERT(false);
-+ break;
-+ }
-+ TYPELIB_DANGER_RELEASE(member);
-+ }
-+ return code;
-+}
-+
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc/except.cxx
-@@ -0,0 +1,283 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_bridges.hxx"
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+
-+#include "share.hxx"
-+
-+
-+using namespace ::std;
-+using namespace ::osl;
-+using namespace ::rtl;
-+using namespace ::com::sun::star::uno;
-+using namespace ::__cxxabiv1;
-+
-+
-+namespace CPPU_CURRENT_NAMESPACE
-+{
-+
-+void dummy_can_throw_anything( char const * )
-+{
-+}
-+
-+//==================================================================================================
-+static OUString toUNOname( char const * p ) SAL_THROW( () )
-+{
-+#if OSL_DEBUG_LEVEL > 1
-+ char const * start = p;
-+#endif
-+
-+ // example: N3com3sun4star4lang24IllegalArgumentExceptionE
-+
-+ OUStringBuffer buf( 64 );
-+ OSL_ASSERT( 'N' == *p );
-+ ++p; // skip N
-+
-+ while ('E' != *p)
-+ {
-+ // read chars count
-+ long n = (*p++ - '0');
-+ while ('0' <= *p && '9' >= *p)
-+ {
-+ n *= 10;
-+ n += (*p++ - '0');
-+ }
-+ buf.appendAscii( p, n );
-+ p += n;
-+ if ('E' != *p)
-+ buf.append( (sal_Unicode)'.' );
-+ }
-+
-+#if OSL_DEBUG_LEVEL > 1
-+ OUString ret( buf.makeStringAndClear() );
-+ OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
-+ fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
-+ return ret;
-+#else
-+ return buf.makeStringAndClear();
-+#endif
-+}
-+
-+//==================================================================================================
-+class RTTI
-+{
-+ typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
-+
-+ Mutex m_mutex;
-+ t_rtti_map m_rttis;
-+ t_rtti_map m_generatedRttis;
-+
-+ void * m_hApp;
-+
-+public:
-+ RTTI() SAL_THROW( () );
-+ ~RTTI() SAL_THROW( () );
-+
-+ type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
-+};
-+//__________________________________________________________________________________________________
-+RTTI::RTTI() SAL_THROW( () )
-+ : m_hApp( dlopen( 0, RTLD_LAZY ) )
-+{
-+}
-+//__________________________________________________________________________________________________
-+RTTI::~RTTI() SAL_THROW( () )
-+{
-+ dlclose( m_hApp );
-+}
-+
-+//__________________________________________________________________________________________________
-+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
-+{
-+ type_info * rtti;
-+
-+ OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
-+
-+ MutexGuard guard( m_mutex );
-+ t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) );
-+ if (iRttiFind == m_rttis.end())
-+ {
-+ // RTTI symbol
-+ OStringBuffer buf( 64 );
-+ buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
-+ sal_Int32 index = 0;
-+ do
-+ {
-+ OUString token( unoName.getToken( 0, '.', index ) );
-+ buf.append( token.getLength() );
-+ OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
-+ buf.append( c_token );
-+ }
-+ while (index >= 0);
-+ buf.append( 'E' );
-+
-+ OString symName( buf.makeStringAndClear() );
-+ rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
-+
-+ if (rtti)
-+ {
-+ pair< t_rtti_map::iterator, bool > insertion(
-+ m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
-+ OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
-+ }
-+ else
-+ {
-+ // try to lookup the symbol in the generated rtti map
-+ t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
-+ if (iFind == m_generatedRttis.end())
-+ {
-+ // we must generate it !
-+ // symbol and rtti-name is nearly identical,
-+ // the symbol is prefixed with _ZTI
-+ char const * rttiName = symName.getStr() +4;
-+#if OSL_DEBUG_LEVEL > 1
-+ fprintf( stderr,"generated rtti for %s\n", rttiName );
-+#endif
-+ if (pTypeDescr->pBaseTypeDescription)
-+ {
-+ // ensure availability of base
-+ type_info * base_rtti = getRTTI(
-+ (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
-+ rtti = new __si_class_type_info(
-+ strdup( rttiName ), (__class_type_info *)base_rtti );
-+ }
-+ else
-+ {
-+ // this class has no base class
-+ rtti = new __class_type_info( strdup( rttiName ) );
-+ }
-+
-+ pair< t_rtti_map::iterator, bool > insertion(
-+ m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
-+ OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
-+ }
-+ else // taking already generated rtti
-+ {
-+ rtti = iFind->second;
-+ }
-+ }
-+ }
-+ else
-+ {
-+ rtti = iRttiFind->second;
-+ }
-+
-+ return rtti;
-+}
-+
-+//--------------------------------------------------------------------------------------------------
-+static void deleteException( void * pExc )
-+{
-+ __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
-+ typelib_TypeDescription * pTD = 0;
-+ OUString unoName( toUNOname( header->exceptionType->name() ) );
-+ ::typelib_typedescription_getByName( &pTD, unoName.pData );
-+ OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
-+ if (pTD)
-+ {
-+ ::uno_destructData( pExc, pTD, cpp_release );
-+ ::typelib_typedescription_release( pTD );
-+ }
-+}
-+
-+//==================================================================================================
-+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
-+{
-+ void * pCppExc;
-+ type_info * rtti;
-+
-+ {
-+ // construct cpp exception object
-+ typelib_TypeDescription * pTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
-+ OSL_ASSERT( pTypeDescr );
-+ if (! pTypeDescr)
-+ terminate();
-+
-+ pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
-+ ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
-+
-+ // destruct uno exception
-+ ::uno_any_destruct( pUnoExc, 0 );
-+ // avoiding locked counts
-+ static RTTI * s_rtti = 0;
-+ if (! s_rtti)
-+ {
-+ MutexGuard guard( Mutex::getGlobalMutex() );
-+ if (! s_rtti)
-+ {
-+#ifdef LEAK_STATIC_DATA
-+ s_rtti = new RTTI();
-+#else
-+ static RTTI rtti_data;
-+ s_rtti = &rtti_data;
-+#endif
-+ }
-+ }
-+ rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
-+ TYPELIB_DANGER_RELEASE( pTypeDescr );
-+ OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
-+ if (! rtti)
-+ terminate();
-+ }
-+
-+ __cxa_throw( pCppExc, rtti, deleteException );
-+}
-+
-+//==================================================================================================
-+void fillUnoException( __cxa_exception * header, uno_Any * pExc, uno_Mapping * pCpp2Uno )
-+{
-+ OSL_ENSURE( header, "### no exception header!!!" );
-+ if (! header)
-+ terminate();
-+
-+ typelib_TypeDescription * pExcTypeDescr = 0;
-+ OUString unoName( toUNOname( header->exceptionType->name() ) );
-+ ::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
-+ OSL_ENSURE( pExcTypeDescr, "### can not get type description for exception!!!" );
-+ if (! pExcTypeDescr)
-+ terminate();
-+
-+ // construct uno exception any
-+ ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
-+ ::typelib_typedescription_release( pExcTypeDescr );
-+}
-+
-+}
-+
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc/makefile.mk
-@@ -0,0 +1,76 @@
-+#**************************************************************
-+#
-+# 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
-+#
-+# Unless required by applicable law or agreed to in writing,
-+# software distributed under the License is distributed on an
-+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+# KIND, either express or implied. See the License for the
-+# specific language governing permissions and limitations
-+# under the License.
-+#
-+#**************************************************************
-+
-+
-+
-+PRJ=..$/..$/..
-+
-+PRJNAME=bridges
-+TARGET=gcc3_uno
-+LIBTARGET=no
-+ENABLE_EXCEPTIONS=TRUE
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+.IF "$(COM)$(OS)$(CPU)$(COMNAME)$(CPUNAME)" == "GCCFREEBSDPgcc3POWERPC"
-+
-+.IF "$(cppu_no_leak)" == ""
-+CFLAGS += -DLEAK_STATIC_DATA
-+.ENDIF
-+
-+# In case someone enabled the non-standard -fomit-frame-pointer which does not
-+# work with the .cxx sources in this directory:
-+CFLAGSCXX += -fno-omit-frame-pointer
-+
-+NOOPTFILES= \
-+ $(SLO)$/uno2cpp.obj
-+
-+
-+CFLAGSNOOPT=-O0
-+
-+SLOFILES= \
-+ $(SLO)$/except.obj \
-+ $(SLO)$/cpp2uno.obj \
-+ $(SLO)$/uno2cpp.obj
-+
-+SHL1TARGET= $(TARGET)
-+
-+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-+SHL1IMPLIB=i$(TARGET)
-+SHL1VERSIONMAP=..$/..$/bridge_exports.map
-+SHL1RPATH=URELIB
-+
-+SHL1OBJS= $(SLOFILES)
-+SHL1LIBS = $(SLB)$/cpp_uno_shared.lib
-+
-+SHL1STDLIBS= \
-+ $(CPPULIB) \
-+ $(SALLIB)
-+
-+.ENDIF
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc/share.hxx
-@@ -0,0 +1,87 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+#include "uno/mapping.h"
-+
-+#include
-+#include
-+#include
-+
-+namespace CPPU_CURRENT_NAMESPACE
-+{
-+
-+ void dummy_can_throw_anything( char const * );
-+
-+
-+// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
-+
-+struct _Unwind_Exception
-+{
-+ unsigned exception_class __attribute__((__mode__(__DI__)));
-+ void * exception_cleanup;
-+ unsigned private_1 __attribute__((__mode__(__word__)));
-+ unsigned private_2 __attribute__((__mode__(__word__)));
-+} __attribute__((__aligned__));
-+
-+struct __cxa_exception
-+{
-+ ::std::type_info *exceptionType;
-+ void (*exceptionDestructor)(void *);
-+
-+ ::std::unexpected_handler unexpectedHandler;
-+ ::std::terminate_handler terminateHandler;
-+
-+ __cxa_exception *nextException;
-+
-+ int handlerCount;
-+
-+ int handlerSwitchValue;
-+ const unsigned char *actionRecord;
-+ const unsigned char *languageSpecificData;
-+ void *catchTemp;
-+ void *adjustedPtr;
-+
-+ _Unwind_Exception unwindHeader;
-+};
-+
-+extern "C" void *__cxa_allocate_exception(
-+ std::size_t thrown_size ) throw();
-+extern "C" void __cxa_throw (
-+ void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
-+
-+struct __cxa_eh_globals
-+{
-+ __cxa_exception *caughtExceptions;
-+ unsigned int uncaughtExceptions;
-+};
-+extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
-+
-+// -----
-+
-+//==================================================================================================
-+void raiseException(
-+ uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
-+//==================================================================================================
-+void fillUnoException(
-+ __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
-+}
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc/uno2cpp.cxx
-@@ -0,0 +1,668 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_bridges.hxx"
-+
-+#include
-+
-+#include
-+#include
-+
-+#include "bridges/cpp_uno/shared/bridge.hxx"
-+#include "bridges/cpp_uno/shared/types.hxx"
-+#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx"
-+#include "bridges/cpp_uno/shared/vtables.hxx"
-+
-+#include "share.hxx"
-+
-+
-+using namespace ::rtl;
-+using namespace ::com::sun::star::uno;
-+
-+namespace
-+{
-+
-+
-+//==================================================================================================
-+static void callVirtualMethod(
-+ void * pAdjustedThisPtr,
-+ sal_Int32 nVtableIndex,
-+ void * pRegisterReturn,
-+ typelib_TypeClass eReturnType,
-+ char * pPT,
-+ sal_Int32 * pStackLongs,
-+ sal_Int32 nStackLongs)
-+{
-+
-+ // parameter list is mixed list of * and values
-+ // reference parameters are pointers
-+
-+ // the basic idea here is to use gpr[8] as a storage area for
-+ // the future values of registers r3 to r10 needed for the call,
-+ // and similarly fpr[8] as a storage area for the future values
-+ // of floating point registers f1 to f8
-+
-+ unsigned long * mfunc; // actual function to be invoked
-+ void (*ptr)();
-+ int gpr[8]; // storage for gpregisters, map to r3-r10
-+ int off; // offset used to find function
-+#ifndef __NO_FPRS__
-+ double fpr[8]; // storage for fpregisters, map to f1-f8
-+ int f; // number of fprs mapped so far
-+ double dret; // temporary function return values
-+#endif
-+ int n; // number of gprs mapped so far
-+ long *p; // pointer to parameter overflow area
-+ int c; // character of parameter type being decoded
-+ int iret, iret2;
-+
-+ // Because of the Power PC calling conventions we could be passing
-+ // parameters in both register types and on the stack. To create the
-+ // stack parameter area we need we now simply allocate local
-+ // variable storage param[] that is at least the size of the parameter stack
-+ // (more than enough space) which we can overwrite the parameters into.
-+
-+ // Note: This keeps us from having to decode the signature twice and
-+ // prevents problems with later local variables.
-+
-+ // Note: could require up to 2*nStackLongs words of parameter stack area
-+ // if the call has many float parameters (i.e. floats take up only 1
-+ // word on the stack but double takes 2 words in parameter area in the
-+ // stack frame .
-+
-+ // Update! floats on the outgoing parameter stack only take up 1 word
-+ // (stfs is used) which is not correct according to the ABI but we
-+ // will match what the compiler does until this is figured out
-+
-+ // this grows the current stack to the appropriate size
-+ // and sets the outgoing stack pointer p to the right place
-+ __asm__ __volatile__ (
-+ "rlwinm %0,%0,3,3,28\n\t"
-+ "addi %0,%0,22\n\t"
-+ "rlwinm %0,%0,0,4,28\n\t"
-+ "lwz 0,0(1)\n\t"
-+ "subf 1,%0,1\n\t"
-+ "stw 0,0(1)\n\t"
-+ : : "r" (nStackLongs) : "0" );
-+
-+ __asm__ __volatile__ ( "addi %0,1,8" : "=r" (p) : );
-+
-+ // never called
-+ // if (! pAdjustedThisPtr ) dummy_can_throw_anything("xxx"); // address something
-+
-+
-+ // now begin to load the C++ function arguments into storage
-+ n = 0;
-+#ifndef __NO_FPRS__
-+ f = 0;
-+#endif
-+
-+ // now we need to parse the entire signature string */
-+ // until we get the END indicator */
-+
-+ // treat complex return pointer like any other parameter //
-+
-+#if 0
-+ /* Let's figure out what is really going on here*/
-+ fprintf(stderr,"callVirtualMethod paramters string is %s\n",pPT);
-+ int k = nStackLongs;
-+ long * q = (long *)pStackLongs;
-+ while (k > 0) {
-+ fprintf(stderr,"uno stack is: %x\n",*q);
-+ k--;
-+ q++;
-+ }
-+#endif
-+
-+ /* parse the argument list up to the ending ) */
-+ while (*pPT != 'X') {
-+ c = *pPT;
-+ switch (c) {
-+ case 'D': /* type is double */
-+#ifndef __NO_FPRS__
-+ if (f < 8) {
-+ fpr[f++] = *((double *)pStackLongs); /* store in register */
-+#else
-+ if (n & 1)
-+ n++;
-+ if (n < 8) {
-+ gpr[n++] = *pStackLongs;
-+ gpr[n++] = *(pStackLongs+1);
-+#endif
-+ } else {
-+ if (((long) p) & 4)
-+ p++;
-+ *p++ = *pStackLongs; /* or on the parameter stack */
-+ *p++ = *(pStackLongs + 1);
-+ }
-+ pStackLongs += 2;
-+ break;
-+
-+ case 'F': /* type is float */
-+ /* this assumes that floats are stored as 1 32 bit word on param
-+ stack and that if passed in parameter stack to C, should be
-+ as double word.
-+
-+ Whoops: the abi is not actually followed by gcc, need to
-+ store floats as a *single* word on outgoing parameter stack
-+ to match what gcc actually does
-+ */
-+#ifndef __NO_FPRS__
-+ if (f < 8) {
-+ fpr[f++] = *((float *)pStackLongs);
-+#else
-+ if (n < 8) {
-+ gpr[n++] = *pStackLongs;
-+#endif
-+ } else {
-+#if 0 /* if abi were followed */
-+ if (((long) p) & 4)
-+ p++;
-+ *((double *)p) = *((float *)pStackLongs);
-+ p += 2;
-+#else
-+ *((float *)p) = *((float *)pStackLongs);
-+ p += 1;
-+#endif
-+ }
-+ pStackLongs += 1;
-+ break;
-+
-+ case 'H': /* type is long long */
-+ if (n & 1) n++; /* note even elements gpr[] will map to
-+ odd registers*/
-+ if (n <= 6) {
-+ gpr[n++] = *pStackLongs;
-+ gpr[n++] = *(pStackLongs+1);
-+ } else {
-+ if (((long) p) & 4)
-+ p++;
-+ *p++ = *pStackLongs;
-+ *p++ = *(pStackLongs+1);
-+ }
-+ pStackLongs += 2;
-+ break;
-+
-+ case 'S':
-+ if (n < 8) {
-+ gpr[n++] = *((unsigned short*)pStackLongs);
-+ } else {
-+ *p++ = *((unsigned short *)pStackLongs);
-+ }
-+ pStackLongs += 1;
-+ break;
-+
-+ case 'B':
-+ if (n < 8) {
-+ gpr[n++] = *((char *)pStackLongs);
-+ } else {
-+ *p++ = *((char *)pStackLongs);
-+ }
-+ pStackLongs += 1;
-+ break;
-+
-+ default:
-+ if (n < 8) {
-+ gpr[n++] = *pStackLongs;
-+ } else {
-+ *p++ = *pStackLongs;
-+ }
-+ pStackLongs += 1;
-+ break;
-+ }
-+ pPT++;
-+ }
-+
-+ /* figure out the address of the function we need to invoke */
-+ off = nVtableIndex;
-+ off = off * 4; // 4 bytes per slot
-+ mfunc = *((unsigned long **)pAdjustedThisPtr); // get the address of the vtable
-+ mfunc = (unsigned long *)((char *)mfunc + off); // get the address from the vtable entry at offset
-+ mfunc = *((unsigned long **)mfunc); // the function is stored at the address
-+ ptr = (void (*)())mfunc;
-+
-+ /* Set up the machine registers and invoke the function */
-+
-+ __asm__ __volatile__ (
-+ "lwz 3, 0(%0)\n\t"
-+ "lwz 4, 4(%0)\n\t"
-+ "lwz 5, 8(%0)\n\t"
-+ "lwz 6, 12(%0)\n\t"
-+ "lwz 7, 16(%0)\n\t"
-+ "lwz 8, 20(%0)\n\t"
-+ "lwz 9, 24(%0)\n\t"
-+ "lwz 10, 28(%0)\n\t"
-+#ifndef __NO_FPRS__
-+ "lfd 1, 0(%1)\n\t"
-+ "lfd 2, 8(%1)\n\t"
-+ "lfd 3, 16(%1)\n\t"
-+ "lfd 4, 24(%1)\n\t"
-+ "lfd 5, 32(%1)\n\t"
-+ "lfd 6, 40(%1)\n\t"
-+ "lfd 7, 48(%1)\n\t"
-+ "lfd 8, 56(%1)\n\t"
-+ : : "r" (gpr), "r" (fpr)
-+#else
-+ : : "r" (gpr)
-+#endif
-+ : "0", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"
-+ );
-+
-+ (*ptr)();
-+
-+ __asm__ __volatile__ (
-+ "mr %0, 3\n\t"
-+ "mr %1, 4\n\t"
-+#ifndef __NO_FPRS__
-+ "fmr %2, 1\n\t"
-+ : "=r" (iret), "=r" (iret2), "=f" (dret)
-+#else
-+ : "=r" (iret), "=r" (iret2)
-+#endif
-+ : );
-+
-+ switch( eReturnType )
-+ {
-+ case typelib_TypeClass_HYPER:
-+ case typelib_TypeClass_UNSIGNED_HYPER:
-+ ((long*)pRegisterReturn)[0] = iret;
-+ ((long*)pRegisterReturn)[1] = iret2;
-+ case typelib_TypeClass_LONG:
-+ case typelib_TypeClass_UNSIGNED_LONG:
-+ case typelib_TypeClass_ENUM:
-+ ((long*)pRegisterReturn)[0] = iret;
-+ break;
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ *(unsigned short*)pRegisterReturn = (unsigned short)iret;
-+ break;
-+ case typelib_TypeClass_BOOLEAN:
-+ case typelib_TypeClass_BYTE:
-+ *(unsigned char*)pRegisterReturn = (unsigned char)iret;
-+ break;
-+ case typelib_TypeClass_FLOAT:
-+#ifndef __NO_FPRS__
-+ *(float*)pRegisterReturn = (float)dret;
-+#else
-+ ((unsigned int*)pRegisterReturn)[0] = iret;
-+#endif
-+ break;
-+ case typelib_TypeClass_DOUBLE:
-+#ifndef __NO_FPRS__
-+ *(double*)pRegisterReturn = dret;
-+#else
-+ ((unsigned int*)pRegisterReturn)[0] = iret;
-+ ((unsigned int*)pRegisterReturn)[1] = iret2;
-+#endif
-+ break;
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+//==================================================================================================
-+static void cpp_call(
-+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
-+ bridges::cpp_uno::shared::VtableSlot aVtableSlot,
-+ typelib_TypeDescriptionReference * pReturnTypeRef,
-+ sal_Int32 nParams, typelib_MethodParameter * pParams,
-+ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
-+{
-+ // max space for: [complex ret ptr], values|ptr ...
-+ char * pCppStack =
-+ (char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
-+ char * pCppStackStart = pCppStack;
-+
-+ // need to know parameter types for callVirtualMethod so generate a signature string
-+ char * pParamType = (char *) alloca(nParams+2);
-+ char * pPT = pParamType;
-+
-+ // return
-+ typelib_TypeDescription * pReturnTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-+ // OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
-+
-+ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
-+
-+ if (pReturnTypeDescr)
-+ {
-+ if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
-+ {
-+ pCppReturn = pUnoReturn; // direct way for simple types
-+ }
-+ else
-+ {
-+ // complex return via ptr
-+ pCppReturn = *(void **)pCppStack =
-+ (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-+ ? alloca( pReturnTypeDescr->nSize ): pUnoReturn); // direct way
-+ *pPT++ = 'I'; //signify that a complex return type on stack
-+ pCppStack += sizeof(void *);
-+ }
-+ }
-+ // push this
-+ void* pAdjustedThisPtr = reinterpret_cast< void **>(pThis->getCppI()) + aVtableSlot.offset;
-+ *(void**)pCppStack = pAdjustedThisPtr;
-+ pCppStack += sizeof( void* );
-+ *pPT++ = 'I';
-+
-+ // stack space
-+ // OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
-+ // args
-+ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
-+ // indizes of values this have to be converted (interface conversion cpp<=>uno)
-+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
-+ // type descriptions for reconversions
-+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
-+
-+ sal_Int32 nTempIndizes = 0;
-+
-+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
-+ {
-+ const typelib_MethodParameter & rParam = pParams[nPos];
-+ typelib_TypeDescription * pParamTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-+
-+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
-+ {
-+ uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
-+ pThis->getBridge()->getUno2Cpp() );
-+
-+ switch (pParamTypeDescr->eTypeClass)
-+ {
-+
-+ // we need to know type of each param so that we know whether to use
-+ // gpr or fpr to pass in parameters:
-+ // Key: I - int, long, pointer, etc means pass in gpr
-+ // B - byte value passed in gpr
-+ // S - short value passed in gpr
-+ // F - float value pass in fpr
-+ // D - double value pass in fpr
-+ // H - long long int pass in proper pairs of gpr (3,4) (5,6), etc
-+ // X - indicates end of parameter description string
-+
-+ case typelib_TypeClass_LONG:
-+ case typelib_TypeClass_UNSIGNED_LONG:
-+ case typelib_TypeClass_ENUM:
-+ *pPT++ = 'I';
-+ break;
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ *pPT++ = 'S';
-+ break;
-+ case typelib_TypeClass_BOOLEAN:
-+ case typelib_TypeClass_BYTE:
-+ *pPT++ = 'B';
-+ break;
-+ case typelib_TypeClass_FLOAT:
-+ *pPT++ = 'F';
-+ break;
-+ case typelib_TypeClass_DOUBLE:
-+ *pPT++ = 'D';
-+ pCppStack += sizeof(sal_Int32); // extra long
-+ break;
-+ case typelib_TypeClass_HYPER:
-+ case typelib_TypeClass_UNSIGNED_HYPER:
-+ *pPT++ = 'H';
-+ pCppStack += sizeof(sal_Int32); // extra long
-+ default:
-+ break;
-+ }
-+
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ else // ptr to complex value | ref
-+ {
-+ if (! rParam.bIn) // is pure out
-+ {
-+ // cpp out is constructed mem, uno out is not!
-+ uno_constructData(
-+ *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-+ pParamTypeDescr );
-+ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ // is in/inout
-+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
-+ {
-+ uno_copyAndConvertData(
-+ *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-+ pUnoArgs[nPos], pParamTypeDescr,
-+ pThis->getBridge()->getUno2Cpp() );
-+
-+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ else // direct way
-+ {
-+ *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ // KBH: FIXME: is this the right way to pass these
-+ *pPT++='I';
-+ }
-+ pCppStack += sizeof(sal_Int32); // standard parameter length
-+ }
-+
-+ // terminate the signature string
-+ *pPT++='X';
-+ *pPT=0;
-+
-+ try
-+ {
-+ OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic)" );
-+ callVirtualMethod(
-+ pAdjustedThisPtr, aVtableSlot.index,
-+ pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
-+ (sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
-+ // NO exception occured...
-+ *ppUnoExc = 0;
-+
-+ // reconvert temporary params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
-+
-+ if (pParams[nIndex].bIn)
-+ {
-+ if (pParams[nIndex].bOut) // inout
-+ {
-+ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
-+ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ }
-+ }
-+ else // pure out
-+ {
-+ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ }
-+ // destroy temp cpp param => cpp: every param was constructed
-+ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-+
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ // return value
-+ if (pCppReturn && pUnoReturn != pCppReturn)
-+ {
-+ uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
-+ }
-+ }
-+ catch (...)
-+ {
-+ // fill uno exception
-+ fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions,
-+ *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
-+
-+ // temporary params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+ // destroy temp cpp param => cpp: every param was constructed
-+ uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
-+ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
-+ }
-+ // return type
-+ if (pReturnTypeDescr)
-+ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-+ }
-+}
-+
-+}
-+
-+namespace bridges { namespace cpp_uno { namespace shared {
-+
-+void unoInterfaceProxyDispatch(
-+ uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
-+ void * pReturn, void * pArgs[], uno_Any ** ppException )
-+{
-+ // is my surrogate
-+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
-+ = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
-+
-+ switch (pMemberDescr->eTypeClass)
-+ {
-+ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-+ {
-+
-+ VtableSlot aVtableSlot(
-+ getVtableSlot(
-+ reinterpret_cast<
-+ typelib_InterfaceAttributeTypeDescription const * >(
-+ pMemberDescr)));
-+
-+ if (pReturn)
-+ {
-+ // dependent dispatch
-+ cpp_call(
-+ pThis, aVtableSlot,
-+ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
-+ 0, 0, // no params
-+ pReturn, pArgs, ppException );
-+ }
-+ else
-+ {
-+ // is SET
-+ typelib_MethodParameter aParam;
-+ aParam.pTypeRef =
-+ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
-+ aParam.bIn = sal_True;
-+ aParam.bOut = sal_False;
-+
-+ typelib_TypeDescriptionReference * pReturnTypeRef = 0;
-+ OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
-+ typelib_typedescriptionreference_new(
-+ &pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
-+
-+ // dependent dispatch
-+ aVtableSlot.index += 1; //get then set method
-+ cpp_call(
-+ pThis, aVtableSlot,
-+ pReturnTypeRef,
-+ 1, &aParam,
-+ pReturn, pArgs, ppException );
-+
-+ typelib_typedescriptionreference_release( pReturnTypeRef );
-+ }
-+
-+ break;
-+ }
-+ case typelib_TypeClass_INTERFACE_METHOD:
-+ {
-+
-+ VtableSlot aVtableSlot(
-+ getVtableSlot(
-+ reinterpret_cast<
-+ typelib_InterfaceMethodTypeDescription const * >(
-+ pMemberDescr)));
-+ switch (aVtableSlot.index)
-+ {
-+ // standard calls
-+ case 1: // acquire uno interface
-+ (*pUnoI->acquire)( pUnoI );
-+ *ppException = 0;
-+ break;
-+ case 2: // release uno interface
-+ (*pUnoI->release)( pUnoI );
-+ *ppException = 0;
-+ break;
-+ case 0: // queryInterface() opt
-+ {
-+ typelib_TypeDescription * pTD = 0;
-+ TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
-+ if (pTD)
-+ {
-+ uno_Interface * pInterface = 0;
-+ (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
-+ pThis->pBridge->getUnoEnv(),
-+ (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
-+
-+ if (pInterface)
-+ {
-+ ::uno_any_construct(
-+ reinterpret_cast< uno_Any * >( pReturn ),
-+ &pInterface, pTD, 0 );
-+ (*pInterface->release)( pInterface );
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ *ppException = 0;
-+ break;
-+ }
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ }
-+ } // else perform queryInterface()
-+ default:
-+ // dependent dispatch
-+ cpp_call(
-+ pThis, aVtableSlot,
-+ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
-+ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
-+ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
-+ pReturn, pArgs, ppException );
-+ }
-+ break;
-+ }
-+ default:
-+ {
-+ ::com::sun::star::uno::RuntimeException aExc(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
-+
-+ Type const & rExcType = ::getCppuType( &aExc );
-+ // binary identical null reference
-+ ::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
-+ }
-+ }
-+}
-+
-+} } }
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc64/cpp2uno.cxx
-@@ -0,0 +1,718 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_bridges.hxx"
-+
-+#include
-+#include
-+#include
-+
-+#include "bridges/cpp_uno/shared/bridge.hxx"
-+#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
-+#include "bridges/cpp_uno/shared/types.hxx"
-+#include "bridges/cpp_uno/shared/vtablefactory.hxx"
-+
-+#include "share.hxx"
-+#include
-+#include
-+
-+
-+using namespace ::com::sun::star::uno;
-+
-+namespace
-+{
-+
-+//==================================================================================================
-+static typelib_TypeClass cpp2uno_call(
-+ bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
-+ const typelib_TypeDescription * pMemberTypeDescr,
-+ typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
-+ sal_Int32 nParams, typelib_MethodParameter * pParams,
-+ void ** gpreg, void ** fpreg, void ** ovrflw,
-+ sal_Int64 * pRegisterReturn /* space for register return */ )
-+{
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "as far as cpp2uno_call\n");
-+#endif
-+
-+ int ng = 0; //number of gpr registers used
-+ int nf = 0; //number of fpr regsiters used
-+
-+ // gpreg: [ret *], this, [gpr params]
-+ // fpreg: [fpr params]
-+ // ovrflw: [gpr or fpr params (properly aligned)]
-+
-+ // return
-+ typelib_TypeDescription * pReturnTypeDescr = 0;
-+ if (pReturnTypeRef)
-+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-+
-+ void * pUnoReturn = 0;
-+ void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
-+
-+ if (pReturnTypeDescr)
-+ {
-+ if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
-+ {
-+ pUnoReturn = pRegisterReturn; // direct way for simple types
-+ }
-+ else // complex return via ptr (pCppReturn)
-+ {
-+ pCppReturn = *(void **)gpreg;
-+ gpreg++;
-+ ng++;
-+
-+ pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-+ ? alloca( pReturnTypeDescr->nSize )
-+ : pCppReturn); // direct way
-+ }
-+ }
-+ // pop this
-+ gpreg++;
-+ ng++;
-+
-+ // stack space
-+ OSL_ENSURE( sizeof(void *) == sizeof(sal_Int64), "### unexpected size!" );
-+ // parameters
-+ void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
-+ void ** pCppArgs = pUnoArgs + nParams;
-+ // indizes of values this have to be converted (interface conversion cpp<=>uno)
-+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
-+ // type descriptions for reconversions
-+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
-+
-+ sal_Int32 nTempIndizes = 0;
-+ bool bOverFlowUsed = false;
-+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
-+ {
-+ const typelib_MethodParameter & rParam = pParams[nPos];
-+ typelib_TypeDescription * pParamTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "arg %d of %d\n", nPos, nParams);
-+#endif
-+
-+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "simple\n");
-+#endif
-+
-+ switch (pParamTypeDescr->eTypeClass)
-+ {
-+ case typelib_TypeClass_FLOAT:
-+ case typelib_TypeClass_DOUBLE:
-+ if (nf < ppc64::MAX_SSE_REGS)
-+ {
-+ if (pParamTypeDescr->eTypeClass == typelib_TypeClass_FLOAT)
-+ {
-+ float tmp = (float) (*((double *)fpreg));
-+ (*((float *) fpreg)) = tmp;
-+ }
-+ pCppArgs[nPos] = pUnoArgs[nPos] = fpreg++;
-+ nf++;
-+ }
-+ else
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
-+ bOverFlowUsed = true;
-+ }
-+ if (bOverFlowUsed) ovrflw++;
-+ break;
-+ case typelib_TypeClass_BYTE:
-+ case typelib_TypeClass_BOOLEAN:
-+ if (ng < ppc64::MAX_GPR_REGS)
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)gpreg) + (sizeof(void*)-1));
-+ ng++;
-+ gpreg++;
-+ }
-+ else
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)ovrflw) + (sizeof(void*)-1));
-+ bOverFlowUsed = true;
-+ }
-+ if (bOverFlowUsed) ovrflw++;
-+ break;
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ if (ng < ppc64::MAX_GPR_REGS)
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)gpreg) + (sizeof(void*)-2));
-+ ng++;
-+ gpreg++;
-+ }
-+ else
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)ovrflw) + (sizeof(void*)-2));
-+ bOverFlowUsed = true;
-+ }
-+ if (bOverFlowUsed) ovrflw++;
-+ break;
-+ case typelib_TypeClass_ENUM:
-+ case typelib_TypeClass_LONG:
-+ case typelib_TypeClass_UNSIGNED_LONG:
-+ if (ng < ppc64::MAX_GPR_REGS)
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)gpreg) + (sizeof(void*)-4));
-+ ng++;
-+ gpreg++;
-+ }
-+ else
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = (((char *)ovrflw) + (sizeof(void*)-4));
-+ bOverFlowUsed = true;
-+ }
-+ if (bOverFlowUsed) ovrflw++;
-+ break;
-+ default:
-+ if (ng < ppc64::MAX_GPR_REGS)
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = gpreg++;
-+ ng++;
-+ }
-+ else
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw;
-+ bOverFlowUsed = true;
-+ }
-+ if (bOverFlowUsed) ovrflw++;
-+ break;
-+ }
-+
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ else // ptr to complex value | ref
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "complex, ng is %d\n", ng);
-+#endif
-+ void *pCppStack; //temporary stack pointer
-+
-+ if (ng < ppc64::MAX_GPR_REGS)
-+ {
-+ pCppArgs[nPos] = pCppStack = *gpreg++;
-+ ng++;
-+ }
-+ else
-+ {
-+ pCppArgs[nPos] = pCppStack = *ovrflw;
-+ bOverFlowUsed = true;
-+ }
-+ if (bOverFlowUsed) ovrflw++;
-+
-+ if (! rParam.bIn) // is pure out
-+ {
-+ // uno out is unconstructed mem!
-+ pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
-+ pTempIndizes[nTempIndizes] = nPos;
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ // is in/inout
-+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
-+ {
-+ uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-+ pCppStack, pParamTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ else // direct way
-+ {
-+ pUnoArgs[nPos] = pCppStack;
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ }
-+ }
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "end of params\n");
-+#endif
-+
-+ // ExceptionHolder
-+ uno_Any aUnoExc; // Any will be constructed by callee
-+ uno_Any * pUnoExc = &aUnoExc;
-+
-+ // invoke uno dispatch call
-+ (*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
-+
-+ // in case an exception occurred...
-+ if (pUnoExc)
-+ {
-+ // destruct temporary in/inout params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+
-+ if (pParams[nIndex].bIn) // is in/inout => was constructed
-+ uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
-+ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
-+ }
-+ if (pReturnTypeDescr)
-+ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-+
-+ CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() );
-+ // has to destruct the any
-+ // is here for dummy
-+ return typelib_TypeClass_VOID;
-+ }
-+ else // else no exception occurred...
-+ {
-+ // temporary params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
-+
-+ if (pParams[nIndex].bOut) // inout/out
-+ {
-+ // convert and assign
-+ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-+ uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
-+ pThis->getBridge()->getUno2Cpp() );
-+ }
-+ // destroy temp uno param
-+ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
-+
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ // return
-+ if (pCppReturn) // has complex return
-+ {
-+ if (pUnoReturn != pCppReturn) // needs reconversion
-+ {
-+ uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
-+ pThis->getBridge()->getUno2Cpp() );
-+ // destroy temp uno return
-+ uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
-+ }
-+ // complex return ptr is set to return reg
-+ *(void **)pRegisterReturn = pCppReturn;
-+ }
-+ if (pReturnTypeDescr)
-+ {
-+ typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
-+ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-+ return eRet;
-+ }
-+ else
-+ return typelib_TypeClass_VOID;
-+ }
-+}
-+
-+
-+//==================================================================================================
-+static typelib_TypeClass cpp_mediate(
-+ sal_uInt64 nOffsetAndIndex,
-+ void ** gpreg, void ** fpreg, long sp,
-+ sal_Int64 * pRegisterReturn /* space for register return */ )
-+{
-+ OSL_ENSURE( sizeof(sal_Int64)==sizeof(void *), "### unexpected!" );
-+
-+ sal_Int32 nVtableOffset = (nOffsetAndIndex >> 32);
-+ sal_Int32 nFunctionIndex = (nOffsetAndIndex & 0xFFFFFFFF);
-+
-+ long sf = *(long*)sp;
-+ void ** ovrflw = (void**)(sf + 112);
-+
-+ // gpreg: [ret *], this, [other gpr params]
-+ // fpreg: [fpr params]
-+ // ovrflw: [gpr or fpr params (properly aligned)]
-+
-+ void * pThis;
-+ if (nFunctionIndex & 0x80000000 )
-+ {
-+ nFunctionIndex &= 0x7fffffff;
-+ pThis = gpreg[1];
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "pThis is gpreg[1]\n");
-+#endif
-+ }
-+ else
-+ {
-+ pThis = gpreg[0];
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "pThis is gpreg[0]\n");
-+#endif
-+ }
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "pThis is %lx\n", pThis);
-+#endif
-+
-+ pThis = static_cast< char * >(pThis) - nVtableOffset;
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "pThis is now %lx\n", pThis);
-+#endif
-+
-+ bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
-+ = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
-+ pThis);
-+
-+ typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "indexes are %d %d\n", nFunctionIndex, pTypeDescr->nMapFunctionIndexToMemberIndex);
-+#endif
-+
-+ OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
-+ if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
-+ {
-+ throw RuntimeException(
-+ rtl::OUString::createFromAscii("illegal vtable index!"),
-+ (XInterface *)pThis );
-+ }
-+
-+ // determine called method
-+ sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
-+ OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "members are %d %d\n", nMemberPos, pTypeDescr->nAllMembers);
-+#endif
-+
-+ TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
-+
-+ typelib_TypeClass eRet;
-+ switch (aMemberDescr.get()->eTypeClass)
-+ {
-+ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-+ {
-+ if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
-+ {
-+ // is GET method
-+ eRet = cpp2uno_call(
-+ pCppI, aMemberDescr.get(),
-+ ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
-+ 0, 0, // no params
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ else
-+ {
-+ // is SET method
-+ typelib_MethodParameter aParam;
-+ aParam.pTypeRef =
-+ ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
-+ aParam.bIn = sal_True;
-+ aParam.bOut = sal_False;
-+
-+ eRet = cpp2uno_call(
-+ pCppI, aMemberDescr.get(),
-+ 0, // indicates void return
-+ 1, &aParam,
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ break;
-+ }
-+ case typelib_TypeClass_INTERFACE_METHOD:
-+ {
-+ // is METHOD
-+ switch (nFunctionIndex)
-+ {
-+ case 1: // acquire()
-+ pCppI->acquireProxy(); // non virtual call!
-+ eRet = typelib_TypeClass_VOID;
-+ break;
-+ case 2: // release()
-+ pCppI->releaseProxy(); // non virtual call!
-+ eRet = typelib_TypeClass_VOID;
-+ break;
-+ case 0: // queryInterface() opt
-+ {
-+ typelib_TypeDescription * pTD = 0;
-+ TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
-+ if (pTD)
-+ {
-+ XInterface * pInterface = 0;
-+ (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
-+ pCppI->getBridge()->getCppEnv(),
-+ (void **)&pInterface, pCppI->getOid().pData,
-+ (typelib_InterfaceTypeDescription *)pTD );
-+
-+ if (pInterface)
-+ {
-+ ::uno_any_construct(
-+ reinterpret_cast< uno_Any * >( gpreg[0] ),
-+ &pInterface, pTD, cpp_acquire );
-+ pInterface->release();
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ *(void **)pRegisterReturn = gpreg[0];
-+ eRet = typelib_TypeClass_ANY;
-+ break;
-+ }
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ }
-+ } // else perform queryInterface()
-+ default:
-+ eRet = cpp2uno_call(
-+ pCppI, aMemberDescr.get(),
-+ ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
-+ ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
-+ ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ break;
-+ }
-+ default:
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "screwed\n");
-+#endif
-+
-+ throw RuntimeException(
-+ rtl::OUString::createFromAscii("no member description found!"),
-+ (XInterface *)pThis );
-+ // is here for dummy
-+ eRet = typelib_TypeClass_VOID;
-+ }
-+ }
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "end of cpp_mediate\n");
-+#endif
-+ return eRet;
-+}
-+
-+extern "C" void privateSnippetExecutor( ... )
-+{
-+ volatile long nOffsetAndIndex;
-+
-+ //mr %r3, %r11 # move into arg1 the 64bit value passed from OOo
-+ __asm__ __volatile__ (
-+ "mr %0, 11\n\t"
-+ : "=r" (nOffsetAndIndex) : );
-+
-+ sal_uInt64 gpreg[ppc64::MAX_GPR_REGS];
-+ double fpreg[ppc64::MAX_SSE_REGS];
-+
-+ __asm__ __volatile__ (
-+ "std 3, 0(%0)\t\n"
-+ "std 4, 8(%0)\t\n"
-+ "std 5, 16(%0)\t\n"
-+ "std 6, 24(%0)\t\n"
-+ "std 7, 32(%0)\t\n"
-+ "std 8, 40(%0)\t\n"
-+ "std 9, 48(%0)\t\n"
-+ "std 10, 56(%0)\t\n"
-+ "stfd 1, 0(%1)\t\n"
-+ "stfd 2, 8(%1)\t\n"
-+ "stfd 3, 16(%1)\t\n"
-+ "stfd 4, 24(%1)\t\n"
-+ "stfd 5, 32(%1)\t\n"
-+ "stfd 6, 40(%1)\t\n"
-+ "stfd 7, 48(%1)\t\n"
-+ "stfd 8, 56(%1)\t\n"
-+ "stfd 9, 64(%1)\t\n"
-+ "stfd 10, 72(%1)\t\n"
-+ "stfd 11, 80(%1)\t\n"
-+ "stfd 12, 88(%1)\t\n"
-+ "stfd 13, 96(%1)\t\n"
-+ : : "r" (gpreg), "r" (fpreg)
-+ : "r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10",
-+ "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7", "fr8", "fr9",
-+ "fr10", "fr11", "fr12", "fr13"
-+ );
-+
-+ volatile long sp;
-+
-+ //stack pointer
-+ __asm__ __volatile__ (
-+ "mr %0, 1\n\t"
-+ : "=r" (sp) : );
-+
-+ volatile long nRegReturn[1];
-+
-+ typelib_TypeClass aType =
-+ cpp_mediate( nOffsetAndIndex, (void**)gpreg, (void**)fpreg, sp, (sal_Int64*)nRegReturn);
-+
-+ switch( aType )
-+ {
-+ case typelib_TypeClass_VOID:
-+ break;
-+ case typelib_TypeClass_BOOLEAN:
-+ case typelib_TypeClass_BYTE:
-+ __asm__( "lbz 3,%0\n\t"
-+ : : "m" (nRegReturn[0]) );
-+ break;
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ __asm__( "lhz 3,%0\n\t"
-+ : : "m" (nRegReturn[0]) );
-+ break;
-+ case typelib_TypeClass_SHORT:
-+ __asm__( "lha 3,%0\n\t"
-+ : : "m" (nRegReturn[0]) );
-+ break;
-+ case typelib_TypeClass_ENUM:
-+ case typelib_TypeClass_UNSIGNED_LONG:
-+ __asm__( "lwz 3,%0\n\t"
-+ : : "m"(nRegReturn[0]) );
-+ break;
-+ case typelib_TypeClass_LONG:
-+ __asm__( "lwa 3,%0\n\t"
-+ : : "m"(nRegReturn[0]) );
-+ break;
-+ case typelib_TypeClass_FLOAT:
-+ __asm__( "lfs 1,%0\n\t"
-+ : : "m" (*((float*)nRegReturn)) );
-+ break;
-+ case typelib_TypeClass_DOUBLE:
-+ __asm__( "lfd 1,%0\n\t"
-+ : : "m" (*((double*)nRegReturn)) );
-+ break;
-+ default:
-+ __asm__( "ld 3,%0\n\t"
-+ : : "m" (nRegReturn[0]) );
-+ break;
-+ }
-+}
-+
-+const int codeSnippetSize = 24;
-+
-+unsigned char * codeSnippet( unsigned char * code, sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset,
-+ bool simpleRetType)
-+{
-+#ifdef CMC_DEBUG
-+ fprintf(stderr,"in codeSnippet functionIndex is %x\n", nFunctionIndex);
-+ fprintf(stderr,"in codeSnippet vtableOffset is %x\n", nVtableOffset);
-+#endif
-+
-+ sal_uInt64 nOffsetAndIndex = ( ( (sal_uInt64) nVtableOffset ) << 32 ) | ( (sal_uInt64) nFunctionIndex );
-+
-+ if ( !simpleRetType )
-+ nOffsetAndIndex |= 0x80000000;
-+
-+ void ** raw = (void **)&code[0];
-+ memcpy(raw, (char*) privateSnippetExecutor, 16);
-+ raw[2] = (void*) nOffsetAndIndex;
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "in: offset/index is %x %x %d, %lx\n",
-+ nFunctionIndex, nVtableOffset, !simpleRetType, raw[2]);
-+#endif
-+ return (code + codeSnippetSize);
-+}
-+
-+}
-+
-+void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const * bptr, unsigned char const * eptr)
-+{
-+ int const lineSize = 32;
-+ for (unsigned char const * p = bptr; p < eptr + lineSize; p += lineSize) {
-+ __asm__ volatile ("dcbst 0, %0" : : "r"(p) : "memory");
-+ }
-+ __asm__ volatile ("sync" : : : "memory");
-+ for (unsigned char const * p = bptr; p < eptr + lineSize; p += lineSize) {
-+ __asm__ volatile ("icbi 0, %0" : : "r"(p) : "memory");
-+ }
-+ __asm__ volatile ("isync" : : : "memory");
-+}
-+
-+struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; };
-+
-+bridges::cpp_uno::shared::VtableFactory::Slot *
-+bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block)
-+{
-+ return static_cast< Slot * >(block) + 2;
-+}
-+
-+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize(
-+ sal_Int32 slotCount)
-+{
-+ return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize;
-+}
-+
-+bridges::cpp_uno::shared::VtableFactory::Slot *
-+bridges::cpp_uno::shared::VtableFactory::initializeBlock(
-+ void * block, sal_Int32 slotCount)
-+{
-+ Slot * slots = mapBlockToVtable(block);
-+ slots[-2].fn = 0;
-+ slots[-1].fn = 0;
-+ return slots + slotCount;
-+}
-+
-+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
-+ Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff,
-+ typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset,
-+ sal_Int32 functionCount, sal_Int32 vtableOffset)
-+{
-+ (*slots) -= functionCount;
-+ Slot * s = *slots;
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset);
-+ fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset);
-+#endif
-+
-+ for (sal_Int32 i = 0; i < type->nMembers; ++i) {
-+ typelib_TypeDescription * member = 0;
-+ TYPELIB_DANGER_GET(&member, type->ppMembers[i]);
-+ OSL_ASSERT(member != 0);
-+ switch (member->eTypeClass) {
-+ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-+ // Getter:
-+ (s++)->fn = code + writetoexecdiff;
-+ code = codeSnippet(
-+ code, functionOffset++, vtableOffset,
-+ bridges::cpp_uno::shared::isSimpleType(
-+ reinterpret_cast<
-+ typelib_InterfaceAttributeTypeDescription * >(
-+ member)->pAttributeTypeRef));
-+
-+ // Setter:
-+ if (!reinterpret_cast<
-+ typelib_InterfaceAttributeTypeDescription * >(
-+ member)->bReadOnly)
-+ {
-+ (s++)->fn = code + writetoexecdiff;
-+ code = codeSnippet(code, functionOffset++, vtableOffset, true);
-+ }
-+ break;
-+
-+ case typelib_TypeClass_INTERFACE_METHOD:
-+ (s++)->fn = code + writetoexecdiff;
-+ code = codeSnippet(
-+ code, functionOffset++, vtableOffset,
-+ bridges::cpp_uno::shared::isSimpleType(
-+ reinterpret_cast<
-+ typelib_InterfaceMethodTypeDescription * >(
-+ member)->pReturnTypeRef));
-+ break;
-+
-+ default:
-+ OSL_ASSERT(false);
-+ break;
-+ }
-+ TYPELIB_DANGER_RELEASE(member);
-+ }
-+ return code;
-+}
-+
-+/* vi:set tabstop=4 shiftwidth=4 expandtab: */
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc64/except.cxx
-@@ -0,0 +1,283 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_bridges.hxx"
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+
-+#include "share.hxx"
-+
-+
-+using namespace ::std;
-+using namespace ::osl;
-+using namespace ::rtl;
-+using namespace ::com::sun::star::uno;
-+using namespace ::__cxxabiv1;
-+
-+
-+namespace CPPU_CURRENT_NAMESPACE
-+{
-+
-+void dummy_can_throw_anything( char const * )
-+{
-+}
-+
-+//==================================================================================================
-+static OUString toUNOname( char const * p ) SAL_THROW( () )
-+{
-+#if OSL_DEBUG_LEVEL > 1
-+ char const * start = p;
-+#endif
-+
-+ // example: N3com3sun4star4lang24IllegalArgumentExceptionE
-+
-+ OUStringBuffer buf( 64 );
-+ OSL_ASSERT( 'N' == *p );
-+ ++p; // skip N
-+
-+ while ('E' != *p)
-+ {
-+ // read chars count
-+ long n = (*p++ - '0');
-+ while ('0' <= *p && '9' >= *p)
-+ {
-+ n *= 10;
-+ n += (*p++ - '0');
-+ }
-+ buf.appendAscii( p, n );
-+ p += n;
-+ if ('E' != *p)
-+ buf.append( (sal_Unicode)'.' );
-+ }
-+
-+#if OSL_DEBUG_LEVEL > 1
-+ OUString ret( buf.makeStringAndClear() );
-+ OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
-+ fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
-+ return ret;
-+#else
-+ return buf.makeStringAndClear();
-+#endif
-+}
-+
-+//==================================================================================================
-+class RTTI
-+{
-+ typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map;
-+
-+ Mutex m_mutex;
-+ t_rtti_map m_rttis;
-+ t_rtti_map m_generatedRttis;
-+
-+ void * m_hApp;
-+
-+public:
-+ RTTI() SAL_THROW( () );
-+ ~RTTI() SAL_THROW( () );
-+
-+ type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () );
-+};
-+//__________________________________________________________________________________________________
-+RTTI::RTTI() SAL_THROW( () )
-+ : m_hApp( dlopen( 0, RTLD_LAZY ) )
-+{
-+}
-+//__________________________________________________________________________________________________
-+RTTI::~RTTI() SAL_THROW( () )
-+{
-+ dlclose( m_hApp );
-+}
-+
-+//__________________________________________________________________________________________________
-+type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () )
-+{
-+ type_info * rtti;
-+
-+ OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
-+
-+ MutexGuard guard( m_mutex );
-+ t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) );
-+ if (iRttiFind == m_rttis.end())
-+ {
-+ // RTTI symbol
-+ OStringBuffer buf( 64 );
-+ buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") );
-+ sal_Int32 index = 0;
-+ do
-+ {
-+ OUString token( unoName.getToken( 0, '.', index ) );
-+ buf.append( token.getLength() );
-+ OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) );
-+ buf.append( c_token );
-+ }
-+ while (index >= 0);
-+ buf.append( 'E' );
-+
-+ OString symName( buf.makeStringAndClear() );
-+ rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
-+
-+ if (rtti)
-+ {
-+ pair< t_rtti_map::iterator, bool > insertion(
-+ m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
-+ OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" );
-+ }
-+ else
-+ {
-+ // try to lookup the symbol in the generated rtti map
-+ t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) );
-+ if (iFind == m_generatedRttis.end())
-+ {
-+ // we must generate it !
-+ // symbol and rtti-name is nearly identical,
-+ // the symbol is prefixed with _ZTI
-+ char const * rttiName = symName.getStr() +4;
-+#if OSL_DEBUG_LEVEL > 1
-+ fprintf( stderr,"generated rtti for %s\n", rttiName );
-+#endif
-+ if (pTypeDescr->pBaseTypeDescription)
-+ {
-+ // ensure availability of base
-+ type_info * base_rtti = getRTTI(
-+ (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
-+ rtti = new __si_class_type_info(
-+ strdup( rttiName ), (__class_type_info *)base_rtti );
-+ }
-+ else
-+ {
-+ // this class has no base class
-+ rtti = new __class_type_info( strdup( rttiName ) );
-+ }
-+
-+ pair< t_rtti_map::iterator, bool > insertion(
-+ m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
-+ OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" );
-+ }
-+ else // taking already generated rtti
-+ {
-+ rtti = iFind->second;
-+ }
-+ }
-+ }
-+ else
-+ {
-+ rtti = iRttiFind->second;
-+ }
-+
-+ return rtti;
-+}
-+
-+//--------------------------------------------------------------------------------------------------
-+static void deleteException( void * pExc )
-+{
-+ __cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
-+ typelib_TypeDescription * pTD = 0;
-+ OUString unoName( toUNOname( header->exceptionType->name() ) );
-+ ::typelib_typedescription_getByName( &pTD, unoName.pData );
-+ OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" );
-+ if (pTD)
-+ {
-+ ::uno_destructData( pExc, pTD, cpp_release );
-+ ::typelib_typedescription_release( pTD );
-+ }
-+}
-+
-+//==================================================================================================
-+void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
-+{
-+ void * pCppExc;
-+ type_info * rtti;
-+
-+ {
-+ // construct cpp exception object
-+ typelib_TypeDescription * pTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
-+ OSL_ASSERT( pTypeDescr );
-+ if (! pTypeDescr)
-+ terminate();
-+
-+ pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
-+ ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
-+
-+ // destruct uno exception
-+ ::uno_any_destruct( pUnoExc, 0 );
-+ // avoiding locked counts
-+ static RTTI * s_rtti = 0;
-+ if (! s_rtti)
-+ {
-+ MutexGuard guard( Mutex::getGlobalMutex() );
-+ if (! s_rtti)
-+ {
-+#ifdef LEAK_STATIC_DATA
-+ s_rtti = new RTTI();
-+#else
-+ static RTTI rtti_data;
-+ s_rtti = &rtti_data;
-+#endif
-+ }
-+ }
-+ rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
-+ TYPELIB_DANGER_RELEASE( pTypeDescr );
-+ OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
-+ if (! rtti)
-+ terminate();
-+ }
-+
-+ __cxa_throw( pCppExc, rtti, deleteException );
-+}
-+
-+//==================================================================================================
-+void fillUnoException( __cxa_exception * header, uno_Any * pExc, uno_Mapping * pCpp2Uno )
-+{
-+ OSL_ENSURE( header, "### no exception header!!!" );
-+ if (! header)
-+ terminate();
-+
-+ typelib_TypeDescription * pExcTypeDescr = 0;
-+ OUString unoName( toUNOname( header->exceptionType->name() ) );
-+ ::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
-+ OSL_ENSURE( pExcTypeDescr, "### can not get type description for exception!!!" );
-+ if (! pExcTypeDescr)
-+ terminate();
-+
-+ // construct uno exception any
-+ ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
-+ ::typelib_typedescription_release( pExcTypeDescr );
-+}
-+
-+}
-+
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc64/makefile.mk
-@@ -0,0 +1,75 @@
-+#**************************************************************
-+#
-+# 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
-+#
-+# Unless required by applicable law or agreed to in writing,
-+# software distributed under the License is distributed on an
-+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+# KIND, either express or implied. See the License for the
-+# specific language governing permissions and limitations
-+# under the License.
-+#
-+#**************************************************************
-+
-+
-+
-+PRJ=..$/..$/..
-+
-+PRJNAME=bridges
-+TARGET=gcc3_uno
-+LIBTARGET=no
-+ENABLE_EXCEPTIONS=TRUE
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+.IF "$(COM)$(OS)$(CPU)$(COMNAME)$(CPUNAME)" == "GCCFREEBSDPgcc3POWERPC64"
-+
-+.IF "$(cppu_no_leak)" == ""
-+CFLAGS += -DLEAK_STATIC_DATA
-+.ENDIF
-+
-+# In case someone enabled the non-standard -fomit-frame-pointer which does not
-+# work with the .cxx sources in this directory:
-+CFLAGSCXX += -fno-omit-frame-pointer
-+
-+NOOPTFILES= \
-+ $(SLO)$/uno2cpp.obj \
-+ $(SLO)$/cpp2uno.obj
-+
-+CFLAGSNOOPT=-O0
-+
-+SLOFILES= \
-+ $(SLO)$/except.obj \
-+ $(SLO)$/cpp2uno.obj \
-+ $(SLO)$/uno2cpp.obj
-+
-+SHL1TARGET= $(TARGET)
-+
-+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-+SHL1IMPLIB=i$(TARGET)
-+SHL1VERSIONMAP=..$/..$/bridge_exports.map
-+
-+SHL1OBJS= $(SLOFILES)
-+SHL1LIBS = $(SLB)$/cpp_uno_shared.lib
-+
-+SHL1STDLIBS= \
-+ $(CPPULIB) \
-+ $(SALLIB)
-+
-+.ENDIF
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc64/share.hxx
-@@ -0,0 +1,92 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+#include "uno/mapping.h"
-+
-+#include
-+#include
-+#include
-+
-+namespace CPPU_CURRENT_NAMESPACE
-+{
-+
-+ void dummy_can_throw_anything( char const * );
-+
-+
-+// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
-+
-+struct _Unwind_Exception
-+{
-+ unsigned exception_class __attribute__((__mode__(__DI__)));
-+ void * exception_cleanup;
-+ unsigned private_1 __attribute__((__mode__(__word__)));
-+ unsigned private_2 __attribute__((__mode__(__word__)));
-+} __attribute__((__aligned__));
-+
-+struct __cxa_exception
-+{
-+ ::std::type_info *exceptionType;
-+ void (*exceptionDestructor)(void *);
-+
-+ ::std::unexpected_handler unexpectedHandler;
-+ ::std::terminate_handler terminateHandler;
-+
-+ __cxa_exception *nextException;
-+
-+ int handlerCount;
-+
-+ int handlerSwitchValue;
-+ const unsigned char *actionRecord;
-+ const unsigned char *languageSpecificData;
-+ void *catchTemp;
-+ void *adjustedPtr;
-+
-+ _Unwind_Exception unwindHeader;
-+};
-+
-+extern "C" void *__cxa_allocate_exception(
-+ std::size_t thrown_size ) throw();
-+extern "C" void __cxa_throw (
-+ void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
-+
-+struct __cxa_eh_globals
-+{
-+ __cxa_exception *caughtExceptions;
-+ unsigned int uncaughtExceptions;
-+};
-+extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
-+
-+// -----
-+
-+//==================================================================================================
-+void raiseException(
-+ uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
-+//==================================================================================================
-+void fillUnoException(
-+ __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
-+}
-+
-+namespace ppc64
-+{
-+ enum ppclimits { MAX_GPR_REGS = 8, MAX_SSE_REGS = 13 };
-+}
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ bridges/source/cpp_uno/gcc3_freebsd_powerpc64/uno2cpp.cxx
-@@ -0,0 +1,596 @@
-+/**************************************************************
-+ *
-+ * 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
-+ *
-+ * Unless required by applicable law or agreed to in writing,
-+ * software distributed under the License is distributed on an
-+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+ * KIND, either express or implied. See the License for the
-+ * specific language governing permissions and limitations
-+ * under the License.
-+ *
-+ *************************************************************/
-+
-+
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_bridges.hxx"
-+
-+#include
-+
-+#include
-+#include
-+
-+#include "bridges/cpp_uno/shared/bridge.hxx"
-+#include "bridges/cpp_uno/shared/types.hxx"
-+#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx"
-+#include "bridges/cpp_uno/shared/vtables.hxx"
-+
-+#include "share.hxx"
-+
-+#include
-+#include
-+
-+
-+using namespace ::rtl;
-+using namespace ::com::sun::star::uno;
-+
-+void MapReturn(long r3, double dret, typelib_TypeClass eTypeClass, void *pRegisterReturn)
-+{
-+ switch (eTypeClass)
-+ {
-+ case typelib_TypeClass_HYPER:
-+ case typelib_TypeClass_UNSIGNED_HYPER:
-+ *reinterpret_cast( pRegisterReturn ) = r3;
-+ break;
-+ case typelib_TypeClass_LONG:
-+ case typelib_TypeClass_UNSIGNED_LONG:
-+ case typelib_TypeClass_ENUM:
-+ *reinterpret_cast( pRegisterReturn ) = r3;
-+ break;
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ *reinterpret_cast( pRegisterReturn ) = (unsigned short)r3;
-+ break;
-+ case typelib_TypeClass_BOOLEAN:
-+ case typelib_TypeClass_BYTE:
-+ *reinterpret_cast( pRegisterReturn ) = (unsigned char)r3;
-+ break;
-+ case typelib_TypeClass_FLOAT:
-+ *reinterpret_cast( pRegisterReturn ) = dret;
-+ break;
-+ case typelib_TypeClass_DOUBLE:
-+ *reinterpret_cast( pRegisterReturn ) = dret;
-+ break;
-+ default:
-+ break;
-+ }
-+}
-+
-+namespace
-+{
-+//==================================================================================================
-+static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex,
-+ void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr,
-+ sal_uInt64 *pStack, sal_uInt32 nStack,
-+ sal_uInt64 *pGPR, sal_uInt32 nGPR,
-+ double *pFPR, sal_uInt32 nFPR)
-+{
-+ // Stack, if used, must be 16-bytes aligned
-+ if ( nStack )
-+ nStack = ( nStack + 1 ) & ~1;
-+
-+ // Should not happen, but...
-+ if ( nFPR > ppc64::MAX_SSE_REGS )
-+ nFPR = ppc64::MAX_SSE_REGS;
-+ if ( nGPR > ppc64::MAX_GPR_REGS )
-+ nGPR = ppc64::MAX_GPR_REGS;
-+
-+#ifdef CMC_DEBUG
-+ // Let's figure out what is really going on here
-+ {
-+ fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR );
-+ for ( int i = 0; i < nGPR; ++i )
-+ fprintf( stderr, "0x%lx, ", pGPR[i] );
-+ fprintf( stderr, "\nFPR's (%d): ", nFPR );
-+ for ( int i = 0; i < nFPR; ++i )
-+ fprintf( stderr, "0x%lx (%f), ", pFPR[i], pFPR[i] );
-+ fprintf( stderr, "\nStack (%d): ", nStack );
-+ for ( int i = 0; i < nStack; ++i )
-+ fprintf( stderr, "0x%lx, ", pStack[i] );
-+ fprintf( stderr, "\n" );
-+ }
-+#endif
-+
-+ // Load parameters to stack, if necessary
-+ sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca( nStack * 8 );
-+ memcpy( stack, pStack, nStack * 8 );
-+
-+ // Get pointer to method
-+ sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
-+ pMethod += 8 * nVtableIndex;
-+ pMethod = *((sal_uInt64 *)pMethod);
-+
-+ typedef void (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 );
-+ FunctionCall pFunc = (FunctionCall)pMethod;
-+
-+ volatile double dret;
-+
-+ // fill registers
-+ __asm__ __volatile__ (
-+ "ld 3, 0(%0)\n\t"
-+ "ld 4, 8(%0)\n\t"
-+ "ld 5, 16(%0)\n\t"
-+ "ld 6, 24(%0)\n\t"
-+ "ld 7, 32(%0)\n\t"
-+ "ld 8, 40(%0)\n\t"
-+ "ld 9, 48(%0)\n\t"
-+ "ld 10, 56(%0)\n\t"
-+ "lfd 1, 0(%1)\n\t"
-+ "lfd 2, 8(%1)\n\t"
-+ "lfd 3, 16(%1)\n\t"
-+ "lfd 4, 24(%1)\n\t"
-+ "lfd 5, 32(%1)\n\t"
-+ "lfd 6, 40(%1)\n\t"
-+ "lfd 7, 48(%1)\n\t"
-+ "lfd 8, 56(%1)\n\t"
-+ "lfd 9, 64(%1)\n\t"
-+ "lfd 10, 72(%1)\n\t"
-+ "lfd 11, 80(%1)\n\t"
-+ "lfd 12, 88(%1)\n\t"
-+ "lfd 13, 96(%1)\n\t"
-+ : : "r" (pGPR), "r" (pFPR)
-+ : "r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10",
-+ "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7", "fr8", "fr9",
-+ "fr10", "fr11", "fr12", "fr13"
-+ );
-+
-+ // tell gcc that r3 to r11 are not available to it for doing the TOC and exception munge on the func call
-+ register sal_uInt64 r3 asm("r3");
-+ register sal_uInt64 r4 asm("r4");
-+ register sal_uInt64 r5 asm("r5");
-+ register sal_uInt64 r6 asm("r6");
-+ register sal_uInt64 r7 asm("r7");
-+ register sal_uInt64 r8 asm("r8");
-+ register sal_uInt64 r9 asm("r9");
-+ register sal_uInt64 r10 asm("r10");
-+ register sal_uInt64 r11 asm("r11");
-+
-+ (*pFunc)(r3, r4, r5, r6, r7, r8, r9, r10);
-+
-+ // get return value
-+ __asm__ __volatile__ (
-+ "mr %1, 3\n\t"
-+ "mr %2, 4\n\t"
-+ "fmr %0, 1\n\t"
-+ : "=f" (dret), "=r" (r3), "=r" (r4) : );
-+
-+ MapReturn(r3, dret, pReturnTypeDescr->eTypeClass, pRegisterReturn);
-+}
-+
-+// Macros for easier insertion of values to registers or stack
-+// pSV - pointer to the source
-+// nr - order of the value [will be increased if stored to register]
-+// pFPR, pGPR - pointer to the registers
-+// pDS - pointer to the stack [will be increased if stored here]
-+
-+// The value in %xmm register is already prepared to be retrieved as a float,
-+// thus we treat float and double the same
-+#define INSERT_FLOAT( pSV, nr, pFPR, pDS, bOverflow ) \
-+ if ( nr < ppc64::MAX_SSE_REGS ) \
-+ pFPR[nr++] = *reinterpret_cast( pSV ); \
-+ else \
-+ bOverFlow = true; \
-+ if (bOverFlow) \
-+ *pDS++ = *reinterpret_cast( pSV ); // verbatim!
-+
-+#define INSERT_DOUBLE( pSV, nr, pFPR, pDS, bOverflow ) \
-+ if ( nr < ppc64::MAX_SSE_REGS ) \
-+ pFPR[nr++] = *reinterpret_cast( pSV ); \
-+ else \
-+ bOverFlow = true; \
-+ if (bOverFlow) \
-+ *pDS++ = *reinterpret_cast( pSV ); // verbatim!
-+
-+#define INSERT_INT64( pSV, nr, pGPR, pDS, bOverflow ) \
-+ if ( nr < ppc64::MAX_GPR_REGS ) \
-+ pGPR[nr++] = *reinterpret_cast( pSV ); \
-+ else \
-+ bOverFlow = true; \
-+ if (bOverFlow) \
-+ *pDS++ = *reinterpret_cast( pSV );
-+
-+#define INSERT_INT32( pSV, nr, pGPR, pDS, bOverflow ) \
-+ if ( nr < ppc64::MAX_GPR_REGS ) \
-+ pGPR[nr++] = *reinterpret_cast( pSV ); \
-+ else \
-+ bOverFlow = true; \
-+ if (bOverFlow) \
-+ *pDS++ = *reinterpret_cast( pSV );
-+
-+#define INSERT_INT16( pSV, nr, pGPR, pDS, bOverflow ) \
-+ if ( nr < ppc64::MAX_GPR_REGS ) \
-+ pGPR[nr++] = *reinterpret_cast( pSV ); \
-+ else \
-+ bOverFlow = true; \
-+ if (bOverFlow) \
-+ *pDS++ = *reinterpret_cast( pSV );
-+
-+#define INSERT_INT8( pSV, nr, pGPR, pDS, bOverflow ) \
-+ if ( nr < ppc64::MAX_GPR_REGS ) \
-+ pGPR[nr++] = *reinterpret_cast( pSV ); \
-+ else \
-+ bOverFlow = true; \
-+ if (bOverFlow) \
-+ *pDS++ = *reinterpret_cast( pSV );
-+
-+//==================================================================================================
-+static void cpp_call(
-+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
-+ bridges::cpp_uno::shared::VtableSlot aVtableSlot,
-+ typelib_TypeDescriptionReference * pReturnTypeRef,
-+ sal_Int32 nParams, typelib_MethodParameter * pParams,
-+ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
-+{
-+ // max space for: [complex ret ptr], values|ptr ...
-+ sal_uInt64 * pStack = (sal_uInt64 *)alloca( (nParams+3) * sizeof(sal_Int64) );
-+ sal_uInt64 * pStackStart = pStack;
-+
-+ sal_uInt64 pGPR[ppc64::MAX_GPR_REGS];
-+ sal_uInt32 nGPR = 0;
-+
-+ double pFPR[ppc64::MAX_SSE_REGS];
-+ sal_uInt32 nFPR = 0;
-+
-+ // return
-+ typelib_TypeDescription * pReturnTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
-+ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
-+
-+ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
-+
-+ bool bOverFlow = false;
-+
-+ if (pReturnTypeDescr)
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "return type is %d\n", pReturnTypeDescr->eTypeClass);
-+#endif
-+ if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
-+ {
-+ pCppReturn = pUnoReturn; // direct way for simple types
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "simple return\n");
-+#endif
-+ }
-+ else
-+ {
-+ // complex return via ptr
-+ pCppReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-+ ? alloca( pReturnTypeDescr->nSize ) : pUnoReturn);
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "pCppReturn/pUnoReturn is %lx/%lx", pCppReturn, pUnoReturn);
-+#endif
-+ INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack, bOverFlow );
-+ }
-+ }
-+ // push "this" pointer
-+ void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "this pointer is %p\n", pAdjustedThisPtr);
-+#endif
-+ INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack, bOverFlow );
-+
-+ // Args
-+ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
-+ // indizes of values this have to be converted (interface conversion cpp<=>uno)
-+ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
-+ // type descriptions for reconversions
-+ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
-+
-+ sal_Int32 nTempIndizes = 0;
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "n params is %d\n", nParams);
-+#endif
-+
-+ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
-+ {
-+ const typelib_MethodParameter & rParam = pParams[nPos];
-+ typelib_TypeDescription * pParamTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-+
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "param %d is %d %d %d\n", nPos, rParam.bOut, bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ),
-+ pParamTypeDescr->eTypeClass);
-+#endif
-+
-+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
-+ {
-+// uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr,
-+ uno_copyAndConvertData( pCppArgs[nPos] = pStack, pUnoArgs[nPos], pParamTypeDescr,
-+ pThis->getBridge()->getUno2Cpp() );
-+ switch (pParamTypeDescr->eTypeClass)
-+ {
-+ case typelib_TypeClass_HYPER:
-+ case typelib_TypeClass_UNSIGNED_HYPER:
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "hyper is %lx\n", pCppArgs[nPos]);
-+#endif
-+ INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ break;
-+ case typelib_TypeClass_LONG:
-+ case typelib_TypeClass_UNSIGNED_LONG:
-+ case typelib_TypeClass_ENUM:
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "long is %x\n", pCppArgs[nPos]);
-+#endif
-+ INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ break;
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ break;
-+ case typelib_TypeClass_BOOLEAN:
-+ case typelib_TypeClass_BYTE:
-+ INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, pStack, bOverFlow );
-+ break;
-+ case typelib_TypeClass_FLOAT:
-+ INSERT_FLOAT( pCppArgs[nPos], nFPR, pFPR, pStack, bOverFlow );
-+ break;
-+ case typelib_TypeClass_DOUBLE:
-+ INSERT_DOUBLE( pCppArgs[nPos], nFPR, pFPR, pStack, bOverFlow );
-+ break;
-+ }
-+
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+
-+ }
-+ else // ptr to complex value | ref
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "complex type again %d\n", rParam.bIn);
-+#endif
-+ if (! rParam.bIn) // is pure out
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "complex size is %d\n", pParamTypeDescr->nSize );
-+#endif
-+ // cpp out is constructed mem, uno out is not!
-+ uno_constructData(
-+ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-+ pParamTypeDescr );
-+ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ // is in/inout
-+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "this one\n");
-+#endif
-+ uno_copyAndConvertData(
-+ pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-+ pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
-+
-+ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
-+ // will be released at reconversion
-+ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-+ }
-+ else // direct way
-+ {
-+#ifdef CMC_DEBUG
-+ fprintf(stderr, "that one, passing %lx through\n", pUnoArgs[nPos]);
-+#endif
-+ pCppArgs[nPos] = pUnoArgs[nPos];
-+ // no longer needed
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack, bOverFlow );
-+ }
-+ }
-+
-+ try
-+ {
-+ callVirtualMethod(
-+ pAdjustedThisPtr, aVtableSlot.index,
-+ pCppReturn, pReturnTypeDescr,
-+ pStackStart, ( pStack - pStackStart ),
-+ pGPR, nGPR,
-+ pFPR, nFPR );
-+ // NO exception occurred...
-+ *ppUnoExc = 0;
-+
-+ // reconvert temporary params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
-+
-+ if (pParams[nIndex].bIn)
-+ {
-+ if (pParams[nIndex].bOut) // inout
-+ {
-+ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
-+ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ }
-+ }
-+ else // pure out
-+ {
-+ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ }
-+ // destroy temp cpp param => cpp: every param was constructed
-+ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-+
-+ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
-+ }
-+ // return value
-+ if (pCppReturn && pUnoReturn != pCppReturn)
-+ {
-+ uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
-+ pThis->getBridge()->getCpp2Uno() );
-+ uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
-+ }
-+ }
-+ catch (...)
-+ {
-+ // fill uno exception
-+ fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions,
-+ *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
-+
-+ // temporary params
-+ for ( ; nTempIndizes--; )
-+ {
-+ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
-+ // destroy temp cpp param => cpp: every param was constructed
-+ uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
-+ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
-+ }
-+ // return type
-+ if (pReturnTypeDescr)
-+ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-+ }
-+}
-+
-+}
-+
-+namespace bridges { namespace cpp_uno { namespace shared {
-+
-+void unoInterfaceProxyDispatch(
-+ uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
-+ void * pReturn, void * pArgs[], uno_Any ** ppException )
-+{
-+ // is my surrogate
-+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
-+ = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI);
-+ typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
-+
-+ switch (pMemberDescr->eTypeClass)
-+ {
-+ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-+ {
-+
-+ VtableSlot aVtableSlot(
-+ getVtableSlot(
-+ reinterpret_cast<
-+ typelib_InterfaceAttributeTypeDescription const * >(
-+ pMemberDescr)));
-+
-+ if (pReturn)
-+ {
-+ // dependent dispatch
-+ cpp_call(
-+ pThis, aVtableSlot,
-+ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
-+ 0, 0, // no params
-+ pReturn, pArgs, ppException );
-+ }
-+ else
-+ {
-+ // is SET
-+ typelib_MethodParameter aParam;
-+ aParam.pTypeRef =
-+ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
-+ aParam.bIn = sal_True;
-+ aParam.bOut = sal_False;
-+
-+ typelib_TypeDescriptionReference * pReturnTypeRef = 0;
-+ OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
-+ typelib_typedescriptionreference_new(
-+ &pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
-+
-+ // dependent dispatch
-+ aVtableSlot.index += 1; //get then set method
-+ cpp_call(
-+ pThis, aVtableSlot,
-+ pReturnTypeRef,
-+ 1, &aParam,
-+ pReturn, pArgs, ppException );
-+
-+ typelib_typedescriptionreference_release( pReturnTypeRef );
-+ }
-+
-+ break;
-+ }
-+ case typelib_TypeClass_INTERFACE_METHOD:
-+ {
-+
-+ VtableSlot aVtableSlot(
-+ getVtableSlot(
-+ reinterpret_cast<
-+ typelib_InterfaceMethodTypeDescription const * >(
-+ pMemberDescr)));
-+ switch (aVtableSlot.index)
-+ {
-+ // standard calls
-+ case 1: // acquire uno interface
-+ (*pUnoI->acquire)( pUnoI );
-+ *ppException = 0;
-+ break;
-+ case 2: // release uno interface
-+ (*pUnoI->release)( pUnoI );
-+ *ppException = 0;
-+ break;
-+ case 0: // queryInterface() opt
-+ {
-+ typelib_TypeDescription * pTD = 0;
-+ TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
-+ if (pTD)
-+ {
-+ uno_Interface * pInterface = 0;
-+ (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)(
-+ pThis->pBridge->getUnoEnv(),
-+ (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
-+
-+ if (pInterface)
-+ {
-+ ::uno_any_construct(
-+ reinterpret_cast< uno_Any * >( pReturn ),
-+ &pInterface, pTD, 0 );
-+ (*pInterface->release)( pInterface );
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ *ppException = 0;
-+ break;
-+ }
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ }
-+ } // else perform queryInterface()
-+ default:
-+ // dependent dispatch
-+ cpp_call(
-+ pThis, aVtableSlot,
-+ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
-+ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
-+ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
-+ pReturn, pArgs, ppException );
-+ }
-+ break;
-+ }
-+ default:
-+ {
-+ ::com::sun::star::uno::RuntimeException aExc(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
-+
-+ Type const & rExcType = ::getCppuType( &aExc );
-+ // binary identical null reference
-+ ::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
-+ }
-+ }
-+}
-+
-+} } }
---- desktop/source/deployment/misc/dp_platform.cxx.orig
-+++ desktop/source/deployment/misc/dp_platform.cxx
-@@ -56,6 +56,8 @@
- #define PLATFORM_SOLARIS_SPARC "solaris_sparc"
- #define PLATFORM_SOLARIS_SPARC64 "solaris_sparc64"
- #define PLATFORM_SOLARIS_X86 "solaris_x86"
-+#define PLATFORM_FREEBSD_POWERPC "freebsd_powerpc"
-+#define PLATFORM_FREEBSD_POWERPC64 "freebsd_powerpc64"
- #define PLATFORM_FREEBSD_X86 "freebsd_x86"
- #define PLATFORM_FREEBSD_X86_64 "freebsd_x86_64"
- #define PLATFORM_MACOSX_X86 "macosx_x86"
-@@ -164,6 +166,10 @@
- ret = checkOSandCPU(OUSTR("Solaris"), OUSTR("SPARC64"));
- else if (token.equals(OUSTR(PLATFORM_SOLARIS_X86)))
- ret = checkOSandCPU(OUSTR("Solaris"), OUSTR("x86"));
-+ else if (token.equals(OUSTR(PLATFORM_FREEBSD_POWERPC)))
-+ ret = checkOSandCPU(OUSTR("FreeBSD"), OUSTR("PowerPC"));
-+ else if (token.equals(OUSTR(PLATFORM_FREEBSD_POWERPC64)))
-+ ret = checkOSandCPU(OUSTR("FreeBSD"), OUSTR("PowerPC64"));
- else if (token.equals(OUSTR(PLATFORM_FREEBSD_X86)))
- ret = checkOSandCPU(OUSTR("FreeBSD"), OUSTR("x86"));
- else if (token.equals(OUSTR(PLATFORM_FREEBSD_X86_64)))
---- odk/settings/platform.mk.orig
-+++ odk/settings/platform.mk
-@@ -34,6 +34,9 @@
- ifeq "$(UNOPKG_PLATFORM)" "Linux_PowerPC"
- EXTENSION_PLATFORM=linux_powerpc
- else
-+ ifeq "$(UNOPKG_PLATFORM)" "FreeBSD_PowerPC64"
-+ EXTENSION_PLATFORM=freebsd_powerpc64
-+ else
- ifeq "$(UNOPKG_PLATFORM)" "Linux_x86"
- EXTENSION_PLATFORM=linux_x86
- else
---- odk/settings/settings.mk.orig
-+++ odk/settings/settings.mk
-@@ -507,12 +507,19 @@
- else
- UNOPKG_PLATFORM=FreeBSD_x86
- endif
-+ifeq "$(PROCTYPE)" "powerpc"
-+UNOPKG_PLATFORM=FreeBSD_ppc
-+endif
- endif
-
- ifeq "$(PROCTYPE)" "x86_64"
- JAVA_PROC_TYPE=amd64
- else
- JAVA_PROC_TYPE=i386
-+endif
-+
-+ifeq "$(PROCTYPE)" "powerpc64"
-+JAVA_PROC_TYPE=ppc64
- endif
-
- ifeq (kfreebsd,$(findstring kfreebsd,$(PLATFORM)))
---- sal/inc/osl/endian.h.orig
-+++ sal/inc/osl/endian.h
-@@ -73,15 +73,13 @@
- #ifdef FREEBSD
- # include
- # include
--#if __FreeBSD_version < 500000
--# if BYTE_ORDER == LITTLE_ENDIAN
--# define _LITTLE_ENDIAN
--# elif BYTE_ORDER == BIG_ENDIAN
--# define _BIG_ENDIAN
--# elif BYTE_ORDER == PDP_ENDIAN
--# define _PDP_ENDIAN
--# endif
--#endif
-+# if BYTE_ORDER == LITTLE_ENDIAN
-+# undef _BIG_ENDIAN
-+# elif BYTE_ORDER == BIG_ENDIAN
-+# undef _LITTLE_ENDIAN
-+# elif BYTE_ORDER == PDP_ENDIAN
-+# define _PDP_ENDIAN
-+# endif
- #endif
-
- #ifdef SCO
---- sal/osl/unx/system.h.orig
-+++ sal/osl/unx/system.h
-@@ -39,6 +39,7 @@
-
- #include
-
-+#include
- #include
-
- #include
-@@ -176,15 +177,13 @@
- # include
- # define IORESOURCE_TRANSFER_BSD
- # include
--#if __FreeBSD_version < 500000
- # if BYTE_ORDER == LITTLE_ENDIAN
--# define _LITTLE_ENDIAN
-+# undef _BIG_ENDIAN
- # elif BYTE_ORDER == BIG_ENDIAN
--# define _BIG_ENDIAN
-+# undef _LITTLE_ENDIAN
- # elif BYTE_ORDER == PDP_ENDIAN
- # define _PDP_ENDIAN
- # endif
--#endif
- # define NO_PTHREAD_RTL
- #endif
-
---- set_soenv.in
-+++ set_soenv.in
-@@ -396,6 +396,26 @@
- $JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386";
- $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."client";
- $JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."native_threads";
-+ }
-+ elsif (($platform =~ m/^powerpc64/) && ('@SIZEOF_LONG@' eq '8'))
-+ { print "Setting FreeBSD PPC64 specific values... ";
-+ $outfile = "FreeBSDPPC64Env.Set";
-+ $CPU = "P";
-+ $CPUNAME = "POWERPC64";
-+ $OUTPATH = "unxfbsdp";
-+ $JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ppc64";
-+ $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ppc64".$ds."server";
-+ $JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ppc64".$ds."native_threads";
-+ }
-+ elsif ($platform =~ m/powerpc/)
-+ { print "Setting FreeBSD PPC specific values... ";
-+ $outfile = "FreeBSDPPCEnv.Set";
-+ $CPU = "P";
-+ $CPUNAME = "POWERPC";
-+ $OUTPATH = "unxfbsdp";
-+ $JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ppc";
-+ $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ppc".$ds."server";
-+ $JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."ppc".$ds."native_threads";
- }
- else
- { print "Unsupported FreeBSD architecture: $platform \n";
---- solenv/gbuild/platform/freebsd.mk.orig
-+++ solenv/gbuild/platform/freebsd.mk
-@@ -36,6 +36,10 @@
- CPUNAME := X86_64
- endif
-
-+ifeq ($(CPU),P)
-+CPUNAME := POWERPC64
-+endif
-+
- # use CC/CXX if they are nondefaults
- ifneq ($(origin CC),default)
- gb_CC := $(CC)
-@@ -66,6 +70,12 @@
- gb_CPUDEFS := -D$(CPUNAME)
- else
- gb_CPUDEFS := -DX86
-+endif
-+
-+ifeq ($(CPUNAME),POWERPC64)
-+gb_CPUDEFS := -D$(CPUNAME)
-+else
-+gb_CPUDEFS := -DPOWERPC64
- endif
-
- gb_CFLAGS := \
---- solenv/inc/libs.mk.orig
-+++ solenv/inc/libs.mk
-@@ -236,6 +236,9 @@
- NEON3RDLIB=$(SOLARLIBDIR)/libneon.dylib
- .ELSE
- NEON3RDLIB=-lneon
-+.ENDIF
-+.IF "$(OS)" == "FREEBSD" && "$(CPUNAME)" == "POWERPC64"
-+JPEG3RDLIB=/usr/local/lib/libjpeg.so
- .ENDIF
- CURLLIB=-lcurl
- SFX2LIB=-lsfx$(DLLPOSTFIX)
---- solenv/inc/unx.mk.orig
-+++ solenv/inc/unx.mk
-@@ -93,6 +93,10 @@
-
- .IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCLINUXPPOWERPC64"
- .INCLUDE : unxlngppc64.mk
-+.ENDIF
-+
-+.IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCFREEBSDPPOWERPC64"
-+.INCLUDE : unxfbsdp.mk
- .ENDIF
-
- .IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCLINUX3S390"
---- solenv/inc/unxfbsd.mk.orig
-+++ solenv/inc/unxfbsd.mk
-@@ -36,6 +36,9 @@
- .ENDIF
- .IF "$(CPUNAME)" == "X86_64"
- .INCLUDE : unxfbsdx.mk
-+.ENDIF
-+.IF "$(CPUNAME)" == "POWERPC64"
-+.INCLUDE : unxfbsdp.mk
- .ENDIF
-
- # filter for supressing verbose messages from linker
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ solenv/inc/unxfbsdp.mk
-@@ -0,0 +1,42 @@
-+#**************************************************************
-+#
-+# 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
-+#
-+# Unless required by applicable law or agreed to in writing,
-+# software distributed under the License is distributed on an
-+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+# KIND, either express or implied. See the License for the
-+# specific language governing permissions and limitations
-+# under the License.
-+#
-+#**************************************************************
-+
-+
-+
-+#
-+# FreeBSD/ppc64 specific defines
-+#
-+
-+DEFAULTOPT=-Os
-+PICSWITCH:=-fPIC
-+CDEFS+=-DPOWERPC64 -DPOWERPC -DPPC
-+CFLAGSCXX+=-mminimal-toc
-+
-+# Compiler flags for enabling optimizations
-+.IF "$(PRODUCT)"!=""
-+CFLAGSOPT=-O2 -fno-strict-aliasing # optimizing for products
-+.ELSE # "$(PRODUCT)"!=""
-+CFLAGSOPT= # no optimizing for non products
-+.ENDIF # "$(PRODUCT)"!=""
-+
-+# platform specific identifier for shared libs
-+DLLPOSTFIX=
-+BUILD64=1
---- testtools/source/bridgetest/makefile.mk.orig
-+++ testtools/source/bridgetest/makefile.mk
-@@ -134,7 +134,7 @@
-
- runtest : $(DLLDEST)$/uno_types.rdb $(DLLDEST)$/uno_services.rdb makefile.mk \
- $(SHL1TARGETN) $(SHL2TARGETN) $(SHL3TARGETN)
--.IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP" || "$(OS)$(CPU)"=="SOLARISS"
-+.IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP" || "$(OS)$(CPU)"=="SOLARISS" || "$(COM)$(OS)$(CPU)"=="GCCFREEBSDP"
- @echo "Mac OSX PPC GCC and Solaris fails this test! likely broken UNO bridge. Fix me."
- .ELSE
- cd $(DLLDEST) && $(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/uno \
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-openoffice4_powerpc64
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-openjdk8
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-openjdk8 (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-openjdk8 (nonexistent)
@@ -1,1808 +0,0 @@
---- javaunohelper/com/sun/star/comp/helper/Bootstrap.java.orig 2014-02-25 08:30:16 UTC
-+++ javaunohelper/com/sun/star/comp/helper/Bootstrap.java
-@@ -97,6 +97,7 @@ public class Bootstrap {
- @param context_entries the hash table contains mappings of entry names (type string) to
- context entries (type class ComponentContextEntry).
- @return a new context.
-+ @throws java.lang.Exception
- */
- static public XComponentContext createInitialComponentContext( Hashtable context_entries )
- throws Exception
-@@ -148,7 +149,8 @@ public class Bootstrap {
- * Bootstraps a servicemanager with the jurt base components registered.
- *
- * @return a freshly boostrapped service manager
-- * @see com.sun.star.lang.ServiceManager
-+ * @see "com.sun.star.lang.ServiceManager"
-+ * @throws java.lang.Exception
- */
- static public XMultiServiceFactory createSimpleServiceManager() throws Exception
- {
-@@ -157,10 +159,12 @@ public class Bootstrap {
- }
-
-
-- /** Bootstraps the initial component context from a native UNO installation.
--
-- @see cppuhelper/defaultBootstrap_InitialComponentContext()
-- */
-+ /**
-+ * Bootstraps the initial component context from a native UNO installation.
-+ *
-+ * @return
-+ * @see defaultBootstrap_InitialComponentContext()
-+ */
- static public final XComponentContext defaultBootstrap_InitialComponentContext()
- throws Exception
- {
-@@ -173,7 +177,7 @@ public class Bootstrap {
- @param bootstrap_parameters
- bootstrap parameters (maybe null)
-
-- @see cppuhelper/defaultBootstrap_InitialComponentContext()
-+ @see defaultBootstrap_InitialComponentContext()
- */
- static public final XComponentContext defaultBootstrap_InitialComponentContext(
- String ini_file, Hashtable bootstrap_parameters )
---- javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java.orig 2014-02-25 08:30:16 UTC
-+++ javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java
-@@ -29,7 +29,7 @@ package com.sun.star.comp.helper;
- The first one is commonly used for singleton objects of the component
- context, that are raised on first-time retrieval of the key.
- You have to pass a com.sun.star.lang.XSingleComponentFactory
-- or string (=> service name) object for this.
-+ or string (=> service name) object for this.
-
- */
- public class ComponentContextEntry
---- javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java.orig 2014-02-25 08:30:16 UTC
-+++ javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java
-@@ -34,9 +34,9 @@ import com.sun.star.registry.XRegistryKe
- * The SharedLibraryLoader
class provides the functionality of the com.sun.star.loader.SharedLibrary
- * service.
- *
-- * @see com.sun.star.loader.SharedLibrary
-+ * @see "com.sun.star.loader.SharedLibrary"
- * @see com.sun.star.comp.servicemanager.ServiceManager
-- * @see com.sun.star.lang.ServiceManager
-+ * @see "com.sun.star.lang.ServiceManager"
- */
- public class SharedLibraryLoader {
- /**
-@@ -70,9 +70,9 @@ public class SharedLibraryLoader {
- * @return the factory for the "com.sun.star.comp.stoc.DLLComponentLoader" component.
- * @param smgr the ServiceManager
- * @param regKey the root registry key
-- * @see com.sun.star.loader.SharedLibrary
-- * @see com.sun.star.lang.ServiceManager
-- * @see com.sun.star.registry.RegistryKey
-+ * @see "com.sun.star.loader.SharedLibrary"
-+ * @see "com.sun.star.lang.ServiceManager"
-+ * @see "com.sun.star.registry.RegistryKey"
- */
- public static XSingleServiceFactory getServiceFactory(
- XMultiServiceFactory smgr,
-@@ -93,9 +93,9 @@ public class SharedLibraryLoader {
- * @param impName the implementation name of the component
- * @param smgr the ServiceManager
- * @param regKey the root registry key
-- * @see com.sun.star.loader.SharedLibrary
-- * @see com.sun.star.lang.ServiceManager
-- * @see com.sun.star.registry.RegistryKey
-+ * @see "com.sun.star.loader.SharedLibrary"
-+ * @see "com.sun.star.lang.ServiceManager"
-+ * @see "com.sun.star.registry.RegistryKey"
- */
- public static XSingleServiceFactory getServiceFactory(
- String libName,
-@@ -116,9 +116,9 @@ public class SharedLibraryLoader {
- * @return true if the registration was successfull - otherwise false
- * @param smgr the ServiceManager
- * @param regKey the root key under that the component should be registered
-- * @see com.sun.star.loader.SharedLibrary
-- * @see com.sun.star.lang.ServiceManager
-- * @see com.sun.star.registry.RegistryKey
-+ * @see "com.sun.star.loader.SharedLibrary"
-+ * @see "com.sun.star.lang.ServiceManager"
-+ * @see "com.sun.star.registry.RegistryKey"
- */
- public static boolean writeRegistryServiceInfo(
- com.sun.star.lang.XMultiServiceFactory smgr,
-@@ -136,9 +136,9 @@ public class SharedLibraryLoader {
- * @param libName name of the shared library
- * @param smgr the ServiceManager
- * @param regKey the root key under that the component should be registered
-- * @see com.sun.star.loader.SharedLibrary
-- * @see com.sun.star.lang.ServiceManager
-- * @see com.sun.star.registry.RegistryKey
-+ * @see "com.sun.star.loader.SharedLibrary"
-+ * @see "com.sun.star.lang.ServiceManager"
-+ * @see "com.sun.star.registry.RegistryKey"
- */
- public static boolean writeRegistryServiceInfo(
- String libName,
---- javaunohelper/com/sun/star/lib/uno/helper/Factory.java.orig 2014-02-25 08:30:16 UTC
-+++ javaunohelper/com/sun/star/lib/uno/helper/Factory.java
-@@ -34,7 +34,8 @@ import com.sun.star.uno.UnoRuntime;
- /** Factory helper class supporting com.sun.star.lang.XServiceInfo and
- com.sun.star.lang.XSingleComponentFactory.
-
-- @attention
-+ Attention:
-+
- This factory implementation does not support lang.XSingleServiceFactory.
- */
- public class Factory
---- javaunohelper/com/sun/star/lib/uno/helper/InterfaceContainer.java.orig 2014-02-25 08:30:16 UTC
-+++ javaunohelper/com/sun/star/lib/uno/helper/InterfaceContainer.java
-@@ -467,6 +467,8 @@ public class InterfaceContainer implemen
- /** The iterator keeps a copy of the list. Changes to InterfaceContainer do not
- * affect the data of the iterator. Conversly, changes to the iterator are effect
- * InterfaceContainer.
-+ *
-+ * @param index
- */
- synchronized public ListIterator listIterator(int index)
- {
---- javaunohelper/com/sun/star/lib/uno/helper/PropertySet.java.orig 2014-02-25 08:30:16 UTC
-+++ javaunohelper/com/sun/star/lib/uno/helper/PropertySet.java
-@@ -122,7 +122,7 @@ XMultiPropertySet
- * initialization of the inheriting class (i.e. within the contructor)
- * @param name The property's name (Property.Name).
- * @param handle The property's handle (Property.Handle).
-- * @param Type The property's type (Property.Type).
-+ * @param type The property's type (Property.Type).
- * @param attributes The property's attributes (Property.Attributes).
- * @param id Identifies the property's storage.
- */
-@@ -140,8 +140,7 @@ XMultiPropertySet
- * Registration has to occur during
- * initialization of the inheriting class (i.e. within the contructor).
- * @param name The property's name (Property.Name).
-- * @param handle The property's handle (Property.Handle).
-- * @param Type The property's type (Property.Type).
-+ * @param type The property's type (Property.Type).
- * @param attributes The property's attributes (Property.Attributes).
- * @param id Identifies the property's storage.
- */
-@@ -563,11 +562,11 @@ XMultiPropertySet
- * {@link #setFastPropertyValue XFastPropertySet.setFastPropertyValue}
- * and {@link #setPropertyValues XMultiPropertySet.setPropertyValues}.
- * If this method fails, that is, it returns false or throws an exception, then no listeners are notified and the
-- * property value, that was intended to be changed, remains untouched.
This method does not have to deal with property attributes, such as
-+ * property value, that was intended to be changed, remains untouched.
This method does not have to deal with property attributes, such as
- * PropertyAttribute.READONLY or PropertyAttribute.MAYBEVOID. The processing of these attributes occurs
-- * in the calling methods.
-+ * in the calling methods.
- * Only if this method returns successfully further processing, such
-- * as listener notification and finally the modifiction of the property's value, will occur.
-+ * as listener notification and finally the modifiction of the property's value, will occur.
- *
- * The actual modification of a property's value is done by {@link #setPropertyValueNoBroadcast setPropertyValueNoBroadcast}
- * which is called subsequent to convertPropertyValue.
-@@ -593,10 +592,10 @@ XMultiPropertySet
- * Then, no conversion is necessary, since they can hold all possible values. However, if
- * the member is an Object and setVal is an Any then the object contained in the any is assigned to
- * the member. The extra type information which exists as Type object in the Any will get lost. If this is not
-- * intended then use an Any variable rather then an Object.
-+ * intended then use an Any variable rather then an Object.
- * If a member is an Object or Any and the argument setVal is an Object, other than String or array,
- * then it is presumed to be an UNO object and queried for XInterface. If successful, the out-param newVal
-- * returns the XInterface.
-+ * returns the XInterface.
- * If a member is an UNO interface, then setVal is queried for this interface and the result is returned.
- * If setVal is null then newVal will be null too after return.
- *
-@@ -793,7 +792,7 @@ XMultiPropertySet
- * If a property has the READONLY attribute set, and one of the setter methods, such as setPropertyValue, has been
- * called, then this method is not going to be called.
- * @param property the property for which the new value is set
-- * @param value the new value for the property.
-+ * @param newVal the new value for the property.
- * @throws com.sun.star.lang.WrappedTargetException An exception, which has to be made known to the caller,
- * occured during the setting of the value.
- */
---- javaunohelper/com/sun/star/lib/uno/helper/PropertySetMixin.java.orig 2014-02-25 08:30:16 UTC
-+++ javaunohelper/com/sun/star/lib/uno/helper/PropertySetMixin.java
-@@ -193,7 +193,7 @@ public final class PropertySetMixin {
- @param newValue the property value corresponding to the new
- attribute value. This is only used as
- com.sun.star.beans.PropertyChangeEvent.NewValue
, which is
-- rather useless, anyway (see “Using the Observer Pattern&rdquo: in
-+ rather useless, anyway (see “Using the Observer Pattern” in
-
- OpenOffice.org Coding Guidelines), unless the
- attribute that is going to be set is constrained. If the attribute
---- ridljar/com/sun/star/uno/IEnvironment.java.orig 2014-02-25 08:33:14 UTC
-+++ ridljar/com/sun/star/uno/IEnvironment.java
-@@ -63,7 +63,7 @@ public interface IEnvironment {
- * given bridge B2.
- *
A proxy object, created as a remote object is mapped into this
- * environment via a given bridge.
-- *
-+ *
- *
- * The object actually registered may differ from the specified
- * object
that is passed as an argument. This enables an
---- ridljar/com/sun/star/uno/IMethodDescription.java.orig 2014-02-25 08:33:14 UTC
-+++ ridljar/com/sun/star/uno/IMethodDescription.java
-@@ -52,7 +52,7 @@ public interface IMethodDescription exte
- boolean isConst();
-
- /**
-- * Gives any array of ITypeDescription> of
-+ * Gives any array of ITypeDescription
of
- * the [in] parameters.
- *
- * @return the in parameters
-@@ -60,7 +60,7 @@ public interface IMethodDescription exte
- ITypeDescription[] getInSignature();
-
- /**
-- * Gives any array of ITypeDescription> of
-+ * Gives any array of ITypeDescription
of
- * the [out] parameters.
- *
- * @return the out parameters
---- ridljar/com/sun/star/uno/ITypeDescription.java.orig 2014-02-25 08:33:14 UTC
-+++ ridljar/com/sun/star/uno/ITypeDescription.java
-@@ -103,8 +103,8 @@ public interface ITypeDescription {
- /**
- * Gets the (UNO) type name.
- *
-- *
The following table lists how UNO types map to type names:
- *
-+ * The following table lists how UNO types map to type names:
- *
- * UNO type | type name |
- *
-@@ -119,15 +119,15 @@ public interface ITypeDescription {
- *
- * LONG | "long" |
- * UNSIGNED LONG | "unsigned long" |
-- * HYPER | | "hyper"
-+ * HYPER | "hyper" |
- *
-- * UNSIGNED HYPER | | "unsigned hyper"
-+ * UNSIGNED HYPER | "unsigned hyper" |
- *
-- * FLOAT | | "float"
-- * DOUBLE | | "double"
-- * STRING | | "string"
-- * TYPE | | "type"
-- * ANY | | "any"
-+ * FLOAT | "float" |
-+ * DOUBLE | "double" |
-+ * STRING | "string" |
-+ * TYPE | "type" |
-+ * ANY | "any" |
- *
- * sequence type of base type T |
- * "[]" followed by type name for T |
-@@ -148,7 +148,7 @@ public interface ITypeDescription {
- * interface type named N |
- * N (see below) |
- *
-- *
-+ *
- *
- * For a UNO type named N, consisting of a sequence of module
- * names M1, ..., Mn followed by
---- ridljar/com/sun/star/uno/Type.java.orig 2014-02-25 08:33:14 UTC
-+++ ridljar/com/sun/star/uno/Type.java
-@@ -33,7 +33,7 @@ import java.util.HashMap;
- * SHORT
) do not have a matching Java class. For another, it can be
- * necessary to describe a type which is unknown to the Java runtime system
- * (for example, for delaying the need of a class, so that it is possible to
-- * generate it on the fly.)
-+ * generate it on the fly.)
- *
- * A Type
is uniquely determined by its type class (a
- * TypeClass
) and its type name (a String
); these two
-@@ -204,7 +204,7 @@ public class Type {
- *
- *
In certain cases, one Java class corresponds to two UNO types (e.g.,
- * the Java class short[].class
corresponds to both a sequence
-- * of SHORT
and a sequence of UNSIGNED SHORT
in
-+ * of SHORT
and a sequence of UNSIGNED SHORT
in
- * UNO). In such ambiguous cases, the parameter alternative
- * controls which UNO type is chosen:
- *
---- ridljar/com/sun/star/uno/Union.java.orig 2014-02-25 08:33:14 UTC
-+++ ridljar/com/sun/star/uno/Union.java
-@@ -27,7 +27,7 @@ package com.sun.star.uno;
- * The Union class is the base class for all classes generated
- * as java binding for the IDL type union.
- *
-- * Note: The idl type union is currently not fully
-+ * Note: The idl type union
is currently not fully
- * integrated into the UNO framework, so don't use it.
- *
- * @version $Revision: 1.5 $ $ $Date: 2008-04-11 11:15:07 $
---- xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentMergerImpl.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentMergerImpl.java
-@@ -44,7 +44,7 @@ import org.openoffice.xmerge.util.Debug;
- * AportisDoc implementation of DocumentMerger
- * for the {@link
- * org.openoffice.xmerge.converter.xml.sxw.aportisdoc.PluginFactoryImpl
-- * PluginFactoryImpl}.
-+ * PluginFactoryImpl}.
- */
- public class DocumentMergerImpl implements DocumentMerger {
-
---- xmerge/source/bridge/java/XMergeBridge.java.orig 2014-02-25 08:29:07 UTC
-+++ xmerge/source/bridge/java/XMergeBridge.java
-@@ -92,7 +92,6 @@ public class XMergeBridge {
-
- /** This inner class provides the component as a concrete implementation
- * of the service description. It implements the needed interfaces.
-- * @implements XTypeProvider
- */
- static public class _XMergeBridge implements
- XImportFilter,
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BeginningOfFile.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BeginningOfFile.java
-@@ -44,9 +44,6 @@ public class BeginningOfFile implements
-
- /**
- * Constructor that initializes the member values.
-- *
-- * @param ver Version Number
-- * Substream type (workbook = 0x05, worksheet = 0x10)
- */
- public BeginningOfFile(boolean global) {
- setVersion((short) 271);
-@@ -61,6 +58,10 @@ public class BeginningOfFile implements
- read(is);
- }
-
-+ /**
-+ *
-+ * @param version Version Number
-+ */
- private void setVersion(short version) {
- this.version = EndianConverter.writeShort(version);
- }
-@@ -79,6 +80,10 @@ public class BeginningOfFile implements
- subStream = EndianConverter.writeShort((short) 0x10);
- }
-
-+ /**
-+ *
-+ * @return Substream type (workbook = 0x05, worksheet = 0x10)
-+ */
- int getSubStreamType() {
- return EndianConverter.readShort(subStream);
- }
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BlankCell.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BlankCell.java
-@@ -49,8 +49,7 @@ public class BlankCell extends CellValue
- * Constructs a BlankCell
using specified attributes
- *
- * @param row row number
-- * @param col column number
-- * @param cellContents contents of the cell
-+ * @param column column number
- * @param ixfe font index
- */
- public BlankCell(int row, int column, int ixfe) throws IOException {
-@@ -83,7 +82,7 @@ public class BlankCell extends CellValue
- /**
- * Reads a BlankCell InputStream
- *
-- * @param is InputStream containing a BlankCell.
-+ * @param input InputStream containing a BlankCell.
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoolErrCell.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoolErrCell.java
-@@ -43,7 +43,7 @@ public class BoolErrCell extends CellVal
- * Constructs a BoolErrCell from arguments
- *
- * @param row row number
-- * @param col column number
-+ * @param column column number
- * @param ixfe font index
- * @param bBoolErr Boolean value or error value
- * @param fError Boolean error flag
-@@ -78,7 +78,7 @@ public class BoolErrCell extends CellVal
- /**
- * Writes a BoolErrCell
to the specified Outputstream
- *
-- * @param os the OutputStream
to write to
-+ * @param output the OutputStream
to write to
- */
- public void write(OutputStream output) throws IOException {
-
-@@ -95,7 +95,7 @@ public class BoolErrCell extends CellVal
- /**
- * Reads a BoolErrCell from the InputStream
- *
-- * @param is InputStream containing a BoolErrCell
-+ * @param input InputStream containing a BoolErrCell
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoundSheet.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoundSheet.java
-@@ -64,7 +64,7 @@ public class BoundSheet implements BIFFR
- * Sets the worksheet name. The sheetname length must be doubled as the
- * String is stored in unicode format.
- *
-- * @param sheetname worksheet name
-+ * @param sheetName worksheet name
- */
- void setSheetName(String sheetName) throws IOException {
- this.cch = (byte) sheetName.length();
-@@ -95,7 +95,7 @@ public class BoundSheet implements BIFFR
- /**
- * Write this particular BIFFRecord
to the OutputStream
- *
-- * @param ouput the OutputStream
-+ * @param output the OutputStream
- */
- public void write(OutputStream output) throws IOException {
-
-@@ -111,7 +111,7 @@ public class BoundSheet implements BIFFR
- * Reads a BoundSheet from the InputStream
The byte array
- * must be twice the size of the String as it uses unicode.
- *
-- * @param is InputStream containing the record data
-+ * @param input InputStream containing the record data
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/CellValue.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/CellValue.java
-@@ -92,7 +92,7 @@ public abstract class CellValue implemen
- /**
- * Writes basic cell value attributes to the specified Outputstream
- *
-- * @param os the OutputStream
to write to
-+ * @param output the OutputStream
to write to
- */
- public void write(OutputStream output) throws IOException {
-
-@@ -102,9 +102,9 @@ public abstract class CellValue implemen
- }
-
- /**
-- * Writes aLabelCell
to the specified Outputstream
-+ * Read a LabelCell
from the specified InputStream
- *
-- * @param os the OutputStream
to write to
-+ * @param input the InputStream
to read from
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ColInfo.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ColInfo.java
-@@ -50,8 +50,8 @@ public class ColInfo implements BIFFReco
- *
- * @param colFirst the first column this formatting applies to
- * @param colLast last column this formatting applies to
-- * @param coldx column width
-- * @param grbit options flags
-+ * @param colDX column width
-+ * @param ixfe options flags
- */
- public ColInfo(int colFirst, int colLast, int colDX, int ixfe) {
- this.colFirst = EndianConverter.writeShort((short)colFirst);
-@@ -135,7 +135,7 @@ public class ColInfo implements BIFFReco
- /**
- * Writes a ColInfo to the specified Outputstream
- *
-- * @param os the OutputStream
to write to
-+ * @param output the OutputStream
to write to
- */
- public void write(OutputStream output) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefColWidth.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefColWidth.java
-@@ -32,7 +32,7 @@ import org.openoffice.xmerge.util.Endian
- import org.openoffice.xmerge.converter.xml.sxc.pexcel.PocketExcelConstants;
-
- /**
-- * Represents a BIFF record defiuning the defualt column width
-+ * Represents a BIFF record defining the default column width
- */
- public class DefColWidth implements BIFFRecord {
-
-@@ -40,18 +40,18 @@ public class DefColWidth implements BIFF
- private byte[] coldx = new byte[2];
- private byte[] ixfe = new byte[2];
-
--/**
-- * Constructs a pocket Excel Document from the
-- * InputStream
and assigns it the document name passed in
-- *
-- * @param is InputStream containing a Pocket Excel Data file.
-- */
- public DefColWidth() {
- grbit = new byte[] {0x00, 0x00};
- coldx = new byte[] {0x00, 0x09};
- ixfe = new byte[] {0x00, 0x00};
- }
-
-+ /**
-+ * Constructs a pocket Excel Document from the
-+ * InputStream
and assigns it the document name passed in
-+ *
-+ * @param is InputStream containing a Pocket Excel Data file.
-+ */
- public DefColWidth(InputStream is) throws IOException {
- read(is);
- }
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefRowHeight.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefRowHeight.java
-@@ -39,12 +39,6 @@ public class DefRowHeight implements BIF
- private byte[] unknown1 = new byte[2];
- private byte[] unknown2 = new byte[2];
-
-- /**
-- * Constructs a pocket Excel Document from the
-- * InputStream
and assigns it the document name passed in
-- *
-- * @param is InputStream containing a Pocket Excel Data file.
-- */
- public DefRowHeight() {
- unknown1 = new byte[] {(byte)0x00, (byte)0x00};
- unknown2 = new byte[] {(byte)0xFF, (byte)0x00};
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefinedName.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefinedName.java
-@@ -50,11 +50,6 @@ public class DefinedName implements BIFF
- private String definition = new String("");
- private Workbook wb;
-
-- /**
-- * Constructs a Defined Name from the InputStream
-- *
-- * @param is InputStream containing the record data
-- */
- public DefinedName(NameDefinition nd, Workbook wb) throws IOException {
-
- fh.setWorkbook(wb);
-@@ -95,7 +90,7 @@ public class DefinedName implements BIFF
- * Reads a Defined Name from the InputStream
The byte array
- * must be twice the size of the String as it uses unicode.
- *
-- * @param is InputStream containing the record data
-+ * @param input InputStream containing the record data
- */
- public int read(InputStream input) throws IOException {
-
-@@ -126,7 +121,7 @@ public class DefinedName implements BIFF
- /**
- * Write this particular BIFFRecord
to the OutputStream
- *
-- * @param ouput the OutputStream
-+ * @param output the OutputStream
- */
- public void write(OutputStream output) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ExtendedFormat.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ExtendedFormat.java
-@@ -276,7 +276,7 @@ org.openoffice.xmerge.converter.xml.Offi
- /**
- * Compare two ExtendedFormat to see if the font index is the same
- *
-- * @param the ExtendedFormat to be used in the comaprison
-+ * @param rhs the ExtendedFormat to be used in the comaprison
- * @return boolean if the two are the same otherwise false
- */
- public boolean compareTo(ExtendedFormat rhs) {
-@@ -352,7 +352,7 @@ org.openoffice.xmerge.converter.xml.Offi
- }
-
- /**
-- * Writes the ExtendedFormat to the Outputstream
-+ * Writes the ExtendedFormat to the Outputstream
- *
- * @param output the Outputstream
to write to
- */
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FloatNumber.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FloatNumber.java
-@@ -52,7 +52,7 @@ public class FloatNumber extends CellVal
- * Constructs a FloatNumber
using specified attributes
- *
- * @param row row number
-- * @param col column number
-+ * @param column column number
- * @param cellContents contents of the cell
- * @param ixfe font index
- */
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FontDescription.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FontDescription.java
-@@ -56,13 +56,6 @@ public class FontDescription implements
- public static final int UNDERLINE = 0x01;
- public static final int ITALIC = 0x02;
-
-- /**
-- * Constructs a FontDescription from the bold italic and undelrine attributes
-- *
-- * @param italic Italic attribute
-- * @param bold Bold attribute
-- * @param underline Underline attribute
-- */
- public FontDescription(Format fmt) throws IOException {
-
- Debug.log(Debug.TRACE,"Building FontDescriptor based on Format : " + fmt);
-@@ -230,7 +223,7 @@ public class FontDescription implements
- /**
- * Constructs a Font Description from the InputStream
- *
-- * @param is InputStream containing a FontDescription
-+ * @param input InputStream containing a FontDescription
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Formula.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Formula.java
-@@ -51,10 +51,9 @@ public class Formula extends CellValue i
- * Constructs a Formula
using specified attributes
- *
- * @param row row number
-- * @param col column number
-+ * @param column column number
- * @param cellContents contents of the cell
- * @param ixfe font index
-- * @param value the value of the cell
- */
- public Formula(int row, int column, String cellContents, int ixfe, Format fmt, Workbook wb)
- throws Exception {
-@@ -112,7 +111,7 @@ public class Formula extends CellValue i
- * Translates a String
written in infix which represents a
- * formula into a byte[] what can be written to pocket excel file.
- *
-- * @param formula string
-+ * @param inFormula formula string
- */
- public void setFormula(String inFormula) throws Exception {
-
-@@ -171,7 +170,7 @@ public class Formula extends CellValue i
- /**
- * Writes the Formula record to the OutputStream
- *
-- * @param the OutputStream
being written to
-+ * @param output the OutputStream
being written to
- */
- public void write(OutputStream output) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/LabelCell.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/LabelCell.java
-@@ -44,7 +44,7 @@ public class LabelCell extends CellValue
- * Constructs a LabelCell
using specified attributes
- *
- * @param row row number
-- * @param col column number
-+ * @param column column number
- * @param cellContents contents of the cell
- * @param ixfe font index
- */
-@@ -69,7 +69,7 @@ public class LabelCell extends CellValue
- /**
- * Writes a LabelCell
to the specified Outputstream
- *
-- * @param os the OutputStream
to write to
-+ * @param output the OutputStream
to write to
- */
- public void write(OutputStream output) throws IOException {
-
-@@ -126,7 +126,7 @@ public class LabelCell extends CellValue
- /**
- * Sets the String
representing the cells contents
- *
-- * @return the String
representing the cells contents
-+ * @param cellContents the String
representing the cells contents
- */
- private void setLabel(String cellContents) throws IOException {
- rgch = cellContents.getBytes("UTF-16LE");
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Pane.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Pane.java
-@@ -120,9 +120,11 @@ public class Pane implements BIFFRecord
- }
-
- /**
-- * Get the hex code for this particular BIFFRecord
-+ * Set the pane number of the active pane
-+ * 0 - bottom right, 1 - top right
-+ * 2 - bottom left, 3 - top left
- *
-- * @return the hex code for Pane
-+ * @param paneNumber the pane number of the active pane
- */
- public void setPaneNumber(int paneNumber) {
- pnnAcct = (byte) paneNumber;
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Row.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Row.java
-@@ -101,7 +101,7 @@ public class Row implements BIFFRecord {
- /**
- * Reads a Row from an InputStream
- *
-- * @param is InputStream containing a Pane Record
-+ * @param input InputStream containing a Pane Record
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Selection.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Selection.java
-@@ -76,21 +76,11 @@ public class Selection implements BIFFRe
- return PocketExcelConstants.CURRENT_SELECTION;
- }
-
-- /**
-- * Get the hex code for this particular BIFFRecord
-- *
-- * @return the hex code for Selection
-- */
- public Point getActiveCell() {
- Point p = new Point(colActive, EndianConverter.readShort(rwActive));
- return p;
- }
-
-- /**
-- * Get the hex code for this particular BIFFRecord
-- *
-- * @return the hex code for Selection
-- */
- public void setActiveCell(Point p) {
-
- colActive = (byte) p.getX();
-@@ -100,7 +90,7 @@ public class Selection implements BIFFRe
- /**
- * Reads a Selection Record from the InputStream
- *
-- * @param is InputStream containing a Pocket Excel Data file.
-+ * @param input InputStream containing a Pocket Excel Data file.
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/StringValue.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/StringValue.java
-@@ -43,9 +43,9 @@ public class StringValue implements BIFF
- private byte[] rgch;
-
- /**
-- * Constructs a StringValue Record from an InputStream
-+ * Constructs a StringValue Record from a String
- *
-- * @param is InputStream containing a StringValue Record
-+ * @param str
- */
- public StringValue(String str) throws IOException {
- cch = EndianConverter.writeShort((short) str.length());
-@@ -74,7 +74,7 @@ public class StringValue implements BIFF
- /**
- * Reads a StringVlaue Record from an InputStream
- *
-- * @param is InputStream containing a StringValue Record
-+ * @param input InputStream containing a StringValue Record
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window1.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window1.java
-@@ -87,7 +87,7 @@ public class Window1 implements BIFFReco
- /**
- * Reads a Window1 Record from an InputStream
- *
-- * @param is InputStream containing a Window1 Record
-+ * @param input InputStream containing a Window1 Record
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window2.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window2.java
-@@ -123,7 +123,7 @@ public class Window2 implements BIFFReco
- /**
- * Reads a Window2 Record from an InputStream
- *
-- * @param is InputStream containing a Window2 Record
-+ * @param input InputStream containing a Window2 Record
- */
- public int read(InputStream input) throws IOException {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Workbook.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Workbook.java
-@@ -236,7 +236,7 @@ OfficeConstants {
- /**
- * Adds a ExtendedFormat record to the workbook
- *
-- * @param f the font recrod to add
-+ * @param fmt the font record to add
- */
- public int addExtendedFormat(Format fmt) throws IOException {
-
-@@ -358,7 +358,7 @@ OfficeConstants {
- /**
- * Adds a Worksheet
to the workbook.
- *
-- * @return name the name of the Worksheet
to be added
-+ * @param name the name of the Worksheet
to be added
- */
- public void addWorksheet(String name) throws IOException {
-
-@@ -372,7 +372,6 @@ OfficeConstants {
- /**
- * Adds a cell to the current worksheet.
- *
-- * @return the name of the Worksheet
to be added
- */
- public void addCell(int row,int col, Format fmt, String cellContents)
- throws IOException {
-@@ -466,12 +465,6 @@ OfficeConstants {
- }
- }
-
-- /**
-- * Will create a number of ColInfo recrods based on the column widths
-- * based in.
-- *
-- * @param an integer list representing the column widths
-- */
- public void addNameDefinition(NameDefinition nameDefinition) throws IOException {
-
- DefinedName dn = new DefinedName(nameDefinition, this);
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Worksheet.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Worksheet.java
-@@ -56,25 +56,18 @@ public class Worksheet {
- private BeginningOfFile bof;
- private Eof eof;
-
-- /**
-- * Writes the current workbook to the Outputstream
-- *
-- * @param os The destination outputstream
-- */
- public Worksheet(Workbook wb) {
- this.wb = wb;
- }
-
- /**
- * Default Contructor
-- *
-- * @param os The destination outputstream
- */
- public Worksheet() {
- }
-
- /**
-- * Writes the current workbook to the Outputstream
-+ * Writes the current workbook to the OutputStream
- *
- * @param os The destination outputstream
- */
-@@ -229,7 +222,7 @@ public class Worksheet {
- * Adds a cell to this worksheet. Current valdid celltypes are
- * FloatNumber
, LabelCell
or Formula
- *
-- * @param f the font recrod to add
-+ * @param br
- */
- public void addCell(BIFFRecord br) {
- cells.add(br);
-@@ -239,7 +232,7 @@ public class Worksheet {
- * Adds a number of ColInfo Records to the worksheet base on a list of
- * clumnwidths passed in
- *
-- * @param list of column widths
-+ * @param r list of column widths
- */
- public void addRow(Row r) {
- rows.add(r);
-@@ -249,16 +242,12 @@ public class Worksheet {
- * Adds a number of ColInfo Records to the worksheet base on a list of
- * clumnwidths passed in
- *
-- * @param list of column widths
-+ * @param c list of column widths
- */
- public void addCol(ColInfo c) {
- colInfo.add(c);
- }
-- /**
-- * Returns an Enumeration
to the ColInfo's for this worksheet
-- *
-- * @return an Enumeration
to the ColInfo's
-- */
-+
- public void addSettings(SheetSettings s) {
-
- sel.setActiveCell(s.getCursor());
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaCompiler.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaCompiler.java
-@@ -45,7 +45,7 @@ import org.openoffice.xmerge.util.Debug;
- * else if token is close bracket
- * pop from stack into result until close bracket or function
- * else
-- * while stack.top.priority >= token.priority
-+ * while stack.top.priority >= token.priority
- * add stack.pop to result
- * push token onto stack
- *
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaHelper.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaHelper.java
-@@ -33,7 +33,7 @@ import org.openoffice.xmerge.converter.x
- /**
- * This Helper class provides a simplified interface to conversion between PocketXL formula representation
- * and Calc formula representation.
-- * The class is used by {@link org.openoffice.xmerge.converter.xml.sxc.pexcel.Records.Formula}
-+ * The class is used by {@link org.openoffice.xmerge.converter.xml.sxc.pexcel.records.Formula}
- */
- public class FormulaHelper {
-
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaParser.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaParser.java
-@@ -32,7 +32,7 @@ import org.openoffice.xmerge.util.Debug;
- /**
- * This is the Formula Parser based on an article written by Jack Crenshaw. It is a
- * top down parser with some basic error handling. It handles
-- * +,-,*,/,>,<,>=,<=,=,<>, unary + and - as well as functions.
-+ * +,-,*,/,>,<,>=,<=,=,<>, unary + and - as well as functions.
- * The BNF notation for this parser is
- *
- * <expression> ::= <unary op> <term> [<addop>|<logop> <term>]
-@@ -110,7 +110,7 @@ public class FormulaParser {
- }
-
- /**
-- * Identify <, >, <=, >=, =, <> using the index to find the current character(s)
-+ * Identify <, >, <=, >=, =, <> using the index to find the current character(s)
- *
- * @return A boolean returning the result of the comparison
- */
-@@ -131,9 +131,9 @@ public class FormulaParser {
- }
-
- /**
-- * Identify <, >, <=, >=, =, <>
-+ * Identify <, >, <=, >=, =, <>
- *
-- * @param The String
which is to be identified
-+ * @param op The String
which is to be identified
- * @return A boolean returning the result of the comparison
- */
- private boolean isLogicalOp(String op) {
-@@ -397,7 +397,7 @@ public class FormulaParser {
- * Will keep pulling valid logical operators from the formula and return
- * the resultant String
.
- *
-- * @return a String representing a logical operator
-+ * @return a String
representing a logical operator
- */
- private String getLogicalOperator() throws FormulaParsingException {
- String op = new String();
-@@ -535,7 +535,7 @@ public class FormulaParser {
-
- /**
- * Pull a logical operator starting at the current index, add a token for
-- * that operator to the tokenVector and call term to parse the
-+ * that operator to the tokenVector and call term
to parse the
- * right hand side of the operator
- */
- private void logicalOp() throws FormulaParsingException {
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/PrecedenceTable.java.orig 2014-02-25 08:29:14 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/PrecedenceTable.java
-@@ -27,7 +27,7 @@ import java.util.HashMap;
-
- /**
- * This class defines the precedence applied to each operator when performing a conversion
-- * {@link org.openoffice.xmerge.converter.xml.sxc.pexcel.Records.formula.FormulaCompiler.infix2 from infix to RPN.}.
-+ * {@link org.openoffice.xmerge.converter.xml.sxc.pexcel.records.formula.FormulaCompiler#infix2RPN from infix to RPN.}.
- */
- public class PrecedenceTable {
- public static final int DEFAULT_PRECEDENCE = 0;
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/SymbolLookup.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/SymbolLookup.java
-@@ -44,7 +44,7 @@ public abstract class SymbolLookup {
- /**
- * Associate a symbol with a numeric value in the lookup table
- * @param symbol The symbol that will act as the key in the lookup table
-- * @param value The value to be associated with a given symbol
-+ * @param id The value to be associated with a given symbol
- */
- public void addEntry(String symbol, int id) {
- Integer iObj = new Integer(id);
---- xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenEncoder.java.orig 2014-02-25 08:29:13 UTC
-+++ xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenEncoder.java
-@@ -284,7 +284,7 @@ public class TokenEncoder {
- /**
- * A Cell Reference Encoder (It supports absolute and relative addressing)
- *
-- * @param t Token
to be encoded
-+ * @param cellCoordinates
- * @return A Vector
of pexcel Byte
- */
- private byte[] encodeCellCoordinates(String cellCoordinates) {
-@@ -367,7 +367,7 @@ public class TokenEncoder {
- /**
- * This function will find the sheetname index for a given String
- *
-- * @param t Token
to be encoded
-+ * @param s
- * @return A Vector
of pexcel Byte
- */
- private short findSheetIndex(String s) {
---- xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentDeserializerImpl.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentDeserializerImpl.java
-@@ -69,7 +69,7 @@ public final class DocumentDeserializerI
-
-
- /**
-- * Initialises a new DocumentDeserializerImpl
using the
-+ * Initialises a new DocumentDeserializerImpl
using the
- * supplied ConvertData
.
- *
- * The Document
objects in the ConvertData
---- xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentMergerImpl.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentMergerImpl.java
-@@ -44,7 +44,7 @@ import org.openoffice.xmerge.util.Debug;
- * PocketWord implementation of DocumentMerger
- * for the {@link
- * org.openoffice.xmerge.converter.xml.sxw.pocketword.PluginFactoryImpl
-- * PluginFactoryImpl}.
-+ * PluginFactoryImpl}.
- */
- public class DocumentMergerImpl implements DocumentMerger {
-
---- xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentSerializerImpl.java.orig 2014-02-25 08:29:04 UTC
-+++ xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentSerializerImpl.java
-@@ -48,7 +48,7 @@ import java.io.IOException;
- * org.openoffice.xmerge.converter.xml.sxw.pocketword.PluginFactoryImpl
- * PluginFactoryImpl}.
- *
-- * This converts an OpenOffice.org XML Writer files to a Pocket Word file<.
-+ * This converts an OpenOffice.org XML Writer files to a Pocket Word file.
- *
- * @author Mark Murnane
- * @version 1.1
-@@ -72,7 +72,7 @@ public final class DocumentSerializerImp
- * org.openoffice.xmerge.converter.xml.sxw.SxwDocument SxwDocument}
- * object.
- *
-- * @param document The Document
to convert.
-+ * @param doc The Document
to convert.
- */
- public DocumentSerializerImpl(Document doc) {
- sxwDoc = (SxwDocument)doc;
---- xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PluginFactoryImpl.java.orig 2014-02-25 08:29:04 UTC
-+++ xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PluginFactoryImpl.java
-@@ -90,11 +90,11 @@ public final class PluginFactoryImpl ext
-
-
- /**
-- * The DocumentDeserializer
is used to convert
-+ * The DocumentDeserializer
is used to convert
- * from the Pocket Word Document
format to
- * the OpenOffice.org XML Writer Document
format.
- *
-- * The ConvertData
object is passed along to the
-+ * The ConvertData
object is passed along to the
- * created DocumentDeserializer
via its constructor.
- * The ConvertData
is read and converted when the
- * the DocumentDeserializer
object's
---- xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PocketWordDocument.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PocketWordDocument.java
-@@ -101,7 +101,7 @@ public class PocketWordDocument implemen
- *
This method reads byte
data from the InputStream and
- * extracts font and paragraph data from the file.
- *
-- * @param is InputStream containing a Pocket Word data file.
-+ * @param docData InputStream containing a Pocket Word data file.
- *
- * @throws IOException In case of any I/O errors.
- */
---- xmerge/source/xmerge/java/org/openoffice/xmerge/Convert.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/Convert.java
-@@ -161,7 +161,7 @@ public class Convert implements Cloneabl
-
- /**
- * Clones a Convert object so another Convert object can
-- * do the same conversion. InputStream objects passed
-+ * do the same conversion. InputStream
objects passed
- * in via calls to the addInputStream
method are not
- * copied.
- *
---- xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentDeserializer.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentDeserializer.java
-@@ -28,13 +28,13 @@ import java.io.IOException;
- /**
- * A DocumentDeserializer
represents a converter that
- * converts "Device" Document
objects into the
-- * "Office" Document
format.
-+ * "Office" Document
format.
- *
- * The DocumentDeserializer
object is created by
-- * the
PluginFactory
{@link
-+ * the PluginFactory
{@link
- * org.openoffice.xmerge.DocumentDeserializerFactory#createDocumentDeserializer
- * createDocumentDeserializer} method. When it is constructed, a
-- * ConvertData
object is passed in to be used as input.
-+ * ConvertData
object is passed in to be used as input.
- *
- * @author Herbie Ong
- * @see org.openoffice.xmerge.PluginFactory
---- xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentDeserializerFactory.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentDeserializerFactory.java
-@@ -38,11 +38,11 @@ package org.openoffice.xmerge;
- public interface DocumentDeserializerFactory {
-
- /**
-- * The DocumentDeserializer
is used to convert
-+ * The DocumentDeserializer
is used to convert
- * from the "Device" Document
format to
- * the "Office" Document
format.
- *
-- * The ConvertData
object is passed along to the
-+ * The ConvertData
object is passed along to the
- * created DocumentDeserializer
via its constructor.
- * The ConvertData
is read and converted when the
- * the DocumentDeserializer
object's
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/dom/DOMDocument.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/dom/DOMDocument.java
-@@ -153,7 +153,7 @@ public class DOMDocument
- * Sets the Content of the Document
to the contents of the
- * supplied Node
list.
- *
-- * @return DOM Document
object.
-+ * @param newDom DOM Document
object.
- */
- public void setContentDOM( Node newDom) {
- contentDoc=(Document)newDom;
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PalmDocument.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PalmDocument.java
-@@ -116,7 +116,7 @@ public class PalmDocument
- /**
- * Writes the PalmDocument
to an OutputStream
.
- *
-- * @param is The OutputStream
to write the content.
-+ * @param os The OutputStream
to write the content.
- *
- * @throws IOException If any I/O error occurs.
- */
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbDecoder.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbDecoder.java
-@@ -31,16 +31,16 @@ import java.io.DataInputStream;
- /**
- *
Provides functionality to decode a PDB formatted file into
- * a PalmDB
object given an InputStream
.
-- * This class is only used by the PalmDB
object.
-+ * This class is only used by the PalmDB
object.
- *
-- * Sample usage:
-+ * Sample usage:
- *
- *
- * PdbDecoder decoder = new PdbDecoder("sample.pdb");
- * PalmDB palmDB = decoder.parse();
- *
- *
-- * This decoder has the following assumptions on the PDB file:
-+ * This decoder has the following assumptions on the PDB file:
- *
- *
- * - There is only one RecordList section in the PDB.
-@@ -50,9 +50,9 @@ import java.io.DataInputStream;
- * - The raw
Record
in the Record
section
- * are sorted as well in order, i.e. first Record
- * comes ahead of second Record
, etc.
-- *
-+ *
- *
-- * Other decoders assume these as well.
-+ * Other decoders assume these as well.
- *
- * @author Herbie Ong
- * @see PalmDB
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbEncoder.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbEncoder.java
-@@ -109,7 +109,7 @@ public final class PdbEncoder {
- * top of the PDB.
- *
- 1 byte of
Record
attribute.
- * - 3 bytes unique
Record
ID.
-- *
-+ *
- *
- * There should be a total of header.numRecords
- * of Record
index info
.
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/Record.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/Record.java
-@@ -134,7 +134,7 @@ public final class Record {
- * Record
length followed by the data in this
- * Record
object.
- *
-- * @param out The OutputStream
to write the object.
-+ * @param outs The OutputStream
to write the object.
- *
- * @throws IOException If any I/O error occurs.
- */
-@@ -151,7 +151,7 @@ public final class Record {
- * Read the necessary data to create a PDB from
- * the InputStream
.
- *
-- * @param in The InputStream
to read data from
-+ * @param ins The InputStream
to read data from
- * in order to restore the object
.
- *
- * @throws IOException If any I/O error occurs.
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedXMLObject.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedXMLObject.java
-@@ -134,7 +134,7 @@ public class EmbeddedXMLObject extends E
- /**
- * Sets the settings data for the embedded object.
- *
-- * @param styles DOM representation of the object's styles.
-+ * @param settings DOM representation of the object's styles.
- */
- public void setSettingsDOM(Document settings) {
- settingsDOM = settings;
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/OfficeDocument.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/OfficeDocument.java
-@@ -1119,7 +1119,7 @@ public abstract class OfficeDocument
-
-
- /**
-- * Hacked code to filter tag before
-+ *
Hacked code to filter <!DOCTYPE> tag before
- * sending stream to parser.
- *
- * This hacked code needs to be changed later on.
-@@ -1128,7 +1128,7 @@ public abstract class OfficeDocument
- * to turn off processing of dtds. Current set of dtds
- * have bugs, processing them will throw exceptions.
- *
-- * This is a simple hack that assumes the whole
-+ *
This is a simple hack that assumes the whole <!DOCTYPE>
- * tag are all in the same line. This is sufficient for
- * current StarOffice 6.0 generated XML files. Since this
- * hack really needs to go away, I don't want to spend
-@@ -1138,7 +1138,7 @@ public abstract class OfficeDocument
- *
- * @param is InputStream
to be filtered.
- *
-- * @return Reader value without the tag.
-+ * @return Reader value without the <!DOCTYPE> tag.
- *
- * @throws IOException If any I/O error occurs.
- */
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/ParaStyle.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/ParaStyle.java
-@@ -123,26 +123,21 @@ class alignment extends conversionAlgori
- /**
- *
This class represents a paragraph Style
.
- *
-- *
-- * Attribute | Value
-- * |
-- * MARGIN_LEFT | mm * 100
-- * |
-- * MARGIN_RIGHT | mm * 100
-- * |
-- * MARGIN_TOP | mm * 100 (space on top of paragraph)
-- * |
-- * MARGIN_BOTTOM | mm * 100
-- * |
-- * TEXT_INDENT | mm * 100 (first line indent)
-- * |
-- * LINE_HEIGHT | mm * 100, unless or'ed with LH_PCT, in which
-+ *
-+ * Properties
-+ * Attribute | Value |
-+ * MARGIN_LEFT | mm * 100 |
-+ * MARGIN_RIGHT | mm * 100 |
-+ * MARGIN_TOP | mm * 100 (space on top of paragraph) |
-+ * MARGIN_BOTTOM | mm * 100 |
-+ * TEXT_INDENT | mm * 100 (first line indent) |
-+ * LINE_HEIGHT | mm * 100, unless or'ed with LH_PCT, in which
- * case it is a percentage (e.g. 200% for double spacing)
- * Can also be or'ed with LH_ATLEAST. Value is stored
- * in bits indicated by LH_VALUEMASK.
-- * |
-- * TEXT_ALIGN | ALIGN_RIGHT, ALIGN_CENTER, ALIGN_JUST, ALIGN_LEFT
-- * |
-+ * |
-+ * TEXT_ALIGN | ALIGN_RIGHT, ALIGN_CENTER, ALIGN_JUST, ALIGN_LEFT |
-+ *
- *
- * @author David Proulx
- */
-@@ -266,9 +261,9 @@ public class ParaStyle extends Style imp
- * Constructor for use when going from client device format to DOM.
- *
- * @param name Name of the Style
. Can be null.
-- * @param family Family of the Style
- usually
-+ * @param familyName Family of the Style
- usually
- * paragraph, text, etc. Can be null.
-- * @param parent Name of the parent Style
, or null
-+ * @param parentName Name of the parent Style
, or null
- * if none.
- * @param attribs Array of attributes to set.
- * @param values Array of values to set.
-@@ -289,13 +284,13 @@ public class ParaStyle extends Style imp
- * format to DOM.
- *
- * @param name Name of the Style
. Can be null.
-- * @param family Family of the Style
- usually
-+ * @param familyName Family of the Style
- usually
- * paragraph, text, etc. Can be null.
-- * @param parent Name of the parent Style
, or
-+ * @param parentName Name of the parent Style
, or
- * null if none.
- * @param attribs Array of attributes indices to set.
- * @param values Array of values to set.
-- * @param sc The StyleCatalog
, which is used for
-+ * @param lookup The StyleCatalog
, which is used for
- * looking up ancestor Style
objects.
- */
- public ParaStyle(String name, String familyName, String parentName,
-@@ -373,7 +368,7 @@ public class ParaStyle extends Style imp
- * Set an attribute for this paragraph Style
.
- *
- * @param attr The attribute index to set.
-- * @apram value The attribute value to set.
-+ * @param value The attribute value to set.
- */
- public void setAttribute(int attr, String value) {
- isSet[attr] = true;
-@@ -496,7 +491,7 @@ public class ParaStyle extends Style imp
- /**
- * Create the Node
with the specified elements.
- *
-- * @parentDoc Parent Document
of the
-+ * @param parentDoc Document
of the
- * Node
to create.
- * @param name Name of the Node
.
- *
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/StyleCatalog.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/StyleCatalog.java
-@@ -207,7 +207,7 @@ public class StyleCatalog {
-
-
- /**
-- * Given a Style
s return all
-+ * Given a Style
s
return all
- * Style
objects that match.
- *
- * @param s Style
to match.
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/TextStyle.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/TextStyle.java
-@@ -74,7 +74,7 @@ public class TextStyle extends Style imp
- /**
- * Constructor for use when going from DOM to client device format.
- *
-- * @param Node The style:style Node
containing
-+ * @param node The style:style Node
containing
- * the Style
. (This Node
is
- * assumed have a family attribute of text).
- * @param sc The StyleCatalog
, which is used for
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/BookSettings.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/BookSettings.java
-@@ -52,8 +52,7 @@ public class BookSettings implements Off
- /**
- * Default Constructor for a BookSettings
- *
-- * @param dimension if it's a row the height, a column the width
-- * @param repeated
-+ * @param root
- */
- public BookSettings(Node root) {
- readNode(root);
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/CellStyle.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/CellStyle.java
-@@ -46,7 +46,7 @@ public class CellStyle extends Style imp
- /**
- * Constructor for use when going from DOM to client device format.
- *
-- * @param Node The style:style Node
containing
-+ * @param node The style:style Node
containing
- * the Style
. (This Node
is
- * assumed have a family attribute of text).
- * @param sc The StyleCatalog
, which is used for
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnRowInfo.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnRowInfo.java
-@@ -46,8 +46,7 @@ public class ColumnRowInfo {
- /**
- * Constructor for a ColumnRowInfo
- *
-- * @param dimension if it's a row the height, a column the width
-- * @param repeated
-+ * @param type whether Row or column record
- */
- public ColumnRowInfo(int type) {
-
-@@ -82,7 +81,7 @@ public class ColumnRowInfo {
- /**
- * sets the definition
- *
-- * @param newDefinition sets the definition
-+ * @param fmt sets the definition
- */
- public void setFormat(Format fmt) {
-
-@@ -110,9 +109,9 @@ public class ColumnRowInfo {
- }
-
- /**
-- * sets the definition
-+ * Sets the definition
- *
-- * @param newDefinition sets the definition
-+ * @param dimension
- */
- public void setSize(int dimension) {
-
-@@ -128,11 +127,6 @@ public class ColumnRowInfo {
- return repeated;
- }
-
-- /**
-- * Returns the base Cell address
-- *
-- * @return the base cell address
-- */
- public void setRepeated(int repeated) {
-
- this.repeated = repeated;
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnStyle.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnStyle.java
-@@ -44,7 +44,7 @@ public class ColumnStyle extends Style i
- /**
- * Constructor for use when going from DOM to client device format.
- *
-- * @param Node The style:style Node
containing
-+ * @param node The style:style Node
containing
- * the Style
. (This Node
is
- * assumed have a family attribute of text).
- * @param sc The StyleCatalog
, which is used for
-@@ -97,7 +97,7 @@ public class ColumnStyle extends Style i
- * text). Can be null.
- * @param parent Name of parent text Style
, or null
- * for none.
-- * @param mask the width of this column
-+ * @param colWidth the width of this column
- * @param sc The StyleCatalog
, which is used for
- * looking up ancestor Style
objects.
- */
-@@ -118,7 +118,7 @@ public class ColumnStyle extends Style i
- /**
- * Sets the width of this column
- *
-- * @return the Format
object
-+ * @param colWidth the column width
- */
- public void setColWidth(int colWidth) {
-
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/DocumentMergerImpl.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/DocumentMergerImpl.java
-@@ -49,7 +49,7 @@ import org.openoffice.xmerge.util.Debug;
- * Generic small device implementation of DocumentMerger
for
- * the {@link
- * org.openoffice.xmerge.converter.xml.sxc.SxcPluginFactory
-- * SxcPluginFactory}. Used with SXC Document
objects.
-+ * SxcPluginFactory}. Used with SXC Document
objects.
- */
- public class DocumentMergerImpl implements DocumentMerger {
-
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/Format.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/Format.java
-@@ -295,7 +295,7 @@ public class Format implements Cloneable
- /**
- * Set the font used for this cell.
- *
-- * @param fontName The name of the font.
-+ * @param fontSize
- */
- public void setFontSize(int fontSize) {
- sizeInPoints = fontSize;
-@@ -312,9 +312,9 @@ public class Format implements Cloneable
- }
-
- /**
-- * Set the alignmen used for this cell.
-+ * Set the alignment used for this cell.
- *
-- * @param fontName The name of the font.
-+ * @param vertAlign
- */
- public void setVertAlign(int vertAlign) {
- this.vertAlign = vertAlign;
-@@ -331,9 +331,9 @@ public class Format implements Cloneable
- }
-
- /**
-- * Set the alignmen used for this cell.
-+ * Set the alignment used for this cell.
- *
-- * @param fontName The name of the font.
-+ * @param align
- */
- public void setAlign(int align) {
- this.align = align;
-@@ -351,7 +351,7 @@ public class Format implements Cloneable
- /**
- * Set the Foreground Color
for this cell.
- *
-- * @param color A Color
object representing the
-+ * @param c A Color
object representing the
- * foreground color.
- */
- public void setForeground(Color c) {
-@@ -373,7 +373,7 @@ public class Format implements Cloneable
- /**
- * Set the Background Color
for this cell
- *
-- * @param color A Color
object representing
-+ * @param c A Color
object representing
- * the background color.
- */
- public void setBackground(Color c) {
-@@ -433,7 +433,7 @@ public class Format implements Cloneable
- * than this Style
, and nothing it specifies
- * contradicts this Style
.
- *
-- * @param style The Style
to check.
-+ * @param rhs The Style
to check.
- *
- * @return true if style
is a subset, false
- * otherwise.
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/NameDefinition.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/NameDefinition.java
-@@ -135,7 +135,7 @@ public class NameDefinition implements O
- /**
- * Writes out a content.xml entry for this NameDefinition object
- *
-- * @param settings a Document
object representing the settings.xml
-+ * @param doc a Document
object representing the settings.xml
- * @param root the root xml node to add to
- */
- public void writeNode(org.w3c.dom.Document doc, Node root) {
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/RowStyle.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/RowStyle.java
-@@ -44,7 +44,7 @@ public class RowStyle extends Style impl
- /**
- * Constructor for use when going from DOM to client device format.
- *
-- * @param Node The style:style Node
containing
-+ * @param node The style:style Node
containing
- * the Style
. (This Node
is
- * assumed have a family attribute of text).
- * @param sc The StyleCatalog
, which is used for
-@@ -97,7 +97,7 @@ public class RowStyle extends Style impl
- * text). Can be null.
- * @param parent Name of parent text Style
, or null
- * for none.
-- * @param mask The height of this row
-+ * @param rowHeight The height of this row
- * @param sc The StyleCatalog
, which is used for
- * looking up ancestor Style
objects.
- */
-@@ -118,9 +118,9 @@ public class RowStyle extends Style impl
- /**
- * Sets the height of this row
- *
-- * @return the Format
object
-+ * @param rowHeight the row height
- */
-- public void setRowHeight(int RowHeight) {
-+ public void setRowHeight(int rowHeight) {
-
- this.rowHeight = rowHeight;
- }
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SheetSettings.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SheetSettings.java
-@@ -79,8 +79,7 @@ public class SheetSettings implements Of
- /**
- * Constructor for a ColumnRowInfo
- *
-- * @param dimension if it's a row the height, a column the width
-- * @param repeated
-+ * @param name
- */
- public SheetSettings(String name) {
- sheetName = name;
-@@ -175,12 +174,10 @@ public class SheetSettings implements Of
-
- return posLeft;
- }
-+
- /**
-- * Sets the top row visible in the lower pane and the leftmost column
-- * visibile in the right pane.
-+ * Gets the top row visible in the lower pane.
- *
-- * @param top The top row visible in the lower pane
-- * @param left The leftmost column visibile in the right pane
- */
- public int getTop() {
-
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SpreadsheetEncoder.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SpreadsheetEncoder.java
-@@ -104,21 +104,13 @@ public abstract class SpreadsheetEncoder
- * @param columnWidths An IntArrayList
of column
- * widths.
- */
-- public abstract void setColumnRows(Vector columnRows) throws IOException;
-+ public abstract void setColumnRows(Vector columnWidths) throws IOException;
-
- /**
-- * Set the width of the columns in the WorkBook.
-- *
-- * @param columnWidths An IntArrayList
of column
-- * widths.
- */
- public abstract void setNameDefinition(NameDefinition nd) throws IOException;
-
- /**
-- * Set the width of the columns in the WorkBook.
-- *
-- * @param columnWidths An IntArrayList
of column
-- * widths.
- */
- public abstract void addSettings(BookSettings s) throws IOException;
- }
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentMergerImpl.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentMergerImpl.java
-@@ -44,7 +44,7 @@ import org.openoffice.xmerge.util.Debug;
- * Xslt implementation of DocumentMerger
- * for the {@link
- * org.openoffice.xmerge.converter.xml.xslt.PluginFactoryImpl
-- * PluginFactoryImpl}.
-+ * PluginFactoryImpl}.
- */
- public class DocumentMergerImpl implements DocumentMerger {
-
---- xmerge/source/xmerge/java/org/openoffice/xmerge/merger/MergeAlgorithm.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/merger/MergeAlgorithm.java
-@@ -40,15 +40,12 @@ public interface MergeAlgorithm {
- * This method is to merge the difference to an Iterator
.
- * The original Iterator
will be modified after the call.
- *
-- * @param objSeq The original sequence which the difference
-+ * @param orgSeq The original sequence which the difference
- * will be applied. It will be modified.
- * @param modSeq The modified sequence where the difference
- * content will be extracted.
- * @param differences The Difference
array.
- *
-- * @return An Iterator
which is the modified original
-- * Iterator
Sequence. Same as the first parameter.
-- *
- * @throws MergeException If an error occurs during the merge.
- */
- public void applyDifference(Iterator orgSeq, Iterator modSeq,
---- xmerge/source/xmerge/java/org/openoffice/xmerge/merger/NodeMergeAlgorithm.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/merger/NodeMergeAlgorithm.java
-@@ -43,6 +43,6 @@ public interface NodeMergeAlgorithm {
- * @param modifyNode The Node
to be merged. It may
- * be modified.
- */
-- public void merge(Node orginialNode, Node modifyNode);
-+ public void merge(Node originalNode, Node modifyNode);
- }
-
---- xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/IteratorRowCompare.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/IteratorRowCompare.java
-@@ -54,7 +54,7 @@ import org.openoffice.xmerge.converter.x
- * If there are more objects in the original sequence than the modified
- * sequence, then all the extra one in the modified sequence are marked
- * as delete.
-- *
-+ *
- *
- * NOTE: The algorithm will have potential side effect to split rows.
- *
---- xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/TextNodeIterator.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/TextNodeIterator.java
-@@ -48,7 +48,7 @@ public final class TextNodeIterator exte
- /**
- * Standard constructor.
- *
-- * @param initial The initial root Node
.
-+ * @param node The initial root Node
.
- */
- public TextNodeIterator(Node node) {
- super(null, node);
---- xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/SheetUtil.java.orig 2014-02-25 08:29:05 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/SheetUtil.java
-@@ -45,7 +45,7 @@ public class SheetUtil {
- * Remove all of the supported attributes.
- *
- * Remove the first text:p Node
for most of the cells.
-- *
-+ *
- *
- * @param cc The ConverterCapabilities
.
- * @param node The Node
.
---- xmerge/source/xmerge/java/org/openoffice/xmerge/util/ColourConverter.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/util/ColourConverter.java
-@@ -108,7 +108,7 @@ public class ColourConverter {
- * cases where the 16 colour values are something other than there default
- * values (e.g. in the case of pocket Excel)
- *
-- * @param short[] a 16 bit array mapping the 16 colours to there values
-+ * @param lookup a 16 bit array mapping the 16 colours to their values
- */
- public ColourConverter(short lookup[]) {
-
-@@ -151,7 +151,7 @@ public class ColourConverter {
- * This method maps a Pocket Word colour index value to an RGB value as
- * used by OpenOffice.
- *
-- * @param index The index into Pocket Word's colour table.
-+ * @param colour The index into Pocket Word's colour table.
- *
- * @return A Color object representing the RGB value of the Pocket Word
- * colour.
---- xmerge/source/xmerge/java/org/openoffice/xmerge/util/Debug.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/util/Debug.java
-@@ -39,7 +39,7 @@ import java.util.Properties;
- /**
- * This class is used for logging debug messages.
- * Currently, there are three types of logging: {@link #INFO},
-- * {@link #TRACE} & {@link #ERROR}. Use the Debug.properties
-+ * {@link #TRACE} & {@link #ERROR}. Use the Debug.properties
- * file to set or unset each type. Also use Debug.properties
- * to set the writer to either System.out
,
- * System.err
, or to a file.
-@@ -265,7 +265,7 @@ public final class Debug {
- * This logs the message during runtime if debug.info or debug.trace
- * in the properties file is set to true.
- *
-- * @param int Log type, one of the Debug constants
-+ * @param flag Log type, one of the Debug constants
- * {@link #INFO}, {@link #TRACE}, {@link #ERROR}
- * or a combination of which or'ed together.
- * @param msg The message.
-@@ -287,7 +287,7 @@ public final class Debug {
- * of the exception passed in. Refer to the other log method
- * for description.
- *
-- * @param int Log type, one of the Debug constants
-+ * @param flag Log type, one of the Debug constants
- * {@link #INFO}, {@link #TRACE}, {@link #ERROR}
- * or a combination of which or'ed together.
- * @param msg The message.
---- xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfoMgr.java.orig 2014-02-25 08:29:06 UTC
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfoMgr.java
-@@ -53,7 +53,7 @@ public final class ConverterInfoMgr {
- * and must have non-null values for DisplayName, ClassImpl,
- * OfficeMime, and DeviceMime.
- *
-- * @param ConverterInfo A ConverterInfo
object
-+ * @param ci A ConverterInfo
object
- * describing a plug-in.
- *
- * @throws RegistryException If the ConverterInfo
-@@ -109,16 +109,16 @@ public final class ConverterInfoMgr {
-
-
- /**
-- * Adds a Vector
of converter plug-ins to the registry.
-- * Each ConverterInfo
in the Vector
must have
-+ * Adds an Enumeration
of converter plug-ins to the registry.
-+ * Each ConverterInfo
in the Enumeration
must have
- * a unique DisplayName and must have non-null values for DisplayName,
- * ClassImpl, OfficeMime, and DeviceMime.
- *
-- * @param ciVectory A Vector
of ConverterInfo
-+ * @param jarEnum An Enumeration
of ConverterInfo
- * objects describing one or more plug-in(s).
- *
- * @throws RegistryException If a ConverterInfo
in the
-- * Vector
is not valid.
-+ * Enumeration
is not valid.
- */
- public static void addPlugIn(Enumeration jarEnum) throws RegistryException {
-
-@@ -257,8 +257,8 @@ public final class ConverterInfoMgr {
- * If there are multiple ConverterInfo
objects that
- * support this conversion, only the first is returned.
- *
-- * @param deviceMimeFrom The device from mime.
-- * @param deviceMimeTo The device to mime.
-+ * @param deviceFromMime The device from mime.
-+ * @param deviceToMime The device to mime.
- *
- * @return An array of two ConverterInfo
objects
- * that can be chained to perform the specified
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-openjdk8
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-r1728872
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-r1728872 (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-r1728872 (nonexistent)
@@ -1,98 +0,0 @@
---- sal/osl/unx/pipe.c.orig 2014-02-25 08:31:45 UTC
-+++ sal/osl/unx/pipe.c
-@@ -115,7 +115,7 @@ oslPipe __osl_createPipeImpl()
- pPipeImpl = (oslPipe)calloc(1, sizeof(struct oslPipeImpl));
- pPipeImpl->m_nRefCount =1;
- pPipeImpl->m_bClosed = sal_False;
--#if defined(LINUX)
-+#if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
- pPipeImpl->m_bIsInShutdown = sal_False;
- pPipeImpl->m_bIsAccepting = sal_False;
- #endif
-@@ -321,7 +321,7 @@ void SAL_CALL osl_releasePipe( oslPipe p
- void SAL_CALL osl_closePipe( oslPipe pPipe )
- {
- int nRet;
--#if defined(LINUX)
-+#if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
- size_t len;
- struct sockaddr_un addr;
- int fd;
-@@ -341,10 +341,10 @@ void SAL_CALL osl_closePipe( oslPipe pPi
- ConnFD = pPipe->m_Socket;
-
- /*
-- Thread does not return from accept on linux, so
-+ Thread does not return from accept on some operating systems, so
- connect to the accepting pipe
- */
--#if defined(LINUX)
-+#if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
- if ( pPipe->m_bIsAccepting )
- {
- pPipe->m_bIsInShutdown = sal_True;
-@@ -356,7 +356,11 @@ void SAL_CALL osl_closePipe( oslPipe pPi
-
- addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, pPipe->m_Name, sizeof(addr.sun_path));
-- len = sizeof(addr);
-+#if defined(FREEBSD)
-+ len = SUN_LEN(&addr);
-+#else
-+ len = sizeof(addr);
-+#endif
-
- nRet = connect( fd, (struct sockaddr *)&addr, len);
- #if OSL_DEBUG_LEVEL > 1
-@@ -367,7 +371,7 @@ void SAL_CALL osl_closePipe( oslPipe pPi
- #endif /* OSL_DEBUG_LEVEL */
- close(fd);
- }
--#endif /* LINUX */
-+#endif /* CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT */
-
-
- nRet = shutdown(ConnFD, 2);
-@@ -408,13 +412,13 @@ oslPipe SAL_CALL osl_acceptPipe(oslPipe
-
- OSL_ASSERT(strlen(pPipe->m_Name) > 0);
-
--#if defined(LINUX)
-+#if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
- pPipe->m_bIsAccepting = sal_True;
- #endif
-
- s = accept(pPipe->m_Socket, NULL, NULL);
-
--#if defined(LINUX)
-+#if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
- pPipe->m_bIsAccepting = sal_False;
- #endif
-
-@@ -424,13 +428,13 @@ oslPipe SAL_CALL osl_acceptPipe(oslPipe
- return NULL;
- }
-
--#if defined(LINUX)
-+#if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
- if ( pPipe->m_bIsInShutdown )
- {
- close(s);
- return NULL;
- }
--#endif /* LINUX */
-+#endif /* CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT */
- else
- {
- /* alloc memory */
---- sal/osl/unx/sockimpl.h.orig 2015-10-21 07:03:17 UTC
-+++ sal/osl/unx/sockimpl.h
-@@ -63,7 +63,7 @@ struct oslPipeImpl {
- sal_Char m_Name[PATH_MAX + 1];
- oslInterlockedCount m_nRefCount;
- sal_Bool m_bClosed;
--#if defined(LINUX)
-+#if CLOSESOCKET_DOESNT_WAKE_UP_ACCEPT
- sal_Bool m_bIsAccepting;
- sal_Bool m_bIsInShutdown;
- #endif
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-r1728872
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-clang40
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-clang40 (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-clang40 (nonexistent)
@@ -1,39 +0,0 @@
-Index: desktop/source/app/officeipcthread.cxx
-===================================================================
---- desktop/source/app/officeipcthread.cxx (revision 1779757)
-+++ desktop/source/app/officeipcthread.cxx (revision 1779758)
-@@ -225,7 +225,7 @@ String CreateMD5FromString( const OUString& aMsg )
- // BACK: Str "ababab....0f" Hexcode String
-
- rtlDigest handle = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
-- if ( handle > 0 )
-+ if ( handle != NULL )
- {
- const sal_uInt8* pData = (const sal_uInt8*)aMsg.getStr();
- sal_uInt32 nSize = ( aMsg.getLength() * sizeof( sal_Unicode ));
-Index: desktop/source/deployment/misc/dp_misc.cxx
-===================================================================
---- desktop/source/deployment/misc/dp_misc.cxx (revision 1779671)
-+++ desktop/source/deployment/misc/dp_misc.cxx (revision 1779695)
-@@ -103,7 +103,7 @@ const OUString OfficePipeId::operator () ()
- }
-
- rtlDigest digest = rtl_digest_create( rtl_Digest_AlgorithmMD5 );
-- if (digest <= 0) {
-+ if (digest == NULL) {
- throw RuntimeException(
- OUSTR("cannot get digest rtl_Digest_AlgorithmMD5!"), 0 );
- }
-Index: sd/source/ui/view/viewshe3.cxx
-===================================================================
---- sd/source/ui/view/viewshe3.cxx (revision 1779671)
-+++ sd/source/ui/view/viewshe3.cxx (revision 1779695)
-@@ -226,7 +226,7 @@ SdPage* ViewShell::CreateOrDuplicatePage (
- // When the given page is NULL then use the first page of the document.
- SdPage* pTemplatePage = pPage;
- if (pTemplatePage == NULL)
-- if (pDocument->GetSdPage(0, ePageKind) > 0)
-+ if (pDocument->GetSdPage(0, ePageKind) != NULL)
- pTemplatePage = pDocument->GetSdPage(0, ePageKind);
- if (pTemplatePage != NULL && pTemplatePage->TRG_HasMasterPage())
- aVisibleLayers = pTemplatePage->TRG_GetMasterPageVisibleLayers();
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-clang40
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-boost_boost__1__55__0.patch
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-boost_boost__1__55__0.patch (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-boost_boost__1__55__0.patch (nonexistent)
@@ -1,39 +0,0 @@
---- boost/boost_1_55_0.patch.orig 2019-08-14 17:37:07 UTC
-+++ boost/boost_1_55_0.patch
-@@ -162,3 +162,36 @@
- }
-
- ////////////////////////////////////////////////////////////////////////
-+diff -ur misc/boost_1_55_0/boost/config/compiler/gcc.hpp misc/build/boost_1_55_0/boost/config/compiler/gcc.hpp
-+--- misc/boost_1_55_0/boost/config/compiler/gcc.hpp 2013-09-17 09:55:51.000000000 -0700
-++++ misc/build/boost_1_55_0/boost/config/compiler/gcc.hpp
-+@@ -137,14 +137,18 @@
-+
-+ // C++0x features in 4.3.n and later
-+ //
-+-#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
-++#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (__cplusplus >= 201103L)
-+ // C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
-+ // passed on the command line, which in turn defines
-+ // __GXX_EXPERIMENTAL_CXX0X__.
-+ # define BOOST_HAS_DECLTYPE
-+ # define BOOST_HAS_RVALUE_REFS
-+ # define BOOST_HAS_STATIC_ASSERT
-+-# define BOOST_HAS_VARIADIC_TMPL
-++# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))
-++# define BOOST_HAS_VARIADIC_TMPL
-++# else
-++# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-++# endif
-+ #else
-+ # define BOOST_NO_CXX11_DECLTYPE
-+ # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-+@@ -153,7 +157,7 @@
-+
-+ // Variadic templates compiler:
-+ // http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
-+-# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
-++# if defined(__VARIADIC_TEMPLATES)
-+ # define BOOST_HAS_VARIADIC_TMPL
-+ # else
-+ # define BOOST_NO_CXX11_VARIADIC_TEMPLATES
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-boost_boost__1__55__0.patch
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-solenv_gbuild_platform_freebsd.mk
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-solenv_gbuild_platform_freebsd.mk (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-solenv_gbuild_platform_freebsd.mk (nonexistent)
@@ -1,23 +0,0 @@
---- solenv/gbuild/platform/freebsd.mk.orig 2017-11-27 13:50:25 UTC
-+++ solenv/gbuild/platform/freebsd.mk
-@@ -94,6 +94,7 @@ gb_CXXFLAGS := \
- -fno-use-cxa-atexit \
- -fvisibility-inlines-hidden \
- -fvisibility=hidden \
-+ -std=gnu++98 \
- -pipe
- ifeq ($(COM),CLANG)
- gb_CXXFLAGS += -DHAVE_STL_INCLUDE_PATH
-@@ -142,6 +143,12 @@ gb_LinkTarget_LDFLAGS += \
- -Wl,--dynamic-list-cpp-typeinfo \
- -Wl,-Bsymbolic-functions \
-
-+endif
-+
-+ifneq ($(filter $(CPUNAME),INTEL X86_64),)
-+gb_CFLAGS += -fstack-protector
-+gb_CXXFLAGS += -fstack-protector
-+gb_LinkTarget_LDFLAGS += -fstack-protector
- endif
-
- ifeq ($(gb_DEBUGLEVEL),2)
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-solenv_gbuild_platform_freebsd.mk
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-scaddins_source_analysis_analysishelper.hxx
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-scaddins_source_analysis_analysishelper.hxx (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-scaddins_source_analysis_analysishelper.hxx (nonexistent)
@@ -1,11 +0,0 @@
---- scaddins/source/analysis/analysishelper.hxx.orig 2014-09-19 18:07:44 UTC
-+++ scaddins/source/analysis/analysishelper.hxx
-@@ -35,7 +35,7 @@
-
- #include
-
--#include
-+#include
- #ifndef double_complex
- typedef std::complex double_complex;
- #endif
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-scaddins_source_analysis_analysishelper.hxx
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-l10ntools_source_inireader.cxx
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-l10ntools_source_inireader.cxx (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-l10ntools_source_inireader.cxx (nonexistent)
@@ -1,10 +0,0 @@
---- l10ntools/source/inireader.cxx.orig 2019-08-14 17:32:51 UTC
-+++ l10ntools/source/inireader.cxx
-@@ -21,6 +21,7 @@
-
- #include
- #include
-+#include
- #include
- #include
- #include
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-l10ntools_source_inireader.cxx
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-icu_makefile.mk
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-icu_makefile.mk (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-icu_makefile.mk (nonexistent)
@@ -1,14 +0,0 @@
---- icu/makefile.mk.orig 2019-08-14 17:37:09 UTC
-+++ icu/makefile.mk
-@@ -85,6 +85,11 @@ LDFLAGSADD += -Wl,--hash-style=both
- LDFLAGSADD += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
- .ENDIF
-
-+# FreeBSD with gcc from ports needs -Wl,-rpath= to find the matching libstdc++
-+.IF "$(OS)"=="FREEBSD"
-+LDFLAGSADD+=$(FBSD_GCC_RPATH)
-+.ENDIF
-+
- CONFIGURE_DIR=source
-
- CONFIGURE_ACTION+=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)'
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-icu_makefile.mk
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-solenv_inc_unxfbsd.mk
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-solenv_inc_unxfbsd.mk (revision 554861)
+++ branches/2020Q4/editors/openoffice-4/files/patch-solenv_inc_unxfbsd.mk (nonexistent)
@@ -1,19 +0,0 @@
---- solenv/inc/unxfbsd.mk.orig 2017-11-27 13:50:28 UTC
-+++ solenv/inc/unxfbsd.mk
-@@ -96,10 +96,15 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
- CFLAGS_NO_EXCEPTIONS=-fno-exceptions
-
- # -fpermissive should be removed as soon as possible
--CFLAGSCXX= -pipe $(ARCH_FLAGS)
-+CFLAGSCXX= -pipe $(ARCH_FLAGS) -std=gnu++98
- .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
- CFLAGSCXX += -fvisibility-inlines-hidden
- .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-+
-+.IF "$(CPUNAME)" == "INTEL" || "$(CPUNAME)" == "X86_64"
-+CFLAGSCC += -fstack-protector
-+CFLAGSCXX += -fstack-protector
-+.ENDIF
-
- # Compiler flags for compiling static object in multi threaded environment with graphical user interface
- CFLAGSOBJGUIMT=
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-solenv_inc_unxfbsd.mk
___________________________________________________________________
Deleted: fbsd:nokeywords
## -1 +0,0 ##
-yes
\ No newline at end of property
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: branches/2020Q4/editors/openoffice-4/files/patch-configure.ac
===================================================================
--- branches/2020Q4/editors/openoffice-4/files/patch-configure.ac (nonexistent)
+++ branches/2020Q4/editors/openoffice-4/files/patch-configure.ac (revision 554862)
@@ -0,0 +1,32 @@
+--- configure.ac.orig 2019-11-12 05:10:21 UTC
++++ configure.ac
+@@ -367,11 +367,11 @@ AC_ARG_WITH(bundled-extension-blobs,
+ and comply with their distribution requirements by updating the
+ files LICENSE_aggregated and NOTICE_aggregated accordingly
+ ],,)
+-#AC_ARG_WITH(bundled-prereg-extensions,
+-#[ --with-bundled-prereg-extensions Whitespace seperated list of files in the tarball directory that
+-# are to be bundled as pre-registered extensions. Make sure to only bundle
+-# extensions which can be installed without requiring a license dialog
+-#],,)
++AC_ARG_WITH(bundled-prereg-extensions,
++[ --with-bundled-prereg-extensions Whitespace seperated list of files in the tarball directory that
++ are to be bundled as pre-registered extensions. Make sure to only bundle
++ extensions which can be installed without requiring a license dialog
++],,)
+ AC_ARG_ENABLE(bundled-dictionaries,
+ [ --enable-bundled-dictionaries Download dictionaries (spelling, hyphenation, thesaurus)
+ according to main/extensions.lst and bundle them. Make sure to
+@@ -1538,9 +1538,9 @@ else
+ fi
+ AC_SUBST(BUNDLED_EXTENSION_BLOBS)
+
+-#dnl ===================================================================
+-#dnl Check extensions that are to be bundled as pre-registerd
+-#dnl ===================================================================
++dnl ===================================================================
++dnl Check extensions that are to be bundled as pre-registerd
++dnl ===================================================================
+ if test -n "$with_bundled_prereg_extensions"; then
+ BUNDLED_PREREG_EXTENSIONS="$with_bundled_prereg_extensions"
+ else
Property changes on: branches/2020Q4/editors/openoffice-4/files/patch-configure.ac
___________________________________________________________________
Added: fbsd:nokeywords
## -0,0 +1 ##
+yes
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: branches/2020Q4
===================================================================
--- branches/2020Q4 (revision 554861)
+++ branches/2020Q4 (revision 554862)
Property changes on: branches/2020Q4
___________________________________________________________________
Modified: svn:mergeinfo
## -0,0 +0,1 ##
Merged /head:r554647,554693