author Nicholas Nethercote <>
Wed, 25 Oct 2017 10:22:38 +1100
changeset 387909 3d0093f961eec929caa370444cd0f7fcbfbc82bc
parent 348831 40911fc4bf7eff4f84add35cceb3a67d69a6e75a
child 417478 3c5ec0ff49dc7239a6e72d311e04b047ad6d50fc
permissions -rw-r--r--
Bug 1410794 - Change some |string| occurrences in nsIPrefBranch.idl to |ACString|. r=erahm. 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!

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

For information on how to build Mozilla from the source code, see:

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla ( Instructions are at:

If you have a question about developing Mozilla, and can't find the solution
on, you can try asking your question in a
mozilla.* Usenet group, or on IRC at [The Mozilla news groups
are accessible on Google Groups, or with a NNTP reader.]

You can download nightly development builds from the Mozilla FTP server.
Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy. Firefox nightlies, for example, can be found at:
            - or -