* Removed all Id tags.
[cacao.git] / src / native / vm / java_lang_Runtime.c
index bb52a4d1a5b6febe51b90303ec1dc81236a0a704..d167ec35373028b5abf5229b35a4370c769918bd 100644 (file)
    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
 
@@ -108,52 +106,44 @@ void _Jv_java_lang_Runtime_gc(void)
  * 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((java_objectheader *) libname, false);
+       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;
 
@@ -175,10 +165,16 @@ s4 _Jv_java_lang_Runtime_loadLibrary(java_lang_String *libname, java_objectheade
 
        /* 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
 }