Squashed commit of the following: [raii_pyobjects]
closes #4 commit8f060dc87bAuthor: John McCardle <mccardle.john@gmail.com> Date: Fri Mar 15 22:20:03 2024 -0400 Removing std::cout debugging statements commitc9d5251c71Author: John McCardle <mccardle.john@gmail.com> Date: Fri Mar 15 20:00:57 2024 -0400 In-place map modification worked commit0a8f67e391Author: John McCardle <mccardle.john@gmail.com> Date: Thu Mar 14 23:13:13 2024 -0400 Stress test is failing: By removing a timer to a function (from inside that function?) I can immediately cause a segfault. commit05d9f6a882Author: John McCardle <mccardle.john@gmail.com> Date: Tue Mar 12 22:27:12 2024 -0400 wow, good test of Key and Click Callable classes. Cleanup, squash, and merge after I give it a lookover in daylight, though. commit972768eb26Author: John McCardle <mccardle.john@gmail.com> Date: Tue Mar 12 21:02:48 2024 -0400 inital PyCallable work; isolate very well behaved usage of PyObject references behind RAII
This commit is contained in:
parent
2c3c1449ee
commit
cdaf309272
13 changed files with 302 additions and 28 deletions
|
|
@ -4,7 +4,7 @@
|
|||
//Scene::Scene() { game = 0; std::cout << "WARN: default Scene constructor called. (game = " << game << ")" << std::endl;};
|
||||
Scene::Scene(GameEngine* g)
|
||||
{
|
||||
key_callable = Py_None;
|
||||
key_callable = std::make_unique<PyKeyCallable>();
|
||||
game = g;
|
||||
ui_elements = std::make_shared<std::vector<std::shared_ptr<UIDrawable>>>();
|
||||
}
|
||||
|
|
@ -43,6 +43,7 @@ bool Scene::unregisterActionInjected(int code, std::string name)
|
|||
|
||||
void Scene::key_register(PyObject* callable)
|
||||
{
|
||||
/*
|
||||
if (key_callable)
|
||||
{
|
||||
// decrement reference before overwriting
|
||||
|
|
@ -50,11 +51,16 @@ void Scene::key_register(PyObject* callable)
|
|||
}
|
||||
key_callable = callable;
|
||||
Py_INCREF(key_callable);
|
||||
*/
|
||||
key_callable = std::make_unique<PyKeyCallable>(callable);
|
||||
}
|
||||
|
||||
void Scene::key_unregister()
|
||||
{
|
||||
/*
|
||||
if (key_callable == NULL) return;
|
||||
Py_DECREF(key_callable);
|
||||
key_callable = NULL;
|
||||
*/
|
||||
key_callable.reset();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue