1eb8dc403SDave Cobbley# 2eb8dc403SDave Cobbley# Copyright (C) 2006 Holger Hans Peter Freyther 3eb8dc403SDave Cobbley# 4*c342db35SBrad Bishop# SPDX-License-Identifier: GPL-2.0-only 5eb8dc403SDave Cobbley# 6eb8dc403SDave Cobbley 7eb8dc403SDave Cobbleyfrom bb.utils import better_compile, better_exec 8eb8dc403SDave Cobbley 9eb8dc403SDave Cobbleydef insert_method(modulename, code, fn, lineno): 10eb8dc403SDave Cobbley """ 11eb8dc403SDave Cobbley Add code of a module should be added. The methods 12eb8dc403SDave Cobbley will be simply added, no checking will be done 13eb8dc403SDave Cobbley """ 14eb8dc403SDave Cobbley comp = better_compile(code, modulename, fn, lineno=lineno) 15eb8dc403SDave Cobbley better_exec(comp, None, code, fn) 16eb8dc403SDave Cobbley 17eb8dc403SDave Cobbleycompilecache = {} 18eb8dc403SDave Cobbley 19eb8dc403SDave Cobbleydef compile_cache(code): 20eb8dc403SDave Cobbley h = hash(code) 21eb8dc403SDave Cobbley if h in compilecache: 22eb8dc403SDave Cobbley return compilecache[h] 23eb8dc403SDave Cobbley return None 24eb8dc403SDave Cobbley 25eb8dc403SDave Cobbleydef compile_cache_add(code, compileobj): 26eb8dc403SDave Cobbley h = hash(code) 27eb8dc403SDave Cobbley compilecache[h] = compileobj 28