[Webkit-unassigned] [Bug 43641] New: Mark all JSCell*s visible from structures

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Aug 6 13:53:19 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=43641

           Summary: Mark all JSCell*s visible from structures
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: nlawrence at apple.com
                CC: ggaren at apple.com, nlawrence at apple.com


Updating these is required for movable objects.  There are two types of pointers we are looking at:

(1) The specificValue properties in PropertyMapHashTable
(2) The structures's prototype

It is slightly more complicated than simply marking these properties on each object's structures since each structure is part of a tree.  We need to mark both the pointers linked to by m_previous as well as the structure transition table.

In order not to fully visit each structure graph more than once per garbage collection, I suggest adding an additional bit to the structure class that denotes an alternating color used to determine whether or not that structure has been visited on that particular collection.

The specificValue properties in PropertyMapHashTable can be replaced by WeakGCPtr's which avoids us needing to update those particular values, however there is still a few percent overhead in needing to visit the whole structure graph.  It may make sense to have a ref-counted indirect pointer to the prototype that is shared between all structures in the graph.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list