Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Unified Diff: src/heap/heap.cc

Issue 1215103003: Register array buffer right after writing it into the object (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/runtime/runtime-typedarray.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/heap.cc
diff --git a/src/heap/heap.cc b/src/heap/heap.cc
index 6039bdb4c6ba64d3d47b7bd9f527c1e9e460bae2..7b2fb4748f3e4a741fe0647255c5752ff2876e86 100644
--- a/src/heap/heap.cc
+++ b/src/heap/heap.cc
@@ -1839,6 +1839,7 @@ size_t Heap::FreeDeadArrayBuffersHelper(
size_t freed_memory = 0;
for (auto buffer = not_yet_discovered_buffers.begin();
buffer != not_yet_discovered_buffers.end(); ++buffer) {
Hannes Payer (out of office) 2015/06/30 12:08:37 Let's remove the printf debugging :)
+ fprintf(stderr, "free buffer %p\n", buffer->first);
isolate->array_buffer_allocator()->Free(buffer->first, buffer->second);
freed_memory += buffer->second;
live_buffers.erase(buffer->first);
@@ -1863,6 +1864,8 @@ void Heap::TearDownArrayBuffersHelper(
void Heap::RegisterNewArrayBuffer(bool in_new_space, void* data,
size_t length) {
if (!data) return;
+ fprintf(stderr, "new buffer %p (%s space)\n", data,
+ in_new_space ? "new" : "old");
RegisterNewArrayBufferHelper(live_array_buffers_, data, length);
if (in_new_space) {
RegisterNewArrayBufferHelper(live_array_buffers_for_scavenge_, data,
@@ -1875,6 +1878,8 @@ void Heap::RegisterNewArrayBuffer(bool in_new_space, void* data,
void Heap::UnregisterArrayBuffer(bool in_new_space, void* data) {
if (!data) return;
+ fprintf(stderr, "unreg buffer %p (%s space)\n", data,
+ in_new_space ? "new" : "old");
UnregisterArrayBufferHelper(live_array_buffers_,
not_yet_discovered_array_buffers_, data);
if (in_new_space) {
@@ -1888,6 +1893,8 @@ void Heap::UnregisterArrayBuffer(bool in_new_space, void* data) {
void Heap::RegisterLiveArrayBuffer(bool from_scavenge, void* data) {
// ArrayBuffer might be in the middle of being constructed.
if (data == undefined_value()) return;
+ fprintf(stderr, "found buffer %p (%s space)\n", data,
+ from_scavenge ? "new" : "old");
RegisterLiveArrayBufferHelper(
from_scavenge ? not_yet_discovered_array_buffers_for_scavenge_
: not_yet_discovered_array_buffers_,
@@ -1896,6 +1903,8 @@ void Heap::RegisterLiveArrayBuffer(bool from_scavenge, void* data) {
void Heap::FreeDeadArrayBuffers(bool from_scavenge) {
+ fprintf(stderr, "reaping buffers in %s space:\n",
+ from_scavenge ? "new" : "old");
if (from_scavenge) {
for (auto& buffer : not_yet_discovered_array_buffers_for_scavenge_) {
not_yet_discovered_array_buffers_.erase(buffer.first);
@@ -1930,6 +1939,7 @@ void Heap::TearDownArrayBuffers() {
void Heap::PrepareArrayBufferDiscoveryInNewSpace() {
+ fprintf(stderr, "prepare scavenge\n");
not_yet_discovered_array_buffers_for_scavenge_ =
live_array_buffers_for_scavenge_;
}
@@ -1942,6 +1952,7 @@ void Heap::PromoteArrayBuffer(Object* obj) {
if (!data) return;
// ArrayBuffer might be in the middle of being constructed.
if (data == undefined_value()) return;
+ fprintf(stderr, "promoting buffer %p\n", data);
DCHECK(live_array_buffers_for_scavenge_.count(data) > 0);
DCHECK(live_array_buffers_.count(data) > 0);
live_array_buffers_for_scavenge_.erase(data);
« no previous file with comments | « no previous file | src/runtime/runtime-typedarray.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698