/vm/fixup.hpp

http://github.com/abeaumont/factor · C++ Header · 46 lines · 37 code · 9 blank · 0 comment · 0 complexity · a137d976c6712b1cd89c4dc26c97abe0 MD5 · raw file

  1. namespace factor
  2. {
  3. template<typename T>
  4. struct identity {
  5. T operator()(T t)
  6. {
  7. return t;
  8. }
  9. };
  10. struct no_fixup {
  11. static const bool translated_code_block_map = false;
  12. object *fixup_data(object *obj)
  13. {
  14. return obj;
  15. }
  16. code_block *fixup_code(code_block *compiled)
  17. {
  18. return compiled;
  19. }
  20. object *translate_data(const object *obj)
  21. {
  22. return fixup_data((object *)obj);
  23. }
  24. code_block *translate_code(const code_block *compiled)
  25. {
  26. return fixup_code((code_block *)compiled);
  27. }
  28. cell size(object *obj)
  29. {
  30. return obj->size();
  31. }
  32. cell size(code_block *compiled)
  33. {
  34. return compiled->size();
  35. }
  36. };
  37. }