gn2bp: add throw_if_absent parameter to some helper functions

This is much more explicit and should hopefully help us catch errors /
upstream changes early.

Test: none
Change-Id: I4379bbf35d64c5f922a34cdd2f24c6bf03983a94
This commit is contained in:
Patrick Rohr
2022-11-30 19:44:10 -08:00
parent 872a2816a0
commit f0abead137

View File

@@ -651,26 +651,28 @@ class BaseActionSanitizer():
i = self.target.args.index(arg)
return self.target.args[i + 1]
def _set_value_arg(self, arg, value):
# Fail silently
if not self._has_arg(arg):
# used to check whether a function call should cause an error when an arg is
# missing.
def _should_fail_silently(self, arg, throw_if_absent):
return not throw_if_absent and not self._has_arg(arg)
def _set_value_arg(self, arg, value, throw_if_absent = True):
if self._should_fail_silently(arg, throw_if_absent):
return
assert(self._is_value_arg(arg))
i = self.target.args.index(arg)
self.target.args[i + 1] = value
def _update_value_arg(self, arg, func):
# Fail silently
if not self._has_arg(arg):
def _update_value_arg(self, arg, func, throw_if_absent = True):
if self._should_fail_silently(arg, throw_if_absent):
return
self._set_value_arg(arg, func(self._get_value_arg(arg)))
def _set_arg_at(self, position, value):
self.target.args[position] = value
def _delete_arg(self, arg):
# Fail silently
if not self._has_arg(arg):
def _delete_arg(self, arg, throw_if_absent = True):
if self._should_fail_silently(arg, throw_if_absent):
return
assert(not self._is_list_arg(arg))
hasValue = self._is_value_arg(arg)
@@ -712,13 +714,13 @@ class WriteBuildFlagHeaderSanitizer(BaseActionSanitizer):
class JniGeneratorSanitizer(BaseActionSanitizer):
def get_args(self):
self._update_value_arg('--jar_file', self._sanitize_filepath)
self._update_value_arg('--jar_file', self._add_location_tag)
self._update_value_arg('--jar_file', self._sanitize_filepath, False)
self._update_value_arg('--jar_file', self._add_location_tag, False)
if self._has_arg('--jar_file'):
self._append_arg('--javap', '$$(find out/.path -name javap)')
self._update_value_arg('--output_dir', self._sanitize_filepath)
self._update_value_arg('--includes', self._sanitize_filepath)
self._delete_arg('--prev_output_dir')
self._update_value_arg('--includes', self._sanitize_filepath, False)
self._delete_arg('--prev_output_dir', False)
return super().get_args()