In all of these cases the fixed buffer has the same lifetime as the string
object, so we can use nsAuto[C]String for simplicity.
For the 128-length ones in dom/xul/ I just switched to the default of 64 for
simplicity, because the choice of 128 didn't seem that important. (These code
paths weren't hit when I started the browser and opened a few sites.)
Finally, the patch also changes LoggingIdString to use
nsAutoCStringN<NSID_LENGTH>, similar to NullPrincipalURI.
This patch parameterizes nsAuto[C]String, renames them as nsAuto[C]StringN, and
redefines nsAuto[C]String as typedefs for nsAuto[C]StringN<64>.
(The alternative would be to templatize nsAuto[C]String and use a default
parameter, but that would require writing "nsAuto[C]String<>" everywhere.)
This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.
The patch also removes a couple of unused declarations from
nsIStringBundle.idl.
Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.
--HG--
extra : rebase_source : ac40bc31c2a4997f2db0bd5069cc008757a2df6d
This parameter isn't used by any implementation of onDispatchedEvent,
and keeping the parameter makes later refactorings in this bug more difficult.
MozReview-Commit-ID: 90VY2vYtwCW
This is similar like the previous patch, but for the 8-bit string variants.
Also, it changes assignment to Adopt() in GetCString() and GetDefaultCString()
to avoid an extra copy.
--HG--
extra : rebase_source : eba805c3a7b809d5ccd6e853b1c9010db9477667
This patch replaces four functions of the name AssignWithConversion which
are essentially wrappers around CopyASCIItoUTF16 and LossyCopyUTF16toASCII
with direct calls to the latter two functions. The replaced functions are:
void nsCString::AssignWithConversion( const nsAString& aData )
void nsString::AssignWithConversion( const nsACString& aData )
void nsTString_CharT::AssignWithConversion(
const incompatible_char_type* aData,
int32_t aLength = -1);
The last of the three exists inside the double-included nsTString* world and
so describes two functions, giving four in total.
This has two advantages:
* it removes code
* at the call points, it makes clear (from the replacement name) which
conversion is being carried out. The generic name "AssignWithConversion"
doesn't make that obvious -- one had to infer it from the types.
The patch also removes two commented out lines from
editor/composer/nsComposerCommands.cpp, that appear to be related. They are
at top level, where they would never have compiled. They look like
leftovers from some previous change.
--HG--
extra : rebase_source : fb47bf450771c3c9ee3341dd14520f5da69ec4f5
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.
MozReview-Commit-ID: 6s78RvPFMzv
--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
As well as the obvious #ifdef stuff, the patch removes
TCPSocket::SetAppIdAndBrowser(), which means
{TCPSocketParent,TCPServerSocketParent}::{GetAppId,GetInIsolatedMozBrowser}()
can also be removed.
For all tests depend on testFinishedCallback() function, the following had been changed:
* waitForExplicitFinish() will be replaced with add_task().
* gBrowser.selectedBrowser.addEventListener() will be replaced with waitForMessage().
* testFinishedCallback, testResult, and testException will be unified to testResult.
setFinishedCallback() might have the same race issue as previously bug 1324163 resolved.
- testFinishedCallback will be replaced with waitForMessage() in head.js.
- testResult, and testException will be unified to testResult.
BrowserTestUtils.closeWindow which is waiting for the final session storage message from the children
(in case of the test one for each window) + "domwindowclosed" event on the parent side.
It's possible that window.close() is called but window doesn't fully close yet.
This patch makes the following changes to the macros.
- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
mostly misused.
- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
universally available now anyway.
- Combines the first two string literal arguments of PROFILER_LABEL and
PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
them to be separate, and it forced a '::' in the label, which isn't always
appropriate. Also, the meaning of the "name_space" argument was interpreted
in an interesting variety of ways.
- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
it clearer they construct RAII objects rather than just being function calls.
(I myself have screwed up the scoping because of this in the past.)
- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
the caller doesn't need to. This makes a *lot* more of the uses fit onto a
single line.
The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).
- Fixes a bunch of labels that had gotten out of sync with the name of the
class and/or function that encloses them.
- Removes a useless PROFILER_LABEL use within a trivial scope in
EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
a good idea.
- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
done within them, instead of at their callsites, because that's a more
standard way of doing things.
--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
PROFILER_MARKER is now just a trivial wrapper for profiler_add_marker(). This
patch removes it.
--HG--
extra : rebase_source : 9858f34763bb343757896a91ab7ad8bd8e56b076
The UpgradeSchemaFrom17_0To18_0Helper class is never instantiated, so its constructor and destructor don't need to be define.
dom/base/nsContentUtils.cpp:529:21 [-Wunused-member-function] unused member function 'GetResult'
dom/indexedDB/ActorsParent.cpp:2715:3 [-Wunused-member-function] unused member function 'UpgradeSchemaFrom17_0To18_0Helper'
dom/indexedDB/ActorsParent.cpp:2720:3 [-Wunused-member-function] unused member function '~UpgradeSchemaFrom17_0To18_0Helper'
dom/indexedDB/ActorsParent.cpp:6464:3 [-Wunused-member-function] unused member function 'GetPrincipalInfo'
dom/indexedDB/ActorsParent.cpp:6545:3 [-Wunused-member-function] unused member function 'ReleaseTransactionThreadObjects'
dom/indexedDB/ActorsParent.cpp:6548:3 [-Wunused-member-function] unused member function 'ReleaseBackgroundThreadObjects'
dom/indexedDB/ActorsParent.cpp:7710:3 [-Wunused-member-function] unused member function 'operator<'
dom/indexedDB/ActorsParent.cpp:7753:3 [-Wunused-member-function] unused member function 'IsOtherProcessActor'
dom/quota/ActorsParent.cpp:809:3 [-Wunused-member-function] unused member function 'GetState'
dom/quota/StorageManager.cpp:76:3 [-Wunused-member-function] unused member function 'GetType'
MozReview-Commit-ID: FbfMj2YJ4Fx
--HG--
extra : source : a38727295681d5368ed05a1b2758599f4debc424
extra : intermediate-source : 2010739762c276b15d8431d2df4725fb8281d549
extra : histedit_source : e9e4eb1c7d7813c6dda7ded023de4bd6e7b4b52a
A number of places in JS need to drain the current thread's event queue,
which cannot be done with nsIThreadManager::spinEventLoopUntil, since we
need to not wait for an incoming event when attempting to process one.