RESOLVED FIXED 70258
Simplified GC marking logic
https://bugs.webkit.org/show_bug.cgi?id=70258
Summary Simplified GC marking logic
Geoffrey Garen
Reported 2011-10-17 13:01:59 PDT
Simplified GC marking logic
Attachments
Patch (28.27 KB, patch)
2011-10-17 13:18 PDT, Geoffrey Garen
fpizlo: review+
webkit-ews: commit-queue-
Geoffrey Garen
Comment 1 2011-10-17 13:18:52 PDT
WebKit Review Bot
Comment 2 2011-10-17 13:21:22 PDT
Attachment 111308 [details] did not pass style-queue: Failed to run "['Tools/Scripts/update-webkit', '--chromium']" exit_code: 2 Updating OpenSource Current branch master is up to date. Updating chromium port dependencies using gclient... Error: Can't switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don't match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again. Re-trying 'depot_tools/gclient sync' Error: Can't switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don't match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again. Re-trying 'depot_tools/gclient sync' Error: Can't switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don't match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again. Error: 'depot_tools/gclient sync' failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 107. Re-trying 'depot_tools/gclient sync' No such file or directory at Tools/Scripts/update-webkit line 104. If any of these errors are false positives, please file a bug against check-webkit-style.
Darin Adler
Comment 3 2011-10-17 13:25:30 PDT
Comment on attachment 111308 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=111308&action=review > Source/JavaScriptCore/heap/MarkStack.cpp:42 > + , m_capacity(m_allocated / sizeof(JSCell*)) This uses an uninitialized m_allocated data member. > Source/JavaScriptCore/heap/MarkStack.cpp:72 > +#if OS(WINDOWS) > + // We cannot release a part of a region with VirtualFree. To get around this, > + // we'll release the entire region and reallocate the size that we want. Can we add a tiny bit of abstraction here so the #if OS (WINDOWS) isn’t right inline in the code? This knowledge of what MarkStack::releaseStack can and can’t do is now in a different class from the releaseStack function. > Source/JavaScriptCore/heap/MarkStack.cpp:118 > + cell->methodTable()->visitChildren(const_cast<JSCell*>(cell), visitor); Looks like you removed m_isCheckingForDefaultMarkViolation here. Why?
Geoffrey Garen
Comment 4 2011-10-17 13:32:14 PDT
> > Source/JavaScriptCore/heap/MarkStack.cpp:42 > > + , m_capacity(m_allocated / sizeof(JSCell*)) > > This uses an uninitialized m_allocated data member. Oops! > > Source/JavaScriptCore/heap/MarkStack.cpp:72 > > +#if OS(WINDOWS) > > + // We cannot release a part of a region with VirtualFree. To get around this, > > + // we'll release the entire region and reallocate the size that we want. > > Can we add a tiny bit of abstraction here so the #if OS (WINDOWS) isn’t right inline in the code? This knowledge of what MarkStack::releaseStack can and can’t do is now in a different class from the releaseStack function. Yes. I think this can move into OSAllocator. > > Source/JavaScriptCore/heap/MarkStack.cpp:118 > > + cell->methodTable()->visitChildren(const_cast<JSCell*>(cell), visitor); > > Looks like you removed m_isCheckingForDefaultMarkViolation here. Why? There's no such thing as a "default mark violation" anymore. I'm going to remove the rest of it, include the structure flag, in a follow-up patch.
Early Warning System Bot
Comment 5 2011-10-17 13:40:18 PDT
Geoffrey Garen
Comment 6 2011-10-17 13:42:41 PDT
Note You need to log in before you can comment on or make changes to this bug.