ClassLoader.java (setSigners): Implemented.

* java/lang/ClassLoader.java (setSigners): Implemented.
	* boehm.cc (_Jv_MarkObj): Mark `signers' field.
	* java/lang/natClassLoader.cc (_Jv_InitNewClassFields):
	Initialize new fields.
	* java/lang/Class.java (getSigners): Now native.
	(setSigners): Declare.
	* java/lang/natClass.cc (getSigners): New method.
	(getSigners): Likewise.
	* java/lang/Class.h (Class::signers): New field.
	(Class::setSigners): New method.

From-SVN: r72271
This commit is contained in:
Tom Tromey
2003-10-09 16:24:55 +00:00
committed by Tom Tromey
parent ae125b177e
commit b379e7b0e9
7 changed files with 37 additions and 6 deletions
+3
View File
@@ -197,6 +197,7 @@ public:
java::net::URL *getResource (jstring resourceName);
java::io::InputStream *getResourceAsStream (jstring resourceName);
JArray<jobject> *getSigners (void);
void setSigners(JArray<jobject> *);
inline jclass getSuperclass (void)
{
@@ -433,6 +434,8 @@ private:
jclass arrayclass;
// Security Domain to which this class belongs (or null).
java::security::ProtectionDomain *protectionDomain;
// Signers of this class (or null).
JArray<jobject> *signers;
// Used by Jv_PopClass and _Jv_PushClass to communicate with StackTrace.
jclass chain;
};
+2 -5
View File
@@ -193,11 +193,8 @@ public final class Class implements Serializable
return packageName.substring (0, end+1) + resourceName;
}
// FIXME: implement. Requires java.security.
public Object[] getSigners ()
{
return null;
}
public native Object[] getSigners ();
native void setSigners(Object[] signers);
public native Class getSuperclass ();
public native boolean isArray ();
+1 -1
View File
@@ -502,7 +502,7 @@ public abstract class ClassLoader
*/
protected final void setSigners(Class c, Object[] signers)
{
// c.setSigners(signers);
c.setSigners(signers);
}
/**
+12
View File
@@ -1534,6 +1534,18 @@ java::lang::Class::getProtectionDomain0 ()
return protectionDomain;
}
JArray<jobject> *
java::lang::Class::getSigners()
{
return signers;
}
void
java::lang::Class::setSigners(JArray<jobject> *s)
{
signers = s;
}
// Functions for indirect dispatch (symbolic virtual binding) support.
// There are two tables, atable and otable. atable is an array of
+4
View File
@@ -539,6 +539,9 @@ _Jv_InitNewClassFields (jclass ret)
ret->field_count = 0;
ret->static_field_count = 0;
ret->vtable = NULL;
ret->otable_syms = NULL;
ret->atable = NULL;
ret->atable_syms = NULL;
ret->interfaces = NULL;
ret->loader = NULL;
ret->interface_count = 0;
@@ -549,6 +552,7 @@ _Jv_InitNewClassFields (jclass ret)
ret->idt = NULL;
ret->arrayclass = NULL;
ret->protectionDomain = NULL;
ret->signers = NULL;
ret->chain = NULL;
}