aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-11-02Merge remote-tracking branch 'aosp/upstream-main' into devKelvin Zhang
This performs a merge on upstream zucchini. Change-Id: I8a4844407558d6f1e439939ee634fe17ed7a4e55
2021-10-29[Zucchini]: Convert OffsetMapper to dequeEtienne Pierre-doray
push_back with vector tends to cause higher memory peak than necessary. Changing deque is a simple change that reduces memory peak at the cost of loss of guarantee (contiguous storage). This has no significant impact on cpu time. On MacBook pro 2017 Before: Zucchini.TotalTime 9.95879 s Zucchini.TotalTime 9.11599 s Zucchini.TotalTime 9.33174 s After: Zucchini.TotalTime 10.5557 s Zucchini.TotalTime 8.78599 s Zucchini.TotalTime 8.95282 s Bug: 1262150 Change-Id: I078a671832f2a33d5e1a3d9d971bff66d4179b89 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3247092 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/main@{#936371} NOKEYCHECK=True GitOrigin-RevId: 7abe67cf21e8f30c0ff2499410c8d57aae9bf8fc
2021-10-28[Zucchini]: Add patch version.Etienne Pierre-doray
This is a breaking change to zucchini patch format: Zucchini 1.0, see changelog. Add major/minor patch-wide version, and element version. Also add VerifyPatch() API and command line option to verify patch compatibility. Design: go/zucchini-versions Bug: 1231882 Change-Id: I19f1fbe2ee866c23f0814ffe6a912fb72812edbc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3140224 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org> Cr-Commit-Position: refs/heads/main@{#936096} NOKEYCHECK=True GitOrigin-RevId: 559d77a9741428a48add017d389d104e431e6de7
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-09-08Fix some instances of -Wshadow.Peter Kasting
Bug: 794619 Change-Id: Ic842b420403fe932525fb5878d2e1d4e81577c32 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141022 Commit-Queue: Peter Kasting <pkasting@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/main@{#919333} NOKEYCHECK=True GitOrigin-RevId: bef7bc52a0e081b382fd660a2ea3adc49500cac3
2021-09-07[Zucchini] DEX Version 39 Supportckitagawa
DEX Version 39 added: * const-method-handle containing a method_handle@BBBB reference * const-method-type containing a proto@BBBB reference This CL * Updates CodeToProtoId for const-method-type * Adds CodeToMethodHandle and WriteMethodHandle Fuzzed about 500k iterations locally and uploaded new samples to the clusterfuzz bucket. 97% coverage. Manually tested on hand-written dex files using smali as well as the dexdump test corpus. Bug: 1231885 Change-Id: Id8ab09ac8d3331902c5e6f92ac39ebd26d36e79b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3060660 Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#918948} NOKEYCHECK=True GitOrigin-RevId: d08c50abf7b49f3a5b97a03d5bb79bce9fdb7fad
2021-09-03[zucchini]: Simplify DisassemblerElfArm read/write functions.Etienne Pierre-doray
Use template read/write functions instead of repeated versions. Change-Id: Ie87d307ebd7b297fe802216fe07aa820d7b1fa4d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3082253 Reviewed-by: Samuel Huang <huangs@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#918237} NOKEYCHECK=True GitOrigin-RevId: d64aec31e8bb5e1acb9a2da1e6e92fbd5e59d5f6
2021-09-03[Zucchini] DEX Version 38 Supportckitagawa
DEX Version 38 added: * CallSiteId & CallSite items * MethodHandle items * invoke-polymorphic containing meth@BBBB and proto@HHHH references * invoke-custom containing a call_site@BBBB reference This CL: * Adds CallSiteIdToCallSite * Adds MethodHandleTo{MethodId, FieldId} * Adds CodeToProtoId16 for invoke-polymorphic * Adds CodeToCallSiteId16 and WriteCallSiteId16 for invoke-custom * Updates CodeToMethodId16 for invoke-polymorphic Fuzzed about 1 million iterations locally and uploaded new samples to the clusterfuzz bucket. 97% coverage. Manually tested on hand-written dex files using smali as well as the dexdump test corpus. Bug: 1231885 Change-Id: Icd885be2cfd433d0befe689d16c4a1e99573ca6c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3060745 Reviewed-by: Samuel Huang <huangs@chromium.org> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org> Cr-Commit-Position: refs/heads/main@{#918119} NOKEYCHECK=True GitOrigin-RevId: 9cc600ef0b60ff1ec76683a2bfb98a6bdbb05d1e
2021-08-25Merge "Make zucchini compile with puffin" am: 8dc0c4b1f5Tianjie Xu
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1804859 Change-Id: Id7a836436fcb9b27ee1c9cc9edb17c8ac57d7ceb
2021-08-25Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/zucchini" am: 9a5bb38ec1Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1804267 Change-Id: I5f03cf680ab86bb1d3e965e2f238573efa5676c2
2021-08-25Merge "Make zucchini compile with puffin"Tianjie Xu
2021-08-25Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/zucchini"Treehugger Robot
2021-08-23Make zucchini compile with puffinTianjie
Test: build Change-Id: Ifa02e31a68cca26876f6b860a0c8701c4a1be497
2021-08-23Create a symlink for each header file am: 2af699e0b8Kelvin Zhang
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1802617 Change-Id: I37d66d5515ded0ada262545be92bab2c69b6e9cb
2021-08-22Create a symlink for each header fileKelvin Zhang
When marking libzucchini as recovery_available, build system tries to glob all header files in exported include dir. This fails because the symlink points to a parent directory, which also contains the symlink itself. Therefore the glob fails due to infinite recursion. Test: th Bug: 194237829 Change-Id: I49eb64b2c31f3446f17db6139803f81e2a39148b
2021-08-20[LSC] Add LOCAL_LICENSE_KINDS to external/zucchiniBob Badour
Added legacy_notice to: Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Merged-in: I16d1c2fb3282ec8317c8d48bf2816e922ab98be8 Change-Id: I5283ad5beb8cc403269961181e69cbfcd2410091
2021-08-21Link liblog/libbase statically am: 8d806d16b8Kelvin Zhang
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1802618 Change-Id: I01662dc36cd8b640b2dbf00761efb346c54248fa
2021-08-20Link liblog/libbase staticallyKelvin Zhang
zucchini might need to run on host w/o android repo(for testing purposes). Therefore statically link the binary. Test: th Change-Id: Ic3847cbf4694418fa43270580596bf7d5cc70f8e
2021-08-19Compile zucchini binary am: 539c01b948Kelvin Zhang
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1802897 Change-Id: Id8702c3328a7db881f0ede4a2833ecfd1ec609aa
2021-08-19Get zucchini to compile w/o code transformation hack am: ddcf1d921aKelvin Zhang
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1802898 Change-Id: I301b7eb3e68c6409993ad27758686e0fb3385d3f
2021-08-19Compile zucchini binaryKelvin Zhang
Test: th Change-Id: I43210076c7db6df175ba29b128657552e0cff286
2021-08-19Get zucchini to compile w/o code transformation hackKelvin Zhang
Test: th Change-Id: I9b2beec4ee34d1ba23c1af24dec3f4b9169d6bd4
2021-08-18Get zucchini to compile on AOSP am: 011d854311Kelvin Zhang
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1799408 Change-Id: I21e4ab8991183811dd932abcfdd4df656700e18a
2021-08-18Add necessary metadata files am: ae55a30d74Kelvin Zhang
Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1799407 Change-Id: Ice09dd23e63de36cfcdc98e74cc252285e0fcc58
2021-08-18Merge remote-tracking branch 'remotes/aosp/upstream-main' into clean am: ↵Tianjie
fd73dddb6b Original change: https://android-review.googlesource.com/c/platform/external/zucchini/+/1799387 Change-Id: I16a51c04f7c5ba6053b901724606afd9f595e265
2021-08-17Get zucchini to compile on AOSPKelvin Zhang
Test: mm Change-Id: Ia030273fcc71d0920f2c62327a08903e5e27a544
2021-08-17Add necessary metadata filesKelvin Zhang
Change-Id: I10d1bd2f4e598f39ca459893677f88413db05c7d
2021-08-17Merge remote-tracking branch 'remotes/aosp/upstream-main' into cleanTianjie
Test: N/A Change-Id: I79a86dd69be09f84d5c5d58298916454a572d3d6
2021-08-13[Zucchini] Replace DISALLOW_* macros with =delete versions.Samuel Huang
This CL replaces * 30 instances of DISALLOW_COPY_AND_ASSIGN(Foo), * 1 instance of DISALLOW_IMPLICIT_CONSTRUCTORS(Foo), in Zucchini with: Foo() = delete; // DISALLOW_IMPLICIT_CONSTRUCTORS only. Foo(const Foo&) = delete; const Foo& operator=(const Foo&) = delete; All base/macros.h includes are removed. Bug: 1010217 Change-Id: I13b3d5ed04f04e5c0b209d59e70ac018c5f4938c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3093198 Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#911751} NOKEYCHECK=True GitOrigin-RevId: ba0e1f56993c535faa59e2ca02c371bae2ebbb20
2021-08-09Initial empty repositoryInna Palant
2021-08-05[Zucchini] Add ARM support for ELF files.Samuel Huang
This CL enables ARM-ELF (AArch32 and AArch64) support in Zucchini. * Define ARM {AArch32, AArch64}ReferenceType. * Add Rel32Finder{Arm, AArch32, AArch64} (with tests) to use previously-added ARM disassembly code to extract rel32 references. * Add DisassemblerElf{Arm, AArch32, AArch64} to parse ARM ELF files and create reference readers / writers, and reference groups. * For AArch32: Add heuristic detection of ARM vs. Thumb2 mode. * Add IsTargetOffsetInElfSectionList() (with tests) to help ARM reject false positive references. * Add ReferenceBytesMixerElfArm to remove redundant reference target information from bytewise correction data. Bug: 918867 Change-Id: I1e6d3d8b8d174c85a3d44ca6d642b7ff0bd6a6a6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2922822 Commit-Queue: Samuel Huang <huangs@chromium.org> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/master@{#908913} NOKEYCHECK=True GitOrigin-RevId: 85cc8a596f183487b395a59e80b2f654f241ab2c
2021-08-03[Zucchini] Disassemblers: Fix abs32 width for ELF; cleanup Traits template ↵Samuel Huang
param. Previously DisassemblerElfIntel<TRAITS>::ParseExecSection() passes a hard-coded 4 to Abs32GapFinder's |abs32_width| CTOR param. This is wrong for X64, which has abs32 pointer width of 8 bytes. This can lead to lower quality rel32 extraction. This CL fixes the above by replacing 4 with Traits::kVAWidth, and also cleans up TRAITS / Traits template parameter for Disassembler: * For template param, "template <class TRAITS>" is used throughout. * This means function params needs to use TRAITS. * For usage, each Disassembler class with TRAITS declares using Traits = TRAITS; (and variant) and uses Traits in the body of all functions. Reason: Specialized derive classes won't have TRAITS available , so: * Function params can use DisassemblerBase::Traits. * Function bodies can use Traits. * For consistency, even if TRAITS is available, still use Traits. Bug: 1233831 Change-Id: Ie796c867fb238eca462b2fb6b4e68a965996c25a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3063919 Commit-Queue: Samuel Huang <huangs@chromium.org> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/master@{#908261} NOKEYCHECK=True GitOrigin-RevId: 294860c47cd3678c46422ce57da366724e1dc629
2021-07-29Fix some instances of -Wdeprecated-copy: components/Peter Kasting
Bug: 1213098 Change-Id: Ib769095b1d2cd110f8d458bc95a62afecc070cce Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3056862 Auto-Submit: Peter Kasting <pkasting@chromium.org> Commit-Queue: Cait Phillips <caitkp@chromium.org> Reviewed-by: Cait Phillips <caitkp@chromium.org> Cr-Commit-Position: refs/heads/master@{#906817} NOKEYCHECK=True GitOrigin-RevId: f1dcb7053e7f86ce4821f71fc9da98ce59d37035
2021-07-28[automated] Drop needless <vector> includes in /components/zucchiniVictor Hugo Vianna Silva
This is among the most costful includes for the Chromium build. https://commondatastorage.googleapis.com/chromium-browser-clang/include-analysis.html This batch of CLs attempts to detect and remove leftover includes with a heuristic: choose files which don't contain 'std::vector' or 'push_back'. This doesn't really guarantee that std::vector is not being used, as shown by the snippets below, so please review carefully. ``` auto v = GetVector(); MyVectorAlias v = GetVector(); my_vector_ = GetVector(); ``` This CL was uploaded by git cl split. R=etiennep@chromium.org Bug: 1233968 Change-Id: I4f84f26bfdf81c3997cc939c3d8a692e17ddde9a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3059580 Auto-Submit: Victor Vianna <victorvianna@google.com> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/master@{#906383} NOKEYCHECK=True GitOrigin-RevId: 9057c66a34aedd20d4eced2562f80c8e50e8771e
2021-07-25[Zucchini] Cleanup before adding ARM support for ELF files.Samuel Huang
This CL performs some code cleanup to prepare for main CL that adds ARM support for ELF files (https://crrev.com/c/2922822): * Rename ARM32 / Arm32 to AArch32. * Replace DISALLOW_COPY_AND_ASSIGN for affected files. Bug: 918867 Change-Id: I0e96b66fb29e9d1a35f9d7fac65755fbeda4831f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3044420 Commit-Queue: Samuel Huang <huangs@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/master@{#904357} NOKEYCHECK=True GitOrigin-RevId: 33679d241940ef6221b68d3e5daef606d7dd767d
2021-07-25Remove unneeded includes of optional.h from headers.Lei Zhang
Headers that do not reference absl::optional do not need to include third_party/abseil-cpp/absl/types/optional.h. Bug: 1227131 Change-Id: Ibe634116da4a61260936be5b624fb1b9895505cf Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3036368 Reviewed-by: Nico Weber <thakis@chromium.org> Owners-Override: Nico Weber <thakis@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#903283} NOKEYCHECK=True GitOrigin-RevId: 4f52073ed256dfeffdaca25c90dcc4c2145d78a1
2021-07-25More IWYU fixes in advance of removing #includesPeter Kasting
Bug: 242216 Change-Id: I4ef4609a62af06cf5e0bc519e761d8c87579bf2f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3014801 Commit-Queue: Peter Kasting <pkasting@chromium.org> Commit-Queue: danakj <danakj@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: danakj <danakj@chromium.org> Owners-Override: danakj <danakj@chromium.org> Cr-Commit-Position: refs/heads/master@{#899554} NOKEYCHECK=True GitOrigin-RevId: f2279caeb3f716287cddf465d9ee9ecf52853de9
2021-07-25Revert "Remove some unnecessary #includes."Findit
This reverts commit e91c91c3e6471923fd83dbce0a44f7317f07393c. Reason for revert: Note: It is reported that sheriffs cannot submit CL created by Findit (crbug.com/1187426). A workaround in the mean time is to abandon this CL and create another revert CL. Findit (https://goo.gl/kROfz5) identified CL at revision 898977 as the culprit for failures in the build cycles as shown on: https://analysis.chromium.org/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtL2U5MWM5MWMzZTY0NzE5MjNmZDgzZGJjZTBhNDRmNzMxN2YwNzM5M2MM Sample Failed Build: https://ci.chromium.org/b/8842407444966732864 Sample Failed Step: compile Original change's description: > Remove some unnecessary #includes. > > According to > https://commondatastorage.googleapis.com/chromium-browser-clang/include-analysis.html > these were responsible for 1,460,113,428 bytes of input to the compiler, > or roughly 0.58% of the input used to build Chrome. > > Bug: 242216 > Change-Id: I1dd0a5fd3fcceb2da9bcf3dbae40e18590faf145 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3009975 > Auto-Submit: Peter Kasting <pkasting@chromium.org> > Reviewed-by: danakj <danakj@chromium.org> > Owners-Override: danakj <danakj@chromium.org> > Commit-Queue: Peter Kasting <pkasting@chromium.org> > Cr-Commit-Position: refs/heads/master@{#898977} Change-Id: I54080e564838f77ce45de045f1487a6695f46647 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 242216 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3010718 Reviewed-by: Maggie Cai <mxcai@chromium.org> Owners-Override: Maggie Cai <mxcai@chromium.org> Commit-Queue: Maggie Cai <mxcai@chromium.org> Cr-Commit-Position: refs/heads/master@{#898979} NOKEYCHECK=True GitOrigin-RevId: 53dea79d16778f8fc1bfe54ac8f450e5dc146dac
2021-07-25Remove some unnecessary #includes.Peter Kasting
According to https://commondatastorage.googleapis.com/chromium-browser-clang/include-analysis.html these were responsible for 1,460,113,428 bytes of input to the compiler, or roughly 0.58% of the input used to build Chrome. Bug: 242216 Change-Id: I1dd0a5fd3fcceb2da9bcf3dbae40e18590faf145 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3009975 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: danakj <danakj@chromium.org> Owners-Override: danakj <danakj@chromium.org> Commit-Queue: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/master@{#898977} NOKEYCHECK=True GitOrigin-RevId: e91c91c3e6471923fd83dbce0a44f7317f07393c
2021-07-25Swap from base/stl_util.h to cxx20_erase.h in components/.Lei Zhang
base::Erase() and base::EraseIf() have been moved to base/containers/cxx20_erase.h, so .cc files that use these functions, but no other function from base/stl_util.h, can directly include cxx20_erase.h and not stl_util.h. Bug: 1211125 Change-Id: Ia8f213f1136ac4c5278cd096b1270002884b556d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2994779 Reviewed-by: Colin Blundell <blundell@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#897400} NOKEYCHECK=True GitOrigin-RevId: a6fa14833a6d44c3a3171696f5dbd229d6fdf006
2021-07-25Fix -Wc++11-narrowing: /components/zucchiniPeter Kasting
This CL was uploaded by git cl split. R=wfh@chromium.org Bug: 1216696 Change-Id: I78d558e20d5e4056b4470ff6a9b9395f72a61631 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2975779 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Will Harris <wfh@chromium.org> Commit-Queue: Will Harris <wfh@chromium.org> Cr-Commit-Position: refs/heads/master@{#894795} NOKEYCHECK=True GitOrigin-RevId: 3a9b13d917c7dc2de170fdbd22fa19ac376daa8d
2021-07-25Add explicit type conversions where necessary: components/Peter Kasting
These are cases that are implicitly narrowing today, and must do so explicitly in order to enable -Wc++11-narrowing. No behavior change intended. Bug: 1216696 Change-Id: Ic8f194bb0ab9a247d3e84cc59a687285cdb96d48 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2947886 Auto-Submit: Peter Kasting <pkasting@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#890878} NOKEYCHECK=True GitOrigin-RevId: 379c52be13901beae4f773fe9e8054ad42a186c4
2021-07-25[Zucchini] Simplify Abs32GapFinder and Rel32Finder.Samuel Huang
Previously, using Abs32GapFinder / Rel32Finder to visit gaps / rel32 references involves calling a getter that returns an optional<> value whose emptiness indicates end of iteration. The code to use this looks like: for (auto value = finder.GetNext(); value; value = finder.GetNext()) { ... } This CL abandons optional<> usage and caches the results in Finders, thereby removing repetition in iteration code: while (finder.FindNext() { auto value = finder.GetValue(); ... } Additional changes: * Incorporate AddressTranslator into Rel32Finder to offload translation work from callers. * Add tests to integrate Abs32GapFinder with Rel32Finder. * Stylize test data to better show overlap between abs32 references with disassembled test data. Bug: 918867 Change-Id: Id044b67550f81c3f46ab383c5b6200906f56ca4e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2918113 Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#888049} NOKEYCHECK=True GitOrigin-RevId: 89023e1c511e599e6aeaf0b8d80e3efa2e730b5b
2021-07-25Swap from base/stl_util.h to cxx17_backports.h in components/ .cc files.Lei Zhang
base::size() has been moved to base/cxx17_backports.h, so .cc files that use base::size(), but no other function from base/stl_util.h, can directly include base/cxx17_backports.h and not base/stl_util.h. Bug: 1210983 Change-Id: I445378492ab1193ea76ca0c0b9958e9cb9c4ca0f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2915464 Reviewed-by: Colin Blundell <blundell@chromium.org> Reviewed-by: Greg Kerr <kerrnel@chromium.org> Commit-Queue: Greg Kerr <kerrnel@chromium.org> Auto-Submit: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#886365} NOKEYCHECK=True GitOrigin-RevId: d073f65fc063f417cfabba9d5f5fbe4632320e05
2021-07-25build: Convert components/zucchini/fuzzers/BUILD.gn to py3Nico Weber
Bug: 1205597 Change-Id: I19c9513db7587d843a4cc8edc9b7267992f65a2c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2897540 Auto-Submit: Nico Weber <thakis@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/master@{#883586} NOKEYCHECK=True GitOrigin-RevId: 27cc62076c62d78f6d67edaa93453aebd667d130
2021-07-25components: Replace base::Optional and friends with absl counterpartsAnton Bikineev
This replaces: - base::Optional -> absl::optional - include "base/optional.h" -> include "third_party/abseil-cpp/absl/types/optional.h" - base::nullopt -> absl::nullopt - base::make_optional -> absl::make_optional Bug: 1202909 Change-Id: If697b7bf69b199c1796f873eedca3359cdb48c64 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2897151 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Owners-Override: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/master@{#883296} NOKEYCHECK=True GitOrigin-RevId: 1156b5f891de178171e71b9221a96bef1ced3d3b
2021-07-25Remove unneeded base/files/file_path.h includes in headers.Lei Zhang
Headers that do not reference base::FilePath do not need to include base/files/file_path.h. This reduces the amount of data necessary to build the chrome target by 175 MB. Bug: 242216 Change-Id: I7abd8d9fc1862a2dca11292719ab5b9146ab04d1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2878909 Reviewed-by: Peter Boström <pbos@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Owners-Override: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#880501} NOKEYCHECK=True GitOrigin-RevId: 12341b14c8ec39ae08af60a9d40cfeb0b9e748db
2021-07-25Delete unused STL includes from components/ headers.Lei Zhang
Headers that do not contain "std::" do not need STL includes. This CL is mechanically generated as follows: INCL="algorithm|array|list|map|memory|queue|set|string|utility|vector" git ls-files components | grep '\.h$' | xargs grep -L std:: | \ xargs grep -El "#include <($INCL)>$" > to_process.txt INCL_ESCAPED="$(echo $INCL|sed 's/|/\\|/g')" cat to_process.txt | xargs sed -i "/^#include <\($INCL_ESCAPED\)>$/d" cat to_process.txt | xargs sed -i '/^$/N;/^\n$/D' Bug: 1200833 Change-Id: I3dd65ac6d5b7d2542df285d752af0bd7a9bd965d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2845086 Reviewed-by: Colin Blundell <blundell@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#877818} NOKEYCHECK=True GitOrigin-RevId: 0bf0ff5b03feb5f59c0dddefdb18ac1a9f764aef
2021-07-25Remove unneeded base/strings/stringprintf.h includes.Lei Zhang
List of files to delete from generated using the following command: git grep -l base/strings/stringprintf.h | \ xargs grep -L 'StringPrint[fV]' | xargs grep -L StringAppend | \ grep -E '(cc|mm|h)$' Change-Id: Ibc72245f08730b4d25283e2d966235b61513c7ae Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2849392 Reviewed-by: Peter Boström <pbos@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Owners-Override: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#876365} NOKEYCHECK=True GitOrigin-RevId: b49a213e324277a5539cc808e46cfa982502a81d
2021-07-25[zucchini] Use deque to store rel32_locations.Etienne Pierre-doray
An optimization to reduce zucchini peak memory footprint. MakeReadRel32 bring peak memory unnecessarily high due to std::vector allocation heuristic, along with shrink_to_fit which temporarily forces additional allocation: in the order of 32MB+19MB while only 19MB was needed. deque puts less memory pressure than vector since it doesn't have contiguous requirement and shrink_to_fit can be done in-place. deque Zucchini.PeakPagefileUsage 738876 KiB Zucchini.PeakPagefileUsageChange 717436 KiB Zucchini.PeakWorkingSetSize 632284 KiB Zucchini.PeakWorkingSetSizeChange 623464 KiB Zucchini.TotalTime 9.40955 s vector Zucchini.PeakPagefileUsage 755252 KiB Zucchini.PeakPagefileUsageChange 733820 KiB Zucchini.PeakWorkingSetSize 632660 KiB Zucchini.PeakWorkingSetSizeChange 624616 KiB Zucchini.TotalTime 10.3224 s Bug: 1194281 Change-Id: Ic5a7f529d4465241990dbe27a485a67b32ab44b1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2830864 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#873383} NOKEYCHECK=True GitOrigin-RevId: 52f908bb699f8d106a1c43e10257759cce90500d