Skip to content

Redundant Borrowing and Double Mapping in MappedCrossoverInsertMutator::mutate #3731

@Aditya30ag

Description

@Aditya30ag

Description

The MappedCrossoverInsertMutator::mutate function performs redundant operations when accessing and mapping the corpus input:

  1. The testcase is borrowed twice using get_from_all(id)?.borrow_mut().
  2. The input is loaded and mapped twice:
    • First to compute other_size
    • Second to retrieve the mapped input for mutation
  3. Additional unnecessary unwrap() checks increase branching complexity.

This results in:

  • Redundant function calls
  • Extra borrow operations
  • Unnecessary memory allocations
  • Reduced readability

Expected Behavior

The mapped input and its size should be retrieved in a single borrow scope and used directly for mutation without re-loading or re-mapping.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions