mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

With the addition of function line number handling, the overhead of the compile functions is no longer negligible. We tend to compile the same pieces of code over and over again so wrapping a cache around this is beneficial and removes the overhead of line numbered functions. Life cycle of a cache using a global like this is in theory problematic although in reality unlikely to be an issue. It can be dealt with if/as/when we deal with the other global caches. (Bitbake rev: 98d7002d1dca4b62042e1589fd5b9b3805d57f7a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
# ex:ts=4:sw=4:sts=4:et
|
|
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
|
#
|
|
#
|
|
# Copyright (C) 2006 Holger Hans Peter Freyther
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2 as
|
|
# published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along
|
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
from bb.utils import better_compile, better_exec
|
|
|
|
def insert_method(modulename, code, fn, lineno):
|
|
"""
|
|
Add code of a module should be added. The methods
|
|
will be simply added, no checking will be done
|
|
"""
|
|
comp = better_compile(code, modulename, fn, lineno=lineno)
|
|
better_exec(comp, None, code, fn)
|
|
|
|
compilecache = {}
|
|
|
|
def compile_cache(code):
|
|
h = hash(code)
|
|
if h in compilecache:
|
|
return compilecache[h]
|
|
return None
|
|
|
|
def compile_cache_add(code, compileobj):
|
|
h = hash(code)
|
|
compilecache[h] = compileobj
|