/* mm/cacao-gc/final.h - GC header for finalization and weak references
- Copyright (C) 2006 R. Grafl, A. Krall, C. Kruegel,
- C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
- E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
- J. Wenninger, Institut f. Computersprachen - TU Wien
+ Copyright (C) 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id$
-
*/
#ifndef _FINAL_H
#define _FINAL_H
+#include "config.h"
#include "vm/types.h"
-#include "toolbox/list.h"
-#include "vmcore/method.h"
+#include "toolbox/list.hpp"
+#include "vm/method.hpp"
/* Global Variables ***********************************************************/
-extern list *final_list;
+extern list_t *final_list;
/* Structures *****************************************************************/
-typedef struct final_entry final_entry;
+typedef struct list_final_entry_t list_final_entry_t;
#define FINAL_REACHABLE 1
#define FINAL_RECLAIMABLE 2
#define FINAL_FINALIZING 3
#define FINAL_FINALIZED 4
-struct final_entry {
- listnode linkage;
+struct list_final_entry_t {
+ listnode_t linkage;
u4 type;
- java_objectheader *o;
+ java_object_t *o;
methodinfo *finalizer;
};
/* Prototypes *****************************************************************/
void final_init();
-void final_register(java_objectheader *o, methodinfo *finalizer);
+void final_register(java_object_t *o, methodinfo *finalizer);
void final_invoke();
+void final_set_all_reclaimable();
#endif /* _FINAL_H */