methodpool.py 744 B

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