Skip to content
  • Nicholas Nethercote's avatar
    Bug 1410794 - Change some |string| occurrences in nsIPrefBranch.idl to |ACString|. r=erahm. · a861772b
    Nicholas Nethercote authored
    This makes the code nicer. In particular, it removes many getter_Copies()
    calls. The patch also converts a lot of nsCStrings to nsAutoCString, which will
    avoid heap allocation in the common case.
    
    The patch also renames PREF_CopyCharPref() as PREF_GetCStringPref(), because
    it's actually getting a string, not a char, and that matches the existing
    GetCString() and GetDefaultCString() methods. Correspondingly, it also renames
    PREF_SetCharPref() as PREF_SetCStringPref().
    
    The |aPrefName| arguments in nsIPrefBranch.idl remain as |string| because they
    almost always involve passing in C string literals, and passing "foo" is much
    nicer than passing NS_LITERAL_CSTRING("foo").
    
    It's worth noting that early versions of this patch used |AUTF8String| instead
    of |ACString|. But it turns out that libpref stores prefs internally as Latin1.
    And |ACString| is compatible with Latin1 but |AUTF8String| isn't, because
    non-ASCII Latin1 strings are not valid UTF-8!
    
    --HG--
    extra : rebase_source : 725ccf57943283a60ef8c9d654afe4515b4089f8
    a861772b