Implemented Exception Throwing fith specific catchers
This commit is contained in:
parent
796e52241d
commit
fc0d11c1e1
8 changed files with 351 additions and 12 deletions
|
@ -280,6 +280,20 @@ impl ObjectArea {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn get_object_field_count(&self, reference: ObjectReference) -> usize {
|
||||
match self.get_entry(reference) {
|
||||
CompartmentEntry::Object(o) => o.fields.len(),
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_object_field_at(&self, reference: ObjectReference, index: usize) -> ObjectField {
|
||||
match self.get_entry(reference) {
|
||||
CompartmentEntry::Object(o) => o.fields[index],
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_reference_class_ref(&self, reference: ObjectReference, class_store: &ClassStore) -> ObjectReference {
|
||||
match self.get_entry(reference) {
|
||||
CompartmentEntry::Object(o) => class_store.get_class_objectref_from_index(o.class_index),
|
||||
|
@ -336,8 +350,8 @@ impl ObjectArea {
|
|||
CompartmentEntry::ByteArray(_) => true,
|
||||
CompartmentEntry::CharArray(_) => true,
|
||||
CompartmentEntry::IntArray(_) => true,
|
||||
CompartmentEntry::EmptyNext(_) => true,
|
||||
CompartmentEntry::EmptyTail() => true,
|
||||
CompartmentEntry::EmptyNext(_) => unreachable!(),
|
||||
CompartmentEntry::EmptyTail() => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -720,7 +734,7 @@ pub struct StaticField {
|
|||
pub value: FieldValue,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
pub struct ObjectField {
|
||||
pub value: FieldValue,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue