mirror of
https://github.com/pocketpy/pocketpy
synced 2025-11-05 11:10:17 +00:00
Compare commits
2 Commits
0ec84bca99
...
33963d7054
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33963d7054 | ||
|
|
6708c85f57 |
@ -107,7 +107,7 @@ PK_API void py_setvmctx(void* ctx);
|
||||
/// Set `sys.argv`. Used for storing command-line arguments.
|
||||
PK_API void py_sys_setargv(int argc, char** argv);
|
||||
/// Set the trace function for the current VM.
|
||||
PK_API void py_sys_settrace(py_TraceFunc func);
|
||||
PK_API void py_sys_settrace(py_TraceFunc func, bool reset);
|
||||
/// Setup the callbacks for the current VM.
|
||||
PK_API py_Callbacks* py_callbacks();
|
||||
|
||||
|
||||
@ -1454,9 +1454,10 @@ static bool stack_format_object(VM* self, c11_sv spec) {
|
||||
#undef INSERT_THIRD
|
||||
#undef vectorcall_opcall
|
||||
|
||||
void py_sys_settrace(py_TraceFunc func) {
|
||||
void py_sys_settrace(py_TraceFunc func, bool reset) {
|
||||
TraceInfo* info = &pk_current_vm->trace_info;
|
||||
info->func = func;
|
||||
if(!reset) return;
|
||||
if(info->prev_loc.src) {
|
||||
PK_DECREF(info->prev_loc.src);
|
||||
info->prev_loc.src = NULL;
|
||||
|
||||
@ -255,6 +255,8 @@ void VM__ctor(VM* self) {
|
||||
}
|
||||
|
||||
void VM__dtor(VM* self) {
|
||||
// reset traceinfo
|
||||
py_sys_settrace(NULL, true);
|
||||
// destroy all objects
|
||||
ManagedHeap__dtor(&self->heap);
|
||||
// clear frames
|
||||
|
||||
@ -95,7 +95,7 @@ int main(int argc, char** argv) {
|
||||
py_initialize();
|
||||
py_sys_setargv(argc, argv);
|
||||
|
||||
if(trace) py_sys_settrace(tracefunc);
|
||||
if(trace) py_sys_settrace(tracefunc, true);
|
||||
|
||||
if(filename == NULL) {
|
||||
printf("pocketpy " PK_VERSION " (" __DATE__ ", " __TIME__ ") ");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user