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:
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -502,7 +502,7 @@ public abstract class ClassLoader
|
||||
*/
|
||||
protected final void setSigners(Class c, Object[] signers)
|
||||
{
|
||||
// c.setSigners(signers);
|
||||
c.setSigners(signers);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user