Commit 7550fd35 authored by David Sanders's avatar David Sanders Committed by Commit Bot

Fix memory usage on V8 for transferred or closed ImageBitmap

Transfering ImageBitmap should decrement memory usage on the original
V8 isolate, and closing should decrement memory usage, otherwise
unnecessary GCs are triggered.

Change-Id: Iff36735ad67136650869da90a4bb07ca0632d4dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1700636Reviewed-by: default avatarYi Xu <yiyix@chromium.org>
Reviewed-by: default avatarMohammad Reza Zakerinasab <zakerinasab@chromium.org>
Reviewed-by: default avatarFernando Serboncini <fserb@chromium.org>
Commit-Queue: Yi Xu <yiyix@chromium.org>
Cr-Commit-Position: refs/heads/master@{#818109}
parent f057b20a
......@@ -245,6 +245,7 @@ David Leen <davileen@amazon.com>
David Manouchehri <david@davidmanouchehri.com>
David McAllister <mcdavid@amazon.com>
David Michael Barr <david.barr@samsung.com>
David Sanders <dsanders11@ucsbalum.com>
David Spellman <dspell@amazon.com>
David Valachovic <adenflorian@gmail.com>
Dax Kelson <dkelson@gurulabs.com>
......
......@@ -892,6 +892,7 @@ scoped_refptr<StaticBitmapImage> ImageBitmap::Transfer() {
DCHECK(!IsNeutered());
is_neutered_ = true;
image_->Transfer();
UpdateImageBitmapMemoryUsage();
return std::move(image_);
}
......@@ -902,7 +903,7 @@ void ImageBitmap::UpdateImageBitmapMemoryUsage() {
int32_t new_memory_usage = 0;
if (image_) {
if (!is_neutered_ && image_) {
base::CheckedNumeric<int32_t> memory_usage_checked = bytes_per_pixel;
memory_usage_checked *= image_->width();
memory_usage_checked *= image_->height();
......@@ -1052,6 +1053,7 @@ void ImageBitmap::close() {
return;
image_ = nullptr;
is_neutered_ = true;
UpdateImageBitmapMemoryUsage();
}
// static
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment