Use new `ptrint' type for casts instead of `long'.
[cacao.git] / loader.h
index 32e0289a05c634f75e16e8355101cc15d562f7cc..56341ea76fa8afc9f74cb4096d09a0817b1a080b 100644 (file)
--- a/loader.h
+++ b/loader.h
@@ -26,7 +26,7 @@
 
    Authors: Reinhard Grafl
 
-   $Id: loader.h 1088 2004-05-26 21:32:34Z twisti $
+   $Id: loader.h 1557 2004-11-22 12:01:16Z carolyn $
 */
 
 
@@ -63,7 +63,8 @@ extern classinfo *class_java_lang_Object;
 extern classinfo *class_java_lang_String;
 extern classinfo *class_java_lang_Cloneable;
 extern classinfo *class_java_io_Serializable;
-
+extern utf *utf_fillInStackTrace_name;
+extern utf *utf_fillInStackTrace_desc;
 
 /* pseudo classes for the type checker ****************************************/
 
@@ -91,7 +92,7 @@ extern classinfo *class_java_io_Serializable;
 extern classinfo *pseudo_class_Arraystub;
 extern classinfo *pseudo_class_Null;
 extern classinfo *pseudo_class_New;
-extern vftbl *pseudo_class_Arraystub_vftbl;
+extern vftbl_t *pseudo_class_Arraystub_vftbl;
 
 extern utf *array_packagename;
 
@@ -170,13 +171,24 @@ int type_from_descriptor(classinfo **cls,char *utf_ptr,char *end_ptr,char **next
 /* (used by class_new, don't use directly) */
 void class_new_array(classinfo *c);
 
+#define LAZYLOADING(class) { \
+        if (!class->loaded) \
+            if (!class_load(class)) \
+                return 0; \
+        if (!class->linked) \
+            if (!class_link(class)) \
+                return 0; }
+
+
 classinfo *class_load(classinfo *c);
 classinfo *class_load_intern(classbuffer *cb);
 classinfo *class_link(classinfo *c);
+void class_free(classinfo *c);
 
 void field_display(fieldinfo *f);
 
 void method_display(methodinfo *m);
+void method_display_w_class(methodinfo *m);
 
 utf* clinit_desc();
 utf* clinit_name();
@@ -189,15 +201,16 @@ utf* clinit_name();
 
 typedef union classpath_info {
        struct {
-               int type;
+               s4                    type;
                union classpath_info *next;
-               char *filename;
-               int pathlen; } filepath;
-#ifdef USE_ZLIB
+               char                 *path;
+               s4                    pathlen;
+       } filepath;
+#if defined(USE_ZLIB)
        struct {
-               int type;
+               s4                    type;
                union classpath_info *next;
-               unzFile uf;
+               unzFile               uf;
        } archive;
 #endif 
 } classpath_info;