mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-26 15:29:55 +08:00
76508852a0
* Makefile.in: Rebuilt. * Makefile.am (nat_source_files): Added natVMSecurityManager, natResourceBundle. * java/util/ResourceBundle.java (Security): Removed. (getCallingClassLoader): Now native. * java/util/natResourceBundle.cc: New file. * java/lang/natVMSecurityManager.cc: New file. * java/lang/VMSecurityManager.java (getClassContext): Now native. From-SVN: r59840
55 lines
1.3 KiB
C++
55 lines
1.3 KiB
C++
/* Copyright (C) 2002 Free Software Foundation
|
|
|
|
This file is part of libgcj.
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
details. */
|
|
|
|
// Written by Tom Tromey <tromey@redhat.com>
|
|
|
|
#include <config.h>
|
|
|
|
#include <gcj/cni.h>
|
|
#include <jvm.h>
|
|
#include <java/lang/VMSecurityManager.h>
|
|
#include <java/lang/SecurityManager.h>
|
|
#include <java/lang/ClassLoader.h>
|
|
#include <java/lang/Class.h>
|
|
#include <gnu/gcj/runtime/StackTrace.h>
|
|
|
|
JArray<jclass> *
|
|
java::lang::VMSecurityManager::getClassContext ()
|
|
{
|
|
JArray<jclass> *result = NULL;
|
|
gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace();
|
|
if (t)
|
|
{
|
|
int maxlen = t->length();
|
|
|
|
int len = 0;
|
|
while (len < maxlen)
|
|
{
|
|
jclass klass = t->classAt(len);
|
|
if (klass != NULL && klass != &java::lang::VMSecurityManager::class$
|
|
&& klass != &java::lang::SecurityManager::class$)
|
|
++len;
|
|
}
|
|
|
|
result =
|
|
(JArray<jclass> *) _Jv_NewObjectArray (len, &java::lang::Class::class$,
|
|
NULL);
|
|
|
|
len = 0;
|
|
while (len < maxlen)
|
|
{
|
|
jclass klass = t->classAt(len);
|
|
if (klass != NULL && klass != &java::lang::VMSecurityManager::class$
|
|
&& klass != &java::lang::SecurityManager::class$)
|
|
elements(result)[len++] = klass;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|