Merge "Move android_ids from .data.rel.ro to .rodata"

This commit is contained in:
Vic Yang
2018-12-06 06:04:23 +00:00
committed by Gerrit Code Review

View File

@@ -1108,9 +1108,14 @@ class AIDArrayGen(BaseGenerator):
_INCLUDE = '#include <private/android_filesystem_config.h>'
# Note that the android_id name field is of type 'const char[]' instead of
# 'const char*'. While this seems less straightforward as we need to
# calculate the max length of all names, this allows the entire android_ids
# table to be placed in .rodata section instead of .data.rel.ro section,
# resulting in less memory pressure.
_STRUCT_FS_CONFIG = textwrap.dedent("""
struct android_id_info {
const char *name;
const char name[%d];
unsigned aid;
};""")
@@ -1132,12 +1137,13 @@ class AIDArrayGen(BaseGenerator):
def __call__(self, args):
hdr = AIDHeaderParser(args['hdrfile'])
max_name_length = max(len(aid.friendly) + 1 for aid in hdr.aids)
print AIDArrayGen._GENERATED
print
print AIDArrayGen._INCLUDE
print
print AIDArrayGen._STRUCT_FS_CONFIG
print AIDArrayGen._STRUCT_FS_CONFIG % max_name_length
print
print AIDArrayGen._OPEN_ID_ARRAY