aboutsummaryrefslogtreecommitdiff
path: root/target_pool.h
AgeCommit message (Collapse)Author
2021-09-14[zucchini]: Convert TargetPool to deque.Etienne Pierre-doray
shrink_to_fit with vector tends to cause high memory peak. Changing deque is a simple change that reduces memory peak at the cost of loss of guarantee (contiguous storage). Similar to https://chromium-review.googlesource.com/c/chromium/src/+/2830864 which dramatically reduced crach rate https://crash.corp.google.com/browse?q=product_name%3D%27Chrome%27+AND+EXISTS+%28SELECT+1+FROM+UNNEST%28CrashedStackTrace.StackFrame%29+WHERE+FunctionName%3D%27installer%3A%3AArchivePatchHelper%3A%3AZucchiniEnsemblePatch%27%29+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BOut+of+Memory%5D+zucchini%3A%3ADisassemblerWin32%3Czucchini%3A%3AWin32X64Traits%3E%3A%3AParseAndStoreRel32%27 An alternative is to look ahead to determine vector size. The is hard to do with SortAndUniquify, which performs in-place modifications. Bug: 1247633 Change-Id: I624c360ee1f2bf18bd584d1aafdde0f0c2ffb61e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3149810 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/main@{#921292} NOKEYCHECK=True GitOrigin-RevId: 380557e6b592531eb360513791968dd7ab0ee77d
2021-07-23[Zucchini]: Fix bugs found by Apply fuzzerCalder Kitagawa
Located by fuzzing ZTF Apply (WIP): https://chromium-review.googlesource.com/c/chromium/src/+/1072231 Found two fatal errors: - OffsetForKey always assumes a key is valid however, the validity of the key is not checked prior to the caller invoking the method. The caller also had no way to check validity if it was external to TargetPool. Fix: Add a method to check for key validity ahead of calling OffsetForKey. - ConvertToTargetLineCol for absolute references had a logic bug that resulted in attempting to dereference an invalid base::Optional Fix: Change the logic to avoid issue. Bug: 835341 Change-Id: I99c91741eef41dfaa3036af8e708eb3f0d5ca84a Reviewed-on: https://chromium-review.googlesource.com/1072272 Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#561642} NOKEYCHECK=True GitOrigin-RevId: 4e3e49f97119d48ba6c048e46aa9671d1cd21d17
2021-07-23[Zucchini] Move Zucchini from /chrome/installer/ to /components/.Samuel Huang
(Use "git log --follow" to see older revisions of files). /components/ is the most logical place to put Zucchini, which only depends on /base and /testing/gtest. This move also enables Zucchini to be used by the Component Updater. Details: - Move all files; run the following to change deps and guards: sed 's/chrome\/installer/components/' *.cc *.h -i sed 's/CHROME_INSTALLER/COMPONENTS/' *.cc *.h -i - Sorting works out pretty well! - Change all 'chrome/installer/zucchini' to 'components/zucchini' throughout other parts of the repo; sort if necessary. - Fix 6 'git cl lint' errors. - Change 1 Bind() usage to BindRepeated(). - Update OWNER. Bug: 729154 Change-Id: I50c5a7d411ea85f707b5994ab319dfb2a1acccf7 Reviewed-on: https://chromium-review.googlesource.com/954923 Reviewed-by: Greg Thompson <grt@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#542857} NOKEYCHECK=True GitOrigin-RevId: 577ef6c435e8d43be6e3e60ccbcbd1881780f4ec