diff --git a/modules/gfx/pymod/export_scene.cc b/modules/gfx/pymod/export_scene.cc index b810b91225474ce769daf530ccb4e6af4e71f8a6..f67e90ccef4820c3cb08f515fe8d8a6d8d155f07 100644 --- a/modules/gfx/pymod/export_scene.cc +++ b/modules/gfx/pymod/export_scene.cc @@ -268,15 +268,14 @@ void export_Scene() .add_property("hemi_params",scene_get_hemi_p,scene_set_hemi_p) ; + // we need to make sure there are no pending references to Python objects + // tied to the scene singleton. The destructor of + // scene may be called after Python is shutdown which results + // in a segfault. + scope().attr("__dict__")["atexit"]=handle<>(PyImport_ImportModule("atexit")); -// we need to make sure there are no pending references to Python objects -// tied to the scene singleton. The destructor of -// scene may be called after Python is shutdown which results -// in a segfault. -scope().attr("__dict__")["atexit"]=handle<>(PyImport_ImportModule("atexit")); - -def("_clear_scene", &clear_scene); -object r=scope().attr("_clear_scene"); -scope().attr("atexit").attr("register")(r); + def("_clear_scene", &clear_scene); + object r=scope().attr("_clear_scene"); + scope().attr("atexit").attr("register")(r); }