methodpool.py 653 B

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