Fix UtlTsHash::elements bug causing missing schema entries

This commit is contained in:
a2x
2024-03-29 23:47:35 +10:00
parent ce25283e79
commit 9765aff73f
3 changed files with 22 additions and 14 deletions

View File

@@ -28,7 +28,7 @@ pub struct Class {
pub name: String,
pub module_name: String,
pub parent: Option<Box<Class>>,
pub metadata: Vec<ClassMetadata>,
pub metadata: Option<Vec<ClassMetadata>>,
pub fields: Vec<ClassField>,
}
@@ -99,7 +99,7 @@ fn read_class_binding(
.map(Box::new)
});
let metadata = read_class_binding_metadata(process, &binding)?;
let metadata = read_class_binding_metadata(process, &binding).map(Some)?;
let fields = read_class_binding_fields(process, &binding)?;
debug!(
@@ -108,7 +108,7 @@ fn read_class_binding(
binding_ptr.to_umem(),
module_name,
parent.as_ref().map(|parent| parent.name.clone()),
metadata.len(),
metadata.as_ref().map(|metadata| metadata.len()).unwrap_or(0),
fields.len()
);
@@ -159,7 +159,7 @@ fn read_class_binding_metadata(
binding: &SchemaClassBinding,
) -> Result<Vec<ClassMetadata>> {
if binding.static_metadata.is_null() {
return Ok(Vec::new());
return Err(Error::Other("class metadata is null"));
}
(0..binding.static_metadata_count)