diff options
-rw-r--r-- | bitbake/lib/bb/event.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index f8acacd80d..4761c86880 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py | |||
@@ -257,14 +257,15 @@ def register(name, handler, mask=None, filename=None, lineno=None, data=None): | |||
257 | # handle string containing python code | 257 | # handle string containing python code |
258 | if isinstance(handler, str): | 258 | if isinstance(handler, str): |
259 | tmp = "def %s(e, d):\n%s" % (name, handler) | 259 | tmp = "def %s(e, d):\n%s" % (name, handler) |
260 | # Inject empty lines to make code match lineno in filename | ||
261 | if lineno is not None: | ||
262 | tmp = "\n" * (lineno-1) + tmp | ||
260 | try: | 263 | try: |
261 | code = bb.methodpool.compile_cache(tmp) | 264 | code = bb.methodpool.compile_cache(tmp) |
262 | if not code: | 265 | if not code: |
263 | if filename is None: | 266 | if filename is None: |
264 | filename = "%s(e, d)" % name | 267 | filename = "%s(e, d)" % name |
265 | code = compile(tmp, filename, "exec", ast.PyCF_ONLY_AST) | 268 | code = compile(tmp, filename, "exec", ast.PyCF_ONLY_AST) |
266 | if lineno is not None: | ||
267 | ast.increment_lineno(code, lineno-1) | ||
268 | code = compile(code, filename, "exec") | 269 | code = compile(code, filename, "exec") |
269 | bb.methodpool.compile_cache_add(tmp, code) | 270 | bb.methodpool.compile_cache_add(tmp, code) |
270 | except SyntaxError: | 271 | except SyntaxError: |