Skip to content

Commit aae5afd

Browse files
committed
Refactor to add const correctness and improve code readability
Ensure proper `const` correctness across function parameters and local variables in `ClassReader`, `ClassWriter`, and other key classes. Standardize naming conventions (e.g., snake_case) and improve looping and conditional clarity. Removed redundant includes while reorganizing headers for better build efficiency.
1 parent 2332eef commit aae5afd

File tree

12 files changed

+192
-194
lines changed

12 files changed

+192
-194
lines changed

include/aresbc/class_reader.h

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,79 +14,79 @@ class ClassReader final : Visitor {
1414
explicit ClassReader(unsigned int offset = 0u);
1515

1616
public:
17-
void visit_class(ClassFile& class_info) override;
17+
void visit_class(ClassFile& class_file) override;
1818

1919
[[nodiscard]] auto offset() const -> unsigned int;
2020

2121
private:
22-
void read_class_attributes(ClassFile& class_info);
22+
void read_class_attributes(ClassFile& class_file);
2323

24-
void visit_class_attribute(ClassFile& class_info, AttributeInfo& attribute_info) override;
24+
void visit_class_attribute(ClassFile& class_file, AttributeInfo& attribute_info) override;
2525

26-
void read_magic_number(ClassFile& class_info);
26+
void read_magic_number(ClassFile& class_file);
2727

28-
void read_class_version(ClassFile& class_info);
28+
void read_class_version(ClassFile& class_file);
2929

30-
void read_constant_pool(ClassFile& class_info);
30+
void read_constant_pool(ClassFile& class_file);
3131

32-
void visit_classpool_info(ClassFile& class_info, ConstantPoolInfo& info) override;
32+
void visit_classpool_info(ClassFile& class_file, ConstantPoolInfo& info) override;
3333

34-
void read_class_info(ClassFile& class_info, ConstantInfo::ClassInfo& info);
34+
void read_class_info(const ClassFile& class_file, ConstantInfo::ClassInfo& info);
3535

36-
void read_utf8_info(ClassFile& class_info, ConstantInfo::UTF8Info& info);
36+
void read_utf8_info(const ClassFile& class_file, ConstantInfo::UTF8Info& info);
3737

38-
void read_field_method_info(ClassFile& class_info, ConstantInfo::FieldMethodInfo& info);
38+
void read_field_method_info(const ClassFile& class_file, ConstantInfo::FieldMethodInfo& info);
3939

40-
void read_name_and_type(ClassFile& class_info, ConstantInfo::NameAndTypeInfo& info);
40+
void read_name_and_type(const ClassFile& class_file, ConstantInfo::NameAndTypeInfo& info);
4141

42-
void read_string_info(ClassFile& class_info, ConstantInfo::StringInfo& info);
42+
void read_string_info(const ClassFile& class_file, ConstantInfo::StringInfo& info);
4343

44-
void read_double_long(ClassFile& class_info, ConstantInfo::DoubleLongInfo& info);
44+
void read_double_long(const ClassFile& class_file, ConstantInfo::DoubleLongInfo& info);
4545

46-
void read_float_integer(ClassFile& class_info, ConstantInfo::FloatIntegerInfo& info);
46+
void read_float_integer(const ClassFile& class_file, ConstantInfo::FloatIntegerInfo& info);
4747

48-
void read_method_type(ClassFile& class_info, ConstantInfo::MethodTypeInfo& info);
48+
void read_method_type(const ClassFile& class_file, ConstantInfo::MethodTypeInfo& info);
4949

50-
void read_method_handle(ClassFile& class_info, ConstantInfo::MethodHandleInfo& info);
50+
void read_method_handle(const ClassFile& class_file, ConstantInfo::MethodHandleInfo& info);
5151

52-
void read_dynamic(ClassFile& class_info, ConstantInfo::DynamicInfo& info);
52+
void read_dynamic(const ClassFile& class_file, ConstantInfo::DynamicInfo& info);
5353

54-
void read_module_package(ClassFile& class_info, ConstantInfo::ModulePackageInfo& info);
54+
void read_module_package(const ClassFile& class_file, ConstantInfo::ModulePackageInfo& info);
5555

56-
void read_access_flags(ClassFile& class_info);
56+
void read_access_flags(ClassFile& class_file);
5757

58-
void read_this_class(ClassFile& class_info);
58+
void read_this_class(ClassFile& class_file);
5959

60-
void read_super_class(ClassFile& class_info);
60+
void read_super_class(ClassFile& class_file);
6161

62-
void read_interfaces(ClassFile& class_info);
62+
void read_interfaces(ClassFile& class_file);
6363

6464
void visit_class_interface(ClassFile& class_info, uint16_t interface) override;
6565

66-
void read_fields(ClassFile& class_info);
66+
void read_fields(ClassFile& class_file);
6767

68-
void visit_class_field(ClassFile& class_info, FieldInfo& field_info) override;
68+
void visit_class_field(ClassFile& class_file, FieldInfo& field_info) override;
6969

70-
void read_field_attributes(ClassFile& class_info, FieldInfo& field_info);
70+
void read_field_attributes(ClassFile& class_file, FieldInfo& field_info);
7171

72-
void visit_field_attribute(ClassFile& class_info, FieldInfo& field_info, AttributeInfo& attribute_info) override;
72+
void visit_field_attribute(ClassFile& class_file, FieldInfo& field_info, AttributeInfo& attribute_info) override;
7373

74-
void read_methods(ClassFile& class_info);
74+
void read_methods(ClassFile& class_file);
7575

76-
void visit_class_method(ClassFile& class_info, MethodInfo& method_info) override;
76+
void visit_class_method(ClassFile& class_file, MethodInfo& method_info) override;
7777

78-
void read_method_attributes(ClassFile& class_info, MethodInfo& method_info);
78+
void read_method_attributes(ClassFile& class_file, MethodInfo& method_info);
7979

80-
void visit_method_attribute(ClassFile& class_info, MethodInfo& method_info, AttributeInfo& attribute_info) override;
80+
void visit_method_attribute(ClassFile& class_file, MethodInfo& method_info, AttributeInfo& attribute_info) override;
8181

8282
private:
83-
auto read_u8(uint8_t& data, ClassFile& class_info) -> bool;
83+
auto read_u8(uint8_t& data, const ClassFile& class_file) -> bool;
8484

85-
auto read_u16(uint16_t& data, ClassFile& class_info) -> bool;
85+
auto read_u16(uint16_t& data, const ClassFile& class_file) -> bool;
8686

87-
auto read_u32(uint32_t& data, ClassFile& class_info) -> bool;
87+
auto read_u32(uint32_t& data, const ClassFile& class_file) -> bool;
8888

89-
auto read_u8_array(uint8_t* data, unsigned int length, ClassFile& class_info) -> bool;
89+
auto read_u8_array(uint8_t* data, unsigned int length, const ClassFile& class_file) -> bool;
9090

9191
private:
9292
unsigned int _offset{};

include/aresbc/class_writer.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,33 @@ class ClassWriter final : Visitor {
99
explicit ClassWriter(unsigned int offset = 0);
1010

1111
public:
12-
void visit_class(ClassFile& class_info) override;
12+
void visit_class(ClassFile& class_file) override;
1313

1414
[[nodiscard]] auto byte_code() const -> const std::vector<uint8_t>&;
1515

1616
private:
17-
void visit_classpool_info(ClassFile& class_info, ConstantPoolInfo& info) override;
17+
void visit_classpool_info(ClassFile& class_file, ConstantPoolInfo& info) override;
1818

1919
void visit_class_interface(ClassFile& class_info, uint16_t interface) override;
2020

21-
void visit_class_field(ClassFile& class_info, FieldInfo& field_info) override;
21+
void visit_class_field(ClassFile& class_file, FieldInfo& field_info) override;
2222

23-
void visit_class_method(ClassFile& class_info, MethodInfo& method_info) override;
23+
void visit_class_method(ClassFile& class_file, MethodInfo& method_info) override;
2424

25-
void visit_class_attribute(ClassFile& class_info, AttributeInfo& attribute_info) override;
25+
void visit_class_attribute(ClassFile& class_file, AttributeInfo& attribute_info) override;
2626

27-
void visit_field_attribute(ClassFile& class_info, FieldInfo& field_info, AttributeInfo& attribute_info) override;
27+
void visit_field_attribute(ClassFile& class_file, FieldInfo& field_info, AttributeInfo& attribute_info) override;
2828

29-
void visit_method_attribute(ClassFile& class_info, MethodInfo& method_info, AttributeInfo& attribute_info) override;
29+
void visit_method_attribute(ClassFile& class_file, MethodInfo& method_info, AttributeInfo& attribute_info) override;
3030

3131
private:
32-
auto write_u8(uint8_t& data, ClassFile& class_file) -> bool;
32+
auto write_u8(const uint8_t& data, const ClassFile& class_file) -> bool;
3333

34-
auto write_u32(uint32_t& data, ClassFile& class_file) -> bool;
34+
auto write_u32(const uint32_t& data, const ClassFile& class_file) -> bool;
3535

36-
auto write_u16(uint16_t& data, ClassFile& class_file) -> bool;
36+
auto write_u16(const uint16_t& data, const ClassFile& class_file) -> bool;
3737

38-
auto write_u8_array(uint8_t* data, unsigned int data_size, ClassFile& class_file) -> bool;
38+
auto write_u8_array(const uint8_t* data, unsigned int data_size, const ClassFile& class_file) -> bool;
3939

4040
private:
4141
unsigned int _offset{}, _size{};

include/aresbc/utils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <zip.h>
1111

1212
#include "class_file.h"
13+
#include "field_info.h"
1314

1415
namespace aresbc {
1516

include/aresbc/visitor.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#pragma once
22

3-
#include "attribute_info.h"
43
#include "method_info.h"
54
#include "class_file.h"
65

include/aresbc/vm_check.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,21 @@ class VMCheck final : Visitor {
2626

2727
void visit_method_attribute(ClassFile& class_file, MethodInfo& method_info, AttributeInfo& attribute_info) override;
2828

29-
static void visit_class_info(ClassFile& class_file, ConstantInfo::ClassInfo& info);
29+
static void visit_class_info(const ClassFile& class_file, const ConstantInfo::ClassInfo& info);
3030

31-
static void visit_field_method_info(ClassFile& class_file, ConstantInfo::FieldMethodInfo& info);
31+
static void visit_field_method_info(const ClassFile& class_file, const ConstantInfo::FieldMethodInfo& info);
3232

33-
static void visit_name_and_type_info(ClassFile& class_file, ConstantInfo::NameAndTypeInfo& info);
33+
static void visit_name_and_type_info(const ClassFile& class_file, const ConstantInfo::NameAndTypeInfo& info);
3434

35-
static void visit_string_info(ClassFile& class_file, ConstantInfo::StringInfo& info);
35+
static void visit_string_info(const ClassFile& class_file, const ConstantInfo::StringInfo& info);
3636

37-
static void visit_method_type_info(ClassFile& class_file, ConstantInfo::MethodTypeInfo& info);
37+
static void visit_method_type_info(const ClassFile& class_file, const ConstantInfo::MethodTypeInfo& info);
3838

39-
static void visit_method_handle_info(ClassFile& class_file, ConstantInfo::MethodHandleInfo& info);
39+
static void visit_method_handle_info(const ClassFile& class_file, const ConstantInfo::MethodHandleInfo& info);
4040

41-
static void visit_dynamic_info(ClassFile& class_file, ConstantInfo::DynamicInfo& info);
41+
static void visit_dynamic_info(const ClassFile& class_file, const ConstantInfo::DynamicInfo& info);
4242

43-
static void visit_module_package_info(ClassFile& class_file, ConstantInfo::ModulePackageInfo& info);
43+
static void visit_module_package_info(const ClassFile& class_file, const ConstantInfo::ModulePackageInfo& info);
4444
};
4545

4646
} // namespace ares

src/class_file.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77

88
using namespace aresbc;
99

10-
auto ClassFile::is_valid_index(unsigned int index) const -> bool {
10+
auto ClassFile::is_valid_index(const unsigned int index) const -> bool {
1111
return index > 0 && index < constant_pool_count;
1212
}
1313

14-
auto ClassFile::has_access_flag(AccessFlag access_flag) const -> bool {
14+
auto ClassFile::has_access_flag(const AccessFlag access_flag) const -> bool {
1515
return access_flags & access_flag;
1616
}
1717

src/class_reader.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ using namespace aresbc;
1919
abort(); \
2020
}
2121

22-
ClassReader::ClassReader(unsigned int offset) :
22+
ClassReader::ClassReader(const unsigned int offset) :
2323
_offset(offset) {
2424
}
2525

@@ -64,7 +64,7 @@ void ClassReader::read_class_version(ClassFile& class_file) {
6464

6565
class_file.class_version = ClassFile::UNDEFINED;
6666
if (class_file.major_version >= ClassFile::VERSION_1_1 && class_file.major_version <= ClassFile::VERSION_15) {
67-
class_file.class_version = ClassFile::ClassVersion(class_file.major_version);
67+
class_file.class_version = static_cast<ClassFile::ClassVersion>(class_file.major_version);
6868
}
6969
}
7070

@@ -88,7 +88,7 @@ void ClassReader::visit_classpool_info(ClassFile& class_file, ConstantPoolInfo&
8888
CHECKED_READ(u8, infoTag, "Couldn't read the tag.")
8989

9090
if (infoTag >= ConstantPoolInfo::UTF_8 && infoTag <= ConstantPoolInfo::PACKAGE && infoTag != 13 && infoTag != 14) {
91-
info.tag = ConstantPoolInfo::ConstantTag(infoTag);
91+
info.tag = static_cast<ConstantPoolInfo::ConstantTag>(infoTag);
9292
} else {
9393
info.tag = ConstantPoolInfo::UNDEFINED;
9494
}
@@ -149,55 +149,55 @@ void ClassReader::visit_classpool_info(ClassFile& class_file, ConstantPoolInfo&
149149
}
150150
}
151151

152-
void ClassReader::read_class_info(ClassFile& class_file, ConstantInfo::ClassInfo& info) {
152+
void ClassReader::read_class_info(const ClassFile& class_file, ConstantInfo::ClassInfo& info) {
153153
CHECKED_READ(u16, info.name_index, "Couldn't read the name index.")
154154
}
155155

156-
void ClassReader::read_utf8_info(ClassFile& class_file, ConstantInfo::UTF8Info& info) {
156+
void ClassReader::read_utf8_info(const ClassFile& class_file, ConstantInfo::UTF8Info& info) {
157157
CHECKED_READ(u16, info.length, "Couldn't read the length.")
158158

159159
info.bytes = new uint8_t[info.length];
160160
CHECKED_ARRAY_READ(u8, info.bytes, info.length, "Couldn't read the bytes.")
161161
}
162162

163-
void ClassReader::read_field_method_info(ClassFile& class_file, ConstantInfo::FieldMethodInfo& info) {
163+
void ClassReader::read_field_method_info(const ClassFile& class_file, ConstantInfo::FieldMethodInfo& info) {
164164
CHECKED_READ(u16, info.class_index, "Couldn't read the class index.")
165165
CHECKED_READ(u16, info.name_and_type_index, "Couldn't read the name and type index.")
166166
}
167167

168-
void ClassReader::read_name_and_type(ClassFile& class_file, ConstantInfo::NameAndTypeInfo& info) {
168+
void ClassReader::read_name_and_type(const ClassFile& class_file, ConstantInfo::NameAndTypeInfo& info) {
169169
CHECKED_READ(u16, info.name_index, "Couldn't read the name index.")
170170
CHECKED_READ(u16, info.descriptor_index, "Couldn't read the descriptor index.")
171171
}
172172

173-
void ClassReader::read_string_info(ClassFile& class_file, ConstantInfo::StringInfo& info) {
173+
void ClassReader::read_string_info(const ClassFile& class_file, ConstantInfo::StringInfo& info) {
174174
CHECKED_READ(u16, info.string_index, "Couldn't read the string index.")
175175
}
176176

177-
void ClassReader::read_double_long(ClassFile& class_file, ConstantInfo::DoubleLongInfo& info) {
177+
void ClassReader::read_double_long(const ClassFile& class_file, ConstantInfo::DoubleLongInfo& info) {
178178
CHECKED_READ(u32, info.high_bytes, "Couldn't read the high bytes.")
179179
CHECKED_READ(u32, info.low_bytes, "Couldn't read the low bytes.")
180180
}
181181

182-
void ClassReader::read_float_integer(ClassFile& class_file, ConstantInfo::FloatIntegerInfo& info) {
182+
void ClassReader::read_float_integer(const ClassFile& class_file, ConstantInfo::FloatIntegerInfo& info) {
183183
CHECKED_READ(u32, info.bytes, "Couldn't read the bytes.")
184184
}
185185

186-
void ClassReader::read_method_type(ClassFile& class_file, ConstantInfo::MethodTypeInfo& info) {
186+
void ClassReader::read_method_type(const ClassFile& class_file, ConstantInfo::MethodTypeInfo& info) {
187187
CHECKED_READ(u16, info.descriptor_index, "Couldn't read the descriptor index.")
188188
}
189189

190-
void ClassReader::read_method_handle(ClassFile& class_file, ConstantInfo::MethodHandleInfo& info) {
190+
void ClassReader::read_method_handle(const ClassFile& class_file, ConstantInfo::MethodHandleInfo& info) {
191191
CHECKED_READ(u8, info.reference_kind, "Couldn't read the reference kind.")
192192
CHECKED_READ(u16, info.reference_index, "Couldn't read the reference index.")
193193
}
194194

195-
void ClassReader::read_dynamic(ClassFile& class_file, ConstantInfo::DynamicInfo& info) {
195+
void ClassReader::read_dynamic(const ClassFile& class_file, ConstantInfo::DynamicInfo& info) {
196196
CHECKED_READ(u16, info.boostrap_method_attr_index, "Couldn't read the bootstrap method attribute index.")
197197
CHECKED_READ(u16, info.name_and_type_index, "Couldn't read the name and type index.")
198198
}
199199

200-
void ClassReader::read_module_package(ClassFile& class_file, ConstantInfo::ModulePackageInfo& info) {
200+
void ClassReader::read_module_package(const ClassFile& class_file, ConstantInfo::ModulePackageInfo& info) {
201201
CHECKED_READ(u16, info.name_index, "Couldn't read the name index.")
202202
}
203203

@@ -294,7 +294,7 @@ auto ClassReader::offset() const -> unsigned int {
294294
return _offset;
295295
}
296296

297-
auto ClassReader::read_u8(uint8_t& data, ClassFile& class_file) -> bool {
297+
auto ClassReader::read_u8(uint8_t& data, const ClassFile& class_file) -> bool {
298298
if (_offset + 1 > class_file.byte_code.size()) {
299299
std::cerr << "Couldn't read u8 because it is out of bounds." << std::endl;
300300
return false;
@@ -306,7 +306,7 @@ auto ClassReader::read_u8(uint8_t& data, ClassFile& class_file) -> bool {
306306
return true;
307307
}
308308

309-
auto ClassReader::read_u16(uint16_t& data, ClassFile& class_file) -> bool {
309+
auto ClassReader::read_u16(uint16_t& data, const ClassFile& class_file) -> bool {
310310
if (_offset + 2 > class_file.byte_code.size()) {
311311
std::cerr << "Couldn't read u16 because it is out of bounds." << std::endl;
312312
return false;
@@ -319,7 +319,7 @@ auto ClassReader::read_u16(uint16_t& data, ClassFile& class_file) -> bool {
319319
return true;
320320
}
321321

322-
auto ClassReader::read_u32(uint32_t& data, ClassFile& class_file) -> bool {
322+
auto ClassReader::read_u32(uint32_t& data, const ClassFile& class_file) -> bool {
323323
if (_offset + 4 > class_file.byte_code.size()) {
324324
std::cerr << "Couldn't read u32 because it is out of bounds." << std::endl;
325325
return false;
@@ -334,7 +334,7 @@ auto ClassReader::read_u32(uint32_t& data, ClassFile& class_file) -> bool {
334334
return true;
335335
}
336336

337-
auto ClassReader::read_u8_array(uint8_t* data, unsigned int length, ClassFile& class_file) -> bool {
337+
auto ClassReader::read_u8_array(uint8_t* data, const unsigned int length, const ClassFile& class_file) -> bool {
338338
if ((_offset + length) > class_file.byte_code.size()) {
339339
std::cerr << "Couldn't read the u8 array because it is out of bounds." << std::endl;
340340
return false;

0 commit comments

Comments
 (0)