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); } );