Skip to content

Commit

Permalink
reduce the number of cmd_args created
Browse files Browse the repository at this point in the history
Summary: Rather than creating a bunch of `cmd_args` only to append them to an existing `cmd_args`, instead just append the items to the single `cmd_args`.

Reviewed By: JakobDegen

Differential Revision: D69213311

fbshipit-source-id: 0f0413e99d8725c4ac75a688016f779d2e9f34da
  • Loading branch information
Jeremy Braun authored and facebook-github-bot committed Feb 7, 2025
1 parent 7d4a788 commit b36ad7a
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions prelude/linking/link_info.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -362,8 +362,12 @@ def _link_info_stripped_excluding_filelist_args(infos: LinkInfos):
info = infos.stripped or infos.default
return link_info_to_args(info, argument_type_filter = LinkInfoArgumentFilter("excluding_filelist"))

def link_info_to_metadata_args(info: LinkInfo) -> ArgLike:
return cmd_args(["version:" + meta.version for meta in info.metadata])
def link_info_to_metadata_args(info: LinkInfo, args: cmd_args | None = None) -> ArgLike:
if args == None:
args = cmd_args()
for meta in info.metadata:
args.add("version:" + meta.version)
return args

def _link_info_metadata_args(infos: LinkInfos):
info = infos.stripped or infos.default
Expand Down Expand Up @@ -673,9 +677,11 @@ def get_link_info(
def unpack_link_args_metadata(args: LinkArgs) -> ArgLike:
if args.tset != None:
return args.tset.infos.project_as_args("metadata")
ret = cmd_args()
if args.infos != None:
return cmd_args([link_info_to_metadata_args(info) for info in args.infos])
return cmd_args()
for info in args.infos:
link_info_to_metadata_args(info, ret)
return ret

def dedupe_dep_metadata(metadatas: list[DepMetadata]) -> list[DepMetadata]:
versions = set([m.version for m in metadatas])
Expand Down

0 comments on commit b36ad7a

Please sign in to comment.