mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-22 20:40:18 +00:00
up _0
This commit is contained in:
parent
1e3e88d832
commit
c2a9b77a18
@ -69,7 +69,8 @@ inline PyObject* Generator::next(){
|
||||
frame = std::move(vm->callstack.top());
|
||||
vm->callstack.pop();
|
||||
state = 1;
|
||||
return frame.popx();
|
||||
PyObject** _sp = frame._sp;
|
||||
return POPX();
|
||||
}else{
|
||||
state = 2;
|
||||
return nullptr;
|
||||
|
@ -139,11 +139,11 @@ struct Py_ final: PyObject {
|
||||
};
|
||||
|
||||
#define OBJ_GET(T, obj) (((Py_<T>*)(obj))->_value)
|
||||
#define OBJ_MARK(obj) if(!is_tagged(obj)) obj->_obj_gc_mark()
|
||||
#define OBJ_MARK(obj) if(!is_tagged(obj)) (obj)->_obj_gc_mark()
|
||||
|
||||
Str obj_type_name(VM* vm, Type type);
|
||||
|
||||
#if DEBUG_NO_BUILTIN_MODULES
|
||||
#if DEBUG_NO_BUILTIN_MODULES || DEBUG_NO_NAME_GETTER
|
||||
#define OBJ_NAME(obj) Str("<?>")
|
||||
#else
|
||||
#define OBJ_NAME(obj) OBJ_GET(Str, vm->getattr(obj, __name__))
|
||||
|
@ -60,13 +60,6 @@ public:
|
||||
PyObject** begin() const { return _args; }
|
||||
PyObject** end() const { return _args + _size; }
|
||||
|
||||
List to_list() noexcept {
|
||||
List ret(_size);
|
||||
// TODO: use move/memcpy
|
||||
for(int i=0; i<_size; i++) ret[i] = _args[i];
|
||||
return ret;
|
||||
}
|
||||
|
||||
void extend_self(PyObject* self){
|
||||
PyObject** old_args = _args;
|
||||
int old_size = _size;
|
||||
@ -99,6 +92,18 @@ struct ArgsView{
|
||||
int size() const { return _end - _begin; }
|
||||
bool empty() const { return _begin == _end; }
|
||||
PyObject* operator[](int i) const { return _begin[i]; }
|
||||
|
||||
List to_list() const{
|
||||
List ret(size());
|
||||
for(int i=0; i<size(); i++) ret[i] = _begin[i];
|
||||
return ret;
|
||||
}
|
||||
|
||||
Tuple to_tuple() const{
|
||||
Tuple ret(size());
|
||||
for(int i=0; i<size(); i++) ret[i] = _begin[i];
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace pkpy
|
Loading…
x
Reference in New Issue
Block a user