harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Weldon Washburn <weldon...@gmail.com>
Subject Re: [modules] classloader/jit interface
Date Fri, 24 Jun 2005 21:17:27 GMT
On 6/23/05, Geir Magnusson Jr. <geirm@apache.org> wrote:

> Where is code we can start examining?  What do the the java-on-java
> implementations do?
> geir

I can't talk about code just yet.  But I think we can at least get
started on the basic, low controversy APIs.  For example, the access
and property flags defined in the class file format are straight
forward boolean values.  While the access/property flags may be
extended, it is unlikely that basic notions such as public/private
access would ever be removed.  Below is a first stab at the API to
retrieve the values contained in internal classloader data structures.
 Its understood that the JIT won't use all of the below APIs.  For
example, some of the access properties issues are dealt with during
resolution and not by the jit.  I used the java 1.5 version of Chapter
3 of the Java Virtual Machine Spec.

Comment/questions are appreciated.


Class access and property modifiers (table 4.1)
bool Class::is_public();		// ACC_PUBLIC
bool Class::is_final();		// ACC_FINAL
bool Class::is_super();		// ACC_SUPER
bool Class::is_interface();	// ACC_INTERFACE
bool Class::is_abstract();	// ACC_ABSTRACT
bool Class::is_synthetic();	// ACC_SYNTHETIC
bool Class::is_annotation();	// ACC_ANNOTATION
bool Class::is_enum();		// ACC_ENUM

Field access and property flags (table 4.4)
bool Field::is_public();		// ACC_PUBLIC
bool Field::is_private();		// ACC_PRIVATE
bool Field::is_protected();	// ACC_PROTECTED
bool Field::is_static();		// ACC_STATIC
bool Field::is_final();		// ACC_FINAL
bool Field::is_volatile();	// ACC_VOLATILE
bool Field::is_transient();	// ACC_TRANSIENT
bool Field::is_synthetic();	// ACC_SYNTHETIC
bool Field::is_enum();		// ACC_ENUM

Method access and property flags (table 4.5)
bool Method::is_public();	// ACC_PUBLIC
bool Method::is_private();	// ACC_PRIVATE
bool Method::is_protected();	// ACC_PROTECTED
bool Method::is_static();	// ACC_STATIC
bool Method::is_final();		// ACC_FINAL
bool Method::is_synchronized();     // ACC_SYNCHRONIZED
bool Method::is_bridge();	// ACC_BRIDGE
bool Method::is_varargs();	// ACC_VARARGS
bool Method::is_native();	// ACC_NATIVE
bool Method::is_abstract();	// ACC_ABSTRACT
bool Method::is_strict();	// ACC_STRICT
boot Method::is_synthetic();            // ACC_SYNTHETIC

View raw message