JVM
attributes.h
Go to the documentation of this file.
1 #ifndef ATTRIBUTES_H
2 #define ATTRIBUTES_H
3 
5 
6 #include <stdint.h>
7 #include "javaclass.h"
8 
9 struct attribute_info {
10  uint16_t name_index;
11  uint32_t length;
12  void* info;
13  uint8_t attributeType;
14 };
15 
25 };
26 
27 typedef struct {
28  uint16_t sourcefile_index;
30 
31 typedef struct {
34 
35 typedef struct {
41 
42 typedef struct {
46 
47 typedef struct {
48  uint16_t start_pc;
49  uint16_t line_number;
51 
52 typedef struct {
56 
57 typedef struct {
58  uint16_t start_pc;
59  uint16_t end_pc;
60  uint16_t handler_pc;
61  uint16_t catch_type;
63 
64 typedef struct {
65  uint16_t max_stack;
66  uint16_t max_locals;
67  uint32_t code_length;
68  uint8_t* code;
71  uint16_t attributes_count;
74 
75 typedef struct {
79 
80 char readAttribute(JavaClass* jc, attribute_info* entry);
82 void printAttribute(JavaClass* jc, attribute_info* entry, int identationLevel);
84 attribute_info* getAttributeByType(attribute_info* attributes, uint16_t attributes_length, enum AttributeType type);
85 
86 #endif // ATTRIBUTES_H
Definition: attributes.h:17
Definition: attributes.h:75
uint16_t sourcefile_index
Definition: attributes.h:28
Definition: attributes.h:57
uint16_t exception_table_length
Definition: attributes.h:69
Definition: attributes.h:19
void * info
Definition: attributes.h:12
ExceptionTableEntry * exception_table
Definition: attributes.h:70
attribute_info * getAttributeByType(attribute_info *attributes, uint16_t attributes_length, enum AttributeType type)
Definition: attributes.c:1291
uint16_t max_locals
Definition: attributes.h:66
Definition: attributes.h:23
void printAllAttributes(JavaClass *jc)
Definition: attributes.c:1268
Definition: attributes.h:9
Definition: attributes.h:20
uint16_t attributes_count
Definition: attributes.h:71
AttributeType
Definition: attributes.h:16
uint16_t constantvalue_index
Definition: attributes.h:32
uint16_t line_number_table_length
Definition: attributes.h:53
void freeAttributeInfo(attribute_info *entry)
Definition: attributes.c:1224
Definition: attributes.h:27
uint16_t inner_class_index
Definition: attributes.h:36
uint16_t number_of_classes
Definition: attributes.h:43
uint32_t code_length
Definition: attributes.h:67
Definition: attributes.h:64
uint16_t number_of_exceptions
Definition: attributes.h:76
uint32_t length
Definition: attributes.h:11
uint16_t start_pc
Definition: attributes.h:58
uint16_t inner_class_access_flags
Definition: attributes.h:39
char readAttribute(JavaClass *jc, attribute_info *entry)
Definition: attributes.c:21
Definition: attributes.h:24
Definition: attributes.h:42
void printAttribute(JavaClass *jc, attribute_info *entry, int identationLevel)
Definition: attributes.c:1244
uint16_t outer_class_index
Definition: attributes.h:37
uint16_t max_stack
Definition: attributes.h:65
Definition: attributes.h:21
attribute_info * attributes
Definition: attributes.h:72
uint16_t * exception_index_table
Definition: attributes.h:77
InnerClassInfo * inner_classes
Definition: attributes.h:44
uint16_t start_pc
Definition: attributes.h:48
Definition: attributes.h:35
uint16_t catch_type
Definition: attributes.h:61
Definition: javaclass.h:96
LineNumberTableEntry * line_number_table
Definition: attributes.h:54
uint16_t name_index
Definition: attributes.h:10
uint16_t line_number
Definition: attributes.h:49
uint16_t end_pc
Definition: attributes.h:59
Definition: attributes.h:52
uint8_t attributeType
Definition: attributes.h:13
uint16_t handler_pc
Definition: attributes.h:60
Definition: attributes.h:18
uint8_t * code
Definition: attributes.h:68
Definition: attributes.h:47
Definition: attributes.h:31
uint16_t inner_class_name_index
Definition: attributes.h:38
Definition: attributes.h:22