diff --git a/src/nautilus-python-object.c b/src/nautilus-python-object.c index f343070..da185ad 100644 --- a/src/nautilus-python-object.c +++ b/src/nautilus-python-object.c @@ -40,7 +40,7 @@ int __PyString_Check(PyObject *obj) { #endif } -char* __PyString_AsString(PyObject *obj) { +const char* __PyString_AsString(PyObject *obj) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_AsUTF8(obj); #else @@ -389,7 +389,7 @@ beach: #define METHOD_NAME "update_file_info" static NautilusOperationResult nautilus_python_object_update_file_info (NautilusInfoProvider *provider, - NautilusFile *file, + NautilusFileInfo *file_info, GClosure *update_complete, NautilusOperationHandle **handle) { NautilusPythonObject *object = (NautilusPythonObject*)provider; @@ -408,12 +408,12 @@ nautilus_python_object_update_file_info (NautilusInfoProvider *provider, pygobject_new((GObject*)provider), py_handle, pyg_boxed_new(G_TYPE_CLOSURE, update_complete, TRUE, TRUE), - pygobject_new((GObject*)file)); + pygobject_new((GObject*)file_info)); } else if (PyObject_HasAttrString(object->instance, "update_file_info")) { py_ret = PyObject_CallMethod(object->instance, METHOD_PREFIX METHOD_NAME, "(N)", - pygobject_new((GObject*)file)); + pygobject_new((GObject*)file_info)); } else { goto beach; @@ -434,7 +434,7 @@ nautilus_python_object_update_file_info (NautilusInfoProvider *provider, #endif beach: - free_pygobject_data(file, NULL); + free_pygobject_data(file_info, NULL); Py_XDECREF(py_ret); pyg_gil_state_release(state); return ret; diff --git a/src/nautilus-python.c b/src/nautilus-python.c index 843e3c6..510cdfb 100644 --- a/src/nautilus-python.c +++ b/src/nautilus-python.c @@ -22,6 +22,7 @@ #endif #include +#define NO_IMPORT_PYGOBJECT //To avoid a multiple definition, nautilus-python-object.c also includes and does the import. #include #include #include @@ -42,6 +43,18 @@ static gboolean nautilus_python_init_python(void); static GArray *all_types = NULL; +PyTypeObject *_PyGtkWidget_Type; +PyTypeObject *_PyNautilusColumn_Type; +PyTypeObject *_PyNautilusColumnProvider_Type; +PyTypeObject *_PyNautilusInfoProvider_Type; +PyTypeObject *_PyNautilusLocationWidgetProvider_Type; +PyTypeObject *_PyNautilusMenu_Type; +PyTypeObject *_PyNautilusMenuItem_Type; +PyTypeObject *_PyNautilusMenuProvider_Type; +PyTypeObject *_PyNautilusPropertyPage_Type; +PyTypeObject *_PyNautilusPropertyPageProvider_Type; +PyTypeObject *_PyNautilusOperationHandle_Type; + static inline gboolean np_init_pygobject(void) { PyObject *gobject = pygobject_init (PYGOBJECT_MAJOR_VERSION, PYGOBJECT_MINOR_VERSION, PYGOBJECT_MICRO_VERSION); diff --git a/src/nautilus-python.h b/src/nautilus-python.h index 4c181f8..c940a06 100644 --- a/src/nautilus-python.h +++ b/src/nautilus-python.h @@ -43,37 +43,37 @@ extern NautilusPythonDebug nautilus_python_debug; #define debug_enter_args(x, y) { if (nautilus_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \ g_printf("%s: entered " x "\n", __FUNCTION__, y); } -PyTypeObject *_PyGtkWidget_Type; +extern PyTypeObject *_PyGtkWidget_Type; #define PyGtkWidget_Type (*_PyGtkWidget_Type) -PyTypeObject *_PyNautilusColumn_Type; +extern PyTypeObject *_PyNautilusColumn_Type; #define PyNautilusColumn_Type (*_PyNautilusColumn_Type) -PyTypeObject *_PyNautilusColumnProvider_Type; +extern PyTypeObject *_PyNautilusColumnProvider_Type; #define PyNautilusColumnProvider_Type (*_PyNautilusColumnProvider_Type) -PyTypeObject *_PyNautilusInfoProvider_Type; +extern PyTypeObject *_PyNautilusInfoProvider_Type; #define PyNautilusInfoProvider_Type (*_PyNautilusInfoProvider_Type) -PyTypeObject *_PyNautilusLocationWidgetProvider_Type; +extern PyTypeObject *_PyNautilusLocationWidgetProvider_Type; #define PyNautilusLocationWidgetProvider_Type (*_PyNautilusLocationWidgetProvider_Type) -PyTypeObject *_PyNautilusMenu_Type; +extern PyTypeObject *_PyNautilusMenu_Type; #define PyNautilusMenu_Type (*_PyNautilusMenu_Type) -PyTypeObject *_PyNautilusMenuItem_Type; +extern PyTypeObject *_PyNautilusMenuItem_Type; #define PyNautilusMenuItem_Type (*_PyNautilusMenuItem_Type) -PyTypeObject *_PyNautilusMenuProvider_Type; +extern PyTypeObject *_PyNautilusMenuProvider_Type; #define PyNautilusMenuProvider_Type (*_PyNautilusMenuProvider_Type) -PyTypeObject *_PyNautilusPropertyPage_Type; +extern PyTypeObject *_PyNautilusPropertyPage_Type; #define PyNautilusPropertyPage_Type (*_PyNautilusPropertyPage_Type) -PyTypeObject *_PyNautilusPropertyPageProvider_Type; +extern PyTypeObject *_PyNautilusPropertyPageProvider_Type; #define PyNautilusPropertyPageProvider_Type (*_PyNautilusPropertyPageProvider_Type) -PyTypeObject *_PyNautilusOperationHandle_Type; +extern PyTypeObject *_PyNautilusOperationHandle_Type; #define PyNautilusOperationHandle_Type (*_PyNautilusOperationHandle_Type) #endif /* NAUTILUS_PYTHON_H */