Move queue and stack includes outside of mozilla namespace.
Test the following for searches:
- Null root returns null.
- Needle is root returns root.
- No needle results in full traversal.
- Needle node in middle returns that needle, and stops traversing.
Test the following for ForEachNode:
- Null root still runs correctly.
- No skips results in traversal of entire tree.
- Root skip results in only changing the root.
- First skips are still included (whether leaf or parent).
--HG--
extra : source : 6d2572c274363c7544c4f96f0016fead098b157e
In nsIWidget, GetBoundsUntyped(), GetClientBoundsUntyped() and
GetScreenBoundsUntyped() are currently the primary implementations, and the
untyped versions are defined on top of them. This patch flips that around.
--HG--
extra : rebase_source : 15b2f08f90bf4d1e209c6cb885f6a6e3b8db6708
Changing mRecycledBuffers to store UniquePtrs instead of nsAutoArrayPtrs
opens up the possibility of a reasonable facsimile of ownership in
function signatures.
This patch could have been in the last patch, but it felt like modifying
ReadCMAPTableFormat14 to accept a UniquePtr<> made the code clearer.
This change was therefore separated into its own patch for easier
review.
This patch handles all the cases where we just want to swap out
nsAutoArrayPtr for UniquePtr and don't require code changes other than
updating uses that implicitly converted to T* to follow UniquePtr's
conventions.
gfxRect can be implicitly constructed from IntRect, which hides a number of
implicit conversion points, makes Moz2Dification harder, and has some
surprising effects.
This patch removes the implicit constructor and replaces it with an explicit
conversion function:
gfxRect ThebesRect(const IntRect&)
This is the obvious outcome of removing the constructor.
But there is also a second, less obvious outcome: currently we do a number of
IntRect-to-Rect conversions using ToRect(), which (surprisingly) works because
it turns into an implicit IntRect-to-gfxRect conversion (via the implicit
constructor) combined with an explicit gfxRect-to-Rect conversion (via
ToRect()). I.e. we do two conversions, going from a Moz2D type to a Thebes
type and back to a Moz2D type!
So this patch also changes these conversion. It moves this existing function:
Rect ToRect(const IntRect&)
from gfx2DGlue.h -- where it doesn't really belong because it doesn't involve
any Thebes types -- to gfx/2d/Rect.h, templatifying and renaming it as
IntRectToRect() in the process.
The rest of the patch deals with fall-out from these changes. The call sites
change as follows:
- IntRect-to-gfxRect conversions:
- old: implicit
- new: ThebesRect()
- IntRect-to-Rect conversions:
- old: ToRect()
- new: IntRectToRect()
--HG--
extra : rebase_source : e4e4c2ad10b36ecad4d57d1630158f3374e403be
Fontconfig allows for fonts to be arbitrarily mapped into another font
family. Under some versions of Debian and Fedora, families like Droid
Sans Japanese were mapped into the Droid Sans family. To match these
font families properly, it's necessary to test multiple fonts within a
single given family. Since this is a relatively time consuming
procedure, only do this when there are multiple regular faces for a
given family.