| Index: tools/binary_size/libsupersize/archive.py
|
| diff --git a/tools/binary_size/libsupersize/archive.py b/tools/binary_size/libsupersize/archive.py
|
| index 77e4c92facc664941adbc754d82d0eefbd9dff4b..3016dd96fb586a7c5eb4afccc1199b79869245d7 100644
|
| --- a/tools/binary_size/libsupersize/archive.py
|
| +++ b/tools/binary_size/libsupersize/archive.py
|
| @@ -143,22 +143,24 @@ def _NormalizeObjectPath(path):
|
|
|
|
|
| def _NormalizeSourcePath(path):
|
| + """Returns (is_generated, normalized_path)"""
|
| if path.startswith('gen/'):
|
| # Convert gen/third_party/... -> third_party/...
|
| - return path[4:]
|
| + return True, path[4:]
|
| if path.startswith('../../'):
|
| # Convert ../../third_party/... -> third_party/...
|
| - return path[6:]
|
| - return path
|
| + return False, path[6:]
|
| + return True, path
|
|
|
|
|
| def _SourcePathForObjectPath(object_path, source_mapper):
|
| + """Returns (is_generated, normalized_path)"""
|
| # We don't have source info for prebuilt .a files.
|
| if not os.path.isabs(object_path) and not object_path.startswith('..'):
|
| source_path = source_mapper.FindSourceForPath(object_path)
|
| if source_path:
|
| return _NormalizeSourcePath(source_path)
|
| - return ''
|
| + return False, ''
|
|
|
|
|
| def _ExtractSourcePaths(raw_symbols, source_mapper):
|
| @@ -167,7 +169,8 @@ def _ExtractSourcePaths(raw_symbols, source_mapper):
|
| for symbol in raw_symbols:
|
| object_path = symbol.object_path
|
| if object_path and not symbol.source_path:
|
| - symbol.source_path = _SourcePathForObjectPath(object_path, source_mapper)
|
| + symbol.generated_source, symbol.source_path = (
|
| + _SourcePathForObjectPath(object_path, source_mapper))
|
|
|
|
|
| def _ComputeAnscestorPath(path_list):
|
| @@ -231,9 +234,10 @@ def _ComputeAnscestorPathsAndNormalizeObjectPaths(
|
| num_path_mismatches += 1
|
|
|
| if source_mapper:
|
| - source_paths = [
|
| + tups = [
|
| _SourcePathForObjectPath(p, source_mapper) for p in object_paths]
|
| - symbol.source_path = _ComputeAnscestorPath(source_paths)
|
| + symbol.source_path = _ComputeAnscestorPath(t[1] for t in tups)
|
| + symbol.generated_source = all(t[0] for t in tups)
|
|
|
| object_paths = [_NormalizeObjectPath(p) for p in object_paths]
|
| symbol.object_path = _ComputeAnscestorPath(object_paths)
|
|
|