From 85826afb302277158432596dcc7a4ea8dede3c39 Mon Sep 17 00:00:00 2001 From: RĂ¼diger Timm Date: Tue, 3 Jul 2007 11:42:17 +0000 Subject: INTEGRATION: CWS sb74 (1.2.6); FILE MERGED 2007/06/29 07:07:20 sb 1.2.6.1: #i78899# Completely removed JDK dependency from doTranslatToUrls/doLoadClass mangled names. --- jvmaccess/inc/jvmaccess/classpath.hxx | 13 ++++++------ jvmaccess/source/classpath.cxx | 37 ++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 24 deletions(-) (limited to 'jvmaccess') diff --git a/jvmaccess/inc/jvmaccess/classpath.hxx b/jvmaccess/inc/jvmaccess/classpath.hxx index a4f1a057d5b8..bfc5aeeda10d 100644 --- a/jvmaccess/inc/jvmaccess/classpath.hxx +++ b/jvmaccess/inc/jvmaccess/classpath.hxx @@ -4,9 +4,9 @@ * * $RCSfile: classpath.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: obo $ $Date: 2007-03-12 10:42:21 $ + * last change: $Author: rt $ $Date: 2007-07-03 12:42:01 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -143,18 +143,19 @@ private: ~ClassPath(); // not defined void operator =(ClassPath &); // not defined - // Functions that replace jobjectArray and jclass with void *, so that their - // mangled C++ names do not depend on the JDK version used at compile time: + // Functions that replace JNIEnv, jobjectArray, and jclass with void *, so + // that their mangled C++ names do not depend on the JDK version used at + // compile time: static void * doTranslateToUrls( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > const & context, - ::JNIEnv * environment, ::rtl::OUString const & classPath); + void * environment, ::rtl::OUString const & classPath); static void * doLoadClass( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > const & context, - ::JNIEnv * environment, ::rtl::OUString const & classPath, + void * environment, ::rtl::OUString const & classPath, ::rtl::OUString const & name); }; diff --git a/jvmaccess/source/classpath.cxx b/jvmaccess/source/classpath.cxx index 255c0fec6e18..7b2956d64990 100644 --- a/jvmaccess/source/classpath.cxx +++ b/jvmaccess/source/classpath.cxx @@ -4,9 +4,9 @@ * * $RCSfile: classpath.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: obo $ $Date: 2007-03-12 10:42:47 $ + * last change: $Author: rt $ $Date: 2007-07-03 12:42:17 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -65,17 +65,17 @@ namespace css = ::com::sun::star; void * ::jvmaccess::ClassPath::doTranslateToUrls( css::uno::Reference< css::uno::XComponentContext > const & context, - ::JNIEnv * environment, ::rtl::OUString const & classPath) + void * environment, ::rtl::OUString const & classPath) { OSL_ASSERT(context.is() && environment != 0); #if defined SOLAR_JAVA - jclass classUrl(environment->FindClass("java/net/URL")); + ::JNIEnv * const env = static_cast< ::JNIEnv * >(environment); + jclass classUrl(env->FindClass("java/net/URL")); if (classUrl == 0) { return 0; } jmethodID ctorUrl( - environment->GetMethodID( - classUrl, "", "(Ljava/lang/String;)V")); + env->GetMethodID(classUrl, "", "(Ljava/lang/String;)V")); if (ctorUrl == 0) { return 0; } @@ -120,20 +120,20 @@ void * ::jvmaccess::ClassPath::doTranslateToUrls( } } jvalue arg; - arg.l = environment->NewString( + arg.l = env->NewString( static_cast< jchar const * >(url.getStr()), static_cast< jsize >(url.getLength())); if (arg.l == 0) { return 0; } - jobject o(environment->NewObjectA(classUrl, ctorUrl, &arg)); + jobject o(env->NewObjectA(classUrl, ctorUrl, &arg)); if (o == 0) { return 0; } urls.push_back(o); } } - jobjectArray result = environment->NewObjectArray( + jobjectArray result = env->NewObjectArray( static_cast< jsize >(urls.size()), classUrl, 0); // static_cast is ok, as each element of urls occupied at least one // character of the ::rtl::OUString classPath @@ -143,7 +143,7 @@ void * ::jvmaccess::ClassPath::doTranslateToUrls( jsize idx = 0; for (std::vector< jobject >::iterator i(urls.begin()); i != urls.end(); ++i) { - environment->SetObjectArrayElement(result, idx++, *i); + env->SetObjectArrayElement(result, idx++, *i); } return result; #else @@ -153,42 +153,43 @@ void * ::jvmaccess::ClassPath::doTranslateToUrls( void * ::jvmaccess::ClassPath::doLoadClass( css::uno::Reference< css::uno::XComponentContext > const & context, - ::JNIEnv * environment, ::rtl::OUString const & classPath, + void * environment, ::rtl::OUString const & classPath, ::rtl::OUString const & name) { OSL_ASSERT(context.is() && environment != 0); #if defined SOLAR_JAVA - jclass classLoader(environment->FindClass("java/net/URLClassLoader")); + ::JNIEnv * const env = static_cast< ::JNIEnv * >(environment); + jclass classLoader(env->FindClass("java/net/URLClassLoader")); if (classLoader == 0) { return 0; } jmethodID ctorLoader( - environment->GetMethodID(classLoader, "", "([Ljava/net/URL;)V")); + env->GetMethodID(classLoader, "", "([Ljava/net/URL;)V")); if (ctorLoader == 0) { return 0; } jvalue arg; - arg.l = translateToUrls(context, environment, classPath); + arg.l = translateToUrls(context, env, classPath); if (arg.l == 0) { return 0; } - jobject cl = environment->NewObjectA(classLoader, ctorLoader, &arg); + jobject cl = env->NewObjectA(classLoader, ctorLoader, &arg); if (cl == 0) { return 0; } jmethodID methLoadClass( - environment->GetMethodID( + env->GetMethodID( classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;")); if (methLoadClass == 0) { return 0; } - arg.l = environment->NewString( + arg.l = env->NewString( static_cast< jchar const * >(name.getStr()), static_cast< jsize >(name.getLength())); if (arg.l == 0) { return 0; } - return environment->CallObjectMethodA(cl, methLoadClass, &arg); + return env->CallObjectMethodA(cl, methLoadClass, &arg); #else return 0; #endif -- cgit