diff options
author | Holger Freyther <ich@tamarin.(none)> | 2009-05-19 13:59:50 +0200 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-02-15 17:07:55 +0000 |
commit | 7b57ad901af2ded02995d22718ec6f280a9edd7f (patch) | |
tree | 81b9b3909460269bdd60744a255ac923775fa71c | |
parent | 83ec5eaed411225d16a4fc4dc92323e3acc9f5cd (diff) | |
download | openembedded-core-7b57ad901af2ded02995d22718ec6f280a9edd7f.tar.gz openembedded-core-7b57ad901af2ded02995d22718ec6f280a9edd7f.tar.bz2 openembedded-core-7b57ad901af2ded02995d22718ec6f280a9edd7f.zip |
bitbake: [parser] Make resolve_file only resolve the path
Do not attempt to open the file in the resolve_file method
(a lot like bb.which... maybe bb.which can be used). This way
we don't need to open/close a file which we have already parsed.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r-- | bitbake/lib/bb/parse/__init__.py | 18 | ||||
-rw-r--r-- | bitbake/lib/bb/parse/parse_py/BBHandler.py | 7 | ||||
-rw-r--r-- | bitbake/lib/bb/parse/parse_py/ConfHandler.py | 3 |
3 files changed, 12 insertions, 16 deletions
diff --git a/bitbake/lib/bb/parse/__init__.py b/bitbake/lib/bb/parse/__init__.py index 6737e061ea..5e74afd9ac 100644 --- a/bitbake/lib/bb/parse/__init__.py +++ b/bitbake/lib/bb/parse/__init__.py @@ -82,22 +82,16 @@ def init(fn, data): def resolve_file(fn, d): if not os.path.isabs(fn): - f = None bbpath = (bb.data.getVar('BBPATH', d, 1) or '').split(':') for p in bbpath: j = os.path.join(p, fn) if os.access(j, os.R_OK): - abs_fn = j - f = open(j, 'r') - break - if f is None: - raise IOError("file %s not found" % fn) - else: - f = open(fn,'r') - abs_fn = fn - - bb.msg.debug(2, bb.msg.domain.Parsing, "LOAD %s" % abs_fn) - return (f, abs_fn) + bb.msg.debug(2, bb.msg.domain.Parsing, "LOAD %s" % j) + return j + raise IOError("file %s not found" % fn) + + bb.msg.debug(2, bb.msg.domain.Parsing, "LOAD %s" % fn) + return fn # Used by OpenEmbedded metadata __pkgsplit_cache__={} diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py index ab479c1eb2..1ba81886a7 100644 --- a/bitbake/lib/bb/parse/parse_py/BBHandler.py +++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py @@ -80,12 +80,13 @@ def inherit(files, d): include(fn, file, d, "inherit") __inherit_cache = data.getVar('__inherit_cache', d) or [] -def get_statements(filename, absolsute_filename, base_name, file): +def get_statements(filename, absolsute_filename, base_name): global cached_statements try: return cached_statements[absolsute_filename] except KeyError: + file = open(absolsute_filename, 'r') statements = ast.StatementGroup() lineno = 0 @@ -133,13 +134,13 @@ def handle(fn, d, include): else: oldfile = None - (f, abs_fn) = resolve_file(fn, d) + abs_fn = resolve_file(fn, d) if include: bb.parse.mark_dependency(d, abs_fn) # actual loading - statements = get_statements(fn, abs_fn, base_name, f) + statements = get_statements(fn, abs_fn, base_name) # DONE WITH PARSING... time to evaluate if ext != ".bbclass": diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py index 839a662024..deafd6479f 100644 --- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py +++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py @@ -84,7 +84,8 @@ def handle(fn, data, include): else: oldfile = bb.data.getVar('FILE', data) - (f, abs_fn) = resolve_file(fn, data) + abs_fn = resolve_file(fn, data) + f = open(abs_fn, 'r') if include: bb.parse.mark_dependency(data, abs_fn) |