From e9675b91bccd83f15a3ccd16b300b83573af3124 Mon Sep 17 00:00:00 2001 From: Janis Date: Mon, 26 Jun 2023 13:22:05 +0200 Subject: [PATCH] unreal-sdk: fix recursive infinite loop, filter out default objects --- unreal-sdk/src/sdk/process.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/unreal-sdk/src/sdk/process.rs b/unreal-sdk/src/sdk/process.rs index c539ead..f43bc80 100644 --- a/unreal-sdk/src/sdk/process.rs +++ b/unreal-sdk/src/sdk/process.rs @@ -246,7 +246,7 @@ impl Class { override_name: Some(format!("{}{}", field.name, n)), ..field }, - |field: &ClassField| -> String { field.name.clone() }, + |field: &ClassField| -> String { field.unique_name().to_string() }, ) .collect(); @@ -257,7 +257,7 @@ impl Class { override_name: Some(format!("{}{}", field.name, n)), ..field }, - |field: &ClassMethod| -> String { field.name.clone() }, + |field: &ClassMethod| -> String { field.unique_name().to_string() }, ) .collect(); @@ -320,7 +320,7 @@ impl ClassMethod { override_name: Some(format!("{}{}", field.name, n)), ..field }, - |field: &ClassField| -> String { field.name.clone() }, + |field: &ClassField| -> String { field.unique_name().to_string() }, ) .collect(); @@ -346,6 +346,12 @@ impl Package { let types = self .children .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 { let ty = match AnyObject::from_object(object) { AnyObject::Field(field) => match AnyField::from_field(field) {