mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
bitbake: Add a cache around PACKAGES_DYNAMIC regexps to help performance a bit
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
@@ -280,6 +280,8 @@ def filterProvidersRunTime(providers, item, cfgData, dataCache):
|
|||||||
|
|
||||||
return eligible, numberPreferred
|
return eligible, numberPreferred
|
||||||
|
|
||||||
|
regexp_cache = {}
|
||||||
|
|
||||||
def getRuntimeProviders(dataCache, rdepend):
|
def getRuntimeProviders(dataCache, rdepend):
|
||||||
"""
|
"""
|
||||||
Return any providers of runtime dependency
|
Return any providers of runtime dependency
|
||||||
@@ -297,12 +299,17 @@ def getRuntimeProviders(dataCache, rdepend):
|
|||||||
|
|
||||||
# Only search dynamic packages if we can't find anything in other variables
|
# Only search dynamic packages if we can't find anything in other variables
|
||||||
for pattern in dataCache.packages_dynamic:
|
for pattern in dataCache.packages_dynamic:
|
||||||
pattern = pattern.replace('+', "\+")
|
|
||||||
try:
|
if pattern in regexp_cache:
|
||||||
regexp = re.compile(pattern)
|
regexp = regexp_cache[pattern]
|
||||||
except:
|
else:
|
||||||
bb.msg.error(bb.msg.domain.Provider, "Error parsing re expression: %s" % pattern)
|
pattern = pattern.replace('+', "\+")
|
||||||
raise
|
try:
|
||||||
|
regexp = re.compile(pattern)
|
||||||
|
except:
|
||||||
|
bb.msg.error(bb.msg.domain.Provider, "Error parsing re expression: %s" % pattern)
|
||||||
|
raise
|
||||||
|
regexp_cache[pattern] = regexp
|
||||||
if regexp.match(rdepend):
|
if regexp.match(rdepend):
|
||||||
rproviders += dataCache.packages_dynamic[pattern]
|
rproviders += dataCache.packages_dynamic[pattern]
|
||||||
|
|
||||||
|
|||||||
@@ -280,6 +280,8 @@ def filterProvidersRunTime(providers, item, cfgData, dataCache):
|
|||||||
|
|
||||||
return eligible, numberPreferred
|
return eligible, numberPreferred
|
||||||
|
|
||||||
|
regexp_cache = {}
|
||||||
|
|
||||||
def getRuntimeProviders(dataCache, rdepend):
|
def getRuntimeProviders(dataCache, rdepend):
|
||||||
"""
|
"""
|
||||||
Return any providers of runtime dependency
|
Return any providers of runtime dependency
|
||||||
@@ -297,12 +299,17 @@ def getRuntimeProviders(dataCache, rdepend):
|
|||||||
|
|
||||||
# Only search dynamic packages if we can't find anything in other variables
|
# Only search dynamic packages if we can't find anything in other variables
|
||||||
for pattern in dataCache.packages_dynamic:
|
for pattern in dataCache.packages_dynamic:
|
||||||
pattern = pattern.replace('+', "\+")
|
|
||||||
try:
|
if pattern in regexp_cache:
|
||||||
regexp = re.compile(pattern)
|
regexp = regexp_cache[pattern]
|
||||||
except:
|
else:
|
||||||
bb.msg.error(bb.msg.domain.Provider, "Error parsing re expression: %s" % pattern)
|
pattern = pattern.replace('+', "\+")
|
||||||
raise
|
try:
|
||||||
|
regexp = re.compile(pattern)
|
||||||
|
except:
|
||||||
|
bb.msg.error(bb.msg.domain.Provider, "Error parsing re expression: %s" % pattern)
|
||||||
|
raise
|
||||||
|
regexp_cache[pattern] = regexp
|
||||||
if regexp.match(rdepend):
|
if regexp.match(rdepend):
|
||||||
rproviders += dataCache.packages_dynamic[pattern]
|
rproviders += dataCache.packages_dynamic[pattern]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user