codeobject.cpp 673 B

123456789101112131415161718192021222324
  1. #include "pocketpy/codeobject.h"
  2. namespace pkpy{
  3. CodeObject::CodeObject(std::shared_ptr<SourceData> src, const Str& name):
  4. src(src), name(name), start_line(-1), end_line(-1) {}
  5. void CodeObject::_gc_mark() const {
  6. for(PyObject* v : consts) PK_OBJ_MARK(v);
  7. for(auto& decl: func_decls) decl->_gc_mark();
  8. }
  9. NativeFunc::NativeFunc(NativeFuncC f, int argc, bool method){
  10. this->f = f;
  11. this->argc = argc;
  12. if(argc != -1) this->argc += (int)method;
  13. }
  14. NativeFunc::NativeFunc(NativeFuncC f, FuncDecl_ decl){
  15. this->f = f;
  16. this->argc = -1;
  17. this->decl = decl;
  18. }
  19. } // namespace pkpy