OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Extracts native methods from a Java file and generates the JNI bindings. | 6 """Extracts native methods from a Java file and generates the JNI bindings. |
7 If you change this, please run and update the tests.""" | 7 If you change this, please run and update the tests.""" |
8 | 8 |
9 import collections | 9 import collections |
10 import optparse | 10 import optparse |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
165 while param[-2:] == '[]': | 165 while param[-2:] == '[]': |
166 prefix += '[' | 166 prefix += '[' |
167 param = param[:-2] | 167 param = param[:-2] |
168 # Generic? | 168 # Generic? |
169 if '<' in param: | 169 if '<' in param: |
170 param = param[:param.index('<')] | 170 param = param[:param.index('<')] |
171 if param in pod_param_map: | 171 if param in pod_param_map: |
172 return prefix + pod_param_map[param] | 172 return prefix + pod_param_map[param] |
173 if '/' in param: | 173 if '/' in param: |
174 # Coming from javap, use the fully qualified param directly. | 174 # Coming from javap, use the fully qualified param directly. |
175 return 'L' + param + ';' | 175 return prefix + 'L' + param + ';' |
Ami GONE FROM CHROMIUM
2013/01/28 19:49:45
I suspect you meant to not include this file in th
dwkang1
2013/01/29 03:58:48
I just added this to check this fix works well wit
| |
176 for qualified_name in (object_param_list + | 176 for qualified_name in (object_param_list + |
177 [JniParams._fully_qualified_class] + | 177 [JniParams._fully_qualified_class] + |
178 JniParams._inner_classes): | 178 JniParams._inner_classes): |
179 if (qualified_name.endswith('/' + param) or | 179 if (qualified_name.endswith('/' + param) or |
180 qualified_name.endswith('$' + param.replace('.', '$')) or | 180 qualified_name.endswith('$' + param.replace('.', '$')) or |
181 qualified_name == 'L' + param): | 181 qualified_name == 'L' + param): |
182 return prefix + qualified_name + ';' | 182 return prefix + qualified_name + ';' |
183 | 183 |
184 # Is it from an import? (e.g. referecing Class from import pkg.Class; | 184 # Is it from an import? (e.g. referecing Class from import pkg.Class; |
185 # note that referencing an inner class Inner from import pkg.Class.Inner | 185 # note that referencing an inner class Inner from import pkg.Class.Inner |
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1008 input_file = options.input_file | 1008 input_file = options.input_file |
1009 output_file = None | 1009 output_file = None |
1010 if options.output_dir: | 1010 if options.output_dir: |
1011 root_name = os.path.splitext(os.path.basename(input_file))[0] | 1011 root_name = os.path.splitext(os.path.basename(input_file))[0] |
1012 output_file = os.path.join(options.output_dir, root_name) + '_jni.h' | 1012 output_file = os.path.join(options.output_dir, root_name) + '_jni.h' |
1013 GenerateJNIHeader(input_file, output_file, options.namespace) | 1013 GenerateJNIHeader(input_file, output_file, options.namespace) |
1014 | 1014 |
1015 | 1015 |
1016 if __name__ == '__main__': | 1016 if __name__ == '__main__': |
1017 sys.exit(main(sys.argv)) | 1017 sys.exit(main(sys.argv)) |
OLD | NEW |