JVM
fields.h
Go to the documentation of this file.
1 #ifndef FIELDS_H
2 #define FIELDS_H
3 
4 typedef struct field_info field_info;
5 
6 #include <stdint.h>
7 #include "javaclass.h"
8 #include "attributes.h"
9 
10 struct field_info {
11  uint16_t access_flags;
12  uint16_t name_index;
13  uint16_t descriptor_index;
14  uint16_t attributes_count;
16 
17  // Offset is used to identify in which byte offset
18  // this field is stored (in the static data area of
19  // a class or in the instance attribute area for class
20  // instances).
21  uint16_t offset;
22 };
23 
24 char readField(JavaClass* jc, field_info* entry);
25 void freeFieldAttributes(field_info* entry);
26 void printAllFields(JavaClass* jc);
27 
28 field_info* getFieldMatching(JavaClass* jc, const uint8_t* name, int32_t name_len, const uint8_t* descriptor,
29  int32_t descriptor_len, uint16_t flag_mask);
30 
31 #endif // FIELDS_H
void freeFieldAttributes(field_info *entry)
Releases attributes used by the field_info struct.
Definition: fields.c:90
Definition: attributes.h:9
void printAllFields(JavaClass *jc)
Function to print all fields of the class file.
Definition: fields.c:110
attribute_info * attributes
Definition: fields.h:15
uint16_t offset
Definition: fields.h:21
Definition: fields.h:10
uint16_t descriptor_index
Definition: fields.h:13
char readField(JavaClass *jc, field_info *entry)
Reads a field_info from the file.
Definition: fields.c:15
Definition: javaclass.h:96
field_info * getFieldMatching(JavaClass *jc, const uint8_t *name, int32_t name_len, const uint8_t *descriptor, int32_t descriptor_len, uint16_t flag_mask)
Definition: fields.c:160
uint16_t access_flags
Definition: fields.h:11
uint16_t name_index
Definition: fields.h:12
uint16_t attributes_count
Definition: fields.h:14