* src/vm/jit/replace.c (replace_find_replacement_point_for_pc): Added assertion.
[cacao.git] / src / native / vm / gnu / java_lang_VMClass.c
1 /* src/native/vm/gnu/java_lang_VMClass.c
2
3    Copyright (C) 2006, 2007 R. Grafl, A. Krall, C. Kruegel, C. Oates,
4    R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
5    C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
6    Institut f. Computersprachen - TU Wien
7
8    This file is part of CACAO.
9
10    This program is free software; you can redistribute it and/or
11    modify it under the terms of the GNU General Public License as
12    published by the Free Software Foundation; either version 2, or (at
13    your option) any later version.
14
15    This program is distributed in the hope that it will be useful, but
16    WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18    General Public License for more details.
19
20    You should have received a copy of the GNU General Public License
21    along with this program; if not, write to the Free Software
22    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23    02110-1301, USA.
24
25    $Id: java_lang_VMClass.c 7246 2007-01-29 18:49:05Z twisti $
26
27 */
28
29
30 #include "config.h"
31 #include "vm/types.h"
32
33 #include "native/jni.h"
34 #include "native/include/java_lang_Class.h"
35 #include "native/include/java_lang_ClassLoader.h"
36 #include "native/include/java_lang_Object.h"
37 #include "native/include/java_lang_Throwable.h"
38 #include "native/include/java_lang_VMClass.h"
39 #include "native/include/java_lang_reflect_Constructor.h"
40 #include "native/include/java_lang_reflect_Method.h"
41
42 #include "native/vm/java_lang_Class.h"
43
44
45 /*
46  * Class:     java/lang/VMClass
47  * Method:    isInstance
48  * Signature: (Ljava/lang/Object;)Z
49  */
50 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isInstance(JNIEnv *env, jclass clazz, java_lang_Class *klass, java_lang_Object *o)
51 {
52         return _Jv_java_lang_Class_isInstance(klass, o);
53 }
54
55
56 /*
57  * Class:     java/lang/VMClass
58  * Method:    isAssignableFrom
59  * Signature: (Ljava/lang/Class;)Z
60  */
61 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isAssignableFrom(JNIEnv *env, jclass clazz, java_lang_Class *klass, java_lang_Class *c)
62 {
63         return _Jv_java_lang_Class_isAssignableFrom(klass, c);
64 }
65
66
67 /*
68  * Class:     java/lang/VMClass
69  * Method:    isInterface
70  * Signature: ()Z
71  */
72 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isInterface(JNIEnv *env, jclass clazz, java_lang_Class *klass)
73 {
74         return _Jv_java_lang_Class_isInterface(klass);
75 }
76
77
78 /*
79  * Class:     java/lang/VMClass
80  * Method:    isPrimitive
81  * Signature: ()Z
82  */
83 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isPrimitive(JNIEnv *env, jclass clazz, java_lang_Class *klass)
84 {
85         return  _Jv_java_lang_Class_isPrimitive(klass);
86 }
87
88
89 /*
90  * Class:     java/lang/VMClass
91  * Method:    getName
92  * Signature: ()Ljava/lang/String;
93  */
94 JNIEXPORT java_lang_String* JNICALL Java_java_lang_VMClass_getName(JNIEnv *env, jclass clazz, java_lang_Class *klass)
95 {
96         return _Jv_java_lang_Class_getName(klass);
97 }
98
99
100 /*
101  * Class:     java/lang/VMClass
102  * Method:    getSuperclass
103  * Signature: ()Ljava/lang/Class;
104  */
105 JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getSuperclass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
106 {
107         return _Jv_java_lang_Class_getSuperclass(klass);
108 }
109
110
111 /*
112  * Class:     java/lang/VMClass
113  * Method:    getInterfaces
114  * Signature: ()[Ljava/lang/Class;
115  */
116 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getInterfaces(JNIEnv *env, jclass clazz, java_lang_Class *klass)
117 {
118         return _Jv_java_lang_Class_getInterfaces(klass);
119 }
120
121
122 /*
123  * Class:     java/lang/VMClass
124  * Method:    getComponentType
125  * Signature: ()Ljava/lang/Class;
126  */
127 JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType(JNIEnv *env, jclass clazz, java_lang_Class *klass)
128 {
129         return _Jv_java_lang_Class_getComponentType(klass);
130 }
131
132
133 /*
134  * Class:     java/lang/VMClass
135  * Method:    getModifiers
136  * Signature: (Z)I
137  */
138 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_getModifiers(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 ignoreInnerClassesAttrib)
139 {
140         return _Jv_java_lang_Class_getModifiers(klass, ignoreInnerClassesAttrib);
141 }
142
143
144 /*
145  * Class:     java/lang/VMClass
146  * Method:    getDeclaringClass
147  * Signature: ()Ljava/lang/Class;
148  */
149 JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getDeclaringClass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
150 {
151         return _Jv_java_lang_Class_getDeclaringClass(klass);
152 }
153
154
155 /*
156  * Class:     java/lang/VMClass
157  * Method:    getDeclaredClasses
158  * Signature: (Z)[Ljava/lang/Class;
159  */
160 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredClasses(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
161 {
162         return _Jv_java_lang_Class_getDeclaredClasses(klass, publicOnly);
163 }
164
165
166 /*
167  * Class:     java/lang/VMClass
168  * Method:    getDeclaredFields
169  * Signature: (Z)[Ljava/lang/reflect/Field;
170  */
171 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredFields(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
172 {
173         return _Jv_java_lang_Class_getDeclaredFields(klass, publicOnly);
174 }
175
176
177 /*
178  * Class:     java/lang/VMClass
179  * Method:    getDeclaredMethods
180  * Signature: (Z)[Ljava/lang/reflect/Method;
181  */
182 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredMethods(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
183 {
184         return _Jv_java_lang_Class_getDeclaredMethods(klass, publicOnly);
185 }
186
187
188 /*
189  * Class:     java/lang/VMClass
190  * Method:    getDeclaredConstructors
191  * Signature: (Z)[Ljava/lang/reflect/Constructor;
192  */
193 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructors(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
194 {
195         return _Jv_java_lang_Class_getDeclaredConstructors(klass, publicOnly);
196 }
197
198
199 /*
200  * Class:     java/lang/VMClass
201  * Method:    getClassLoader
202  * Signature: ()Ljava/lang/ClassLoader;
203  */
204 JNIEXPORT java_lang_ClassLoader* JNICALL Java_java_lang_VMClass_getClassLoader(JNIEnv *env, jclass clazz, java_lang_Class *klass)
205 {
206         return _Jv_java_lang_Class_getClassLoader(klass);
207 }
208
209
210 /*
211  * Class:     java/lang/VMClass
212  * Method:    forName
213  * Signature: (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
214  */
215 JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_forName(JNIEnv *env, jclass clazz, java_lang_String *name, s4 initialize, java_lang_ClassLoader *loader)
216 {
217         return _Jv_java_lang_Class_forName(name, initialize, loader);
218 }
219
220
221 /*
222  * Class:     java/lang/VMClass
223  * Method:    isArray
224  * Signature: ()Z
225  */
226 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isArray(JNIEnv *env, jclass clazz, java_lang_Class *klass)
227 {
228         return _Jv_java_lang_Class_isArray(klass);
229 }
230
231
232 /*
233  * Class:     java/lang/VMClass
234  * Method:    throwException
235  * Signature: (Ljava/lang/Throwable;)V
236  */
237 JNIEXPORT void JNICALL Java_java_lang_VMClass_throwException(JNIEnv *env, jclass clazz, java_lang_Throwable *t)
238 {
239         _Jv_java_lang_Class_throwException(t);
240 }
241
242
243 #if 0
244 /*
245  * Class:     java/lang/VMClass
246  * Method:    getDeclaredAnnotations
247  * Signature: (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
248  */
249 JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredAnnotations(JNIEnv *env, jclass clazz, java_lang_Class* klass)
250 {
251 }
252 #endif
253
254
255 /*
256  * Class:     java/lang/VMClass
257  * Method:    getEnclosingClass
258  * Signature: (Ljava/lang/Class;)Ljava/lang/Class;
259  */
260 JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getEnclosingClass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
261 {
262         return _Jv_java_lang_Class_getEnclosingClass(klass);
263 }
264
265
266 /*
267  * Class:     java/lang/VMClass
268  * Method:    getEnclosingConstructor
269  * Signature: (Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
270  */
271 JNIEXPORT java_lang_reflect_Constructor* JNICALL Java_java_lang_VMClass_getEnclosingConstructor(JNIEnv *env, jclass clazz, java_lang_Class *klass)
272 {
273         return _Jv_java_lang_Class_getEnclosingConstructor(klass);
274 }
275
276
277 /*
278  * Class:     java/lang/VMClass
279  * Method:    getEnclosingMethod
280  * Signature: (Ljava/lang/Class;)Ljava/lang/reflect/Method;
281  */
282 JNIEXPORT java_lang_reflect_Method* JNICALL Java_java_lang_VMClass_getEnclosingMethod(JNIEnv *env, jclass clazz, java_lang_Class *klass)
283 {
284         return _Jv_java_lang_Class_getEnclosingMethod(klass);
285 }
286
287
288 /*
289  * Class:     java/lang/VMClass
290  * Method:    getClassSignature
291  * Signature: (Ljava/lang/Class;)Ljava/lang/String;
292  */
293 JNIEXPORT java_lang_String* JNICALL Java_java_lang_VMClass_getClassSignature(JNIEnv *env, jclass clazz, java_lang_Class* klass)
294 {
295         return _Jv_java_lang_Class_getClassSignature(klass);
296 }
297
298
299 #if 0
300 /*
301  * Class:     java/lang/VMClass
302  * Method:    isAnonymousClass
303  * Signature: (Ljava/lang/Class;)Z
304  */
305 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isAnonymousClass(JNIEnv *env, jclass clazz, struct java_lang_Class* par1);
306
307
308 /*
309  * Class:     java/lang/VMClass
310  * Method:    isLocalClass
311  * Signature: (Ljava/lang/Class;)Z
312  */
313 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isLocalClass(JNIEnv *env, jclass clazz, struct java_lang_Class* par1);
314
315
316 /*
317  * Class:     java/lang/VMClass
318  * Method:    isMemberClass
319  * Signature: (Ljava/lang/Class;)Z
320  */
321 JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isMemberClass(JNIEnv *env, jclass clazz, struct java_lang_Class* par1);
322 #endif
323
324
325 /*
326  * These are local overrides for various environment variables in Emacs.
327  * Please do not remove this and leave it at the end of the file, where
328  * Emacs will automagically detect them.
329  * ---------------------------------------------------------------------
330  * Local variables:
331  * mode: c
332  * indent-tabs-mode: t
333  * c-basic-offset: 4
334  * tab-width: 4
335  * End:
336  * vim:noexpandtab:sw=4:ts=4:
337  */