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

Difference between revisions of "OT Bytecode Attributes/CallinParamMappings"

(New page: =Attribute CallinParamMappings= ===Intent=== The CallinParamMappings attribute is a variable-length attribute used in the attributes table of method_info structures. This attribute is us...)
 
 
Line 36: Line 36:
 
:Each param_mappings array entry contains the following item:
 
:Each param_mappings array entry contains the following item:
 
:*pos_role_param_idx
 
:*pos_role_param_idx
::The index of the role method parameter corresponding to the base method parameter at this index.
+
::The index of the base method parameter being mapped to the role method parameter at this index.
  
  
 
[[Category:Object Teams Development]]
 
[[Category:Object Teams Development]]

Latest revision as of 07:07, 4 July 2010

Attribute CallinParamMappings

Intent

The CallinParamMappings attribute is a variable-length attribute used in the attributes table of method_info structures. This attribute is used to store the declared parameter mappings. It contains an integer list encoding the parameter postitions of a callin replace (only?) binding.

Location:

A callin wrapper method.

Content:

A list of pairs: role method parameter index + base method parameter index.

Purpose:

The OTRE uses this attribute while generating the base call and while weaving a replace callin.

Format:

   CallinParamMappings {
     u2 attribute_name_index;
     u4 attribute_length;
     u2 param_mappings_count;
     CallinParamMapping param_mappings[param_mappings_count];
    }
   
    CallinParamMapping {
     u2 pos_role_param_idx;
    }

The items of the CallinParamMappings structure are as follows:

  • attribute_name_index
The constant_pool entry at that index must be a CONSTANT_Utf8_info representing the string "CallinRoleBaseBindings".
  • attribute_length
The value of the attribute_length item indicates the length of the attribute, excluding the initial six bytes.
  • param_mappings_count
The value of the param_mappings_count item indicates the number of entries in the param_mappings array.
  • param_mappings[]
Each param_mappings array entry contains the following item:
  • pos_role_param_idx
The index of the base method parameter being mapped to the role method parameter at this index.

Copyright © Eclipse Foundation, Inc. All Rights Reserved.