RPNXCortado
C++23 JVM class-file, bytecode, validation, and JAR toolkit
Loading...
Searching...
No Matches
rpnx::cortado::class_file Struct Reference

An owning, typed representation of one JVM class file. More...

#include <attributes.hpp>

Public Attributes

class_file_version version
 Minor and major version written after the magic value.
 
std::vector< constant_pool_entryconstant_pool
 Entries in logical order, excluding slot zero and reserved second slots.
 
class_access_flags access_flags {class_access_flags::none}
 Class, interface, annotation, module, and property flags.
 
constant_pool_index this_class
 CONSTANT_Class naming this class or interface.
 
constant_pool_index super_class
 Direct superclass CONSTANT_Class, or zero only where the format permits.
 
std::vector< constant_pool_indexinterfaces
 Direct superinterface CONSTANT_Class indexes in encoded order.
 
std::vector< field_infofields
 Declared fields in encoded order.
 
std::vector< method_infomethods
 Declared methods in encoded order.
 
std::vector< class_attributeattributes
 Context-valid class attributes in encoded order.
 

Detailed Description

An owning, typed representation of one JVM class file.

constant_pool stores one value per entry rather than explicit empty placeholders for long/double second slots. Every constant_pool_index nevertheless uses the JVM's logical one-based slot numbering.

Definition at line 752 of file attributes.hpp.

Member Data Documentation

◆ access_flags

class_access_flags rpnx::cortado::class_file::access_flags {class_access_flags::none}

Class, interface, annotation, module, and property flags.

Definition at line 756 of file attributes.hpp.

◆ attributes

std::vector< class_attribute > rpnx::cortado::class_file::attributes

Context-valid class attributes in encoded order.

Definition at line 762 of file attributes.hpp.

◆ constant_pool

std::vector< constant_pool_entry > rpnx::cortado::class_file::constant_pool

Entries in logical order, excluding slot zero and reserved second slots.

Definition at line 755 of file attributes.hpp.

◆ fields

std::vector< field_info > rpnx::cortado::class_file::fields

Declared fields in encoded order.

Definition at line 760 of file attributes.hpp.

◆ interfaces

std::vector< constant_pool_index > rpnx::cortado::class_file::interfaces

Direct superinterface CONSTANT_Class indexes in encoded order.

Definition at line 759 of file attributes.hpp.

◆ methods

std::vector< method_info > rpnx::cortado::class_file::methods

Declared methods in encoded order.

Definition at line 761 of file attributes.hpp.

◆ super_class

constant_pool_index rpnx::cortado::class_file::super_class

Direct superclass CONSTANT_Class, or zero only where the format permits.

Definition at line 758 of file attributes.hpp.

◆ this_class

constant_pool_index rpnx::cortado::class_file::this_class

CONSTANT_Class naming this class or interface.

Definition at line 757 of file attributes.hpp.

◆ version

class_file_version rpnx::cortado::class_file::version

Minor and major version written after the magic value.

Definition at line 754 of file attributes.hpp.


The documentation for this struct was generated from the following file: