Site Tools

Sidebar

Smart Card Solution

User Manual

JavaCard API Samples

Java Card Specification

Knowledge Sharing

javacard:jcvm:6.13.3_method_descriptor_info

6.13.3 method_descriptor_info

The method_descriptor_info structure is used to describe a method defined in this package. This structure contains sufficient information to locate and parse the methods in the Method Component, while the Method Component does not.

The items of the method_descriptor_info structure are as follows:

token

The token item represents the static method token ( Section 4.3.7.4, Static Methods and Constructors) or virtual method token ( Section 4.3.7.6, Virtual Methods) or interface method token ( Section 4.3.7.7, Interface Methods) of this method. If this method is a private or package-visible static method, a private or package-visible constructor, or a private virtual method it does not have a token assigned. In this case the value of the token item must be 0xFF.

access_flags

The access_flags item is a mask of modifiers used to describe the access permission to and properties of this method. The access_flags modifiers for methods are shown in the following table.

Name

Value

ACC_PUBLIC

0x01

ACC_PRIVATE

0x02

ACC_PROTECTED

0x04

ACC_STATIC

0x08

ACC_FINAL

0x10

ACC_ABSTRACT

0x40

ACC_INIT

0x80

The method access and modifier flags defined in the table above, except the ACC_INIT flag, are a subset of those defined for methods in a Java class file. They have the same meaning, and are set under the same conditions, as the corresponding flags in a Java class file.

The ACC_INIT flag is set if the method descriptor identifies a constructor methods. In Java a constructor method is recognized by its name, , but in Java Card systems, the name is replaced by a token. As in the Java verifier, these methods require special checks by the verifier for the Java Card platform (“Java Card verifier”).

All other flag values are reserved. Their values must be zero.

method_offset

If the class_descriptor_info structure that contains this method_descriptor_info structure represents a class, the method_offset item represents a byte offset into the info item of the Method Component ( Section 6.9, Method Component). The element at that offset must be the beginning of a method_info structure. The method_info structure must represent this method.

If the class_descriptor_info structure that contains this method_descriptor_info structure represents an interface, the value of the method_offset item must be zero.

type_offset

The type_offset item must be a valid offset into the type_descriptor_info structure. The type described at that offset represents the signature of this method.

bytecode_count

The bytecode_count item represents the number of bytecodes in this method. The value is equal to the length of the bytecodes array item in the method_info structure in the method component ( Section 6.9, Method Component) of this method.

exception_handler_count

The exception_handler_count item represents the number of exception handlers implemented by this method.

exception_handler_index

The exception_handler_index item represents the index to the first exception_handlers table entry in the method component ( Section 6.9, Method Component) implemented by this method. Succeeding exception_handlers table entries, up to the value of the exception_handler_count item, are also exception handlers implemented by this method.

The value of the exception_handler_index item is 0 if the value of the exception_handler_count item is 0.

javacard/jcvm/6.13.3_method_descriptor_info.txt · Last modified: 2017/05/13 04:09 (external edit)