| Index: base/android/jni_generator/jni_generator.py
|
| diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py
|
| index 35a75101088c076c421a274dd9637830968eb2b3..1196f76285ed3ba11e2581701ab403146a04a69d 100755
|
| --- a/base/android/jni_generator/jni_generator.py
|
| +++ b/base/android/jni_generator/jni_generator.py
|
| @@ -337,8 +337,11 @@ class JniParams(object):
|
| def RemapClassName(class_name):
|
| """Remaps class names using the jarjar mapping table."""
|
| for old, new in JniParams._remappings:
|
| - if old in class_name:
|
| + if old.endswith('**') and old[:-2] in class_name:
|
| + return class_name.replace(old[:-2], new, 1)
|
| + if '*' not in old and class_name.endswith(old):
|
| return class_name.replace(old, new, 1)
|
| +
|
| return class_name
|
|
|
| @staticmethod
|
| @@ -346,17 +349,26 @@ class JniParams(object):
|
| """Parse jarjar mappings from a string."""
|
| JniParams._remappings = []
|
| for line in mappings.splitlines():
|
| - keyword, src, dest = line.split()
|
| - if keyword != 'rule':
|
| + rule = line.split()
|
| + if rule[0] != 'rule':
|
| continue
|
| - assert src.endswith('.**')
|
| - src = src[:-2].replace('.', '/')
|
| + _, src, dest = rule
|
| + src = src.replace('.', '/')
|
| dest = dest.replace('.', '/')
|
| - if dest.endswith('@0'):
|
| - JniParams._remappings.append((src, dest[:-2] + src))
|
| + if src.endswith('**'):
|
| + src_real_name = src[:-2]
|
| else:
|
| - assert dest.endswith('@1')
|
| + assert not '*' in src
|
| + src_real_name = src
|
| +
|
| + if dest.endswith('@0'):
|
| + JniParams._remappings.append((src, dest[:-2] + src_real_name))
|
| + elif dest.endswith('@1'):
|
| + assert '**' in src
|
| JniParams._remappings.append((src, dest[:-2]))
|
| + else:
|
| + assert not '@' in dest
|
| + JniParams._remappings.append((src, dest))
|
|
|
|
|
| def ExtractJNINamespace(contents):
|
|
|