summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2006-04-14 22:48:14 +0000
committerHolger Hans Peter Freyther <zecke@selfish.org>2006-04-14 22:48:14 +0000
commitf133b4045bfb1f5f86e5b86a319b926e4881ee5f (patch)
tree20a59a7fa0604088090b0d2e0920c3a62e516de3
parent5fc9855dbda6dd6da1db04d13dc2c4383e6596da (diff)
downloadbitbake-f133b4045bfb1f5f86e5b86a319b926e4881ee5f.tar.gz
bitbake/lib/bb/methodpool.py:
-Extract the names from the just compiled code -Iterate over each key (leaving out Keys and None) -And see if we have seen the name already. -If we have seen it, raise an error...
-rw-r--r--lib/bb/methodpool.py12
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