gecko-dev/xpcom/base
Kris Maglione 0bfdb4329f Bug 1473631: Part 0a - Make preference callbacks typesafe. r=njn
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
2018-07-06 12:24:41 -07:00
..
AutoRestore.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
AvailableMemoryTracker.cpp Bug 1468207 - Use the new timer-based available memory tracker on Win32; r=dmajor 2018-07-04 21:06:07 +02:00
AvailableMemoryTracker.h Bug 1468207 - Use the new timer-based available memory tracker on Win32; r=dmajor 2018-07-04 21:06:07 +02:00
ClearOnShutdown.cpp
ClearOnShutdown.h
CodeAddressService.h
CountingAllocatorBase.h Bug 1297658 - Avoid unnecessary checking in memory reporters. r=erahm. 2016-08-24 15:23:45 +10:00
CycleCollectedJSContext.cpp bug 1442776 make CycleCollectedJSContext accessible from JSContext private r=peterv 2018-05-10 17:04:12 +12:00
CycleCollectedJSContext.h bug 1442776 make CycleCollectedJSContext accessible from JSContext private r=peterv 2018-05-10 17:04:12 +12:00
CycleCollectedJSRuntime.cpp Bug 1474522 - Change PrepareScriptEnvironmentAndInvoke to always take a global object instead of an arbitrary scope. r=bholley 2018-07-11 11:44:52 +02:00
CycleCollectedJSRuntime.h Bug 1474522 - Change PrepareScriptEnvironmentAndInvoke to always take a global object instead of an arbitrary scope. r=bholley 2018-07-11 11:44:52 +02:00
Debug.cpp
Debug.h
DebuggerOnGCRunnable.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
DebuggerOnGCRunnable.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
DeferredFinalize.cpp Bug 1359245 - Remove references to context from the cycle collector (r=mccr8) 2017-04-27 15:34:46 -07:00
DeferredFinalize.h
EnumeratedArrayCycleCollection.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
ErrorList.py Bug 1457689 - Remove NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN; r=bz 2018-06-08 15:52:53 -07:00
ErrorNames.cpp Bug 1408951 - Fix non-unified build in ErrorNames.cpp. r=froydnj 2017-10-16 11:03:21 +02:00
ErrorNames.h Bug 1391803 - Use nsStringFwd.h for forward declaring string classes. r=froydnj 2017-08-16 16:48:52 -07:00
HoldDropJSObjects.cpp Bug 1359245 - Remove references to context from the cycle collector (r=mccr8) 2017-04-27 15:34:46 -07:00
HoldDropJSObjects.h
IntentionalCrash.h Bug 1342564 - Don't attempt to write out intentional crash files in opt builds. r=ted 2017-12-07 13:36:49 -05:00
JSObjectHolder.cpp
JSObjectHolder.h Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
LogCommandLineHandler.cpp Bug 1451686 - Allow also -MOZ_LOG/_FILE=value form of the logging arguments. r=erahm 2018-04-13 05:38:00 -04:00
LogCommandLineHandler.h Bug 1451686 - Allow also -MOZ_LOG/_FILE=value form of the logging arguments. r=erahm 2018-04-13 05:38:00 -04:00
Logging.cpp Bug 1470508 Output the process name in MOZ_LOG r=froydnj 2018-06-22 12:31:35 -05:00
Logging.h Bug 1467048 - Add a version of CorruptionCanary for statics. r=froydnj 2018-06-06 14:50:17 -07:00
LogModulePrefWatcher.cpp Backed out changeset e2beba7e6875 (bug 1423798) for failing Browser Chrome tests browser_temporary_permissions_expiry.js on Windows 7 debug. r=backout on a CLOSED TREE 2017-12-09 07:23:35 +02:00
LogModulePrefWatcher.h
MacHelpers.h
MacHelpers.mm Bug 1448772 - Avoid back-and-forth UTF-16 to UTF-8 to UTF-16 conversions in xpcom/base/MacHelpers.mm. r=mstange 2018-03-26 10:49:02 +03:00
MacStringHelpers.h Bug 1448772 - Avoid back-and-forth UTF-16 to UTF-8 to UTF-16 conversions in xpcom/base/MacHelpers.mm. r=mstange 2018-03-26 10:49:02 +03:00
MacStringHelpers.mm Bug 1448772 - Avoid back-and-forth UTF-16 to UTF-8 to UTF-16 conversions in xpcom/base/MacHelpers.mm. r=mstange 2018-03-26 10:49:02 +03:00
MemoryReportingProcess.h Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
moz.build Bug 1443471 - Take clang mingw into account in moz.build files r=glandium 2018-06-25 20:01:39 +02:00
nsAgg.h Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj 2017-11-05 19:37:28 -08:00
nsAlgorithm.h
nsAutoPtr.h Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj 2018-06-02 09:33:26 +02:00
nsAutoRef.h
nsClassInfoImpl.cpp Bug 1410460 - Non-unified build fix for nsClassInfoImpl.cpp. r=cpearce 2017-10-20 16:46:40 +01:00
nsCom.h
nsCOMPtr.cpp Bug 1390568 - manually de-virtualize do_QueryReferent; r=ehsan 2017-08-24 20:04:31 -04:00
nsCOMPtr.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
nsConsoleMessage.cpp
nsConsoleMessage.h
nsConsoleService.cpp Bug 1417185 - Introduce MOZ_CONSOLESERVICE_DISABLE_DEBUGGER_OUTPUT env var to prevent nsConsoleService from flooding debugger's output window, r=jchen 2018-01-16 12:27:00 +02:00
nsConsoleService.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nscore.h Bug 1460929 - code coverage no longer use _exit on exit r=marco 2018-05-11 15:53:22 -07:00
nsCrashOnException.cpp Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj 2017-10-10 11:59:39 +02:00
nsCrashOnException.h
nsCRTGlue.cpp Bug 1451535 - Remove NS_ConstExprIsAscii() functions. r=froydnj 2018-04-17 20:03:52 +09:00
nsCRTGlue.h Bug 1451535 - Remove NS_ConstExprIsAscii() functions. r=froydnj 2018-04-17 20:03:52 +09:00
nsCycleCollectionNoteChild.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCycleCollectionNoteRootCallback.h Bug 1385474 - Avoid QIing for NoteXPCOMRoot. r=smaug 2017-07-28 16:11:03 -07:00
nsCycleCollectionParticipant.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCycleCollectionParticipant.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsCycleCollectionTraversalCallback.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsCycleCollector.cpp Bug 1475461 - part 2: Make callers of PLDHashTable::Search() const methods if possible r=Ehsan 2018-07-13 19:01:53 +09:00
nsCycleCollector.h Bug 1376614 - Pass budget to forgetSkippable and return early when budget has been used, r=mccr8 2017-06-30 13:44:59 +03:00
nsCycleCollectorTraceJSHelpers.cpp Bug 1326507, trace after traverse, r=mccr8 2017-01-03 21:46:49 +02:00
nsDebug.h Bug 1457813 - Part 3: Remove NS_PRECONDITION definition. r=froydnj 2018-05-08 22:21:22 -07:00
nsDebugImpl.cpp Bug 1470508 Output the process name in MOZ_LOG r=froydnj 2018-06-22 12:31:35 -05:00
nsDebugImpl.h Bug 1470508 Output the process name in MOZ_LOG r=froydnj 2018-06-22 12:31:35 -05:00
nsDumpUtils.cpp Bug 1472523: Part 1 - Avoid string copies in preference callbacks. r=njn 2018-06-30 23:06:17 -07:00
nsDumpUtils.h Bug 1472523: Part 1 - Avoid string copies in preference callbacks. r=njn 2018-06-30 23:06:17 -07:00
nsError.h Bug 1320179 - Part 1: Move nsresult value calculation into a python script, r=froydnj 2017-04-06 18:36:22 -04:00
nsErrorService.cpp
nsErrorService.h
nsGZFileWriter.cpp Bug 1453795 - XPCOM - Initialize member fields in classes/ structures. r=froydnj 2018-06-15 14:41:20 +03:00
nsGZFileWriter.h Bug 1295825 (part 3) - Use [must_use] and MOZ_MUST_USE in nsIGZFileWriter.idl. r=froydnj. 2016-08-17 17:09:45 +10:00
nsIClassInfoImpl.h no bug, Align the \ at the end of the #defines DONTBUILD r=froydnj 2018-02-12 15:39:43 +01:00
nsIConsoleListener.idl
nsIConsoleMessage.idl
nsIConsoleService.idl
nsICycleCollectorListener.idl
nsID.cpp Bug 1409227 (part 4) - Replace nsMemory::Clone(id, sizeof(nsID)) with nsID::Clone(id). r=mccr8. 2017-10-18 10:39:20 +11:00
nsID.h Bug 1409227 (part 4) - Replace nsMemory::Clone(id, sizeof(nsID)) with nsID::Clone(id). r=mccr8. 2017-10-18 10:39:20 +11:00
nsIDebug2.idl bug 1300152 - Add nsIDebug2::rustPanic to allow triggering Rust panic for testing. r=froydnj 2017-03-31 12:08:57 -04:00
nsIErrorService.idl
nsIException.idl Bug 1435483 part 21. Remove nsIException::ToString. r=qdot 2018-02-05 16:34:06 -05:00
nsIGZFileWriter.idl Bug 1295825 (part 3) - Use [must_use] and MOZ_MUST_USE in nsIGZFileWriter.idl. r=froydnj. 2016-08-17 17:09:45 +10:00
nsIID.h
nsIInterfaceRequestor.idl
nsIInterfaceRequestorUtils.cpp Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsIInterfaceRequestorUtils.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsILoadURIDelegate.idl Bug 1441964 - [1.0] Return URI-load delegation success state instead of throwing. r=snorp 2018-02-28 21:02:35 +01:00
nsIMacUtils.idl Bug 1463183 - Remove all instances of isUniversalBinary since we no longer build universal binaries for macOS r=spohl 2018-05-31 20:04:23 +05:30
nsIMemory.idl Bug 1451005 - Forward all memory-pressure events to the child processes; r=njn 2018-05-12 01:21:13 +02:00
nsIMemoryInfoDumper.idl
nsIMemoryReporter.idl Bug 1468207 - Use the new timer-based available memory tracker on Win32; r=dmajor 2018-07-04 21:06:07 +02:00
nsIMessageLoop.idl
nsIMutable.idl
nsINIParser.cpp Bug 1420427 - Stop using native charset in URLPreloader. r=kmag 2017-11-28 00:21:00 +09:00
nsINIParser.h Bug 1420427 - Stop using native charset in URLPreloader. r=kmag 2017-11-28 00:21:00 +09:00
nsInterfaceRequestorAgg.cpp Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm 2017-06-14 09:27:17 +08:00
nsInterfaceRequestorAgg.h
nsISecurityConsoleMessage.idl
nsISizeOf.h
nsISupports.idl
nsISupportsBase.h
nsISupportsImpl.cpp Bug 1399308 - Include nsThreadUtils.h in nsISupportsImpl.cpp. r=froydnj 2017-09-13 13:45:03 +12:00
nsISupportsImpl.h Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz 2018-05-21 16:33:18 -07:00
nsISupportsUtils.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsIUUIDGenerator.idl
nsIVersionComparator.idl
nsIWeakReference.idl Bug 1393592 - manually de-virtualize nsIWeakReference::QueryReferent; r=ehsan 2017-08-25 13:48:29 -04:00
nsIWeakReferenceUtils.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsMacUtilsImpl.cpp Bug 1463183 - Remove all instances of isUniversalBinary since we no longer build universal binaries for macOS r=spohl 2018-05-31 20:04:23 +05:30
nsMacUtilsImpl.h
nsMemory.cpp Bug 1407838 - Remove the remains of NS_Alloc/NS_Realloc/NS_Free. r=njn 2017-10-12 11:08:44 +09:00
nsMemory.h Bug 1407838 - Remove the remains of NS_Alloc/NS_Realloc/NS_Free. r=njn 2017-10-12 11:08:44 +09:00
nsMemoryImpl.cpp Bug 1360321 - 6. Add AArch64 support in xpcom; r=froydnj 2017-05-17 13:06:23 -04:00
nsMemoryImpl.h Bug 1277775 - Replace MOZ_CONSTEXPR{_VAR,_TMPL} with constexpr. r=froydnj 2016-07-08 14:39:53 -07:00
nsMemoryInfoDumper.cpp Bug 1473631: Part 0a - Make preference callbacks typesafe. r=njn 2018-07-06 12:24:41 -07:00
nsMemoryInfoDumper.h
nsMemoryReporterManager.cpp Bug 1474636 - Report memory used by nsMemoryReporterManager. r=njn 2018-07-10 15:38:52 -07:00
nsMemoryReporterManager.h Bug 1474636 - Report memory used by nsMemoryReporterManager. r=njn 2018-07-10 15:38:52 -07:00
nsMessageLoop.cpp Bug 1404198: Part 2b - Switch to NS_NewTimer* in xpcom. r=njn 2017-10-15 23:11:22 -07:00
nsMessageLoop.h
nsObjCExceptions.h Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj 2017-10-10 11:59:39 +02:00
NSPRLogModulesParser.cpp Bug 1295941 - Let mozilla::Tokenizer read signed integers from the input, r=erahm 2018-01-17 06:23:00 +02:00
NSPRLogModulesParser.h Bug 1339537 - Part 6: Pass std::function values tree by const reference instead of by value, r=ehsan 2017-04-27 12:44:57 -04:00
nsQueryObject.h Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj 2017-11-05 19:37:28 -08:00
nsrootidl.idl Bug 1455217 - Part 1: Add an explicit Promise type to xpidl, r=mccr8 2018-05-14 17:55:53 -04:00
nsSecurityConsoleMessage.cpp
nsSecurityConsoleMessage.h
nsSystemInfo.cpp Backed out 3 changesets (bug 1418131) for failing Browser-chrome on toolkit/modules/tests/browser/browser_Troubleshoot.js on a CLOSED TREE 2018-01-16 03:39:43 +02:00
nsSystemInfo.h
nsTraceRefcnt.cpp Bug 1453795 - XPCOM - Initialize member fields in classes/ structures. r=froydnj 2018-06-15 14:41:20 +03:00
nsTraceRefcnt.h Bug 1408459, part 2 - Remove unused declaration of NS_MeanAndStdDev(). r=erahm 2017-10-15 08:30:57 -07:00
nsTWeakRef.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsUUIDGenerator.cpp
nsUUIDGenerator.h
nsVersionComparator.cpp Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium 2017-12-06 16:52:51 -08:00
nsVersionComparator.h Bug 1426898 - Stop including Char16.h everywhere. r=Waldo 2017-12-23 00:53:12 +09:00
nsVersionComparatorImpl.cpp
nsVersionComparatorImpl.h
nsWeakPtr.h
nsWeakReference.cpp Bug 1393885 - provide a faster path for do_GetWeakReference; r=erahm 2017-09-05 15:39:40 -04:00
nsWeakReference.h Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj 2017-01-23 09:24:01 -05:00
nsWindowsHelpers.h Bug 1451366: Part 1 - Wait after launch from update and restart, r=mhowell, jimm 2018-05-14 14:43:36 -07:00
OwningNonNull.h Bug 1456261. Add cycle collection bits for WebIDL dictionaries. r=smaug 2018-04-24 11:57:40 -04:00
SizeOfState.h Bug 1383982 (attempt 2) - Introduce a general mechanism for measuring memory usage of graph-like structures. r=erahm. 2017-07-28 20:10:04 +10:00
StaticMutex.h
StaticPtr.h Bug 1431109 - Ignore a second incorrect warning with gcc (-Wuninitialized) r=froydnj 2018-01-17 15:58:00 +01:00