unreal-sdk: fix recursive infinite loop, filter out default objects

This commit is contained in:
Janis 2023-06-26 13:22:05 +02:00
parent 2b8d3942da
commit e9675b91bc

View file

@ -246,7 +246,7 @@ impl Class {
override_name: Some(format!("{}{}", field.name, n)), override_name: Some(format!("{}{}", field.name, n)),
..field ..field
}, },
|field: &ClassField| -> String { field.name.clone() }, |field: &ClassField| -> String { field.unique_name().to_string() },
) )
.collect(); .collect();
@ -257,7 +257,7 @@ impl Class {
override_name: Some(format!("{}{}", field.name, n)), override_name: Some(format!("{}{}", field.name, n)),
..field ..field
}, },
|field: &ClassMethod| -> String { field.name.clone() }, |field: &ClassMethod| -> String { field.unique_name().to_string() },
) )
.collect(); .collect();
@ -320,7 +320,7 @@ impl ClassMethod {
override_name: Some(format!("{}{}", field.name, n)), override_name: Some(format!("{}{}", field.name, n)),
..field ..field
}, },
|field: &ClassField| -> String { field.name.clone() }, |field: &ClassField| -> String { field.unique_name().to_string() },
) )
.collect(); .collect();
@ -346,6 +346,12 @@ impl Package {
let types = self let types = self
.children .children
.par_iter() .par_iter()
// filter out anon or default objects
.filter(|obj| {
obj.get_name()
.map(|name| !default_or_anon(&name))
.unwrap_or(false)
})
.filter_map(|&object| -> Option<UnrealType> { .filter_map(|&object| -> Option<UnrealType> {
let ty = match AnyObject::from_object(object) { let ty = match AnyObject::from_object(object) {
AnyObject::Field(field) => match AnyField::from_field(field) { AnyObject::Field(field) => match AnyField::from_field(field) {