Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

OT Bytecode Attributes

Revision as of 03:53, 7 April 2010 by Resix.cs.tu-berlin.de (Talk | contribs) (Role level attributes)

These pages describe the bytecode attributes which are generated by the OT/J compiler to hold all that information that cannot be directly translated to normal Java bytecode.

Most of this information is needed by the Object Teams Runtime Environment (OTRE) in order to perform its loadtime bytecode transformations.

Some information is used by the compiler when reading pre-compiled teams and roles.

General notes

As in the Java Virtual Machine Specification (§4) the format of attributes is specified by pseudo-structures written in a C-like struct notation.

Attributes are used in the ClassFile (JVM Spec. §4.1), field_info (JVM Spec. §4.5), method_info (JVM Spec. §4.6), and Code_attribute (JVM Spec. §4.7.3) structures of the class file format. All attributes have the following general format:

    attribute_info {
        u2 attribute_name_index;
        u4 attribute_length;
        u1 info[attribute_length];
    }

In the following the value of every item_name_index item must be a valid index into the constant_pool table, and the entry at that index must be a CONSTANT_Utf8_info (JVM Spec. §4.4.7) structure denoting the item_name info.

(This documentation is work in progress)

TODO:

  • mention otlistclass

Full list of attributes

Team level attributes

Role level attributes

Method level attributes

Back to the top