Changeset 64381 in webkit


Ignore:
Timestamp:
Jul 30, 2010 3:38:54 PM (14 years ago)
Author:
adachan@apple.com
Message:

Reviewed by John Sullivan.

Fix issue with populating the back list when limit is a huge number.
https://bugs.webkit.org/show_bug.cgi?id=43270

  • UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
Location:
trunk/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r64380 r64381  
     12010-07-30  Ada Chan  <adachan@apple.com>
     2
     3        Reviewed by John Sullivan.
     4
     5        Fix issue with populating the back list when limit is a huge number.
     6        https://bugs.webkit.org/show_bug.cgi?id=43270
     7
     8        * UIProcess/WebBackForwardList.cpp:
     9        (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
     10
    1112010-07-29  Sam Weinig  <sam@webkit.org>
    212
  • trunk/WebKit2/UIProcess/WebBackForwardList.cpp

    r64380 r64381  
    169169PassRefPtr<ImmutableArray> WebBackForwardList::backListAsImmutableArrayWithLimit(unsigned limit)
    170170{
    171     unsigned size = std::min(static_cast<unsigned>(backListCount()), limit);
     171    unsigned backListSize = static_cast<unsigned>(backListCount());
     172    unsigned size = std::min(backListSize, limit);
    172173    if (!size)
    173174        return ImmutableArray::create();
    174175
    175176    APIObject** array = new APIObject*[size];
    176     for (unsigned i = std::max<int>(m_current - limit, 0), j = 0; i < m_current; ++i, ++j) {
     177    ASSERT(backListSize >= size);
     178    for (unsigned i = backListSize - size, j = 0; i < backListSize; ++i, ++j) {
    177179        APIObject* item = m_entries[i].get();
    178180        item->ref();
Note: See TracChangeset for help on using the changeset viewer.