// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*-
-/* Copyright (C) 1999, 2000 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj.
bool _Jv_VerifyIdentifier (_Jv_Utf8Const *);
bool _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2);
void _Jv_DefineClass (jclass, jbyteArray, jint, jint);
-void _Jv_ResolveField (_Jv_Field *, java::lang::ClassLoader*);
void _Jv_InitField (jobject, jclass, int);
void * _Jv_AllocMethodInvocation (jsize size);
+int _Jv_count_arguments (_Jv_Utf8Const *signature,
+ jboolean staticp = true);
+void _Jv_VerifyMethod (_Jv_InterpMethod *method);
/* FIXME: this should really be defined in some more generic place */
#define ROUND(V, A) (((((unsigned) (V))-1) | ((A)-1))+1)
class _Jv_InterpMethod;
class _Jv_InterpMethodInvocation;
-class _Jv_InterpException {
+class _Jv_InterpException
+{
int start_pc;
int end_pc;
int handler_pc;
friend class _Jv_ClassReader;
friend class _Jv_InterpMethod;
+ friend class _Jv_BytecodeVerifier;
};
// Base class for method representations. Subclasses are interpreted
friend class _Jv_ClassReader;
friend class _Jv_InterpMethodInvocation;
+ friend class _Jv_BytecodeVerifier;
friend void _Jv_PrepareClass(jclass);
};
friend class _Jv_InterpMethod;
friend void _Jv_PrepareClass(jclass);
friend void _Jv_InitField (jobject, jclass, int);
- friend void* _Jv_MarkObj (void *, void *, void *, void *);
+#ifdef JV_MARKOBJ_DECL
+ friend JV_MARKOBJ_DECL;
+#endif
friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass);
};