Skip to content
  • Kris Maglione's avatar
    Bug 1473631: Part 0a - Make preference callbacks typesafe. r=njn · 0bfdb432
    Kris Maglione authored
    I initially tried to avoid this, but decided it was necessary given the number
    of times I had to repeat the same pattern of casting a variable to void*, and
    then casting it back in a part of code far distant from the original type.
    
    This changes our preference callback registration functions to match the type
    of the callback's closure argument to the actual type of the closure pointer
    passed, and then casting it to the type of our generic callback function. This
    ensures that the callback function always gets an argument of the type it's
    actually expecting without adding any additional runtime memory or
    QueryInterface overhead for tracking it.
    
    MozReview-Commit-ID: 9tLKBe10ddP
    
    --HG--
    extra : rebase_source : 7524fa8dcd5585f5a31fdeb37d95714f1bb94922
    0bfdb432