diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2025-12-23 13:12:02 -0700 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2026-05-22 16:30:56 -0400 |
| commit | 8d621c51b2797fda7b1dc22243dde611cfc04f68 (patch) | |
| tree | ba5e6a90e644d21d13e75dabcbd0cc747444443a /plugins/pdb-ng/src | |
| parent | 08e34ac325743085911f96b62c81d9a1f2127806 (diff) | |
Refactor calling conventions to support correct representation of structures
Diffstat (limited to 'plugins/pdb-ng/src')
| -rw-r--r-- | plugins/pdb-ng/src/symbol_parser.rs | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/plugins/pdb-ng/src/symbol_parser.rs b/plugins/pdb-ng/src/symbol_parser.rs index a4ee4a6c..125d7c88 100644 --- a/plugins/pdb-ng/src/symbol_parser.rs +++ b/plugins/pdb-ng/src/symbol_parser.rs @@ -961,7 +961,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { MIN_CONFIDENCE, )), p.name.clone(), - p.storage.first().map(|loc| loc.location), + p.storage.first().map(|loc| loc.location.into()), ); // Ignore thisptr because it's not technically part of the raw type signature if p.name != "this" { @@ -976,7 +976,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { MIN_CONFIDENCE, )), p.name.clone(), - p.storage.first().map(|loc| loc.location), + p.storage.first().map(|loc| loc.location.into()), ); // Ignore thisptr because it's not technically part of the raw type signature if p.name != "this" { @@ -1035,7 +1035,6 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { } } - // Now apply the default location for the params from the cc let cc = fancy_type .contents .calling_convention() @@ -1049,12 +1048,6 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { }); self.log(|| format!("Default calling convention: {:?}", self.default_cc)); self.log(|| format!("Result calling convention: {:?}", cc)); - - let locations = cc.contents.variables_for_parameters(&fancy_params, None); - for (p, new_location) in fancy_params.iter_mut().zip(locations.into_iter()) { - p.location = Some(new_location); - } - self.log(|| format!("Final params: {:#x?}", fancy_params)); // Use the new locals we've parsed to make the Real Definitely True function type |
