Changeset 30790

Show
Ignore:
Timestamp:
03/04/08 23:08:43 (16 months ago)
Author:
mjs@apple.com
Message:

WebCore:

Reviewed by Sam and Oliver.

  • bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::mark): When marking a node that's in-document, mark the owner document if it hasn't been already. This means holding on to a single node from an unreferenced document now keeps the whole document alive.


We are now at 90/100 on Acid3.

LayoutTests:

Reviewed by Sam and Oliver.

  • fast/dom/gc-11-expected.txt: Added. Test case from bug 16289.
  • fast/dom/gc-11.html: Added.
  • fast/dom/gc-acid3.html: Added. DOM garbage collection part of Acid3.
  • fast/dom/gc-acid3-expected.txt: Added.
  • fast/dom/gc-6-expected.txt: Updated results. The old assumptions of this test were in conflict with the requirements of Acid3.
Location:
trunk
Files:
4 added
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r30781 r30790  
     12008-03-04  Maciej Stachowiak  <mjs@apple.com> 
     2 
     3        Reviewed by Sam and Oliver. 
     4 
     5        - test for http://bugs.webkit.org/show_bug.cgi?id=16289 
     6        - test for Acid3 tests 26 and 27 (not exactly the same issue but related) 
     7 
     8        * fast/dom/gc-11-expected.txt: Added. Test case from bug 16289. 
     9        * fast/dom/gc-11.html: Added. 
     10        * fast/dom/gc-acid3.html: Added. DOM garbage collection part of Acid3. 
     11        * fast/dom/gc-acid3-expected.txt: Added. 
     12        * fast/dom/gc-6-expected.txt: Updated results. The old assumptions of this test 
     13        were in conflict with the requirements of Acid3. 
     14 
    1152008-03-04  Dan Bernstein  <mitz@apple.com> 
    216 
  • trunk/LayoutTests/fast/dom/gc-6-expected.txt

    r20147 r30790  
    55B 
    66[object HTMLElement] 
    7 null 
     7[object HTMLElement] 
    88[object HTMLDocument] 
    99 
  • trunk/WebCore/ChangeLog

    r30788 r30790  
     12008-03-04  Maciej Stachowiak  <mjs@apple.com> 
     2 
     3        Reviewed by Sam and Oliver. 
     4 
     5        - fixed http://bugs.webkit.org/show_bug.cgi?id=16289 
     6        - fixed Acid3 tests 26 and 27 (not exactly the same issue but related) 
     7 
     8        * bindings/js/JSNodeCustom.cpp: 
     9        (WebCore::JSNode::mark): When marking a node that's in-document, 
     10        mark the owner document if it hasn't been already. This means holding on 
     11        to a single node from an unreferenced document now keeps the whole document alive. 
     12         
     13        We are now at 90/100 on Acid3. 
     14 
    1152008-03-04  Sam Weinig  <sam@webkit.org> 
    216 
  • trunk/WebCore/bindings/js/JSNodeCustom.cpp

    r29663 r30790  
    116116    // so we have no special responsibilities and can just call the base class here. 
    117117    if (node->inDocument()) { 
     118        // But if the document isn't marked we have to mark it to ensure that 
     119        // nodes reachable from this one are also marked 
     120        if (Document* doc = node->ownerDocument()) 
     121            if (DOMObject* docWrapper = ScriptInterpreter::getDOMObject(doc)) 
     122                if (!docWrapper->marked()) 
     123                    docWrapper->mark(); 
    118124        DOMObject::mark(); 
    119125        return;