Commit Graph
8 Commits
Author SHA1 Message Date
Benjamin Smedberg 0f95227641 Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

nsITextControlFrame didn't have an IID the first time around, but this wasn't a compile error because nsITextControlFrame::kFrameIID inherited from nsIFormControlFrame::kFrameIID. I've added a static analysis pass to verify the correct behavior, since I can't figure out a way to make the compiler do it.
2009-01-12 14:20:59 -05:00
Benjamin Smedberg 7a084ac404 Backed out changeset 4c4df6ed1b41 - Bug 396185 - Make nsIFrame not inherit from nsISupports due to mochitest failures... these appear to be crashes in nsGenericHTMLElement::GetEditorInternal. 2009-01-09 11:35:24 -05:00
Benjamin Smedberg 991a16d8bc Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

This patch locally causes two REFTEST-UNEXPECTED-PASS for Bidi stuff. It's possible that I accidentally fixed a bug, but I'm not sure, so I'm going to wait for the tinderboxes to confirm my local results.
2008-11-05 14:25:30 -05:00
L. David Baron 4dee60561d Change code for handling out-of-nscoord-range values from NS_NOTREACHED to NS_WARNING. (Bug 472218) r+sr=roc 2009-01-06 15:21:00 -08:00
L. David Baron 5225fe7d4a Fix tests to match what they should have been testing, and fix nsFloatManager behavior to match what the old code actually did as far as considering floats at the side that did not protrude into the containing block. (Bug 472252) r+sr=roc 2009-01-06 15:21:00 -08:00
L. David Baron c8f3af9230 Add nsTArray<E>::TruncateLength, which is like SetLength, except only allows shortening of the array. (Bug 191448) r=bsmedberg 2009-01-06 15:21:00 -08:00
L. David Baron 8d232c39e5 Give nsFloatManager::FloatInfo a copy constructor to avoid confusing refcount logging. (Bug 191448) 2009-01-04 20:25:58 -05:00
L. David Baron 7c32f841de Replace space manager with a more limited float manager. (Bug 191448) r+sr=roc 2009-01-04 19:39:54 -05:00