/* src/vmcore/classcache.c - loaded class cache and loading constraints
- Copyright (C) 1996-2005, 2006, 2007 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) 1996-2005, 2006, 2007, 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: classcache.c 7813 2007-04-25 19:20:13Z twisti $
-
*/
#include "vm/exceptions.h"
#include "vmcore/classcache.h"
+#include "vmcore/options.h"
#include "vmcore/utf8.h"
hashtable hashtable_classcache;
#if defined(ENABLE_THREADS)
-static java_objectheader *lock_hashtable_classcache;
+static java_object_t *lock_hashtable_classcache;
#endif
bool classcache_init(void)
{
+ TRACESUBSYSTEMINITIALIZATION("classcache_init");
+
/* create the hashtable */
hashtable_create(&hashtable_classcache, CLASSCACHE_INIT_SIZE);
#if defined(ENABLE_THREADS)
/* create utf hashtable lock object */
- lock_hashtable_classcache = NEW(java_objectheader);
+ lock_hashtable_classcache = NEW(java_object_t);
LOCK_INIT_OBJECT_LOCK(lock_hashtable_classcache);
#endif
*******************************************************************************/
static classcache_loader_entry * classcache_new_loader_entry(
- classloader * loader,
+ classloader_t * loader,
classcache_loader_entry * next)
{
classcache_loader_entry *lden;
*******************************************************************************/
-classinfo *classcache_lookup(classloader *initloader, utf *classname)
+classinfo *classcache_lookup(classloader_t *initloader, utf *classname)
{
classcache_name_entry *en;
classcache_class_entry *clsen;
*******************************************************************************/
-classinfo *classcache_lookup_defined(classloader *defloader, utf *classname)
+classinfo *classcache_lookup_defined(classloader_t *defloader, utf *classname)
{
classcache_name_entry *en;
classcache_class_entry *clsen;
*******************************************************************************/
-classinfo *classcache_lookup_defined_or_initiated(classloader *loader,
+classinfo *classcache_lookup_defined_or_initiated(classloader_t *loader,
utf *classname)
{
classcache_name_entry *en;
*******************************************************************************/
-classinfo *classcache_store(classloader *initloader, classinfo *cls,
+classinfo *classcache_store(classloader_t *initloader, classinfo *cls,
bool mayfree)
{
classcache_name_entry *en;
static classcache_class_entry * classcache_find_loader(
classcache_name_entry * entry,
- classloader * loader)
+ classloader_t * loader)
{
classcache_class_entry *clsen;
classcache_loader_entry *lden;
*******************************************************************************/
#if defined(ENABLE_VERIFIER)
-bool classcache_add_constraint(classloader * a,
- classloader * b,
+bool classcache_add_constraint(classloader_t * a,
+ classloader_t * b,
utf * classname)
{
classcache_name_entry *en;
*******************************************************************************/
#if defined(ENABLE_VERIFIER)
-bool classcache_add_constraints_for_params(classloader * a,
- classloader * b,
+bool classcache_add_constraints_for_params(classloader_t * a,
+ classloader_t * b,
methodinfo *m)
{
methoddesc *md;