Hi,

On Sun, 2004-11-14 at 20:40, Casey Marshall wrote:
> Or, why not implement Class.getSigners and Class.setSigners?

That is a very nice idea! Thanks for writing that patch.
Could this patch please go into CVS?
It is a bit of a pain to keep applying workarounds for testing anything
that uses signed jar files.

Thanks,

Mark
Index: kaffe/kaffevm/classMethod.h
===================================================================
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/classMethod.h,v
retrieving revision 1.68
diff -u -b -B -r1.68 classMethod.h
--- kaffe/kaffevm/classMethod.h	19 Aug 2004 19:29:02 -0000	1.68
+++ kaffe/kaffevm/classMethod.h	14 Nov 2004 19:39:20 -0000
@@ -163,6 +163,9 @@
 	/** Stab type ID. */
 	int stab_id;
 #endif
+
+	/** The array of 'signer' objects; usually Certificates. */
+	HArrayOfObject*		signers;
 };
 
 #ifndef __DEFINED_CLASS
Index: libraries/clib/native/Class.c
===================================================================
RCS file: /cvs/kaffe/kaffe/libraries/clib/native/Class.c,v
retrieving revision 1.74
diff -u -b -B -r1.74 Class.c
--- libraries/clib/native/Class.c	5 Jul 2004 16:40:53 -0000	1.74
+++ libraries/clib/native/Class.c	14 Nov 2004 19:39:20 -0000
@@ -280,16 +280,16 @@
 	return (this->accflags & (ACC_MASK & ~ACC_SUPER));
 }
 
-HArrayOfObject* NONRETURNING
-java_lang_Class_getSigners(struct Hjava_lang_Class* this UNUSED)
+HArrayOfObject*
+java_lang_Class_getSigners0(struct Hjava_lang_Class* this)
 {
-	unimp("java.lang.Class:getSigners unimplemented");
+	return this->signers;
 }
 
-void NONRETURNING
-java_lang_Class_setSigners(struct Hjava_lang_Class* this UNUSED, HArrayOfObject* sigs UNUSED)
+void
+java_lang_Class_setSigners(struct Hjava_lang_Class* this, HArrayOfObject* sigs)
 {
-	unimp("java.lang.Class:setSigners unimplemented");
+	this->signers = sigs;
 }
 
 /*
Index: libraries/javalib/java/lang/Class.java
===================================================================
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/Class.java,v
retrieving revision 1.49
diff -u -b -B -r1.49 Class.java
--- libraries/javalib/java/lang/Class.java	22 Mar 2004 11:24:46 -0000	1.49
+++ libraries/javalib/java/lang/Class.java	14 Nov 2004 19:39:20 -0000
@@ -356,7 +356,14 @@
 	return loader.getResourceAsStream(name);
 }
 
-native public Object[] getSigners();
+public Object[] getSigners()
+{
+        Object[] signers = getSigners0();
+        return signers == null ? null : (Object[]) signers.clone();
+}
+
+private native Object[] getSigners0();
+
 native void setSigners(Object[] signers);
 
 native public Class getSuperclass();
Index: libraries/javalib/java/lang/ClassLoader.java
===================================================================
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/ClassLoader.java,v
retrieving revision 1.32
diff -u -b -B -r1.32 ClassLoader.java
--- libraries/javalib/java/lang/ClassLoader.java	22 Mar 2004 11:24:46 -0000	1.32
+++ libraries/javalib/java/lang/ClassLoader.java	14 Nov 2004 19:39:20 -0000
@@ -201,9 +201,8 @@
 	return parent;
 }
 
-protected final void setSigners(Class cl, Object signers[]) {
-	throw new kaffe.util.NotImplemented(getClass().getName()
-		+ ".setSigners()");
+protected final void setSigners(Class cl, Object[] signers) {
+        cl.setSigners (signers);
 }
 
 protected final Class findLoadedClass(String name) {

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to