Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMRuntime.c 7246 2007-01-29 18:49:05Z twisti $
-
*/
#include "config.h"
-#if !defined(WITH_STATIC_CLASSPATH)
+#if defined(ENABLE_LTDL) && defined(HAVE_LTDL_H)
# include <ltdl.h>
#endif
* Signature: (Ljava/lang/String;Ljava/lang/ClassLoader;)I
*/
#if defined(ENABLE_JNI)
-s4 _Jv_java_lang_Runtime_loadLibrary(JNIEnv *env, java_lang_String *libname, java_objectheader *cl)
+s4 _Jv_java_lang_Runtime_loadLibrary(JNIEnv *env, java_lang_String *libname, classloader *cl)
#else
-s4 _Jv_java_lang_Runtime_loadLibrary(java_lang_String *libname, java_objectheader *cl)
+s4 _Jv_java_lang_Runtime_loadLibrary(java_lang_String *libname, classloader *cl)
#endif
{
-#if !defined(WITH_STATIC_CLASSPATH)
+#if defined(ENABLE_LTDL)
utf *name;
lt_dlhandle handle;
# if defined(ENABLE_JNI)
lt_ptr onload;
s4 version;
# endif
-#endif
if (libname == NULL) {
exceptions_throw_nullpointerexception();
return 0;
}
-#if defined(WITH_STATIC_CLASSPATH)
- return 1;
-#else /* defined(WITH_STATIC_CLASSPATH) */
- name = javastring_toutf(libname, 0);
+ name = javastring_toutf((java_handle_t *) libname, false);
/* is the library already loaded? */
- if (native_hashtable_library_find(name, cl))
+ if (native_library_find(name, cl) != NULL)
return 1;
- /* try to open the library */
+ /* open the library */
- if (!(handle = lt_dlopen(name->text))) {
- if (opt_verbose) {
- log_start();
- log_print("_Jv_java_lang_Runtime_loadLibrary: ");
- log_print(lt_dlerror());
- log_finish();
- }
+ handle = native_library_open(name);
+ if (handle == NULL)
return 0;
- }
# if defined(ENABLE_JNI)
/* resolve JNI_OnLoad function */
- if ((onload = lt_dlsym(handle, "JNI_OnLoad"))) {
+ onload = lt_dlsym(handle, "JNI_OnLoad");
+
+ if (onload != NULL) {
JNIEXPORT s4 (JNICALL *JNI_OnLoad) (JavaVM *, void *);
JavaVM *vm;
/* insert the library name into the library hash */
- native_hashtable_library_add(name, cl, handle);
+ native_library_add(name, cl, handle);
return 1;
-#endif /* defined(WITH_STATIC_CLASSPATH) */
+#else
+ vm_abort("_Jv_java_lang_Runtime_loadLibrary: not available");
+
+ /* keep compiler happy */
+
+ return 0;
+#endif
}