diff --git a/src/frame.h b/src/frame.h index ec253a36..d63d9530 100644 --- a/src/frame.h +++ b/src/frame.h @@ -6,7 +6,7 @@ namespace pkpy{ -static THREAD_LOCAL uint64_t kFrameGlobalId = 0; +static THREAD_LOCAL i64 kFrameGlobalId = 0; using ValueStack = pod_vector; @@ -19,7 +19,7 @@ struct Frame { PyObject* _module; NameDict_ _locals; NameDict_ _closure; - const uint64_t id; + const i64 id; std::vector> s_try_block; NameDict& f_locals() noexcept { return _locals!=nullptr ? *_locals : _module->attr(); } diff --git a/src/memory.h b/src/memory.h index 8bbe953b..5c10a8ad 100644 --- a/src/memory.h +++ b/src/memory.h @@ -223,7 +223,6 @@ struct MemoryPool{ if(empty()) throw std::runtime_error("Arena::alloc() called on empty arena"); #endif _free_list_size--; - if(_free_list_size == 0) dirty = true; return _free_list[_free_list_size]; } @@ -260,6 +259,7 @@ struct MemoryPool{ void* p = arena->alloc()->data; if(arena->empty()){ _arenas.pop_back(); + arena->dirty = true; _empty_arenas.push_back(arena); } return p;