Call destructors during reset to avoid memory leak

Otherwise, the following ASAN test would fail:

out/ASAN/dm --config t8888 -m savelayer_initfromprev

Bug: skia:
Change-Id: I464dd419c64dcb06197169cca51253f26c44e93e
Reviewed-on: https://skia-review.googlesource.com/124053
Commit-Queue: Yuqian Li <liyuqian@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Yuqian Li <liyuqian@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
This commit is contained in:
Yuqian Li 2018-04-26 15:41:34 -04:00 committed by Skia Commit-Bot
parent be9aa8d006
commit 7d4a575206

View File

@ -146,6 +146,7 @@ private:
}
SkASSERT(fSize < MAX_QUEUE_SIZE);
SkIRect drawBounds = fDevice->transformDrawBounds<useCTM>(rawDrawBounds);
fElements[fSize].~DrawElement(); // release previous resources to prevent memory leak
new (&fElements[fSize++]) DrawElement(fDevice, std::move(fn), drawBounds);
fTasks->addColumn();
}