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