Modularize
This commit is contained in:
parent
c61d74c22c
commit
eacf0381c9
13 changed files with 1492 additions and 1399 deletions
25
src/Class/ConstantPoolInfo/MethodRef.zig
Normal file
25
src/Class/ConstantPoolInfo/MethodRef.zig
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
const Class = @import("../../Class.zig");
|
||||
const ConstantPoolInfo = Class.ConstantPoolInfo;
|
||||
const ResolveError = Class.ResolveError;
|
||||
|
||||
class_index: u16,
|
||||
name_and_type_index: u16,
|
||||
|
||||
const Self = @This();
|
||||
|
||||
pub fn class(self: *const Self, constant_pool: []const ?ConstantPoolInfo) ResolveError!ConstantPoolInfo {
|
||||
const class_index = self.class_index - 1;
|
||||
if (class_index >= constant_pool.len) return ResolveError.InvalidConstantPoolIndex;
|
||||
const cp_info = constant_pool[class_index];
|
||||
if (cp_info == null or @as(ConstantPoolInfo.Tag, cp_info.?) != .class) return ResolveError.InvalidConstantType;
|
||||
return cp_info.?;
|
||||
}
|
||||
|
||||
pub fn nameAndType(self: *const Self, constant_pool: []const ?ConstantPoolInfo) ResolveError!ConstantPoolInfo {
|
||||
const name_and_type_index = self.name_and_type_index - 1;
|
||||
if (name_and_type_index >= constant_pool.len) return ResolveError.InvalidConstantPoolIndex;
|
||||
const cp_info = constant_pool[name_and_type_index];
|
||||
if (cp_info == null or @as(ConstantPoolInfo.Tag, cp_info.?) != .name_and_type) return ResolveError.InvalidConstantType;
|
||||
return cp_info.?;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue