Bug 470506 collapsed the nsPoint/nsIntPoint, nsSize/nsIntSize, etc. class pairs together using templates, but leaves the types nsPoint/nsIntPoint etc as subclasses of the template base class, which requires a bunch of boilerplate to define constructors again and so on.
The types used in general code should be converted to typedefs (adding a dummy template parameter to the base class so that when NS_COORD_IS_FLOAT is not defined, the two members of each pair are still not the same type), and all places that currently forward-declare one of these classes should be changed to include the appropriate headers instead.
I no longer work for Mozilla. Deassigning myself from bugs I don't intend to work on as a volunteer.
We unified these classes.