diff options
-rw-r--r-- | lib/bb/methodpool.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/bb/methodpool.py b/lib/bb/methodpool.py index 595825be5..e14986bc1 100644 --- a/lib/bb/methodpool.py +++ b/lib/bb/methodpool.py @@ -46,10 +46,12 @@ """ from bb.utils import better_compile, better_exec +from bb import error # A dict of modules we have handled # it is the number of .bbclasses + x in size _parsed_methods = { } +_parsed_fns = { } def insert_method(modulename, code, fn): """ @@ -59,6 +61,16 @@ def insert_method(modulename, code, fn): comp = better_compile(code, "<bb>", fn ) better_exec(comp, __builtins__, code, fn) + # now some instrumentation + code = comp.co_names + for name in code: + if name in ['None', 'False']: + continue + elif name in _parsed_fns and not _parsed_fns[name] == modulename: + error( "Error Method already seen: %s in' %s' now in '%s'" % (name, _parsed_fns[name], modulename)) + else: + _parsed_fns[name] = modulename + def check_insert_method(modulename, code, fn): """ Add the code if it wasnt added before. The module |