Hi,
The access flag of a class might have the synchronized bit set, even if
it's not
appropriate for a class. The java file attached prints "public
synchronized" as
modifiers with jamvm, whereas it prints "public" with sun. This patch just
changes the return of Class.getModifiers to return only interesting bits.
OK to commit?
2005-12-17 Nicolas Geoffray <[EMAIL PROTECTED]>
* java/lang/Class.java (getModifiers): Only returns
interesting bits.
import java.io.ObjectStreamClass;
import java.lang.reflect.Modifier;
public class Serial implements java.io.Serializable{
public static void main(String[]args) throws Exception{
System.out.println(Modifier.toString(Serial.class.getModifiers()));
System.out.println(Serial.class.getModifiers());
System.out.println(ObjectStreamClass.lookup(Serial.class).getSerialVersionUID());
}
}
Index: java/lang/Class.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/lang/Class.java,v
retrieving revision 1.42
diff -u -r1.42 Class.java
--- java/lang/Class.java 16 Dec 2005 18:06:52 -0000 1.42
+++ java/lang/Class.java 16 Dec 2005 23:03:40 -0000
@@ -836,7 +836,10 @@
*/
public int getModifiers()
{
- return VMClass.getModifiers (this, false);
+ int mod = VMClass.getModifiers (this, false);
+ return (mod & (Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE |
+ Modifier.FINAL | Modifier.STATIC | Modifier.ABSTRACT |
+ Modifier.INTERFACE));
}
/**
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches