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

ref(common): Change InstructionInfo setters to Option #272

Merged
merged 2 commits into from
Sep 24, 2020

Conversation

jan-auer
Copy link
Member

No description provided.

@jan-auer jan-auer requested a review from a team September 24, 2020 12:25
@jan-auer jan-auer self-assigned this Sep 24, 2020
.is_crashing_frame(info.crashing_frame)
.signal(Some(info.signal).filter(|&s| s != 0))
.ip_register_value(Some(info.ip_reg).filter(|&r| r != 0))
.caller_address();
Copy link
Member Author

@jan-auer jan-auer Sep 24, 2020

Choose a reason for hiding this comment

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

This change shows how this can be used differently now. The Some().filter() pattern is probably not super nice, but it is easy to read here.

Strictly speaking, it would probably work even if we pass 0 in as values, but I'm rather playing it safe here.

Copy link
Member

@Swatinem Swatinem left a comment

Choose a reason for hiding this comment

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

I wonder what learnings I can take over to the sentry SDK?

@jan-auer
Copy link
Member Author

I wonder what learnings I can take over to the sentry SDK?

My learnings here were:

  1. Avoid external branching if you expect options as input. That allows to write everything in one statement with chained methods.
  2. Use &mut self if the "final" action method takes &mut self or &self. If the final method consumes, then I'd also build the builder consuming.

@jan-auer jan-auer merged commit de8272c into master Sep 24, 2020
@jan-auer jan-auer deleted the ref/heuristics-setters branch September 24, 2020 14:25
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