diff options
-rw-r--r-- | javaunohelper/source/bootstrap.cxx | 5 | ||||
-rw-r--r-- | javaunohelper/source/javaunohelper.cxx | 9 | ||||
-rw-r--r-- | javaunohelper/source/juhx-export-functions.hxx | 44 | ||||
-rw-r--r-- | javaunohelper/source/juhx-export-types.hxx | 52 | ||||
-rw-r--r-- | javaunohelper/source/preload.cxx | 21 |
5 files changed, 112 insertions, 19 deletions
diff --git a/javaunohelper/source/bootstrap.cxx b/javaunohelper/source/bootstrap.cxx index c47b332d9a71..0fa2558c87f1 100644 --- a/javaunohelper/source/bootstrap.cxx +++ b/javaunohelper/source/bootstrap.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include "sal/config.h" #include "osl/diagnose.h" @@ -36,9 +37,9 @@ #include "jvmaccess/virtualmachine.hxx" #include "jvmaccess/unovirtualmachine.hxx" +#include "juhx-export-functions.hxx" #include "vm.hxx" - using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -62,7 +63,7 @@ inline OUString jstring_to_oustring( jstring jstr, JNIEnv * jni_env ) } //================================================================================================== -extern "C" SAL_JNI_EXPORT jobject JNICALL Java_com_sun_star_comp_helper_Bootstrap_cppuhelper_1bootstrap( +jobject Java_com_sun_star_comp_helper_Bootstrap_cppuhelper_1bootstrap( JNIEnv * jni_env, SAL_UNUSED_PARAMETER jclass, jstring juno_rc, jobjectArray jpairs, jobject loader ) { diff --git a/javaunohelper/source/javaunohelper.cxx b/javaunohelper/source/javaunohelper.cxx index 68bf90794597..e43023650017 100644 --- a/javaunohelper/source/javaunohelper.cxx +++ b/javaunohelper/source/javaunohelper.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include "sal/config.h" #include <osl/diagnose.h> #include <osl/module.h> @@ -35,9 +36,9 @@ #include "jvmaccess/virtualmachine.hxx" #include "jvmaccess/unovirtualmachine.hxx" +#include "juhx-export-functions.hxx" #include "vm.hxx" - using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -46,8 +47,7 @@ using namespace ::com::sun::star::uno; * Method: component_writeInfo * Signature: (Ljava/lang/String;Lcom/sun/star/lang/XMultiServiceFactory;Lcom/sun/star/registry/XRegistryKey;)Z */ -extern "C" SAL_JNI_EXPORT jboolean JNICALL -Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1writeInfo( +jboolean Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1writeInfo( JNIEnv * pJEnv, SAL_UNUSED_PARAMETER jclass, jstring jLibName, jobject jSMgr, jobject jRegKey, jobject loader ) { @@ -133,8 +133,7 @@ Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1writeInfo( * Method: component_getFactory * Signature: (Ljava/lang/String;Ljava/lang/String;Lcom/sun/star/lang/XMultiServiceFactory;Lcom/sun/star/registry/XRegistryKey;)Ljava/lang/Object; */ -extern "C" SAL_JNI_EXPORT jobject JNICALL -Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1getFactory( +jobject Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1getFactory( JNIEnv * pJEnv, SAL_UNUSED_PARAMETER jclass, jstring jLibName, jstring jImplName, jobject jSMgr, jobject jRegKey, jobject loader ) { diff --git a/javaunohelper/source/juhx-export-functions.hxx b/javaunohelper/source/juhx-export-functions.hxx new file mode 100644 index 000000000000..0012cf4832bf --- /dev/null +++ b/javaunohelper/source/juhx-export-functions.hxx @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_JAVAUNOHELPER_SOURCE_JUHX_EXPORT_FUNCTIONS_HXX +#define INCLUDED_JAVAUNOHELPER_SOURCE_JUHX_EXPORT_FUNCTIONS_HXX + +#include "sal/config.h" + +#include "sal/types.h" + +#include "juhx-export-types.hxx" + +extern "C" { + +SAL_JNI_EXPORT javaunohelper::detail::Func_bootstrap +Java_com_sun_star_comp_helper_Bootstrap_cppuhelper_1bootstrap; + +SAL_JNI_EXPORT javaunohelper::detail::Func_getFactory +Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1getFactory; + +SAL_JNI_EXPORT javaunohelper::detail::Func_writeInfo +Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1writeInfo; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/javaunohelper/source/juhx-export-types.hxx b/javaunohelper/source/juhx-export-types.hxx new file mode 100644 index 000000000000..b58d2e8cff7f --- /dev/null +++ b/javaunohelper/source/juhx-export-types.hxx @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_JAVAUNOHELPER_SOURCE_JUHX_EXPORT_TYPES_HXX +#define INCLUDED_JAVAUNOHELPER_SOURCE_JUHX_EXPORT_TYPES_HXX + +#include "sal/config.h" + +#include "jni.h" + +#if defined DISABLE_DYNLOADING +#define JAVAUNOHELPER_DETAIL_CALLCONV JNICALL +#else +#define JAVAUNOHELPER_DETAIL_CALLCONV +#endif + +extern "C" { + +namespace javaunohelper { namespace detail { + +typedef jobject JAVAUNOHELPER_DETAIL_CALLCONV Func_bootstrap( + JNIEnv *_env, jclass, jstring, jobjectArray, jobject); + +typedef jobject JAVAUNOHELPER_DETAIL_CALLCONV Func_getFactory( + JNIEnv *, jclass, jstring, jstring, jobject, jobject, jobject); + +typedef jboolean JAVAUNOHELPER_DETAIL_CALLCONV Func_writeInfo( + JNIEnv *, jclass, jstring, jobject, jobject, jobject); + +} } + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/javaunohelper/source/preload.cxx b/javaunohelper/source/preload.cxx index 5575af033eda..f7f5fd786d85 100644 --- a/javaunohelper/source/preload.cxx +++ b/javaunohelper/source/preload.cxx @@ -17,12 +17,15 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include "sal/config.h" #include "jni.h" #include "rtl/ustring.hxx" #include "osl/module.h" +#include "juhx-export-types.hxx" + // In retrospect, the reason to create a juh wrapper around the juhx library was // probably because java.lang.System.loadLibrary uses RTLD_LOCAL, so uniqueness // of GCC RTTI symbols needed for exception handling would not be guaranteed. @@ -34,16 +37,10 @@ extern "C" { -typedef jboolean (JNICALL * fptr_writeInfo)( - JNIEnv *, jclass, jstring, jobject, jobject, jobject ); -typedef jobject (JNICALL * fptr_getFactory)( - JNIEnv *, jclass, jstring, jstring, jobject, jobject, jobject ); -typedef jobject (JNICALL * fptr_bootstrap)( - JNIEnv *_env, jclass, jstring, jobjectArray, jobject ); -static fptr_writeInfo s_writeInfo; -static fptr_getFactory s_getFactory; -static fptr_bootstrap s_bootstrap; +static javaunohelper::detail::Func_writeInfo * s_writeInfo; +static javaunohelper::detail::Func_getFactory * s_getFactory; +static javaunohelper::detail::Func_bootstrap * s_bootstrap; static bool s_inited = false; extern "C" { static void SAL_CALL thisModule() {} } @@ -67,16 +64,16 @@ static bool inited_juhx( JNIEnv * jni_env ) { OUString symbol = "Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1writeInfo"; - s_writeInfo = (fptr_writeInfo)osl_getFunctionSymbol( + s_writeInfo = (javaunohelper::detail::Func_writeInfo *)osl_getFunctionSymbol( hModule, symbol.pData ); symbol = "Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1getFactory"; - s_getFactory = (fptr_getFactory)osl_getFunctionSymbol( + s_getFactory = (javaunohelper::detail::Func_getFactory *)osl_getFunctionSymbol( hModule, symbol.pData ); symbol = "Java_com_sun_star_comp_helper_Bootstrap_cppuhelper_1bootstrap"; s_bootstrap = - (fptr_bootstrap)osl_getFunctionSymbol( hModule, symbol.pData ); + (javaunohelper::detail::Func_bootstrap *)osl_getFunctionSymbol( hModule, symbol.pData ); if (0 == s_writeInfo || 0 == s_getFactory || |