diff options
author | Peter Hartmann <peter.hartmann@trolltech.com> | 2009-07-15 10:30:21 (GMT) |
---|---|---|
committer | Peter Hartmann <peter.hartmann@trolltech.com> | 2009-07-15 10:30:21 (GMT) |
commit | 97f82b2344334fa158f20e4ed059984fd3c43162 (patch) | |
tree | 05a38900c0409a904f45ad35b7447baef13623ed /src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp | |
parent | 2567ec486d5d95dc4ca06874cf75bf03bd7502b9 (diff) | |
parent | 28d0930593c6c04a7ef538353f8bee55df00a0e8 (diff) | |
download | Qt-97f82b2344334fa158f20e4ed059984fd3c43162.zip Qt-97f82b2344334fa158f20e4ed059984fd3c43162.tar.gz Qt-97f82b2344334fa158f20e4ed059984fd3c43162.tar.bz2 |
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp index c65ba85..d6850e6 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp @@ -1526,10 +1526,6 @@ inline void TCMalloc_PageHeap::Delete(Span* span) { // necessary. We do not bother resetting the stale pagemap // entries for the pieces we are merging together because we only // care about the pagemap entries for the boundaries. - // - // Note that the spans we merge into "span" may come out of - // a "returned" list. For simplicity, we move these into the - // "normal" list of the appropriate size class. const PageID p = span->start; const Length n = span->length; Span* prev = GetDescriptor(p-1); @@ -1560,10 +1556,19 @@ inline void TCMalloc_PageHeap::Delete(Span* span) { Event(span, 'D', span->length); span->free = 1; - if (span->length < kMaxPages) { - DLL_Prepend(&free_[span->length].normal, span); - } else { - DLL_Prepend(&large_.normal, span); +#if TCMALLOC_TRACK_DECOMMITED_SPANS + if (span->decommitted) { + if (span->length < kMaxPages) + DLL_Prepend(&free_[span->length].returned, span); + else + DLL_Prepend(&large_.returned, span); + } else +#endif + { + if (span->length < kMaxPages) + DLL_Prepend(&free_[span->length].normal, span); + else + DLL_Prepend(&large_.normal, span); } free_pages_ += n; |