2008-06-16 Cameron Zwarich <cwzwarich@uwaterloo.ca>
authorcwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Jun 2008 06:22:46 +0000 (06:22 +0000)
committercwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Jun 2008 06:22:46 +0000 (06:22 +0000)
commit822b2579369099ac54762da9231c76779a07a0d0
tree029fadcb1ceb82cf70b65035383aacd07d05583e
parentb5eda3c40ac17d614a280d51d076460d10f0901a
2008-06-16  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Maciej.

        Bug 19596: LEAK: Gmail leaks SegmentedVector<RegisterID>
        <https://bugs.webkit.org/show_bug.cgi?id=19596>

        When growing SegmentedVector, we start adding segments at the position
        of the last segment, overwriting it. The destructor frees allocated
        segments starting at the segment of index 1, because the segment of
        index 0 is assumed to be the initial inline segment. This causes a leak
        of the segment that is referenced by index 0. Modifying grow() so that
        it starts adding segments at the position after the last segment fixes
        the leak.

        Since the initial segment is a special case in the lookup code, this
        bug never manifested itself via incorrect results.

        * VM/SegmentedVector.h:
        (KJS::SegmentedVector::grow):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34617 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/VM/SegmentedVector.h