mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 03:20:18 +00:00
some fix
This commit is contained in:
parent
6b57c684e4
commit
5cb31814be
@ -28,16 +28,15 @@ struct FastLocals{
|
||||
PyObject** end() const { return a + size(); }
|
||||
};
|
||||
|
||||
template<size_t MAX_SIZE>
|
||||
struct ValueStackImpl {
|
||||
// We allocate extra MAX_SIZE/128 places to keep `_sp` valid when `is_overflow() == true`.
|
||||
PyObject* _begin[MAX_SIZE + MAX_SIZE/128];
|
||||
struct ValueStack {
|
||||
// We allocate extra PK_VM_STACK_SIZE/128 places to keep `_sp` valid when `is_overflow() == true`.
|
||||
PyObject* _begin[PK_VM_STACK_SIZE + PK_VM_STACK_SIZE/128];
|
||||
PyObject** _sp;
|
||||
PyObject** _max_end;
|
||||
|
||||
static constexpr size_t max_size() { return MAX_SIZE; }
|
||||
static constexpr size_t max_size() { return PK_VM_STACK_SIZE; }
|
||||
|
||||
ValueStackImpl(): _sp(_begin), _max_end(_begin + MAX_SIZE) {}
|
||||
ValueStack(): _sp(_begin), _max_end(_begin + PK_VM_STACK_SIZE) {}
|
||||
|
||||
PyObject*& top(){ return _sp[-1]; }
|
||||
PyObject* top() const { return _sp[-1]; }
|
||||
@ -68,14 +67,12 @@ struct ValueStackImpl {
|
||||
PyObject* operator[](int i) const { return _begin[i]; }
|
||||
PyObject*& operator[](int i) { return _begin[i]; }
|
||||
|
||||
ValueStackImpl(const ValueStackImpl&) = delete;
|
||||
ValueStackImpl(ValueStackImpl&&) = delete;
|
||||
ValueStackImpl& operator=(const ValueStackImpl&) = delete;
|
||||
ValueStackImpl& operator=(ValueStackImpl&&) = delete;
|
||||
ValueStack(const ValueStack&) = delete;
|
||||
ValueStack(ValueStack&&) = delete;
|
||||
ValueStack& operator=(const ValueStack&) = delete;
|
||||
ValueStack& operator=(ValueStack&&) = delete;
|
||||
};
|
||||
|
||||
using ValueStack = ValueStackImpl<PK_VM_STACK_SIZE>;
|
||||
|
||||
struct Frame {
|
||||
int _ip;
|
||||
int _next_ip;
|
||||
|
Loading…
x
Reference in New Issue
Block a user