* src/native/vm/sun/jvm.c (JVM_SetClassSigners): Implemented.
authorChristian Thalinger <twisti@complang.tuwien.ac.at>
Mon, 1 Oct 2007 12:08:34 +0000 (14:08 +0200)
committerChristian Thalinger <twisti@complang.tuwien.ac.at>
Mon, 1 Oct 2007 12:08:34 +0000 (14:08 +0200)
* src/vmcore/class.h (classinfo) [WITH_CLASSPATH_SUN]: Added signers.

src/native/vm/sun/jvm.c
src/vmcore/class.h

index 4c86920698ed2d4404957c972461102bdb3dffe5..d52854ff966dc8b5dfd7b789f00296f30e82bc7b 100644 (file)
@@ -877,7 +877,24 @@ jobjectArray JVM_GetClassSigners(JNIEnv *env, jclass cls)
 
 void JVM_SetClassSigners(JNIEnv *env, jclass cls, jobjectArray signers)
 {
-       log_println("JVM_SetClassSigners: IMPLEMENT ME!");
+       classinfo                 *c;
+       java_handle_objectarray_t *hoa;
+
+       TRACEJVMCALLS("JVM_SetClassSigners(env=%p, cls=%p, signers=%p)", env, cls, signers);
+
+       c = LLNI_classinfo_unwrap(cls);
+
+       hoa = (java_handle_objectarray_t *) signers;
+
+    /* This call is ignored for primitive types and arrays.  Signers
+          are only set once, ClassLoader.java, and thus shouldn't be
+          called with an array.  Only the bootstrap loader creates
+          arrays. */
+
+       if (class_is_primitive(c) || class_is_array(c))
+               return;
+
+       LLNI_classinfo_field_set(c, signers, hoa);
 }
 
 
index 0c6099873b55c467105dfbe790bf97885914f85f..0db5617d8000f0da8a5af34db014a4688c8136c7 100644 (file)
@@ -163,7 +163,8 @@ struct classinfo {                /* class structure                          */
 
 #if defined(ENABLE_JAVASE)
 # if defined(WITH_CLASSPATH_SUN)
-       java_object_t *protectiondomain;
+       java_object_t      *protectiondomain;
+       java_objectarray_t *signers;
 # endif
 #endif
 };