Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Add a SymbolIterator and Lifetimes to ObjectLike trait #277

Merged
merged 5 commits into from
Oct 9, 2020

Conversation

Swatinem
Copy link
Member

@Swatinem Swatinem commented Oct 7, 2020

This avoids both boxing, and unsafely transmuting the symbol iterators.

@Swatinem Swatinem requested a review from a team October 7, 2020 09:20
@@ -236,9 +236,9 @@ impl<W: Write> AsciiCfiWriter<W> {
Ok(())
}

fn process_dwarf<'o, O>(&mut self, object: &O) -> Result<(), CfiError>
fn process_dwarf<'d: 'o, 'o, O>(&mut self, object: &O) -> Result<(), CfiError>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the 'd: 'o bound required?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'d` due to conflicting requirements
   --> symbolic-minidump\src\cfi.rs:259:24
    |
259 |             let info = UnwindInfo::new(object, section.address, 
frame);
    |                        ^^^^^^^^^^^^^^^
    |
note: first, the lifetime cannot outlive the lifetime `'d` as defined 
on the method body at 239:22...
   --> symbolic-minidump\src\cfi.rs:239:22
    |
239 |     fn process_dwarf<'d, 'o, O>(&mut self, object: &O) -> Result<(), CfiError>
    |                      ^^
note: ...but the lifetime must also be valid for the lifetime `'o` as 
defined on the method body at 239:26...
   --> symbolic-minidump\src\cfi.rs:239:26
    |
239 |     fn process_dwarf<'d, 'o, O>(&mut self, object: &O) -> Result<(), CfiError>
    |                          ^^
note: ...so that the types are compatible

seems so, yes

@Swatinem Swatinem merged commit 913516e into master Oct 9, 2020
@Swatinem Swatinem deleted the fix/debuginfo-trait-lifetimes branch October 9, 2020 11:20
jan-auer added a commit that referenced this pull request Oct 19, 2020
* master:
  ref: Add File/FunctionIterator and lifetimes to DebugSession (#279)
  fix: Implement new clippy advice (#280)
  fix: Add a SymbolIterator and Lifetimes to ObjectLike trait (#277)
jan-auer added a commit that referenced this pull request Nov 17, 2020
* master: (22 commits)
  fix(debuginfo): Update dmsort to 1.0.1 to avoid panic due to UB (#287)
  ci: Use GHA instead of zeus (#286)
  ref: Introduce explicit NameMangling and better DemangleOptions (#275)
  meta: Bump all semver-major dependencies (#283)
  feat(demangle): Update swift demangler to 5.3 (#282)
  ref: Add File/FunctionIterator and lifetimes to DebugSession (#279)
  fix: Implement new clippy advice (#280)
  fix: Add a SymbolIterator and Lifetimes to ObjectLike trait (#277)
  ci: Switch to GitHub Actions (#273)
  ref: Introduce feature flags for demangling languages (#274)
  ref(common): Change InstructionInfo setters to Option (#272)
  ref: Remove all deprecated items (#271)
  ref: Replace failure with std::error::Error (#264)
  ref: Remove deprecated proguard support (#267)
  build: Reorganize the workspace (#266)
  build(unreal): Rename with-serde to serde (#265)
  fix(debuginfo): Detect mangled anonymous namespaces in PDB inlinees (#261)
  release: 7.5.0
  meta: Update changelog for 7.5.0
  feat: Unsafe transmute for PDB symbols (#258)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants