-/* nat/SecurityManager.c - java/lang/SecurityManager
+/* native/vm/VMSecurityManager.c - java/lang/VMSecurityManager
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
- R. Grafl, A. Krall, C. Kruegel, C. Oates, R. Obermaisser,
- M. Probst, S. Ring, E. Steiner, C. Thalinger, D. Thuernbeck,
- P. Tomsich, J. Wenninger
+ Copyright (C) 1996-2005 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
This file is part of CACAO.
Changes: Joseph Wenninger
- $Id: VMSecurityManager.c 951 2004-03-11 17:30:03Z jowenn $
+ $Id: VMSecurityManager.c 1735 2004-12-07 14:33:27Z twisti $
*/
-#include "jni.h"
-#include "builtin.h"
-#include "native.h"
-#include "tables.h"
-#include "toolbox/loging.h"
-#include "java_lang_ClassLoader.h"
+#include "native/jni.h"
+#include "native/native.h"
+#include "native/include/java_lang_ClassLoader.h"
+#include "toolbox/logging.h"
+#include "vm/builtin.h"
+#include "vm/tables.h"
+#include "vm/jit/stacktrace.h"
+
-#ifdef _ALPHA_
/*
- * Class: java/lang/SecurityManager
+ * Class: java/lang/VMSecurityManager
* Method: currentClassLoader
* Signature: ()Ljava/lang/ClassLoader;
*/
JNIEXPORT java_lang_ClassLoader* JNICALL Java_java_lang_VMSecurityManager_currentClassLoader(JNIEnv *env, jclass clazz)
{
log_text("Java_java_lang_VMSecurityManager_currentClassLoader");
- init_systemclassloader();
+ if (cacao_initializing)
+ return NULL;
+
+#if defined(__I386__) || defined(__ALPHA__)
+ return (java_lang_ClassLoader *) cacao_currentClassLoader();
+#else
+/* return 0; */
+ /* XXX TWISTI: only a quick hack */
+ init_systemclassloader();
return SystemClassLoader;
-}
#endif
+}
+
-#ifdef _ALPHA_
-/*THIS IS IN ASMPART NOW*/
/*
- * Class: java/lang/SecurityManager
+ * Class: java/lang/VMSecurityManager
* Method: getClassContext
* Signature: ()[Ljava/lang/Class;
*/
JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMSecurityManager_getClassContext(JNIEnv *env, jclass clazz)
{
- log_text("Java_java_lang_VMSecurityManager_getClassContext called");
-
- /* XXX should use vftbl directly */
- return (java_objectarray *) builtin_newarray(0, class_array_of(class_java_lang_Class)->vftbl);
-}
+ log_text("Java_java_lang_VMSecurityManager_getClassContext called");
+ if (cacao_initializing) return 0;
+#if defined(__I386__) || defined(__ALPHA__)
+ return cacao_createClassContextArray();
+#else
+/* return 0; */
+
+ /* XXX TWISTI: only a quick hack */
+ return (java_objectarray *) builtin_newarray(0, class_array_of(class_java_lang_Class)->vftbl);
#endif
+}
java_objectarray* temporaryGetClassContextHelper(methodinfo *m) {
if (!m) {
if (!(m->class)) log_text("method or block has no class");
else
utf_display(m->class->name);
- printf("\n");
+ printf("\n");
+ return NULL;
#if 0
log_text("temporaryGetClassContextHelper called");
if (adr==0) log_text("NO REAL METHOD");
printf("saveflt:%ld\n",(long)(*(adr-1)));
}
log_text("temporaryGetClassContextHelper leaving");
- return (java_objectarray *) builtin_newarray(0, class_array_of(class_java_lang_Class)->vftbl);
+ return (java_objectarray *) builtin_newarray(0, class_array_of(class_java_lang_Class)->vftbl);
#endif
}
+
java_objectarray* temporaryGetClassContextHelper2() {
log_text("temporaryGetClassContextHelper2 called");
return (java_objectarray *) builtin_newarray(0, class_array_of(class_java_lang_Class)->vftbl);
}
+
/*
* These are local overrides for various environment variables in Emacs.
* Please do not remove this and leave it at the end of the file, where