From 00bb387b3d464be0f76b99f5e385aacc1ba6f2ce Mon Sep 17 00:00:00 2001 From: Jean-Christophe Morin Date: Wed, 5 Oct 2022 12:14:20 -0400 Subject: [PATCH] Improve type of function callbacks in register_upgrade_function and register_downgrade_function Signed-off-by: Jean-Christophe Morin --- .../opentimelineio-bindings/otio_bindings.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/py-opentimelineio/opentimelineio-bindings/otio_bindings.cpp b/src/py-opentimelineio/opentimelineio-bindings/otio_bindings.cpp index 80c57fb0d..51755001a 100644 --- a/src/py-opentimelineio/opentimelineio-bindings/otio_bindings.cpp +++ b/src/py-opentimelineio/opentimelineio-bindings/otio_bindings.cpp @@ -2,6 +2,7 @@ // Copyright Contributors to the OpenTimelineIO project #include +#include #include "otio_anyDictionary.h" #include "otio_anyVector.h" #include "otio_bindings.h" @@ -71,13 +72,12 @@ static void register_python_type(py::object class_object, static bool register_upgrade_function(std::string const& schema_name, int version_to_upgrade_to, - py::object const& upgrade_function_obj) { + std::function const& upgrade_function_obj) { std::function upgrade_function = [upgrade_function_obj](AnyDictionary* d) { py::gil_scoped_acquire acquire; auto ptr = d->get_or_create_mutation_stamp(); - py::object dobj = py::cast((AnyDictionaryProxy*)ptr); - upgrade_function_obj(dobj); + upgrade_function_obj((AnyDictionaryProxy*)ptr); }; // further discussion required about preventing double registering @@ -112,7 +112,7 @@ static bool register_downgrade_function( std::string const& schema_name, int version_to_downgrade_from, - py::object const& downgrade_function_obj) + std::function const& downgrade_function_obj) { std::function downgrade_function = ( [downgrade_function_obj](AnyDictionary* d) @@ -120,8 +120,7 @@ register_downgrade_function( py::gil_scoped_acquire acquire; auto ptr = d->get_or_create_mutation_stamp(); - py::object dobj = py::cast((AnyDictionaryProxy*)ptr); - downgrade_function_obj(dobj); + downgrade_function_obj((AnyDictionaryProxy*)ptr); } );