From 31e24ca9bd800d151d98f6a426bdd96b0dc6a886 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 12 Aug 2023 22:50:36 +0800 Subject: [PATCH] fix a bug --- 3rd/box2d/include/box2d_bindings.hpp | 4 +++- 3rd/box2d/src/box2d_Body.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/3rd/box2d/include/box2d_bindings.hpp b/3rd/box2d/include/box2d_bindings.hpp index 502a5d74..4f455f8b 100644 --- a/3rd/box2d/include/box2d_bindings.hpp +++ b/3rd/box2d/include/box2d_bindings.hpp @@ -73,7 +73,9 @@ struct PyBody{ PyBody(): body(nullptr), fixture(nullptr), node_like(nullptr){} void _gc_mark() { - PK_OBJ_MARK(node_like); + if(node_like != nullptr){ + PK_OBJ_MARK(node_like); + } } PyBody& _() { return *this; } diff --git a/3rd/box2d/src/box2d_Body.cpp b/3rd/box2d/src/box2d_Body.cpp index ea1df5eb..2797913c 100644 --- a/3rd/box2d/src/box2d_Body.cpp +++ b/3rd/box2d/src/box2d_Body.cpp @@ -128,7 +128,7 @@ void PyBody::_register(VM* vm, PyObject* mod, PyObject* type){ // destroy vm->bind(type, "destroy(self)", [](VM* vm, ArgsView args){ - PyBody& body = CAST(PyBody&, args[1]); + PyBody& body = CAST(PyBody&, args[0]); body.body->GetWorld()->DestroyBody(body.body); body.body = nullptr; body.fixture = nullptr;