/* src/vm/references.h - references to classes/fields/methods
- Copyright (C) 1996-2005, 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) 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.
- Contact: cacao@cacaojvm.org
-
- Authors: Edwin Steiner
- Christian Thalinger
-
- $Id: references.h 6012 2006-11-16 19:45:15Z twisti $
-
*/
#ifndef _REFERENCES_H_
} classref_or_classinfo;
-/* parseddesc *****************************************************************/
+/* parseddesc_t ***************************************************************/
typedef union parseddesc {
struct typedesc *fd; /* parsed field descriptor */
struct methoddesc *md; /* parsed method descriptor */
void *any; /* used for simple test against NULL */
-} parseddesc;
+} parseddesc_t;
#include "config.h"
#include "vm/types.h"
-#include "vm/class.h"
+#include "vm/class.hpp"
#include "vm/descriptor.h"
-#include "vm/field.h"
+#include "vm/field.hpp"
#include "vm/global.h"
-#include "vm/method.h"
+#include "vm/method.hpp"
#include "vm/utf8.h"
/* constant_FMIref ************************************************************/
-struct constant_FMIref{ /* Fieldref, Methodref and InterfaceMethodref */
+struct constant_FMIref{ /* Fieldref, Methodref and InterfaceMethodref */
union {
s4 index; /* used only within the loader */
constant_classref *classref; /* class having this field/meth./intfm. */
fieldinfo *field; /* resolved field */
methodinfo *method; /* resolved method */
} p;
- utf *name; /* field/method/interfacemethod name */
- utf *descriptor; /* field/method/intfmeth. type descriptor string */
- parseddesc parseddesc; /* parsed descriptor */
+ utf *name; /* field/method/interfacemethod name */
+ utf *descriptor; /* field/method/intfmeth. type descriptor string */
+ parseddesc_t parseddesc; /* parsed descriptor */
};
/* macro for accessing the class name of a method reference */
#define METHODREF_CLASSNAME(fmiref) \
- (IS_FMIREF_RESOLVED(fmiref) ? (fmiref)->p.method->class->name \
+ (IS_FMIREF_RESOLVED(fmiref) ? (fmiref)->p.method->clazz->name \
: (fmiref)->p.classref->name)
-/* macro for accessing the class name of a method reference */
+/* macro for accessing the class name of a field reference */
#define FIELDREF_CLASSNAME(fmiref) \
- (IS_FMIREF_RESOLVED(fmiref) ? (fmiref)->p.field->class->name \
+ (IS_FMIREF_RESOLVED(fmiref) ? (fmiref)->p.field->clazz->name \
: (fmiref)->p.classref->name)
/* initialize a constant_classref with referer `ref` and name `classname` */