Changeset 181534 in webkit
- Timestamp:
- Mar 16, 2015, 3:19:42 AM (11 years ago)
- Location:
- releases/WebKitGTK/webkit-2.8/Source
- Files:
-
- 13 edited
-
JavaScriptCore/API/JSBase.cpp (modified) (1 diff)
-
JavaScriptCore/ChangeLog (modified) (1 diff)
-
JavaScriptCore/runtime/SparseArrayValueMap.cpp (modified) (1 diff)
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/Modules/mediasource/SourceBuffer.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSDocumentCustom.cpp (modified) (1 diff)
-
WebCore/bindings/js/JSImageDataCustom.cpp (modified) (1 diff)
-
WebCore/bindings/js/JSNodeListCustom.cpp (modified) (1 diff)
-
WebCore/dom/CollectionIndexCache.cpp (modified) (1 diff)
-
WebCore/html/HTMLCanvasElement.cpp (modified) (1 diff)
-
WebCore/html/HTMLImageLoader.cpp (modified) (1 diff)
-
WebCore/html/HTMLMediaElement.cpp (modified) (1 diff)
-
WebCore/xml/XMLHttpRequest.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore/API/JSBase.cpp
r181533 r181534 140 140 JSLockHolder locker(exec); 141 141 142 // FIXME: switch to deprecatedReportExtraMemory. 143 // https://bugs.webkit.org/show_bug.cgi?id=142593 144 exec->vm().heap.reportExtraMemoryAllocated(size); 142 exec->vm().heap.deprecatedReportExtraMemory(size); 145 143 } 146 144 -
releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore/ChangeLog
r181533 r181534 1 2015-03-11 Geoffrey Garen <ggaren@apple.com> 2 3 Many users of Heap::reportExtraMemory* are wrong, causing lots of memory growth 4 https://bugs.webkit.org/show_bug.cgi?id=142593 5 6 Reviewed by Andreas Kling. 7 8 Adopt deprecatedReportExtraMemory as a short-term fix for runaway 9 memory growth in these cases where we have not adopted 10 reportExtraMemoryVisited. 11 12 Long-term, we should use reportExtraMemoryAllocated+reportExtraMemoryVisited. 13 That's tracked by https://bugs.webkit.org/show_bug.cgi?id=142595. 14 15 * API/JSBase.cpp: 16 (JSReportExtraMemoryCost): 17 * runtime/SparseArrayValueMap.cpp: 18 (JSC::SparseArrayValueMap::add): 19 1 20 2015-03-11 Geoffrey Garen <ggaren@apple.com> 2 21 -
releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore/runtime/SparseArrayValueMap.cpp
r181533 r181534 81 81 size_t capacity = m_map.capacity(); 82 82 if (capacity != m_reportedCapacity) { 83 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.84 // https://bugs.webkit.org/show_bug.cgi?id=14259 385 Heap::heap(array)-> reportExtraMemoryAllocated((capacity - m_reportedCapacity) * (sizeof(unsigned) + sizeof(WriteBarrier<Unknown>)));83 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 84 // https://bugs.webkit.org/show_bug.cgi?id=142595 85 Heap::heap(array)->deprecatedReportExtraMemory((capacity - m_reportedCapacity) * (sizeof(unsigned) + sizeof(WriteBarrier<Unknown>))); 86 86 m_reportedCapacity = capacity; 87 87 } -
releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog
r181533 r181534 1 2015-03-12 Geoffrey Garen <ggaren@apple.com> 2 3 REGRESSION: Crash under Heap::reportExtraMemoryAllocatedSlowCase for media element 4 https://bugs.webkit.org/show_bug.cgi?id=142636 5 6 Reviewed by Mark Hahnenberg. 7 8 This was a pre-existing bug that I made a lot worse in 9 <https://trac.webkit.org/changeset/181411>. 10 11 * html/HTMLMediaElement.cpp: 12 (WebCore::HTMLMediaElement::parseAttribute): Compare size before 13 subtracting rather than subtracting and then comparing to zero. The 14 latter technique is not valid for unsigned integers, which will happily 15 underflow into giant numbers. 16 17 * Modules/mediasource/SourceBuffer.cpp: 18 (WebCore::SourceBuffer::reportExtraMemoryAllocated): This code was 19 technically correct, but I took the opportunity to clean it up a bit. 20 There's no need to do two checks here, and it smells bad to check for 21 a negative unsigned integer. 22 23 2015-03-11 Geoffrey Garen <ggaren@apple.com> 24 25 Many users of Heap::reportExtraMemory* are wrong, causing lots of memory growth 26 https://bugs.webkit.org/show_bug.cgi?id=142593 27 28 Reviewed by Andreas Kling. 29 30 Adopt deprecatedReportExtraMemory as a short-term fix for runaway 31 memory growth in these cases where we have not adopted 32 reportExtraMemoryVisited. 33 34 Long-term, we should use reportExtraMemoryAllocated+reportExtraMemoryVisited. 35 That's tracked by https://bugs.webkit.org/show_bug.cgi?id=142595. 36 37 Using IOSDebug, I can see that the canvas stress test @ http://jsfiddle.net/fvyw4ba0/, 38 which used to keep > 1000 1MB NonVolatile GPU allocations live, now keeps about 10 live. 39 40 * Modules/mediasource/SourceBuffer.cpp: 41 (WebCore::SourceBuffer::reportExtraMemoryAllocated): 42 * bindings/js/JSDocumentCustom.cpp: 43 (WebCore::toJS): 44 * bindings/js/JSImageDataCustom.cpp: 45 (WebCore::toJS): 46 * bindings/js/JSNodeListCustom.cpp: 47 (WebCore::createWrapper): 48 * dom/CollectionIndexCache.cpp: 49 (WebCore::reportExtraMemoryAllocatedForCollectionIndexCache): 50 * html/HTMLCanvasElement.cpp: 51 (WebCore::HTMLCanvasElement::createImageBuffer): 52 * html/HTMLImageLoader.cpp: 53 (WebCore::HTMLImageLoader::imageChanged): 54 * html/HTMLMediaElement.cpp: 55 (WebCore::HTMLMediaElement::parseAttribute): 56 * xml/XMLHttpRequest.cpp: 57 (WebCore::XMLHttpRequest::dropProtection): 58 1 59 2015-03-11 Geoffrey Garen <ggaren@apple.com> 2 60 -
releases/WebKitGTK/webkit-2.8/Source/WebCore/Modules/mediasource/SourceBuffer.cpp
r181533 r181534 1982 1982 { 1983 1983 size_t extraMemoryCost = this->extraMemoryCost(); 1984 if (extraMemoryCost < m_reportedExtraMemoryCost)1984 if (extraMemoryCost <= m_reportedExtraMemoryCost) 1985 1985 return; 1986 1986 … … 1989 1989 1990 1990 JSC::JSLockHolder lock(scriptExecutionContext()->vm()); 1991 if (extraMemoryCostDelta > 0) { 1992 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited. 1993 // https://bugs.webkit.org/show_bug.cgi?id=142593 1994 scriptExecutionContext()->vm().heap.reportExtraMemoryAllocated(extraMemoryCostDelta); 1995 } 1991 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 1992 // https://bugs.webkit.org/show_bug.cgi?id=142595 1993 scriptExecutionContext()->vm().heap.deprecatedReportExtraMemory(extraMemoryCostDelta); 1996 1994 } 1997 1995 -
releases/WebKitGTK/webkit-2.8/Source/WebCore/bindings/js/JSDocumentCustom.cpp
r181533 r181534 110 110 nodeCount++; 111 111 112 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.113 // https://bugs.webkit.org/show_bug.cgi?id=14259 3114 exec->heap()-> reportExtraMemoryAllocated(nodeCount * sizeof(Node));112 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 113 // https://bugs.webkit.org/show_bug.cgi?id=142595 114 exec->heap()->deprecatedReportExtraMemory(nodeCount * sizeof(Node)); 115 115 } 116 116 -
releases/WebKitGTK/webkit-2.8/Source/WebCore/bindings/js/JSImageDataCustom.cpp
r181533 r181534 48 48 Identifier dataName(exec, "data"); 49 49 wrapper->putDirect(exec->vm(), dataName, toJS(exec, globalObject, imageData->data()), DontDelete | ReadOnly); 50 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.51 // https://bugs.webkit.org/show_bug.cgi?id=14259 352 exec->heap()-> reportExtraMemoryAllocated(imageData->data()->length());50 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 51 // https://bugs.webkit.org/show_bug.cgi?id=142595 52 exec->heap()->deprecatedReportExtraMemory(imageData->data()->length()); 53 53 54 54 return wrapper; -
releases/WebKitGTK/webkit-2.8/Source/WebCore/bindings/js/JSNodeListCustom.cpp
r181533 r181534 63 63 JSC::JSValue createWrapper(JSDOMGlobalObject& globalObject, NodeList& nodeList) 64 64 { 65 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.66 // https://bugs.webkit.org/show_bug.cgi?id=14259 367 globalObject.vm().heap. reportExtraMemoryAllocated(nodeList.memoryCost());65 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 66 // https://bugs.webkit.org/show_bug.cgi?id=142595 67 globalObject.vm().heap.deprecatedReportExtraMemory(nodeList.memoryCost()); 68 68 return createNewWrapper<JSNodeList>(&globalObject, &nodeList); 69 69 } -
releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/CollectionIndexCache.cpp
r181533 r181534 35 35 JSC::VM& vm = JSDOMWindowBase::commonVM(); 36 36 JSC::JSLockHolder lock(vm); 37 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.38 // https://bugs.webkit.org/show_bug.cgi?id=14259 339 vm.heap. reportExtraMemoryAllocated(cost);37 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 38 // https://bugs.webkit.org/show_bug.cgi?id=142595 39 vm.heap.deprecatedReportExtraMemory(cost); 40 40 } 41 41 -
releases/WebKitGTK/webkit-2.8/Source/WebCore/html/HTMLCanvasElement.cpp
r181533 r181534 581 581 JSC::JSLockHolder lock(scriptExecutionContext()->vm()); 582 582 size_t numBytes = 4 * m_imageBuffer->internalSize().width() * m_imageBuffer->internalSize().height(); 583 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.584 // https://bugs.webkit.org/show_bug.cgi?id=14259 3585 scriptExecutionContext()->vm().heap. reportExtraMemoryAllocated(numBytes);583 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 584 // https://bugs.webkit.org/show_bug.cgi?id=142595 585 scriptExecutionContext()->vm().heap.deprecatedReportExtraMemory(numBytes); 586 586 587 587 #if USE(IOSURFACE_CANVAS_BACKING_STORE) || ENABLE(ACCELERATED_2D_CANVAS) -
releases/WebKitGTK/webkit-2.8/Source/WebCore/html/HTMLImageLoader.cpp
r181533 r181534 88 88 JSC::VM& vm = JSDOMWindowBase::commonVM(); 89 89 JSC::JSLockHolder lock(vm); 90 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.91 // https://bugs.webkit.org/show_bug.cgi?id=14259 392 vm.heap. reportExtraMemoryAllocated(cachedImage->encodedSize());90 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 91 // https://bugs.webkit.org/show_bug.cgi?id=142595 92 vm.heap.deprecatedReportExtraMemory(cachedImage->encodedSize()); 93 93 } 94 94 } -
releases/WebKitGTK/webkit-2.8/Source/WebCore/html/HTMLMediaElement.cpp
r181533 r181534 686 686 687 687 if (m_player) { 688 JSC::VM& vm = JSDOMWindowBase::commonVM();689 JSC::JSLockHolder lock(vm);690 691 688 size_t extraMemoryCost = m_player->extraMemoryCost(); 692 size_t extraMemoryCostDelta = extraMemoryCost - m_reportedExtraMemoryCost; 693 m_reportedExtraMemoryCost = extraMemoryCost; 694 695 if (extraMemoryCostDelta > 0) { 696 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited. 697 // https://bugs.webkit.org/show_bug.cgi?id=142593 698 vm.heap.reportExtraMemoryAllocated(extraMemoryCostDelta); 689 if (extraMemoryCost > m_reportedExtraMemoryCost) { 690 JSC::VM& vm = JSDOMWindowBase::commonVM(); 691 JSC::JSLockHolder lock(vm); 692 693 size_t extraMemoryCostDelta = extraMemoryCost - m_reportedExtraMemoryCost; 694 m_reportedExtraMemoryCost = extraMemoryCost; 695 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 696 // https://bugs.webkit.org/show_bug.cgi?id=142595 697 vm.heap.deprecatedReportExtraMemory(extraMemoryCostDelta); 699 698 } 700 699 } -
releases/WebKitGTK/webkit-2.8/Source/WebCore/xml/XMLHttpRequest.cpp
r181533 r181534 914 914 JSC::VM& vm = scriptExecutionContext()->vm(); 915 915 JSC::JSLockHolder lock(vm); 916 // FIXME: Switch to deprecatedReportExtraMemory, or adopt reportExtraMemoryVisited.917 // https://bugs.webkit.org/show_bug.cgi?id=14259 3918 vm.heap. reportExtraMemoryAllocated(m_responseBuilder.length() * 2);916 // FIXME: Adopt reportExtraMemoryVisited, and switch to reportExtraMemoryAllocated. 917 // https://bugs.webkit.org/show_bug.cgi?id=142595 918 vm.heap.deprecatedReportExtraMemory(m_responseBuilder.length() * 2); 919 919 920 920 unsetPendingActivity(this);
Note:
See TracChangeset
for help on using the changeset viewer.