diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-08-21 16:25:07 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-08-22 13:59:57 +0100 |
| commit | 21773a997a2a8ece3b9549c5940468c5a889ac40 (patch) | |
| tree | c5de5f77369519968552d4dbf7cc2f4e51a91f75 | |
| parent | 1a7069e97b9ec208dc3cb70f9465b65de7e0a6f9 (diff) | |
| download | poky-21773a997a2a8ece3b9549c5940468c5a889ac40.tar.gz | |
bitbake: event/ast: Use better_exec instead of simple_exec
This improves the stacktraces dumped by bitbake when for example anonymous
python functions fail.
Also default to passing code strings to better_exec to match the behaviour of
simple_exec to aid the transition.
(Bitbake rev: 7e8205929ae953731a6854ea80b197847cff5771)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/event.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/bb/parse/ast.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/bb/utils.py | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index 20923b5f08..fa179d8a11 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py | |||
| @@ -175,7 +175,7 @@ def register(name, handler): | |||
| 175 | _handlers[name] = noop | 175 | _handlers[name] = noop |
| 176 | return | 176 | return |
| 177 | env = {} | 177 | env = {} |
| 178 | bb.utils.simple_exec(code, env) | 178 | bb.utils.better_exec(code, env) |
| 179 | func = bb.utils.better_eval(name, env) | 179 | func = bb.utils.better_eval(name, env) |
| 180 | _handlers[name] = func | 180 | _handlers[name] = func |
| 181 | else: | 181 | else: |
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 86f94636b9..b88d5f5b39 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
| @@ -320,7 +320,7 @@ def finalize(fn, d, variant = None): | |||
| 320 | code = [] | 320 | code = [] |
| 321 | for funcname in d.getVar("__BBANONFUNCS") or []: | 321 | for funcname in d.getVar("__BBANONFUNCS") or []: |
| 322 | code.append("%s(d)" % funcname) | 322 | code.append("%s(d)" % funcname) |
| 323 | bb.utils.simple_exec("\n".join(code), {"d": d}) | 323 | bb.utils.better_exec("\n".join(code), {"d": d}) |
| 324 | bb.data.update_data(d) | 324 | bb.data.update_data(d) |
| 325 | 325 | ||
| 326 | tasklist = d.getVar('__BBTASKS') or [] | 326 | tasklist = d.getVar('__BBTASKS') or [] |
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index ee4ef73bfc..44a42a0136 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
| @@ -218,13 +218,15 @@ def better_compile(text, file, realfile, mode = "exec"): | |||
| 218 | 218 | ||
| 219 | raise | 219 | raise |
| 220 | 220 | ||
| 221 | def better_exec(code, context, text, realfile = "<code>"): | 221 | def better_exec(code, context, text = None, realfile = "<code>", data = None): |
| 222 | """ | 222 | """ |
| 223 | Similiar to better_compile, better_exec will | 223 | Similiar to better_compile, better_exec will |
| 224 | print the lines that are responsible for the | 224 | print the lines that are responsible for the |
| 225 | error. | 225 | error. |
| 226 | """ | 226 | """ |
| 227 | import bb.parse | 227 | import bb.parse |
| 228 | if not text: | ||
| 229 | text = code | ||
| 228 | if not hasattr(code, "co_filename"): | 230 | if not hasattr(code, "co_filename"): |
| 229 | code = better_compile(code, realfile, realfile) | 231 | code = better_compile(code, realfile, realfile) |
| 230 | try: | 232 | try: |
