--- miro-1.2.3.orig/platform/gtk-x11/miro +++ miro-1.2.3/platform/gtk-x11/miro @@ -0,0 +1,2 @@ +#!/bin/sh +LD_LIBRARY_PATH=/usr/lib/xulrunner miro.real "$@" --- miro-1.2.3.orig/platform/gtk-x11/xine/xine.c +++ miro-1.2.3/platform/gtk-x11/xine/xine.c @@ -0,0 +1,921 @@ +/* Generated by Pyrex 0.9.6.4 on Fri Apr 25 11:35:55 2008 */ + +#define PY_SSIZE_T_CLEAN +#include "Python.h" +#include "structmember.h" +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#if PY_VERSION_HEX < 0x02050000 + typedef int Py_ssize_t; + #define PY_SSIZE_T_MAX INT_MAX + #define PY_SSIZE_T_MIN INT_MIN + #define PyInt_FromSsize_t(z) PyInt_FromLong(z) + #define PyInt_AsSsize_t(o) PyInt_AsLong(o) +#endif +#ifndef WIN32 + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif +#endif +#ifdef __cplusplus +#define __PYX_EXTERN_C extern "C" +#else +#define __PYX_EXTERN_C extern +#endif +#include +#include "X11/Xlib.h" +#include "xine.h" +#include "xine_impl.h" + + +typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/ +typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/ + +static PyObject *__pyx_m; +static PyObject *__pyx_b; +static int __pyx_lineno; +static char *__pyx_filename; +static char **__pyx_f; + +static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ + +static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, char *modname); /*proto*/ + +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ + +static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/ + +static void __Pyx_AddTraceback(char *funcname); /*proto*/ + +/* Declarations from xine */ + +struct __pyx_obj_4xine_Xine { + PyObject_HEAD + _Xine *xine; + PyObject *eosCallback; +}; + + +static PyTypeObject *__pyx_ptype_4xine_Xine = 0; +static void __pyx_f_4xine_onXineEvent(void *,xine_event_t *); /*proto*/ + + +/* Implementation of xine */ + + +static PyObject *__pyx_n_CantQueryPositionLength; +static PyObject *__pyx_n_Exception; + +static int __pyx_f_4xine_4Xine___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_f_4xine_4Xine___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return -1; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":88 */ + ((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine = xineCreate(__pyx_f_4xine_onXineEvent,((void *)__pyx_v_self)); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":89 */ + Py_INCREF(Py_None); + Py_DECREF(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->eosCallback); + ((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->eosCallback = Py_None; + + __pyx_r = 0; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static void __pyx_f_4xine_4Xine___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_f_4xine_4Xine___dealloc__(PyObject *__pyx_v_self) { + Py_INCREF(__pyx_v_self); + xineDestroy(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine); + + Py_DECREF(__pyx_v_self); +} + +static PyObject *__pyx_f_4xine_4Xine_attach(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_attach(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + char *__pyx_v_displayName; + int __pyx_v_drawable; + char *__pyx_v_driver; + PyObject *__pyx_v_sync = 0; + PyObject *__pyx_v_use_xv_hack = 0; + PyObject *__pyx_r; + int __pyx_1; + int __pyx_2; + static char *__pyx_argnames[] = {"displayName","drawable","driver","sync","use_xv_hack",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "sisOO", __pyx_argnames, &__pyx_v_displayName, &__pyx_v_drawable, &__pyx_v_driver, &__pyx_v_sync, &__pyx_v_use_xv_hack)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_sync); + Py_INCREF(__pyx_v_use_xv_hack); + __pyx_1 = PyInt_AsLong(__pyx_v_sync); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;} + __pyx_2 = PyInt_AsLong(__pyx_v_use_xv_hack); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;} + xineAttach(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_v_displayName,__pyx_v_drawable,__pyx_v_driver,__pyx_1,__pyx_2); + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + __Pyx_AddTraceback("xine.Xine.attach"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_sync); + Py_DECREF(__pyx_v_use_xv_hack); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_detach(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_detach(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + Py_INCREF(__pyx_v_self); + xineDetach(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_setArea(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_setArea(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_xpos; + int __pyx_v_ypos; + int __pyx_v_width; + int __pyx_v_height; + PyObject *__pyx_r; + static char *__pyx_argnames[] = {"xpos","ypos","width","height",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "iiii", __pyx_argnames, &__pyx_v_xpos, &__pyx_v_ypos, &__pyx_v_width, &__pyx_v_height)) return 0; + Py_INCREF(__pyx_v_self); + xineSetArea(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_v_xpos,__pyx_v_ypos,__pyx_v_width,__pyx_v_height); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_True; +static PyObject *__pyx_n_False; + +static PyObject *__pyx_f_4xine_4Xine_canPlayFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_canPlayFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + char *__pyx_v_filename; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + static char *__pyx_argnames[] = {"filename",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "s", __pyx_argnames, &__pyx_v_filename)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyInt_FromLong(xineCanPlayFile(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_v_filename)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L1;} + __pyx_2 = PyObject_IsTrue(__pyx_1); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L1;} + if (__pyx_2) { + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L1;} + } + __pyx_2 = PyObject_IsTrue(__pyx_1); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L1;} + if (!__pyx_2) { + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L1;} + } + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + __Pyx_AddTraceback("xine.Xine.canPlayFile"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_selectFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_selectFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + char *__pyx_v_filename; + PyObject *__pyx_r; + static char *__pyx_argnames[] = {"filename",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "s", __pyx_argnames, &__pyx_v_filename)) return 0; + Py_INCREF(__pyx_v_self); + xineSelectFile(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_v_filename); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_play(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_play(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + Py_INCREF(__pyx_v_self); + xineSetPlaying(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,1); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_pause(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_pause(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + Py_INCREF(__pyx_v_self); + xineSetPlaying(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,0); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_setViz(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_setViz(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_viz = 0; + PyObject *__pyx_r; + char *__pyx_1; + static char *__pyx_argnames[] = {"viz",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_viz)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_viz); + __pyx_1 = PyString_AsString(__pyx_v_viz); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; goto __pyx_L1;} + xineSetViz(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_1); + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + __Pyx_AddTraceback("xine.Xine.setViz"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_viz); + return __pyx_r; +} + +static PyObject *__pyx_n_min; +static PyObject *__pyx_n_max; + +static PyObject *__pyx_f_4xine_4Xine_setVolume(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_setVolume(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_volume = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + int __pyx_5; + static char *__pyx_argnames[] = {"volume",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_volume)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_volume); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":110 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_min); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_max); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + Py_INCREF(__pyx_v_volume); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_volume); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyInt_FromLong(100); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_2); + __pyx_3 = 0; + __pyx_2 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_volume); + __pyx_v_volume = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":111 */ + __pyx_5 = PyInt_AsLong(__pyx_v_volume); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + xineSetVolume(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_5); + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("xine.Xine.setVolume"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_volume); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_getVolume(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_getVolume(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyInt_FromLong(xineGetVolume(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + __Pyx_AddTraceback("xine.Xine.getVolume"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_gotExposeEvent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_gotExposeEvent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_x; + int __pyx_v_y; + int __pyx_v_width; + int __pyx_v_height; + PyObject *__pyx_r; + static char *__pyx_argnames[] = {"x","y","width","height",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "iiii", __pyx_argnames, &__pyx_v_x, &__pyx_v_y, &__pyx_v_width, &__pyx_v_height)) return 0; + Py_INCREF(__pyx_v_self); + xineGotExposeEvent(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_v_x,__pyx_v_y,__pyx_v_width,__pyx_v_height); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_seek(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_seek(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_position; + PyObject *__pyx_r; + static char *__pyx_argnames[] = {"position",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "i", __pyx_argnames, &__pyx_v_position)) return 0; + Py_INCREF(__pyx_v_self); + xineSeek(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,__pyx_v_position); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_setEosCallback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_4xine_4Xine_setEosCallback[] = "Set the callback invoke when xine reaches the end of its stream.\n Pass in None to clear the callback\n\n NOTE: this callback will be invoked outside of the gtk main thread,\n use gobject.idle_add if you need to use any gtk methods.\n "; +static PyObject *__pyx_f_4xine_4Xine_setEosCallback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_callback = 0; + PyObject *__pyx_r; + static char *__pyx_argnames[] = {"callback",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_callback)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_callback); + Py_INCREF(__pyx_v_callback); + Py_DECREF(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->eosCallback); + ((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->eosCallback = __pyx_v_callback; + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_callback); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_onEosEvent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_4xine_4Xine_onEosEvent(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r; + int __pyx_1; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyObject_IsTrue(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->eosCallback); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;} + if (__pyx_1) { + __pyx_2 = PyObject_CallObject(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->eosCallback, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L2; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("xine.Xine.onEosEvent"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_4xine_4Xine_getPositionAndLength(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_4xine_4Xine_getPositionAndLength[] = "Try to query the current stream position and stream length. If\n Xine doesn\'t know the values yet we throw a CantQueryPositionLength\n Exception.\n "; +static PyObject *__pyx_f_4xine_4Xine_getPositionAndLength(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_position; + int __pyx_v_length; + PyObject *__pyx_r; + int __pyx_1; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":135 */ + __pyx_1 = (xineGetPosLength(((struct __pyx_obj_4xine_Xine *)__pyx_v_self)->xine,(&__pyx_v_position),(&__pyx_v_length)) == 0); + if (__pyx_1) { + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_CantQueryPositionLength); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + __Pyx_Raise(__pyx_2, 0, 0); + Py_DECREF(__pyx_2); __pyx_2 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + goto __pyx_L2; + } + /*else*/ { + __pyx_2 = PyInt_FromLong(__pyx_v_position); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + __pyx_3 = PyInt_FromLong(__pyx_v_length); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3); + __pyx_2 = 0; + __pyx_3 = 0; + __pyx_r = __pyx_4; + __pyx_4 = 0; + goto __pyx_L0; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("xine.Xine.getPositionAndLength"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static char __pyx_k2[] = "onEosEvent"; +static char __pyx_k3[] = ""; + +static void __pyx_f_4xine_onXineEvent(void *__pyx_v_data,xine_event_t *__pyx_v_event) { + PyObject *__pyx_v_self; + PyGILState_STATE __pyx_v_gil; + PyObject *__pyx_v_result; + int __pyx_1; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":145 */ + __pyx_1 = (__pyx_v_event->type == XINE_EVENT_UI_PLAYBACK_FINISHED); + if (__pyx_1) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":146 */ + __pyx_v_self = ((PyObject *)__pyx_v_data); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":147 */ + __pyx_v_gil = PyGILState_Ensure(); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":148 */ + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":149 */ + __pyx_v_result = PyObject_CallMethod(__pyx_v_self,__pyx_k2,__pyx_k3,NULL); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":150 */ + __pyx_1 = (__pyx_v_result == NULL); + if (__pyx_1) { + PyErr_Print(); + goto __pyx_L3; + } + /*else*/ { + Py_DECREF(__pyx_v_result); + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":154 */ + Py_DECREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":155 */ + PyGILState_Release(__pyx_v_gil); + goto __pyx_L2; + } + __pyx_L2:; + +} + +static __Pyx_InternTabEntry __pyx_intern_tab[] = { + {&__pyx_n_CantQueryPositionLength, "CantQueryPositionLength"}, + {&__pyx_n_Exception, "Exception"}, + {&__pyx_n_False, "False"}, + {&__pyx_n_True, "True"}, + {&__pyx_n_max, "max"}, + {&__pyx_n_min, "min"}, + {0, 0} +}; + +static PyObject *__pyx_tp_new_4xine_Xine(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_4xine_Xine *p; + PyObject *o = (*t->tp_alloc)(t, 0); + if (!o) return 0; + p = ((struct __pyx_obj_4xine_Xine *)o); + p->eosCallback = Py_None; Py_INCREF(Py_None); + if (__pyx_f_4xine_4Xine___new__(o, a, k) < 0) { + Py_DECREF(o); o = 0; + } + return o; +} + +static void __pyx_tp_dealloc_4xine_Xine(PyObject *o) { + struct __pyx_obj_4xine_Xine *p = (struct __pyx_obj_4xine_Xine *)o; + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + ++o->ob_refcnt; + __pyx_f_4xine_4Xine___dealloc__(o); + if (PyErr_Occurred()) PyErr_WriteUnraisable(o); + --o->ob_refcnt; + PyErr_Restore(etype, eval, etb); + } + Py_XDECREF(p->eosCallback); + (*o->ob_type->tp_free)(o); +} + +static int __pyx_tp_traverse_4xine_Xine(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_4xine_Xine *p = (struct __pyx_obj_4xine_Xine *)o; + if (p->eosCallback) { + e = (*v)(p->eosCallback, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_4xine_Xine(PyObject *o) { + struct __pyx_obj_4xine_Xine *p = (struct __pyx_obj_4xine_Xine *)o; + Py_XDECREF(p->eosCallback); + p->eosCallback = Py_None; Py_INCREF(Py_None); + return 0; +} + +static struct PyMethodDef __pyx_methods_4xine_Xine[] = { + {"attach", (PyCFunction)__pyx_f_4xine_4Xine_attach, METH_VARARGS|METH_KEYWORDS, 0}, + {"detach", (PyCFunction)__pyx_f_4xine_4Xine_detach, METH_VARARGS|METH_KEYWORDS, 0}, + {"setArea", (PyCFunction)__pyx_f_4xine_4Xine_setArea, METH_VARARGS|METH_KEYWORDS, 0}, + {"canPlayFile", (PyCFunction)__pyx_f_4xine_4Xine_canPlayFile, METH_VARARGS|METH_KEYWORDS, 0}, + {"selectFile", (PyCFunction)__pyx_f_4xine_4Xine_selectFile, METH_VARARGS|METH_KEYWORDS, 0}, + {"play", (PyCFunction)__pyx_f_4xine_4Xine_play, METH_VARARGS|METH_KEYWORDS, 0}, + {"pause", (PyCFunction)__pyx_f_4xine_4Xine_pause, METH_VARARGS|METH_KEYWORDS, 0}, + {"setViz", (PyCFunction)__pyx_f_4xine_4Xine_setViz, METH_VARARGS|METH_KEYWORDS, 0}, + {"setVolume", (PyCFunction)__pyx_f_4xine_4Xine_setVolume, METH_VARARGS|METH_KEYWORDS, 0}, + {"getVolume", (PyCFunction)__pyx_f_4xine_4Xine_getVolume, METH_VARARGS|METH_KEYWORDS, 0}, + {"gotExposeEvent", (PyCFunction)__pyx_f_4xine_4Xine_gotExposeEvent, METH_VARARGS|METH_KEYWORDS, 0}, + {"seek", (PyCFunction)__pyx_f_4xine_4Xine_seek, METH_VARARGS|METH_KEYWORDS, 0}, + {"setEosCallback", (PyCFunction)__pyx_f_4xine_4Xine_setEosCallback, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4xine_4Xine_setEosCallback}, + {"onEosEvent", (PyCFunction)__pyx_f_4xine_4Xine_onEosEvent, METH_VARARGS|METH_KEYWORDS, 0}, + {"getPositionAndLength", (PyCFunction)__pyx_f_4xine_4Xine_getPositionAndLength, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4xine_4Xine_getPositionAndLength}, + {0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_Xine = { + 0, /*nb_add*/ + 0, /*nb_subtract*/ + 0, /*nb_multiply*/ + 0, /*nb_divide*/ + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + 0, /*nb_negative*/ + 0, /*nb_positive*/ + 0, /*nb_absolute*/ + 0, /*nb_nonzero*/ + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + 0, /*nb_coerce*/ + 0, /*nb_int*/ + 0, /*nb_long*/ + 0, /*nb_float*/ + 0, /*nb_oct*/ + 0, /*nb_hex*/ + 0, /*nb_inplace_add*/ + 0, /*nb_inplace_subtract*/ + 0, /*nb_inplace_multiply*/ + 0, /*nb_inplace_divide*/ + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + 0, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + 0, /*nb_inplace_true_divide*/ + #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX + 0, /*nb_index*/ + #endif +}; + +static PySequenceMethods __pyx_tp_as_sequence_Xine = { + 0, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + 0, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_Xine = { + 0, /*mp_length*/ + 0, /*mp_subscript*/ + 0, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_Xine = { + 0, /*bf_getreadbuffer*/ + 0, /*bf_getwritebuffer*/ + 0, /*bf_getsegcount*/ + 0, /*bf_getcharbuffer*/ +}; + +PyTypeObject __pyx_type_4xine_Xine = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "xine.Xine", /*tp_name*/ + sizeof(struct __pyx_obj_4xine_Xine), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_4xine_Xine, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + &__pyx_tp_as_number_Xine, /*tp_as_number*/ + &__pyx_tp_as_sequence_Xine, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_Xine, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_Xine, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_4xine_Xine, /*tp_traverse*/ + __pyx_tp_clear_4xine_Xine, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_4xine_Xine, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_4xine_Xine, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ +}; + +static struct PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; + +static void __pyx_init_filenames(void); /*proto*/ + +PyMODINIT_FUNC initxine(void); /*proto*/ +PyMODINIT_FUNC initxine(void) { + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + __pyx_init_filenames(); + __pyx_m = Py_InitModule4("xine", __pyx_methods, 0, 0, PYTHON_API_VERSION); + if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;}; + Py_INCREF(__pyx_m); + __pyx_b = PyImport_AddModule("__builtin__"); + if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;}; + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;}; + if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;}; + __pyx_type_4xine_Xine.tp_free = _PyObject_GC_Del; + if (PyType_Ready(&__pyx_type_4xine_Xine) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} + if (PyObject_SetAttrString(__pyx_m, "Xine", (PyObject *)&__pyx_type_4xine_Xine) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} + __pyx_ptype_4xine_Xine = &__pyx_type_4xine_Xine; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":79 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_2 = __Pyx_CreateClass(__pyx_3, __pyx_1, __pyx_n_CantQueryPositionLength, "xine"); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_CantQueryPositionLength, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/platform/gtk-x11/xine/xine.pyx":140 */ + return; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("xine"); +} + +static char *__pyx_filenames[] = { + "xine.pyx", +}; + +/* Runtime support code */ + +static void __pyx_init_filenames(void) { + __pyx_f = __pyx_filenames; +} + +static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { + PyObject *result; + result = PyObject_GetAttr(dict, name); + if (!result) + PyErr_SetObject(PyExc_NameError, name); + return result; +} + +static PyObject *__Pyx_CreateClass( + PyObject *bases, PyObject *dict, PyObject *name, char *modname) +{ + PyObject *py_modname; + PyObject *result = 0; + + py_modname = PyString_FromString(modname); + if (!py_modname) + goto bad; + if (PyDict_SetItemString(dict, "__module__", py_modname) < 0) + goto bad; + result = PyClass_New(bases, dict, name); +bad: + Py_XDECREF(py_modname); + return result; +} + +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) { + Py_XINCREF(type); + Py_XINCREF(value); + Py_XINCREF(tb); + /* First, check the traceback argument, replacing None with NULL. */ + if (tb == Py_None) { + Py_DECREF(tb); + tb = 0; + } + else if (tb != NULL && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + /* Next, replace a missing value with None */ + if (value == NULL) { + value = Py_None; + Py_INCREF(value); + } + #if PY_VERSION_HEX < 0x02050000 + if (!PyClass_Check(type)) + #else + if (!PyType_Check(type)) + #endif + { + /* Raising an instance. The value should be a dummy. */ + if (value != Py_None) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + /* Normalize to raise , */ + Py_DECREF(value); + value = type; + #if PY_VERSION_HEX < 0x02050000 + if (PyInstance_Check(type)) { + type = (PyObject*) ((PyInstanceObject*)type)->in_class; + Py_INCREF(type); + } + else { + PyErr_SetString(PyExc_TypeError, + "raise: exception must be an old-style class or instance"); + goto raise_error; + } + #else + type = (PyObject*) type->ob_type; + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + #endif + } + PyErr_Restore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} + +static int __Pyx_InternStrings(__Pyx_InternTabEntry *t) { + while (t->p) { + *t->p = PyString_InternFromString(t->s); + if (!*t->p) + return -1; + ++t; + } + return 0; +} + +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" + +static void __Pyx_AddTraceback(char *funcname) { + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + PyObject *py_globals = 0; + PyObject *empty_tuple = 0; + PyObject *empty_string = 0; + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + + py_srcfile = PyString_FromString(__pyx_filename); + if (!py_srcfile) goto bad; + py_funcname = PyString_FromString(funcname); + if (!py_funcname) goto bad; + py_globals = PyModule_GetDict(__pyx_m); + if (!py_globals) goto bad; + empty_tuple = PyTuple_New(0); + if (!empty_tuple) goto bad; + empty_string = PyString_FromString(""); + if (!empty_string) goto bad; + py_code = PyCode_New( + 0, /*int argcount,*/ + 0, /*int nlocals,*/ + 0, /*int stacksize,*/ + 0, /*int flags,*/ + empty_string, /*PyObject *code,*/ + empty_tuple, /*PyObject *consts,*/ + empty_tuple, /*PyObject *names,*/ + empty_tuple, /*PyObject *varnames,*/ + empty_tuple, /*PyObject *freevars,*/ + empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + __pyx_lineno, /*int firstlineno,*/ + empty_string /*PyObject *lnotab*/ + ); + if (!py_code) goto bad; + py_frame = PyFrame_New( + PyThreadState_Get(), /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + py_globals, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + py_frame->f_lineno = __pyx_lineno; + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + Py_XDECREF(empty_tuple); + Py_XDECREF(empty_string); + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} --- miro-1.2.3.orig/portable/sorts.c +++ miro-1.2.3/portable/sorts.c @@ -0,0 +1,1721 @@ +/* Generated by Pyrex 0.9.6.4 on Fri Apr 25 12:03:57 2008 */ + +#define PY_SSIZE_T_CLEAN +#include "Python.h" +#include "structmember.h" +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#if PY_VERSION_HEX < 0x02050000 + typedef int Py_ssize_t; + #define PY_SSIZE_T_MAX INT_MAX + #define PY_SSIZE_T_MIN INT_MIN + #define PyInt_FromSsize_t(z) PyInt_FromLong(z) + #define PyInt_AsSsize_t(o) PyInt_AsLong(o) +#endif +#ifndef WIN32 + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif +#endif +#ifdef __cplusplus +#define __PYX_EXTERN_C extern "C" +#else +#define __PYX_EXTERN_C extern +#endif +#include + + +typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/ +typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/ + +static PyObject *__pyx_m; +static PyObject *__pyx_b; +static int __pyx_lineno; +static char *__pyx_filename; +static char **__pyx_f; + +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/ + +static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, char *modname); /*proto*/ + +static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ + +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ + +static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/ + +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ + +static void __Pyx_AddTraceback(char *funcname); /*proto*/ + +/* Declarations from sorts */ + + + +/* Implementation of sorts */ + +static char __pyx_k3[] = "Object that sorts item lists. There is one of these for every section\n that contains a list of items (i.e. there are several for most templates).\n\n Member attributes:\n sortBy -- Possible values: \'date\', \'size\', \'name\'\n sortDirection -- Possible values: \'ascending\', \'descending\'\n "; + +static PyObject *__pyx_n_item; +static PyObject *__pyx_n_itemmod; +static PyObject *__pyx_n_ItemSort; +static PyObject *__pyx_n___init__; +static PyObject *__pyx_n_setSortBy; +static PyObject *__pyx_n_sort; +static PyObject *__pyx_n_getSortButtonState; +static PyObject *__pyx_n_unwatchedMemory; +static PyObject *__pyx_n_unwatchedMemoryFor; +static PyObject *__pyx_n_ItemSortUnwatchedFirst; +static PyObject *__pyx_n_itemSortNew; +static PyObject *__pyx_n_itemSortLibrary; +static PyObject *__pyx_n_itemSortSearch; +static PyObject *__pyx_n_itemSortDownloads; +static PyObject *__pyx_n_itemSortSeedingTorrents; +static PyObject *__pyx_n_itemSortUploads; +static PyObject *__pyx_n_itemSortPendingDownloads; +static PyObject *__pyx_n_itemSortPausedDownloads; + +static PyObject *__pyx_k3p; + +static PyObject *__pyx_n_parent_id; +static PyObject *__pyx_n_releaseDateObj; +static PyObject *__pyx_n___class__; +static PyObject *__pyx_n_FileItem; +static PyObject *__pyx_n_getTitle; +static PyObject *__pyx_n_False; +static PyObject *__pyx_n_linkNumber; +static PyObject *__pyx_n_id; +static PyObject *__pyx_n_True; +static PyObject *__pyx_n_getParent; + +static PyObject *__pyx_f_5sorts_item(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_5sorts_item(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_v_xParent; + PyObject *__pyx_v_yParent; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"x","y",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_x, &__pyx_v_y)) return 0; + Py_INCREF(__pyx_v_x); + Py_INCREF(__pyx_v_y); + __pyx_v_xParent = Py_None; Py_INCREF(Py_None); + __pyx_v_yParent = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":40 */ + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_x); + __pyx_v_x = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":41 */ + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_y, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_y); + __pyx_v_y = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":42 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_parent_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_y, __pyx_n_parent_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_y, __pyx_n_releaseDateObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_x, __pyx_n_releaseDateObj); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; goto __pyx_L1;} + __pyx_3 = __pyx_3 != 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_releaseDateObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_y, __pyx_n_releaseDateObj); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + __pyx_3 = __pyx_3 > 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + goto __pyx_L3; + } + /*else*/ { + __pyx_2 = PyObject_GetAttr(__pyx_v_x, __pyx_n___class__); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_itemmod); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_FileItem); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = __pyx_2 == __pyx_4; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_y, __pyx_n___class__); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; goto __pyx_L1;} + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_itemmod); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_2, __pyx_n_FileItem); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = __pyx_1 == __pyx_4; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_x, __pyx_n_getTitle); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_y, __pyx_n_getTitle); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;} + __pyx_3 = __pyx_3 < 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyInt_FromLong(__pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; goto __pyx_L1;} + __pyx_r = __pyx_4; + __pyx_4 = 0; + goto __pyx_L0; + goto __pyx_L5; + } + /*else*/ { + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + } + __pyx_L5:; + goto __pyx_L4; + } + /*else*/ { + __pyx_2 = PyObject_GetAttr(__pyx_v_y, __pyx_n___class__); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; goto __pyx_L1;} + __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_itemmod); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_FileItem); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = __pyx_2 != __pyx_1; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_4 = PyObject_GetAttr(__pyx_v_y, __pyx_n_linkNumber); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_x, __pyx_n_linkNumber); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_4, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_y, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_v_x, __pyx_n_id); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_4, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + __pyx_3 = __pyx_3 < 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyInt_FromLong(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + goto __pyx_L7; + } + /*else*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_y, __pyx_n_linkNumber); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_v_x, __pyx_n_linkNumber); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_4, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; goto __pyx_L1;} + __pyx_3 = __pyx_3 < 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyInt_FromLong(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + __pyx_L7:; + goto __pyx_L6; + } + /*else*/ { + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + } + __pyx_L6:; + } + __pyx_L4:; + } + __pyx_L3:; + goto __pyx_L2; + } + /*else*/ { + __pyx_4 = PyObject_GetAttr(__pyx_v_x, __pyx_n_parent_id); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_y, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_4, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + goto __pyx_L8; + } + __pyx_4 = PyObject_GetAttr(__pyx_v_y, __pyx_n_parent_id); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_x, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_4, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + goto __pyx_L8; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":73 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_x, __pyx_n_getParent); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_xParent); + __pyx_v_xParent = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":74 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_y, __pyx_n_getParent); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_yParent); + __pyx_v_yParent = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":75 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_item); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} + Py_INCREF(__pyx_v_xParent); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_xParent); + Py_INCREF(__pyx_v_xParent); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_xParent); + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} + Py_INCREF(__pyx_v_yParent); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_yParent); + Py_INCREF(__pyx_v_yParent); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_yParent); + __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_1); + PyTuple_SET_ITEM(__pyx_5, 1, __pyx_4); + __pyx_1 = 0; + __pyx_4 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + } + __pyx_L8:; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("sorts.item"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_xParent); + Py_DECREF(__pyx_v_yParent); + Py_DECREF(__pyx_v_x); + Py_DECREF(__pyx_v_y); + return __pyx_r; +} + +static PyObject *__pyx_n_status; +static PyObject *__pyx_n_get; +static PyObject *__pyx_n_endTime; + + +static PyObject *__pyx_f_5sorts_downloadersByEndTime(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_5sorts_downloadersByEndTime(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_v_xtime; + PyObject *__pyx_v_ytime; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"x","y",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_x, &__pyx_v_y)) return 0; + Py_INCREF(__pyx_v_x); + Py_INCREF(__pyx_v_y); + __pyx_v_xtime = Py_None; Py_INCREF(Py_None); + __pyx_v_ytime = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":78 */ + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_status); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_get); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; goto __pyx_L1;} + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; goto __pyx_L1;} + Py_INCREF(__pyx_n_endTime); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_n_endTime); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_xtime); + __pyx_v_xtime = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":79 */ + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_y, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_status); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_get); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + Py_INCREF(__pyx_n_endTime); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_n_endTime); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_ytime); + __pyx_v_ytime = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":80 */ + if (PyObject_Cmp(__pyx_v_xtime, __pyx_v_ytime, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; goto __pyx_L1;} + __pyx_4 = __pyx_4 < 0; + __pyx_2 = PyInt_FromLong(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("sorts.downloadersByEndTime"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_xtime); + Py_DECREF(__pyx_v_ytime); + Py_DECREF(__pyx_v_x); + Py_DECREF(__pyx_v_y); + return __pyx_r; +} + +static PyObject *__pyx_n_sortBy; +static PyObject *__pyx_n_date; +static PyObject *__pyx_n_sortDirection; +static PyObject *__pyx_n_descending; + + +static PyObject *__pyx_f_5sorts_8ItemSort___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_5sorts_8ItemSort___init__ = {"__init__", (PyCFunction)__pyx_f_5sorts_8ItemSort___init__, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_5sorts_8ItemSort___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":92 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortBy, __pyx_n_date) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":93 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortDirection, __pyx_n_descending) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;} + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + __Pyx_AddTraceback("sorts.ItemSort.__init__"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_ascending; + + +static PyObject *__pyx_f_5sorts_8ItemSort_setSortBy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_5sorts_8ItemSort_setSortBy = {"setSortBy", (PyCFunction)__pyx_f_5sorts_8ItemSort_setSortBy, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_5sorts_8ItemSort_setSortBy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_by = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + static char *__pyx_argnames[] = {"self","by",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_by)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_by); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortBy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_v_by, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortDirection); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_n_ascending, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortDirection, __pyx_n_descending) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;} + goto __pyx_L3; + } + /*else*/ { + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortDirection, __pyx_n_ascending) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L1;} + } + __pyx_L3:; + goto __pyx_L2; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":102 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortBy, __pyx_v_by) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":103 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortDirection, __pyx_n_descending) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; goto __pyx_L1;} + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + __Pyx_AddTraceback("sorts.ItemSort.setSortBy"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_by); + return __pyx_r; +} + +static PyObject *__pyx_n_getReleaseDateObj; +static PyObject *__pyx_n_size; +static PyObject *__pyx_n_getSize; +static PyObject *__pyx_n_name; +static PyObject *__pyx_n_lower; +static PyObject *__pyx_n_duration; +static PyObject *__pyx_n_getDurationValue; + + +static PyObject *__pyx_f_5sorts_8ItemSort_sort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_5sorts_8ItemSort_sort[] = "Pass this to view.sort()"; +static PyMethodDef __pyx_mdef_5sorts_8ItemSort_sort = {"sort", (PyCFunction)__pyx_f_5sorts_8ItemSort_sort, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5sorts_8ItemSort_sort}; +static PyObject *__pyx_f_5sorts_8ItemSort_sort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","x","y",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_x, &__pyx_v_y)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_x); + Py_INCREF(__pyx_v_y); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":108 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortDirection); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_n_descending, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + __pyx_1 = __pyx_v_y; + Py_INCREF(__pyx_1); + __pyx_3 = __pyx_v_x; + Py_INCREF(__pyx_3); + Py_DECREF(__pyx_v_x); + __pyx_v_x = __pyx_1; + __pyx_1 = 0; + Py_DECREF(__pyx_v_y); + __pyx_v_y = __pyx_3; + __pyx_3 = 0; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":111 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortBy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_n_date, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_x, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_getReleaseDateObj); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_y, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_4, __pyx_n_getReleaseDateObj); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_Cmp(__pyx_1, __pyx_4, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + __pyx_2 = __pyx_2 < 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyInt_FromLong(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + goto __pyx_L3; + } + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortBy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_n_size, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + __pyx_4 = PyInt_FromLong(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_x, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_getSize); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_y, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_getSize); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_Cmp(__pyx_4, __pyx_1, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + __pyx_2 = __pyx_2 < 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyInt_FromLong(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + goto __pyx_L3; + } + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortBy); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_4, __pyx_n_name, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_2) { + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_3, __pyx_n_getTitle); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_lower); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_y, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_getTitle); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_lower); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_Cmp(__pyx_4, __pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + __pyx_2 = __pyx_2 < 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyInt_FromLong(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + goto __pyx_L3; + } + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortBy); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_4, __pyx_n_duration, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_2) { + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_x, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_getDurationValue); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_y, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_getDurationValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_Cmp(__pyx_3, __pyx_4, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + __pyx_2 = __pyx_2 < 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyInt_FromLong(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":120 */ + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L1;} + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("sorts.ItemSort.sort"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_x); + Py_DECREF(__pyx_v_y); + return __pyx_r; +} + +static PyObject *__pyx_k21p; + +static char __pyx_k21[] = ""; + +static PyObject *__pyx_f_5sorts_8ItemSort_getSortButtonState(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_5sorts_8ItemSort_getSortButtonState = {"getSortButtonState", (PyCFunction)__pyx_f_5sorts_8ItemSort_getSortButtonState, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_5sorts_8ItemSort_getSortButtonState(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_by = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + static char *__pyx_argnames[] = {"self","by",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_by)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_by); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":123 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortBy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_v_by, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortDirection); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_n_ascending, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; goto __pyx_L1;} + __pyx_2 = __pyx_2 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + Py_INCREF(__pyx_n_ascending); + __pyx_r = __pyx_n_ascending; + goto __pyx_L0; + goto __pyx_L3; + } + /*else*/ { + Py_INCREF(__pyx_n_descending); + __pyx_r = __pyx_n_descending; + goto __pyx_L0; + } + __pyx_L3:; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":128 */ + Py_INCREF(__pyx_k21p); + __pyx_r = __pyx_k21p; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + __Pyx_AddTraceback("sorts.ItemSort.getSortButtonState"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_by); + return __pyx_r; +} + +static PyObject *__pyx_n_clear; + +static PyObject *__pyx_f_5sorts_switchUnwatchedFirstChannel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_5sorts_switchUnwatchedFirstChannel[] = "The itemsUnwatchedFirst() sort normally remembers which items were\n unwatched. This way if an item becomes watched while the user is viewing\n a channel, it doesn\'t jump around in the view. This method takes care of\n resetting the memory when the user switches channels. Call it before\n using the itemsUnwatchedFirst() sort. newChannel should be the\n channel/channel folder object that\'s being displayed. Or None if the new\n videos tab is being displayed.\n "; +static PyObject *__pyx_f_5sorts_switchUnwatchedFirstChannel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_newChannel = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"newChannel",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_newChannel)) return 0; + Py_INCREF(__pyx_v_newChannel); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":142 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_unwatchedMemoryFor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_v_newChannel, __pyx_1, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; goto __pyx_L1;} + __pyx_2 = __pyx_2 != 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":143 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_unwatchedMemory); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_clear); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":144 */ + if (PyObject_SetAttr(__pyx_m, __pyx_n_unwatchedMemoryFor, __pyx_v_newChannel) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;} + goto __pyx_L2; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("sorts.switchUnwatchedFirstChannel"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_newChannel); + return __pyx_r; +} + +static PyObject *__pyx_n_getID; +static PyObject *__pyx_n_KeyError; +static PyObject *__pyx_n_getState; + +static PyObject *__pyx_k22p; + +static char __pyx_k22[] = "newly-downloaded"; + +static PyObject *__pyx_f_5sorts__getUnwatchedWithMemory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_5sorts__getUnwatchedWithMemory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_item = 0; + PyObject *__pyx_v_rv; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + PyObject *__pyx_7 = 0; + static char *__pyx_argnames[] = {"item",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_item)) return 0; + Py_INCREF(__pyx_v_item); + __pyx_v_rv = Py_None; Py_INCREF(Py_None); + /*try:*/ { + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_unwatchedMemory); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_item, __pyx_n_getID); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; goto __pyx_L2;} + __pyx_3 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":149 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; goto __pyx_L1;} + __pyx_4 = PyErr_ExceptionMatches(__pyx_1); + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __Pyx_AddTraceback("sorts._getUnwatchedWithMemory"); + if (__Pyx_GetException(&__pyx_3, &__pyx_2, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":150 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_item, __pyx_n_getState); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;} + __pyx_6 = PyObject_CallObject(__pyx_5, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + if (PyObject_Cmp(__pyx_6, __pyx_k22p, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_5 = PyInt_FromLong(__pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;} + Py_DECREF(__pyx_v_rv); + __pyx_v_rv = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":151 */ + __pyx_6 = __Pyx_GetName(__pyx_m, __pyx_n_unwatchedMemory); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;} + __pyx_5 = PyObject_GetAttr(__pyx_v_item, __pyx_n_getID); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;} + __pyx_7 = PyObject_CallObject(__pyx_5, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + if (PyObject_SetItem(__pyx_6, __pyx_7, __pyx_v_rv) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":152 */ + Py_INCREF(__pyx_v_rv); + __pyx_r = __pyx_v_rv; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + Py_XDECREF(__pyx_7); + __Pyx_AddTraceback("sorts._getUnwatchedWithMemory"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_rv); + Py_DECREF(__pyx_v_item); + return __pyx_r; +} + +static PyObject *__pyx_n__getUnwatchedWithMemory; + +static PyObject *__pyx_f_5sorts_22ItemSortUnwatchedFirst_sort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_5sorts_22ItemSortUnwatchedFirst_sort = {"sort", (PyCFunction)__pyx_f_5sorts_22ItemSortUnwatchedFirst_sort, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_5sorts_22ItemSortUnwatchedFirst_sort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_v_uwx; + PyObject *__pyx_v_uwy; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"self","x","y",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_x, &__pyx_v_y)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_x); + Py_INCREF(__pyx_v_y); + __pyx_v_uwx = Py_None; Py_INCREF(Py_None); + __pyx_v_uwy = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":156 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__getUnwatchedWithMemory); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; goto __pyx_L1;} + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_x, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_uwx); + __pyx_v_uwx = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":157 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__getUnwatchedWithMemory); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;} + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_y, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_uwy); + __pyx_v_uwy = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":158 */ + if (PyObject_Cmp(__pyx_v_uwx, __pyx_v_uwy, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; goto __pyx_L1;} + __pyx_4 = __pyx_4 != 0; + if (__pyx_4) { + Py_INCREF(__pyx_v_uwx); + __pyx_r = __pyx_v_uwx; + goto __pyx_L0; + goto __pyx_L2; + } + /*else*/ { + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_sort); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyTuple_New(3); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;} + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_self); + Py_INCREF(__pyx_v_x); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_x); + Py_INCREF(__pyx_v_y); + PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_y); + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("sorts.ItemSortUnwatchedFirst.sort"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_uwx); + Py_DECREF(__pyx_v_uwy); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_x); + Py_DECREF(__pyx_v_y); + return __pyx_r; +} + +static PyObject *__pyx_n_obj; +static PyObject *__pyx_n_getDefault; + +static PyObject *__pyx_f_5sorts_guideTabs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_5sorts_guideTabs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_v_xguide; + PyObject *__pyx_v_yguide; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"x","y",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_x, &__pyx_v_y)) return 0; + Py_INCREF(__pyx_v_x); + Py_INCREF(__pyx_v_y); + __pyx_v_xguide = Py_None; Py_INCREF(Py_None); + __pyx_v_yguide = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":176 */ + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_obj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_xguide); + __pyx_v_xguide = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":177 */ + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_y, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_obj); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_yguide); + __pyx_v_yguide = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":178 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_xguide, __pyx_n_getDefault); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_IsTrue(__pyx_1); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + if (__pyx_3) { + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_yguide, __pyx_n_getDefault); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyInt_FromLong((!__pyx_3)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + } + __pyx_3 = PyObject_IsTrue(__pyx_1); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":180 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_xguide, __pyx_n_getDefault); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_IsTrue(__pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyInt_FromLong((!__pyx_3)); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + if (__pyx_3) { + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_yguide, __pyx_n_getDefault); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_3) { + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":182 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_xguide, __pyx_n_getTitle); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_yguide, __pyx_n_getTitle); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_Cmp(__pyx_4, __pyx_1, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; goto __pyx_L1;} + __pyx_3 = __pyx_3 < 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyInt_FromLong(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("sorts.guideTabs"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_xguide); + Py_DECREF(__pyx_v_yguide); + Py_DECREF(__pyx_v_x); + Py_DECREF(__pyx_v_y); + return __pyx_r; +} + +static PyObject *__pyx_n_order; + +static PyObject *__pyx_f_5sorts_staticTabs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_5sorts_staticTabs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"x","y",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_x, &__pyx_v_y)) return 0; + Py_INCREF(__pyx_v_x); + Py_INCREF(__pyx_v_y); + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_obj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_order); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_y, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_obj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_order); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_Cmp(__pyx_2, __pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + __pyx_4 = __pyx_4 < 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyInt_FromLong(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("sorts.staticTabs"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_x); + Py_DECREF(__pyx_v_y); + return __pyx_r; +} + +static PyObject *__pyx_n_sortOrder; +static PyObject *__pyx_n_title; + +static PyObject *__pyx_f_5sorts_searchEngines(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_5sorts_searchEngines(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"x","y",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_x, &__pyx_v_y)) return 0; + Py_INCREF(__pyx_v_x); + Py_INCREF(__pyx_v_y); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":188 */ + /*try:*/ { + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_sortOrder); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_v_y, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_n_sortOrder); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + __pyx_4 = __pyx_4 < 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyInt_FromLong(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L2;} + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":190 */ + /*except:*/ { + __Pyx_AddTraceback("sorts.searchEngines"); + if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":192 */ + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_title); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_y, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_title); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_Cmp(__pyx_3, __pyx_1, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_x, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_name); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_y, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_n_name); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + __pyx_4 = __pyx_4 < 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyInt_FromLong(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; goto __pyx_L1;} + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + goto __pyx_L4; + } + /*else*/ { + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_x, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_title); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_y, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_title); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_Cmp(__pyx_3, __pyx_1, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + __pyx_4 = __pyx_4 < 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyInt_FromLong(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + __pyx_L4:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("sorts.searchEngines"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_x); + Py_DECREF(__pyx_v_y); + return __pyx_r; +} + +static __Pyx_InternTabEntry __pyx_intern_tab[] = { + {&__pyx_n_False, "False"}, + {&__pyx_n_FileItem, "FileItem"}, + {&__pyx_n_ItemSort, "ItemSort"}, + {&__pyx_n_ItemSortUnwatchedFirst, "ItemSortUnwatchedFirst"}, + {&__pyx_n_KeyError, "KeyError"}, + {&__pyx_n_True, "True"}, + {&__pyx_n___class__, "__class__"}, + {&__pyx_n___init__, "__init__"}, + {&__pyx_n__getUnwatchedWithMemory, "_getUnwatchedWithMemory"}, + {&__pyx_n_ascending, "ascending"}, + {&__pyx_n_clear, "clear"}, + {&__pyx_n_date, "date"}, + {&__pyx_n_descending, "descending"}, + {&__pyx_n_duration, "duration"}, + {&__pyx_n_endTime, "endTime"}, + {&__pyx_n_get, "get"}, + {&__pyx_n_getDefault, "getDefault"}, + {&__pyx_n_getDurationValue, "getDurationValue"}, + {&__pyx_n_getID, "getID"}, + {&__pyx_n_getParent, "getParent"}, + {&__pyx_n_getReleaseDateObj, "getReleaseDateObj"}, + {&__pyx_n_getSize, "getSize"}, + {&__pyx_n_getSortButtonState, "getSortButtonState"}, + {&__pyx_n_getState, "getState"}, + {&__pyx_n_getTitle, "getTitle"}, + {&__pyx_n_id, "id"}, + {&__pyx_n_item, "item"}, + {&__pyx_n_itemSortDownloads, "itemSortDownloads"}, + {&__pyx_n_itemSortLibrary, "itemSortLibrary"}, + {&__pyx_n_itemSortNew, "itemSortNew"}, + {&__pyx_n_itemSortPausedDownloads, "itemSortPausedDownloads"}, + {&__pyx_n_itemSortPendingDownloads, "itemSortPendingDownloads"}, + {&__pyx_n_itemSortSearch, "itemSortSearch"}, + {&__pyx_n_itemSortSeedingTorrents, "itemSortSeedingTorrents"}, + {&__pyx_n_itemSortUploads, "itemSortUploads"}, + {&__pyx_n_itemmod, "itemmod"}, + {&__pyx_n_linkNumber, "linkNumber"}, + {&__pyx_n_lower, "lower"}, + {&__pyx_n_name, "name"}, + {&__pyx_n_obj, "obj"}, + {&__pyx_n_order, "order"}, + {&__pyx_n_parent_id, "parent_id"}, + {&__pyx_n_releaseDateObj, "releaseDateObj"}, + {&__pyx_n_setSortBy, "setSortBy"}, + {&__pyx_n_size, "size"}, + {&__pyx_n_sort, "sort"}, + {&__pyx_n_sortBy, "sortBy"}, + {&__pyx_n_sortDirection, "sortDirection"}, + {&__pyx_n_sortOrder, "sortOrder"}, + {&__pyx_n_status, "status"}, + {&__pyx_n_title, "title"}, + {&__pyx_n_unwatchedMemory, "unwatchedMemory"}, + {&__pyx_n_unwatchedMemoryFor, "unwatchedMemoryFor"}, + {0, 0} +}; + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_k3p, __pyx_k3, sizeof(__pyx_k3)}, + {&__pyx_k21p, __pyx_k21, sizeof(__pyx_k21)}, + {&__pyx_k22p, __pyx_k22, sizeof(__pyx_k22)}, + {0, 0, 0} +}; + +static struct PyMethodDef __pyx_methods[] = { + {"item", (PyCFunction)__pyx_f_5sorts_item, METH_VARARGS|METH_KEYWORDS, 0}, + {"downloadersByEndTime", (PyCFunction)__pyx_f_5sorts_downloadersByEndTime, METH_VARARGS|METH_KEYWORDS, 0}, + {"switchUnwatchedFirstChannel", (PyCFunction)__pyx_f_5sorts_switchUnwatchedFirstChannel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5sorts_switchUnwatchedFirstChannel}, + {"_getUnwatchedWithMemory", (PyCFunction)__pyx_f_5sorts__getUnwatchedWithMemory, METH_VARARGS|METH_KEYWORDS, 0}, + {"guideTabs", (PyCFunction)__pyx_f_5sorts_guideTabs, METH_VARARGS|METH_KEYWORDS, 0}, + {"staticTabs", (PyCFunction)__pyx_f_5sorts_staticTabs, METH_VARARGS|METH_KEYWORDS, 0}, + {"searchEngines", (PyCFunction)__pyx_f_5sorts_searchEngines, METH_VARARGS|METH_KEYWORDS, 0}, + {0, 0, 0, 0} +}; + +static void __pyx_init_filenames(void); /*proto*/ + +PyMODINIT_FUNC initsorts(void); /*proto*/ +PyMODINIT_FUNC initsorts(void) { + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + __pyx_init_filenames(); + __pyx_m = Py_InitModule4("sorts", __pyx_methods, 0, 0, PYTHON_API_VERSION); + if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}; + Py_INCREF(__pyx_m); + __pyx_b = PyImport_AddModule("__builtin__"); + if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}; + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}; + if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}; + if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":30 */ + __pyx_1 = __Pyx_Import(__pyx_n_item, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemmod, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":82 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} + __pyx_2 = PyTuple_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} + if (PyDict_SetItemString(__pyx_1, "__doc__", __pyx_k3p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} + __pyx_3 = __Pyx_CreateClass(__pyx_2, __pyx_1, __pyx_n_ItemSort, "sorts"); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":91 */ + __pyx_2 = PyCFunction_New(&__pyx_mdef_5sorts_8ItemSort___init__, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; goto __pyx_L1;} + __pyx_4 = PyMethod_New(__pyx_2, 0, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_3, __pyx_n___init__, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":95 */ + __pyx_2 = PyCFunction_New(&__pyx_mdef_5sorts_8ItemSort_setSortBy, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; goto __pyx_L1;} + __pyx_4 = PyMethod_New(__pyx_2, 0, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_3, __pyx_n_setSortBy, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":105 */ + __pyx_2 = PyCFunction_New(&__pyx_mdef_5sorts_8ItemSort_sort, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L1;} + __pyx_4 = PyMethod_New(__pyx_2, 0, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_3, __pyx_n_sort, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":122 */ + __pyx_2 = PyCFunction_New(&__pyx_mdef_5sorts_8ItemSort_getSortButtonState, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L1;} + __pyx_4 = PyMethod_New(__pyx_2, 0, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_3, __pyx_n_getSortButtonState, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_ItemSort, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":130 */ + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_unwatchedMemory, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":131 */ + if (PyObject_SetAttr(__pyx_m, __pyx_n_unwatchedMemoryFor, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":154 */ + __pyx_4 = PyDict_New(); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;} + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;} + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_3); + __pyx_3 = 0; + __pyx_2 = __Pyx_CreateClass(__pyx_1, __pyx_4, __pyx_n_ItemSortUnwatchedFirst, "sorts"); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyCFunction_New(&__pyx_mdef_5sorts_22ItemSortUnwatchedFirst_sort, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;} + __pyx_1 = PyMethod_New(__pyx_3, 0, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_2, __pyx_n_sort, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_ItemSortUnwatchedFirst, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":166 */ + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSortUnwatchedFirst); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortNew, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":167 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortLibrary, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":168 */ + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortSearch, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":169 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortDownloads, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":170 */ + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortSeedingTorrents, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":171 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortUploads, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":172 */ + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortPendingDownloads, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":173 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_ItemSort); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_itemSortPausedDownloads, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/sorts.pyx":187 */ + return; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("sorts"); +} + +static char *__pyx_filenames[] = { + "sorts.pyx", +}; + +/* Runtime support code */ + +static void __pyx_init_filenames(void) { + __pyx_f = __pyx_filenames; +} + +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) { + PyObject *__import__ = 0; + PyObject *empty_list = 0; + PyObject *module = 0; + PyObject *global_dict = 0; + PyObject *empty_dict = 0; + PyObject *list; + __import__ = PyObject_GetAttrString(__pyx_b, "__import__"); + if (!__import__) + goto bad; + if (from_list) + list = from_list; + else { + empty_list = PyList_New(0); + if (!empty_list) + goto bad; + list = empty_list; + } + global_dict = PyModule_GetDict(__pyx_m); + if (!global_dict) + goto bad; + empty_dict = PyDict_New(); + if (!empty_dict) + goto bad; + module = PyObject_CallFunction(__import__, "OOOO", + name, global_dict, empty_dict, list); +bad: + Py_XDECREF(empty_list); + Py_XDECREF(__import__); + Py_XDECREF(empty_dict); + return module; +} + +static PyObject *__Pyx_CreateClass( + PyObject *bases, PyObject *dict, PyObject *name, char *modname) +{ + PyObject *py_modname; + PyObject *result = 0; + + py_modname = PyString_FromString(modname); + if (!py_modname) + goto bad; + if (PyDict_SetItemString(dict, "__module__", py_modname) < 0) + goto bad; + result = PyClass_New(bases, dict, name); +bad: + Py_XDECREF(py_modname); + return result; +} + +static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { + PyObject *result; + result = PyObject_GetAttr(dict, name); + if (!result) + PyErr_SetObject(PyExc_NameError, name); + return result; +} + +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { + PyThreadState *tstate = PyThreadState_Get(); + PyErr_Fetch(type, value, tb); + PyErr_NormalizeException(type, value, tb); + if (PyErr_Occurred()) + goto bad; + Py_INCREF(*type); + Py_INCREF(*value); + Py_INCREF(*tb); + Py_XDECREF(tstate->exc_type); + Py_XDECREF(tstate->exc_value); + Py_XDECREF(tstate->exc_traceback); + tstate->exc_type = *type; + tstate->exc_value = *value; + tstate->exc_traceback = *tb; + return 0; +bad: + Py_XDECREF(*type); + Py_XDECREF(*value); + Py_XDECREF(*tb); + return -1; +} + +static int __Pyx_InternStrings(__Pyx_InternTabEntry *t) { + while (t->p) { + *t->p = PyString_InternFromString(t->s); + if (!*t->p) + return -1; + ++t; + } + return 0; +} + +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + while (t->p) { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + if (!*t->p) + return -1; + ++t; + } + return 0; +} + +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" + +static void __Pyx_AddTraceback(char *funcname) { + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + PyObject *py_globals = 0; + PyObject *empty_tuple = 0; + PyObject *empty_string = 0; + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + + py_srcfile = PyString_FromString(__pyx_filename); + if (!py_srcfile) goto bad; + py_funcname = PyString_FromString(funcname); + if (!py_funcname) goto bad; + py_globals = PyModule_GetDict(__pyx_m); + if (!py_globals) goto bad; + empty_tuple = PyTuple_New(0); + if (!empty_tuple) goto bad; + empty_string = PyString_FromString(""); + if (!empty_string) goto bad; + py_code = PyCode_New( + 0, /*int argcount,*/ + 0, /*int nlocals,*/ + 0, /*int stacksize,*/ + 0, /*int flags,*/ + empty_string, /*PyObject *code,*/ + empty_tuple, /*PyObject *consts,*/ + empty_tuple, /*PyObject *names,*/ + empty_tuple, /*PyObject *varnames,*/ + empty_tuple, /*PyObject *freevars,*/ + empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + __pyx_lineno, /*int firstlineno,*/ + empty_string /*PyObject *lnotab*/ + ); + if (!py_code) goto bad; + py_frame = PyFrame_New( + PyThreadState_Get(), /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + py_globals, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + py_frame->f_lineno = __pyx_lineno; + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + Py_XDECREF(empty_tuple); + Py_XDECREF(empty_string); + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} --- miro-1.2.3.orig/portable/database.c +++ miro-1.2.3/portable/database.c @@ -0,0 +1,12156 @@ +/* Generated by Pyrex 0.9.6.4 on Fri Apr 25 12:02:11 2008 */ + +#define PY_SSIZE_T_CLEAN +#include "Python.h" +#include "structmember.h" +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#if PY_VERSION_HEX < 0x02050000 + typedef int Py_ssize_t; + #define PY_SSIZE_T_MAX INT_MAX + #define PY_SSIZE_T_MIN INT_MIN + #define PyInt_FromSsize_t(z) PyInt_FromLong(z) + #define PyInt_AsSsize_t(o) PyInt_AsLong(o) +#endif +#ifndef WIN32 + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif +#endif +#ifdef __cplusplus +#define __PYX_EXTERN_C extern "C" +#else +#define __PYX_EXTERN_C extern +#endif +#include + + +typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/ +typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/ + +static PyObject *__pyx_m; +static PyObject *__pyx_b; +static int __pyx_lineno; +static char *__pyx_filename; +static char **__pyx_f; + +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/ + +static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ + +static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, char *modname); /*proto*/ + +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ + +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ + +static PyObject *__Pyx_UnpackItem(PyObject *); /*proto*/ +static int __Pyx_EndUnpack(PyObject *); /*proto*/ + +static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/ + +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ + +static void __Pyx_AddTraceback(char *funcname); /*proto*/ + +/* Declarations from database */ + +static PyObject *__pyx_k32; +static PyObject *__pyx_k33; +static PyObject *__pyx_k36; +static PyObject *__pyx_k37; +static PyObject *__pyx_k41; +static PyObject *__pyx_k42; +static PyObject *__pyx_k43; +static PyObject *__pyx_k44; +static PyObject *__pyx_k45; +static PyObject *__pyx_k46; +static PyObject *__pyx_k47; +static PyObject *__pyx_k48; +static PyObject *__pyx_k49; +static PyObject *__pyx_k50; +static PyObject *__pyx_k51; +static PyObject *__pyx_k52; +static PyObject *__pyx_k53; +static PyObject *__pyx_k54; +static PyObject *__pyx_k55; +static PyObject *__pyx_k56; +static PyObject *__pyx_k57; +static PyObject *__pyx_k58; +static PyObject *__pyx_k59; +static PyObject *__pyx_k60; +static PyObject *__pyx_k61; +static PyObject *__pyx_k62; +static PyObject *__pyx_k63; +static PyObject *__pyx_k64; +static PyObject *__pyx_k66; +static PyObject *__pyx_k67; +static PyObject *__pyx_k68; + + +/* Implementation of database */ + +static char __pyx_k1[] = "os.path"; +static char __pyx_k18[] = "miro.fasttypes"; +static char __pyx_k22[] = "Raised when a DDBObject fails its constraint checking during\n signalChange().\n "; +static char __pyx_k24[] = "Raised when the database encounters an internal consistency issue.\n "; +static char __pyx_k26[] = "Raised when the database encounters an internal consistency issue.\n "; +static char __pyx_k35[] = "Maps index values to database views.\n\n An IndexMap is a dict that maps index values to views, and also remembers\n what values each object maps to. Remembering the mapped values allows us\n to efficently locate objects after their mapped value changes.\n "; +static char __pyx_k39[] = "Maps index values to database views.\n\n A MultiIndexMap is like an IndexMap, except it expects the index function\n to return a sequence of values. For each value it returns, the object\n will be added to the corresponding view.\n "; + +static PyObject *__pyx_n_expanduser; +static PyObject *__pyx_n_exists; +static PyObject *__pyx_n_cPickle; +static PyObject *__pyx_n_dump; +static PyObject *__pyx_n_dumps; +static PyObject *__pyx_n_load; +static PyObject *__pyx_n_HIGHEST_PROTOCOL; +static PyObject *__pyx_n_UnpicklingError; +static PyObject *__pyx_n_shutil; +static PyObject *__pyx_n_copyfile; +static PyObject *__pyx_n_copy; +static PyObject *__pyx_n_traceback; +static PyObject *__pyx_n_sys; +static PyObject *__pyx_n_types; +static PyObject *__pyx_n_threading; +static PyObject *__pyx_n_LinkedList; +static PyObject *__pyx_n_SortedList; +static PyObject *__pyx_n_DatabaseConstraintError; +static PyObject *__pyx_n_Exception; +static PyObject *__pyx_n_DatabaseConsistencyError; +static PyObject *__pyx_n_DatabaseThreadError; +static PyObject *__pyx_n_DatabaseVersionError; +static PyObject *__pyx_n_StandardError; +static PyObject *__pyx_n_ObjectNotFoundError; +static PyObject *__pyx_n_NotRootDBError; +static PyObject *__pyx_n_NoValue; +static PyObject *__pyx_n_event_thread; +static PyObject *__pyx_n_IndexMap; +static PyObject *__pyx_n_False; +static PyObject *__pyx_n___init__; +static PyObject *__pyx_n_addObject; +static PyObject *__pyx_n_removeObject; +static PyObject *__pyx_n__changeOrRecompute; +static PyObject *__pyx_n_changeObject; +static PyObject *__pyx_n_recomputeObject; +static PyObject *__pyx_n_getViewForValue; +static PyObject *__pyx_n_getItemForValue; +static PyObject *__pyx_n_getViews; +static PyObject *__pyx_n_count_databases; +static PyObject *__pyx_n_MultiIndexMap; +static PyObject *__pyx_n_DynamicDatabase; +static PyObject *__pyx_n_True; +static PyObject *__pyx_n___iter__; +static PyObject *__pyx_n_saveCursor; +static PyObject *__pyx_n_restoreCursor; +static PyObject *__pyx_n___getitem__; +static PyObject *__pyx_n___len__; +static PyObject *__pyx_n_len; +static PyObject *__pyx_n_confirmDBThread; +static PyObject *__pyx_n_cur; +static PyObject *__pyx_n_next; +static PyObject *__pyx_n_getNext; +static PyObject *__pyx_n_getPrev; +static PyObject *__pyx_n_resetCursor; +static PyObject *__pyx_n_moveCursorToObject; +static PyObject *__pyx_n_moveCursorToID; +static PyObject *__pyx_n_filter; +static PyObject *__pyx_n_clone; +static PyObject *__pyx_n_map; +static PyObject *__pyx_n_sort; +static PyObject *__pyx_n_addChangeCallback; +static PyObject *__pyx_n_addAddCallback; +static PyObject *__pyx_n_addRemoveCallback; +static PyObject *__pyx_n_addViewChangeCallback; +static PyObject *__pyx_n_addResortCallback; +static PyObject *__pyx_n_addViewUnlinkCallback; +static PyObject *__pyx_n_removeChangeCallback; +static PyObject *__pyx_n_removeAddCallback; +static PyObject *__pyx_n_removeRemoveCallback; +static PyObject *__pyx_n_removeViewChangeCallback; +static PyObject *__pyx_n_removeResortCallback; +static PyObject *__pyx_n_removeViewUnlinkCallback; +static PyObject *__pyx_n_addBeforeCursor; +static PyObject *__pyx_n_addAfterCursor; +static PyObject *__pyx_n_removeObj; +static PyObject *__pyx_n__removeIter; +static PyObject *__pyx_n_changeObj; +static PyObject *__pyx_n_remove; +static PyObject *__pyx_n_change; +static PyObject *__pyx_n_recomputeFilter; +static PyObject *__pyx_n_recomputeIndex; +static PyObject *__pyx_n__recomputeSingleSort; +static PyObject *__pyx_n_recomputeSort; +static PyObject *__pyx_n_recomputeFilters; +static PyObject *__pyx_n_getVal; +static PyObject *__pyx_n_restoreFromObjectList; +static PyObject *__pyx_n_getLastID; +static PyObject *__pyx_n_unlink; +static PyObject *__pyx_n_removeView; +static PyObject *__pyx_n_getObjectByID; +static PyObject *__pyx_n_idExists; +static PyObject *__pyx_n_getCurrentID; +static PyObject *__pyx_n_getNextID; +static PyObject *__pyx_n_getPrevID; +static PyObject *__pyx_n_createIndex; +static PyObject *__pyx_n_filterWithIndex; +static PyObject *__pyx_n_changeIndexValue; +static PyObject *__pyx_n_getItemWithIndex; +static PyObject *__pyx_n_defaultDatabase; +static PyObject *__pyx_n_DDBObject; +static PyObject *__pyx_n_lastID; +static PyObject *__pyx_n_dd; +static PyObject *__pyx_n_getID; +static PyObject *__pyx_n_checkConstraints; +static PyObject *__pyx_n_signalChange; + +static PyObject *__pyx_k1p; +static PyObject *__pyx_k18p; +static PyObject *__pyx_k22p; +static PyObject *__pyx_k24p; +static PyObject *__pyx_k26p; +static PyObject *__pyx_k35p; +static PyObject *__pyx_k39p; + +static PyObject *__pyx_f_8database_set_thread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_8database_set_thread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_thread = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + static char *__pyx_argnames[] = {"thread",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_thread)) return 0; + Py_INCREF(__pyx_v_thread); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":92 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_event_thread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; goto __pyx_L1;} + __pyx_2 = __pyx_1 == Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_event_thread, __pyx_v_thread) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;} + goto __pyx_L2; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + __Pyx_AddTraceback("database.set_thread"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_thread); + return __pyx_r; +} + +static PyObject *__pyx_n_currentThread; +static PyObject *__pyx_n_print_stack; + +static PyObject *__pyx_k69p; +static PyObject *__pyx_k70p; + +static char __pyx_k69[] = "Database event thread not set"; +static char __pyx_k70[] = "Database called from %s"; + +static PyObject *__pyx_f_8database_confirmDBThread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_8database_confirmDBThread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_errorString; + PyObject *__pyx_r; + int __pyx_1; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + __pyx_v_errorString = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":98 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_event_thread); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;} + __pyx_1 = __pyx_2 == Py_None; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (!__pyx_1) { + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_event_thread); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;} + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_threading); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_3, __pyx_n_currentThread); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (PyObject_Cmp(__pyx_2, __pyx_3, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;} + __pyx_1 = __pyx_1 != 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + if (__pyx_1) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":99 */ + __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_event_thread); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; goto __pyx_L1;} + __pyx_1 = __pyx_4 == Py_None; + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_1) { + Py_INCREF(__pyx_k69p); + Py_DECREF(__pyx_v_errorString); + __pyx_v_errorString = __pyx_k69p; + goto __pyx_L3; + } + /*else*/ { + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_threading); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_currentThread); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyNumber_Remainder(__pyx_k70p, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_errorString); + __pyx_v_errorString = __pyx_2; + __pyx_2 = 0; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":103 */ + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_traceback); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_3, __pyx_n_print_stack); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":104 */ + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_DatabaseThreadError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; goto __pyx_L1;} + __Pyx_Raise(__pyx_3, __pyx_v_errorString, 0); + Py_DECREF(__pyx_3); __pyx_3 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; goto __pyx_L1;} + goto __pyx_L2; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.confirmDBThread"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_errorString); + return __pyx_r; +} + +static PyObject *__pyx_n_id; +static PyObject *__pyx_n_str; +static PyObject *__pyx_n_type; +static PyObject *__pyx_n_InstanceType; +static PyObject *__pyx_n___getstate__; +static PyObject *__pyx_n_OK; +static PyObject *__pyx_n_BAD; +static PyObject *__pyx_n_DictType; +static PyObject *__pyx_n_findUnpicklableParts; +static PyObject *__pyx_n___dict__; +static PyObject *__pyx_n_ListType; +static PyObject *__pyx_n_TupleType; + +static PyObject *__pyx_k71p; +static PyObject *__pyx_k72p; +static PyObject *__pyx_k73p; +static PyObject *__pyx_k74p; +static PyObject *__pyx_k76p; +static PyObject *__pyx_k78p; +static PyObject *__pyx_k79p; +static PyObject *__pyx_k80p; +static PyObject *__pyx_k82p; +static PyObject *__pyx_k83p; +static PyObject *__pyx_k84p; +static PyObject *__pyx_k85p; +static PyObject *__pyx_k86p; +static PyObject *__pyx_k87p; +static PyObject *__pyx_k88p; +static PyObject *__pyx_k89p; + +static char __pyx_k71[] = ""; +static char __pyx_k72[] = " "; +static char __pyx_k73[] = " (already checked): "; +static char __pyx_k74[] = "\n"; +static char __pyx_k76[] = "[%s ->]\n"; +static char __pyx_k78[] = " "; +static char __pyx_k79[] = "OK: "; +static char __pyx_k80[] = "\n"; +static char __pyx_k82[] = " "; +static char __pyx_k83[] = "BAD: "; +static char __pyx_k84[] = "\n"; +static char __pyx_k85[] = " "; +static char __pyx_k86[] = "WARNING: object missing __getstate__"; +static char __pyx_k87[] = " "; +static char __pyx_k88[] = "--- FOR KEY "; +static char __pyx_k89[] = "\n"; + +static PyObject *__pyx_f_8database_findUnpicklableParts(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_8database_findUnpicklableParts(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_seen = 0; + PyObject *__pyx_v_depth = 0; + PyObject *__pyx_v_thisId; + PyObject *__pyx_v_out; + PyObject *__pyx_v_key; + PyObject *__pyx_v_val; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + PyObject *__pyx_7 = 0; + PyObject *__pyx_8 = 0; + PyObject *__pyx_9 = 0; + static char *__pyx_argnames[] = {"obj","seen","depth",0}; + __pyx_v_seen = __pyx_k32; + __pyx_v_depth = __pyx_k33; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|OO", __pyx_argnames, &__pyx_v_obj, &__pyx_v_seen, &__pyx_v_depth)) return 0; + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_seen); + Py_INCREF(__pyx_v_depth); + __pyx_v_thisId = Py_None; Py_INCREF(Py_None); + __pyx_v_out = Py_None; Py_INCREF(Py_None); + __pyx_v_key = Py_None; Py_INCREF(Py_None); + __pyx_v_val = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":107 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_obj); + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_thisId); + __pyx_v_thisId = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":108 */ + Py_INCREF(__pyx_k71p); + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_k71p; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":110 */ + __pyx_4 = PySequence_Contains(__pyx_v_seen, __pyx_v_thisId); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;} + if (__pyx_4) { + __pyx_1 = PyNumber_Multiply(__pyx_k72p, __pyx_v_depth); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_seen, __pyx_v_thisId); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + __pyx_3 = PyNumber_Add(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyNumber_Add(__pyx_3, __pyx_k73p); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_str); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_obj); + __pyx_5 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyNumber_Add(__pyx_1, __pyx_5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_3 = PyNumber_Add(__pyx_2, __pyx_k74p); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + goto __pyx_L2; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":114 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_type); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_obj); + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_types); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_InstanceType); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_Cmp(__pyx_2, __pyx_1, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __pyx_5 = PyObject_Dir(__pyx_v_obj); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; goto __pyx_L1;} + __pyx_4 = PySequence_Contains(__pyx_5, __pyx_n___getstate__); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + } + if (__pyx_4) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":116 */ + __pyx_3 = PyNumber_Remainder(__pyx_k76p, __pyx_v_obj); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + __pyx_2 = PyNumber_Add(__pyx_v_out, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":117 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n___getstate__); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; goto __pyx_L1;} + __pyx_5 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_obj); + __pyx_v_obj = __pyx_5; + __pyx_5 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":119 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":120 */ + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_dumps); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L4;} + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_HIGHEST_PROTOCOL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L4;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L4;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_2); + __pyx_2 = 0; + __pyx_5 = PyObject_CallObject(__pyx_3, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L4;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":121 */ + if (PyObject_SetItem(__pyx_v_seen, __pyx_v_thisId, __pyx_n_OK) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; goto __pyx_L4;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":122 */ + __pyx_2 = PyNumber_Multiply(__pyx_k78p, __pyx_v_depth); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + __pyx_3 = PyNumber_Add(__pyx_2, __pyx_k79p); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_str); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_obj); + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_1 = PyNumber_Add(__pyx_3, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_5 = PyNumber_Add(__pyx_1, __pyx_k80p); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyNumber_Add(__pyx_v_out, __pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":123 */ + Py_INCREF(__pyx_v_out); + __pyx_r = __pyx_v_out; + goto __pyx_L0; + } + goto __pyx_L5; + __pyx_L4:; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_5); __pyx_5 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":124 */ + /*except:*/ { + __Pyx_AddTraceback("database.findUnpicklableParts"); + if (__Pyx_GetException(&__pyx_2, &__pyx_1, &__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":125 */ + if (PyObject_SetItem(__pyx_v_seen, __pyx_v_thisId, __pyx_n_BAD) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":126 */ + __pyx_3 = PyNumber_Multiply(__pyx_k82p, __pyx_v_depth); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + __pyx_6 = PyNumber_Add(__pyx_3, __pyx_k83p); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_str); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + __pyx_7 = PyTuple_New(1); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_7, 0, __pyx_v_obj); + __pyx_8 = PyObject_CallObject(__pyx_3, __pyx_7); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_3 = PyNumber_Add(__pyx_6, __pyx_8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_8); __pyx_8 = 0; + __pyx_7 = PyNumber_Add(__pyx_3, __pyx_k84p); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_6 = PyNumber_Add(__pyx_v_out, __pyx_7); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_6; + __pyx_6 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":127 */ + __pyx_8 = __Pyx_GetName(__pyx_b, __pyx_n_type); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_obj); + __pyx_7 = PyObject_CallObject(__pyx_8, __pyx_3); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_6 = __Pyx_GetName(__pyx_m, __pyx_n_types); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;} + __pyx_8 = PyObject_GetAttr(__pyx_6, __pyx_n_DictType); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_Cmp(__pyx_7, __pyx_8, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_8); __pyx_8 = 0; + if (__pyx_4) { + __pyx_3 = PyObject_GetIter(__pyx_v_obj); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; goto __pyx_L1;} + for (;;) { + __pyx_6 = PyIter_Next(__pyx_3); + if (!__pyx_6) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_key); + __pyx_v_key = __pyx_6; + __pyx_6 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":129 */ + __pyx_7 = __Pyx_GetName(__pyx_m, __pyx_n_findUnpicklableParts); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;} + __pyx_8 = PyInt_FromLong(1); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;} + __pyx_6 = PyNumber_Add(__pyx_v_depth, __pyx_8); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + __pyx_8 = PyTuple_New(3); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;} + Py_INCREF(__pyx_v_key); + PyTuple_SET_ITEM(__pyx_8, 0, __pyx_v_key); + Py_INCREF(__pyx_v_seen); + PyTuple_SET_ITEM(__pyx_8, 1, __pyx_v_seen); + PyTuple_SET_ITEM(__pyx_8, 2, __pyx_6); + __pyx_6 = 0; + __pyx_6 = PyObject_CallObject(__pyx_7, __pyx_8); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_8); __pyx_8 = 0; + __pyx_7 = PyNumber_Add(__pyx_v_out, __pyx_6); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_7; + __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":130 */ + __pyx_8 = __Pyx_GetName(__pyx_m, __pyx_n_findUnpicklableParts); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + __pyx_6 = PyObject_GetItem(__pyx_v_obj, __pyx_v_key); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + __pyx_7 = PyInt_FromLong(1); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + __pyx_9 = PyNumber_Add(__pyx_v_depth, __pyx_7); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_7 = PyTuple_New(3); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_7, 0, __pyx_6); + Py_INCREF(__pyx_v_seen); + PyTuple_SET_ITEM(__pyx_7, 1, __pyx_v_seen); + PyTuple_SET_ITEM(__pyx_7, 2, __pyx_9); + __pyx_6 = 0; + __pyx_9 = 0; + __pyx_6 = PyObject_CallObject(__pyx_8, __pyx_7); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_9 = PyNumber_Add(__pyx_v_out, __pyx_6); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_9; + __pyx_9 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L6; + } + __pyx_8 = __Pyx_GetName(__pyx_b, __pyx_n_type); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;} + __pyx_7 = PyTuple_New(1); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_7, 0, __pyx_v_obj); + __pyx_6 = PyObject_CallObject(__pyx_8, __pyx_7); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_9 = __Pyx_GetName(__pyx_m, __pyx_n_types); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_9, __pyx_n_InstanceType); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_Cmp(__pyx_6, __pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (__pyx_4) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":132 */ + __pyx_8 = PyInt_FromLong(1); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;} + __pyx_7 = PyNumber_Add(__pyx_v_depth, __pyx_8); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + __pyx_9 = PyNumber_Multiply(__pyx_k85p, __pyx_7); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_6 = PyNumber_Add(__pyx_v_out, __pyx_9); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + __pyx_3 = PyNumber_Add(__pyx_6, __pyx_k86p); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":134 */ + __pyx_8 = PyObject_GetAttr(__pyx_v_obj, __pyx_n___dict__); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; goto __pyx_L1;} + __pyx_7 = PyObject_GetIter(__pyx_8); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + for (;;) { + __pyx_9 = PyIter_Next(__pyx_7); + if (!__pyx_9) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_key); + __pyx_v_key = __pyx_9; + __pyx_9 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":135 */ + __pyx_6 = PyInt_FromLong(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + __pyx_3 = PyNumber_Add(__pyx_v_depth, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_8 = PyNumber_Multiply(__pyx_k87p, __pyx_3); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_9 = PyNumber_Add(__pyx_8, __pyx_k88p); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + __pyx_6 = __Pyx_GetName(__pyx_b, __pyx_n_str); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_INCREF(__pyx_v_key); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_key); + __pyx_8 = PyObject_CallObject(__pyx_6, __pyx_3); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_6 = PyNumber_Add(__pyx_9, __pyx_8); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + Py_DECREF(__pyx_8); __pyx_8 = 0; + __pyx_3 = PyNumber_Add(__pyx_6, __pyx_k89p); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_9 = PyNumber_Add(__pyx_v_out, __pyx_3); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_9; + __pyx_9 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":136 */ + __pyx_8 = __Pyx_GetName(__pyx_m, __pyx_n_findUnpicklableParts); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + __pyx_6 = PyInt_FromLong(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + __pyx_3 = PyNumber_Add(__pyx_v_depth, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_9 = PyTuple_New(3); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + Py_INCREF(__pyx_v_key); + PyTuple_SET_ITEM(__pyx_9, 0, __pyx_v_key); + Py_INCREF(__pyx_v_seen); + PyTuple_SET_ITEM(__pyx_9, 1, __pyx_v_seen); + PyTuple_SET_ITEM(__pyx_9, 2, __pyx_3); + __pyx_3 = 0; + __pyx_6 = PyObject_CallObject(__pyx_8, __pyx_9); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_9); __pyx_9 = 0; + __pyx_3 = PyNumber_Add(__pyx_v_out, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":137 */ + __pyx_8 = __Pyx_GetName(__pyx_m, __pyx_n_findUnpicklableParts); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;} + __pyx_9 = PyObject_GetAttr(__pyx_v_obj,__pyx_v_key); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;} + __pyx_6 = PyInt_FromLong(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;} + __pyx_3 = PyNumber_Add(__pyx_v_depth, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_6 = PyTuple_New(3); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_9); + Py_INCREF(__pyx_v_seen); + PyTuple_SET_ITEM(__pyx_6, 1, __pyx_v_seen); + PyTuple_SET_ITEM(__pyx_6, 2, __pyx_3); + __pyx_9 = 0; + __pyx_3 = 0; + __pyx_9 = PyObject_CallObject(__pyx_8, __pyx_6); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_3 = PyNumber_Add(__pyx_v_out, __pyx_9); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_3; + __pyx_3 = 0; + } + Py_DECREF(__pyx_7); __pyx_7 = 0; + goto __pyx_L6; + } + __pyx_8 = __Pyx_GetName(__pyx_b, __pyx_n_type); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + __pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_obj); + __pyx_9 = PyObject_CallObject(__pyx_8, __pyx_6); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_types); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_3, __pyx_n_ListType); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_Cmp(__pyx_9, __pyx_7, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_9); __pyx_9 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (!__pyx_4) { + __pyx_8 = __Pyx_GetName(__pyx_b, __pyx_n_type); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;} + __pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_obj); + __pyx_3 = PyObject_CallObject(__pyx_8, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;} + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_9 = __Pyx_GetName(__pyx_m, __pyx_n_types); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_9, __pyx_n_TupleType); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_Cmp(__pyx_3, __pyx_7, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + } + if (__pyx_4) { + __pyx_8 = PyObject_GetIter(__pyx_v_obj); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; goto __pyx_L1;} + for (;;) { + __pyx_6 = PyIter_Next(__pyx_8); + if (!__pyx_6) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_val); + __pyx_v_val = __pyx_6; + __pyx_6 = 0; + __pyx_9 = __Pyx_GetName(__pyx_m, __pyx_n_findUnpicklableParts); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;} + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;} + __pyx_7 = PyNumber_Add(__pyx_v_depth, __pyx_3); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_6 = PyTuple_New(3); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;} + Py_INCREF(__pyx_v_val); + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_val); + Py_INCREF(__pyx_v_seen); + PyTuple_SET_ITEM(__pyx_6, 1, __pyx_v_seen); + PyTuple_SET_ITEM(__pyx_6, 2, __pyx_7); + __pyx_7 = 0; + __pyx_3 = PyObject_CallObject(__pyx_9, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_7 = PyNumber_Add(__pyx_v_out, __pyx_3); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_out); + __pyx_v_out = __pyx_7; + __pyx_7 = 0; + } + Py_DECREF(__pyx_8); __pyx_8 = 0; + goto __pyx_L6; + } + __pyx_L6:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":142 */ + Py_INCREF(__pyx_v_out); + __pyx_r = __pyx_v_out; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L5; + } + __pyx_L5:; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + Py_XDECREF(__pyx_7); + Py_XDECREF(__pyx_8); + Py_XDECREF(__pyx_9); + __Pyx_AddTraceback("database.findUnpicklableParts"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_thisId); + Py_DECREF(__pyx_v_out); + Py_DECREF(__pyx_v_key); + Py_DECREF(__pyx_v_val); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_seen); + Py_DECREF(__pyx_v_depth); + return __pyx_r; +} + +static PyObject *__pyx_n_indexFunc; +static PyObject *__pyx_n_sortFunc; +static PyObject *__pyx_n_resort; +static PyObject *__pyx_n_parentDB; +static PyObject *__pyx_n_views; +static PyObject *__pyx_n_mappings; + +static PyObject *__pyx_f_8database_8IndexMap___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_8IndexMap___init__ = {"__init__", (PyCFunction)__pyx_f_8database_8IndexMap___init__, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_8IndexMap___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexFunc = 0; + PyObject *__pyx_v_parentDB = 0; + PyObject *__pyx_v_sortFunc = 0; + PyObject *__pyx_v_resort = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + static char *__pyx_argnames[] = {"self","indexFunc","parentDB","sortFunc","resort",0}; + __pyx_v_sortFunc = __pyx_k36; + __pyx_v_resort = __pyx_k37; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO|OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexFunc, &__pyx_v_parentDB, &__pyx_v_sortFunc, &__pyx_v_resort)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexFunc); + Py_INCREF(__pyx_v_parentDB); + Py_INCREF(__pyx_v_sortFunc); + Py_INCREF(__pyx_v_resort); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":153 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_indexFunc, __pyx_v_indexFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":154 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortFunc, __pyx_v_sortFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":155 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;} + __pyx_2 = __pyx_1 == Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_resort, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L2; + } + /*else*/ { + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_resort, __pyx_v_resort) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; goto __pyx_L1;} + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":159 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_parentDB, __pyx_v_parentDB) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":160 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_views, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":161 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_mappings, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + __Pyx_AddTraceback("database.IndexMap.__init__"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_parentDB); + Py_DECREF(__pyx_v_sortFunc); + Py_DECREF(__pyx_v_resort); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_8IndexMap_addObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_8IndexMap_addObject[] = "Add a new object to the IndexMap."; +static PyMethodDef __pyx_mdef_8database_8IndexMap_addObject = {"addObject", (PyCFunction)__pyx_f_8database_8IndexMap_addObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_8IndexMap_addObject}; +static PyObject *__pyx_f_8database_8IndexMap_addObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_newobject = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_indexValue; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","newobject","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_newobject, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_newobject); + Py_INCREF(__pyx_v_value); + __pyx_v_indexValue = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":166 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexFunc); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":167 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_newobject, __pyx_n_getID); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetItem(__pyx_1, __pyx_3, __pyx_v_indexValue) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":168 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_getViewForValue); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + Py_INCREF(__pyx_v_indexValue); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_indexValue); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_n_addBeforeCursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.IndexMap.addObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_newobject); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_n_pop; + +static PyObject *__pyx_f_8database_8IndexMap_removeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_8IndexMap_removeObject[] = "Remove an object from the IndexMap."; +static PyMethodDef __pyx_mdef_8database_8IndexMap_removeObject = {"removeObject", (PyCFunction)__pyx_f_8database_8IndexMap_removeObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_8IndexMap_removeObject}; +static PyObject *__pyx_f_8database_8IndexMap_removeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_indexValue; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","obj",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + __pyx_v_indexValue = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":172 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_pop); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_getID); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":173 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_v_indexValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_removeObj); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_obj); + __pyx_1 = PyObject_CallObject(__pyx_3, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.IndexMap.removeObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + return __pyx_r; +} + +static PyObject *__pyx_n_KeyError; +static PyObject *__pyx_n_needsSave; + + +static PyObject *__pyx_f_8database_8IndexMap__changeOrRecompute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_8IndexMap__changeOrRecompute = {"_changeOrRecompute", (PyCFunction)__pyx_f_8database_8IndexMap__changeOrRecompute, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_8IndexMap__changeOrRecompute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_isChange = 0; + PyObject *__pyx_v_indexValue; + PyObject *__pyx_v_oldIndexValue; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","obj","value","isChange",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj, &__pyx_v_value, &__pyx_v_isChange)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_value); + Py_INCREF(__pyx_v_isChange); + __pyx_v_indexValue = Py_None; Py_INCREF(Py_None); + __pyx_v_oldIndexValue = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":176 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexFunc); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":177 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_getID); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L2;} + __pyx_3 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_oldIndexValue); + __pyx_v_oldIndexValue = __pyx_2; + __pyx_2 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":179 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; goto __pyx_L1;} + __pyx_4 = PyErr_ExceptionMatches(__pyx_1); + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __Pyx_AddTraceback("database._changeOrRecompute"); + if (__Pyx_GetException(&__pyx_3, &__pyx_2, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; goto __pyx_L1;} + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":187 */ + if (PyObject_Cmp(__pyx_v_indexValue, __pyx_v_oldIndexValue, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + if (__pyx_4) { + __pyx_4 = PyObject_IsTrue(__pyx_v_isChange); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; goto __pyx_L1;} + if (__pyx_4) { + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_v_indexValue); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_changeObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_obj); + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_needsSave, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_5 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_3, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L5; + } + __pyx_L5:; + goto __pyx_L4; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":191 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_removeObject); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_obj); + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":192 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addObject); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_5, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + __pyx_L4:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.IndexMap._changeOrRecompute"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_oldIndexValue); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + Py_DECREF(__pyx_v_isChange); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_8IndexMap_changeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_8IndexMap_changeObject[] = "Call this method when an object has been changed. \n\n If the object now maps to a new view, it will be moved from the old\n view to the new one. Otherwise, we will call changeObj() on the old\n view.\n "; +static PyMethodDef __pyx_mdef_8database_8IndexMap_changeObject = {"changeObject", (PyCFunction)__pyx_f_8database_8IndexMap_changeObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_8IndexMap_changeObject}; +static PyObject *__pyx_f_8database_8IndexMap_changeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","obj","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_value); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n__changeOrRecompute); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;} + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;} + __pyx_3 = PyTuple_New(3); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 2, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.IndexMap.changeObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_8IndexMap_recomputeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_8IndexMap_recomputeObject[] = "Recompute which view an object maps to. This function must be\n called when the output of an index function changes (at least\n potentially), but the object itself hasn\'t changed.\n "; +static PyMethodDef __pyx_mdef_8database_8IndexMap_recomputeObject = {"recomputeObject", (PyCFunction)__pyx_f_8database_8IndexMap_recomputeObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_8IndexMap_recomputeObject}; +static PyObject *__pyx_f_8database_8IndexMap_recomputeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","obj","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_value); + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_getID); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; goto __pyx_L1;} + __pyx_3 = PySequence_Contains(__pyx_1, __pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; goto __pyx_L1;} + __pyx_3 = !__pyx_3; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addObject); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_value); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L2; + } + /*else*/ { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n__changeOrRecompute); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; goto __pyx_L1;} + __pyx_4 = PyTuple_New(3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_4, 2, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.IndexMap.recomputeObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_n_parent; + + +static PyObject *__pyx_f_8database_8IndexMap_getViewForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_8IndexMap_getViewForValue[] = "Get a view for an index value. The view will be all objects such\n that indexFunc(object) == indexValue.\n "; +static PyMethodDef __pyx_mdef_8database_8IndexMap_getViewForValue = {"getViewForValue", (PyCFunction)__pyx_f_8database_8IndexMap_getViewForValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_8IndexMap_getViewForValue}; +static PyObject *__pyx_f_8database_8IndexMap_getViewForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexValue = 0; + PyObject *__pyx_v_view; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + PyObject *__pyx_7 = 0; + PyObject *__pyx_8 = 0; + static char *__pyx_argnames[] = {"self","indexValue",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexValue)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexValue); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":219 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_indexValue); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":221 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; goto __pyx_L1;} + __pyx_3 = PyErr_ExceptionMatches(__pyx_1); + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __Pyx_AddTraceback("database.getViewForValue"); + if (__Pyx_GetException(&__pyx_2, &__pyx_1, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":222 */ + __pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n_DynamicDatabase); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + __pyx_6 = PyList_New(0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + __pyx_7 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + __pyx_8 = PyTuple_New(2); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_8, 0, __pyx_6); + PyTuple_SET_ITEM(__pyx_8, 1, __pyx_7); + __pyx_6 = 0; + __pyx_7 = 0; + __pyx_6 = PyDict_New(); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_parentDB); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_6, __pyx_n_parent, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_6, __pyx_n_sortFunc, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resort); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_6, __pyx_n_resort, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_7 = PyEval_CallObjectWithKeywords(__pyx_5, __pyx_8, __pyx_6); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_7; + __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":223 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_5, __pyx_v_indexValue, __pyx_v_view) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":224 */ + Py_INCREF(__pyx_v_view); + __pyx_r = __pyx_v_view; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + Py_XDECREF(__pyx_7); + Py_XDECREF(__pyx_8); + __Pyx_AddTraceback("database.IndexMap.getViewForValue"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexValue); + return __pyx_r; +} + +static PyObject *__pyx_n_objects; +static PyObject *__pyx_n_IndexError; + +static PyObject *__pyx_f_8database_8IndexMap_getItemForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_8IndexMap_getItemForValue[] = "Get a single item that maps to a given value. If no items map to\n indexValue, default will be returned. If multiple items map to\n indexValue, the one returned is not defined.\n "; +static PyMethodDef __pyx_mdef_8database_8IndexMap_getItemForValue = {"getItemForValue", (PyCFunction)__pyx_f_8database_8IndexMap_getItemForValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_8IndexMap_getItemForValue}; +static PyObject *__pyx_f_8database_8IndexMap_getItemForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexValue = 0; + PyObject *__pyx_v_default = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"self","indexValue","default",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexValue, &__pyx_v_default)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexValue); + Py_INCREF(__pyx_v_default); + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_indexValue); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":233 */ + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_IndexError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_1); + __pyx_3 = 0; + __pyx_1 = 0; + __pyx_4 = PyErr_ExceptionMatches(__pyx_2); + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_4) { + __Pyx_AddTraceback("database.getItemForValue"); + if (__Pyx_GetException(&__pyx_3, &__pyx_1, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;} + Py_INCREF(__pyx_v_default); + __pyx_r = __pyx_v_default; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.IndexMap.getItemForValue"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_default); + return __pyx_r; +} + +static PyObject *__pyx_n_values; + +static PyObject *__pyx_f_8database_8IndexMap_getViews(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_8IndexMap_getViews = {"getViews", (PyCFunction)__pyx_f_8database_8IndexMap_getViews, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_8IndexMap_getViews(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_values); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.IndexMap.getViews"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_itervalues; + +static PyObject *__pyx_f_8database_8IndexMap_count_databases(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_8IndexMap_count_databases = {"count_databases", (PyCFunction)__pyx_f_8database_8IndexMap_count_databases, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_8IndexMap_count_databases(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_count; + PyObject *__pyx_v_size; + PyObject *__pyx_v_db; + PyObject *__pyx_v_new; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_count = Py_None; Py_INCREF(Py_None); + __pyx_v_size = Py_None; Py_INCREF(Py_None); + __pyx_v_db = Py_None; Py_INCREF(Py_None); + __pyx_v_new = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":240 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; goto __pyx_L1;} + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":241 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; goto __pyx_L1;} + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":242 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_itervalues); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_db); + __pyx_v_db = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":243 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_db, __pyx_n_count_databases); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":244 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_new, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyNumber_Add(__pyx_v_count, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":245 */ + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_new, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyNumber_Add(__pyx_v_size, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_3; + __pyx_3 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":246 */ + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; goto __pyx_L1;} + Py_INCREF(__pyx_v_count); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_count); + Py_INCREF(__pyx_v_size); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_size); + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.IndexMap.count_databases"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_count); + Py_DECREF(__pyx_v_size); + Py_DECREF(__pyx_v_db); + Py_DECREF(__pyx_v_new); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_set; + +static PyObject *__pyx_f_8database_13MultiIndexMap_addObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_13MultiIndexMap_addObject[] = "Add a new object to the IndexMap."; +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap_addObject = {"addObject", (PyCFunction)__pyx_f_8database_13MultiIndexMap_addObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_13MultiIndexMap_addObject}; +static PyObject *__pyx_f_8database_13MultiIndexMap_addObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_newobject = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_indexValues; + PyObject *__pyx_v_indexValue; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","newobject","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_newobject, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_newobject); + Py_INCREF(__pyx_v_value); + __pyx_v_indexValues = Py_None; Py_INCREF(Py_None); + __pyx_v_indexValue = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":259 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexFunc); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_value); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_4); + __pyx_4 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_indexValues); + __pyx_v_indexValues = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":260 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_v_newobject, __pyx_n_getID); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetItem(__pyx_4, __pyx_2, __pyx_v_indexValues) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":261 */ + __pyx_3 = PyObject_GetIter(__pyx_v_indexValues); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; goto __pyx_L1;} + for (;;) { + __pyx_1 = PyIter_Next(__pyx_3); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_1; + __pyx_1 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_getViewForValue); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; goto __pyx_L1;} + Py_INCREF(__pyx_v_indexValue); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_indexValue); + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_addBeforeCursor); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_value); + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.MultiIndexMap.addObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexValues); + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_newobject); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_13MultiIndexMap_removeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_13MultiIndexMap_removeObject[] = "Remove an object from the IndexMap."; +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap_removeObject = {"removeObject", (PyCFunction)__pyx_f_8database_13MultiIndexMap_removeObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_13MultiIndexMap_removeObject}; +static PyObject *__pyx_f_8database_13MultiIndexMap_removeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_indexValues; + PyObject *__pyx_v_indexValue; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","obj",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + __pyx_v_indexValues = Py_None; Py_INCREF(Py_None); + __pyx_v_indexValue = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":266 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_pop); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_getID); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_indexValues); + __pyx_v_indexValues = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":267 */ + __pyx_2 = PyObject_GetIter(__pyx_v_indexValues); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; goto __pyx_L1;} + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_1; + __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_3, __pyx_v_indexValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_removeObj); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_obj); + __pyx_4 = PyObject_CallObject(__pyx_3, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.MultiIndexMap.removeObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexValues); + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + return __pyx_r; +} + +static PyObject *__pyx_n_intersection; + + +static PyObject *__pyx_f_8database_13MultiIndexMap__changeOrRecompute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap__changeOrRecompute = {"_changeOrRecompute", (PyCFunction)__pyx_f_8database_13MultiIndexMap__changeOrRecompute, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_13MultiIndexMap__changeOrRecompute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_isChange = 0; + PyObject *__pyx_v_indexValues; + PyObject *__pyx_v_oldIndexValues; + PyObject *__pyx_v_indexValue; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + int __pyx_5; + PyObject *__pyx_6 = 0; + static char *__pyx_argnames[] = {"self","obj","value","isChange",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj, &__pyx_v_value, &__pyx_v_isChange)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_value); + Py_INCREF(__pyx_v_isChange); + __pyx_v_indexValues = Py_None; Py_INCREF(Py_None); + __pyx_v_oldIndexValues = Py_None; Py_INCREF(Py_None); + __pyx_v_indexValue = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":271 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexFunc); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_value); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_4); + __pyx_4 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_indexValues); + __pyx_v_indexValues = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":272 */ + /*try:*/ { + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; goto __pyx_L2;} + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_pop); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; goto __pyx_L2;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_getID); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; goto __pyx_L2;} + __pyx_3 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; goto __pyx_L2;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3); + __pyx_3 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_oldIndexValues); + __pyx_v_oldIndexValues = __pyx_2; + __pyx_2 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_4); __pyx_4 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":277 */ + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; goto __pyx_L1;} + __pyx_5 = PyErr_ExceptionMatches(__pyx_3); + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (__pyx_5) { + __Pyx_AddTraceback("database._changeOrRecompute"); + if (__Pyx_GetException(&__pyx_1, &__pyx_4, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; goto __pyx_L1;} + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":279 */ + __pyx_3 = PyNumber_Subtract(__pyx_v_indexValues, __pyx_v_oldIndexValues); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_1); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_4; + __pyx_4 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_getViewForValue); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; goto __pyx_L1;} + Py_INCREF(__pyx_v_indexValue); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_indexValue); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_4, __pyx_n_addBeforeCursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_value); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":281 */ + __pyx_2 = PyNumber_Subtract(__pyx_v_oldIndexValues, __pyx_v_indexValues); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; goto __pyx_L1;} + __pyx_3 = PyObject_GetIter(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_3); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_4; + __pyx_4 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_getViewForValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; goto __pyx_L1;} + Py_INCREF(__pyx_v_indexValue); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_indexValue); + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_removeObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_obj); + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":283 */ + __pyx_5 = PyObject_IsTrue(__pyx_v_isChange); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; goto __pyx_L1;} + if (__pyx_5) { + __pyx_1 = PyObject_GetAttr(__pyx_v_indexValues, __pyx_n_intersection); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; goto __pyx_L1;} + Py_INCREF(__pyx_v_oldIndexValues); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_oldIndexValues); + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_GetIter(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_3); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_indexValue); + __pyx_v_indexValue = __pyx_1; + __pyx_1 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_2, __pyx_v_indexValue); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_changeObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_obj); + __pyx_4 = PyDict_New(); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + __pyx_6 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_4, __pyx_n_needsSave, __pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_6 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_2, __pyx_4); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L8; + } + __pyx_L8:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":286 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_getID); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetItem(__pyx_1, __pyx_4, __pyx_v_indexValues) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_6); + __Pyx_AddTraceback("database.MultiIndexMap._changeOrRecompute"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexValues); + Py_DECREF(__pyx_v_oldIndexValues); + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + Py_DECREF(__pyx_v_isChange); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_13MultiIndexMap_changeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_13MultiIndexMap_changeObject[] = "Call this method when an object has been changed. \n\n If the object now maps to a new view, it will be moved from the old\n view to the new one. Otherwise, we will call changeObj() on the old\n view.\n "; +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap_changeObject = {"changeObject", (PyCFunction)__pyx_f_8database_13MultiIndexMap_changeObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_13MultiIndexMap_changeObject}; +static PyObject *__pyx_f_8database_13MultiIndexMap_changeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","obj","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_value); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n__changeOrRecompute); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;} + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;} + __pyx_3 = PyTuple_New(3); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 2, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.MultiIndexMap.changeObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_13MultiIndexMap_recomputeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_13MultiIndexMap_recomputeObject[] = "Recompute which view an object maps to. This function must be\n called when the output of an index function changes (at least\n potentially), but the object itself hasn\'t changed.\n "; +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap_recomputeObject = {"recomputeObject", (PyCFunction)__pyx_f_8database_13MultiIndexMap_recomputeObject, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_13MultiIndexMap_recomputeObject}; +static PyObject *__pyx_f_8database_13MultiIndexMap_recomputeObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","obj","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_value); + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_getID); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mappings); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; goto __pyx_L1;} + __pyx_3 = PySequence_Contains(__pyx_1, __pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; goto __pyx_L1;} + __pyx_3 = !__pyx_3; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addObject); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_value); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L2; + } + /*else*/ { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n__changeOrRecompute); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; goto __pyx_L1;} + __pyx_4 = PyTuple_New(3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_4, 2, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.MultiIndexMap.recomputeObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + + +static PyObject *__pyx_f_8database_13MultiIndexMap_getViewForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_13MultiIndexMap_getViewForValue[] = "Get a view for an index value. The view will be all objects such\n that indexFunc(object) == indexValue.\n "; +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap_getViewForValue = {"getViewForValue", (PyCFunction)__pyx_f_8database_13MultiIndexMap_getViewForValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_13MultiIndexMap_getViewForValue}; +static PyObject *__pyx_f_8database_13MultiIndexMap_getViewForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexValue = 0; + PyObject *__pyx_v_view; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + PyObject *__pyx_7 = 0; + PyObject *__pyx_8 = 0; + static char *__pyx_argnames[] = {"self","indexValue",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexValue)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexValue); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":311 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_indexValue); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":313 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; goto __pyx_L1;} + __pyx_3 = PyErr_ExceptionMatches(__pyx_1); + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __Pyx_AddTraceback("database.getViewForValue"); + if (__Pyx_GetException(&__pyx_2, &__pyx_1, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":314 */ + __pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n_DynamicDatabase); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + __pyx_6 = PyList_New(0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + __pyx_7 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + __pyx_8 = PyTuple_New(2); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_8, 0, __pyx_6); + PyTuple_SET_ITEM(__pyx_8, 1, __pyx_7); + __pyx_6 = 0; + __pyx_7 = 0; + __pyx_6 = PyDict_New(); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_parentDB); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_6, __pyx_n_parent, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_6, __pyx_n_sortFunc, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resort); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_6, __pyx_n_resort, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_7 = PyEval_CallObjectWithKeywords(__pyx_5, __pyx_8, __pyx_6); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_8); __pyx_8 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_7; + __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":315 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_5, __pyx_v_indexValue, __pyx_v_view) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":316 */ + Py_INCREF(__pyx_v_view); + __pyx_r = __pyx_v_view; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + Py_XDECREF(__pyx_7); + Py_XDECREF(__pyx_8); + __Pyx_AddTraceback("database.MultiIndexMap.getViewForValue"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexValue); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_13MultiIndexMap_getItemForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_13MultiIndexMap_getItemForValue[] = "Get a single item that maps to a given value. If no items map to\n indexValue, default will be returned. If multiple items map to\n indexValue, the one returned is not defined.\n "; +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap_getItemForValue = {"getItemForValue", (PyCFunction)__pyx_f_8database_13MultiIndexMap_getItemForValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_13MultiIndexMap_getItemForValue}; +static PyObject *__pyx_f_8database_13MultiIndexMap_getItemForValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexValue = 0; + PyObject *__pyx_v_default = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"self","indexValue","default",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexValue, &__pyx_v_default)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexValue); + Py_INCREF(__pyx_v_default); + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_indexValue); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":325 */ + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_IndexError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_1); + __pyx_3 = 0; + __pyx_1 = 0; + __pyx_4 = PyErr_ExceptionMatches(__pyx_2); + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_4) { + __Pyx_AddTraceback("database.getItemForValue"); + if (__Pyx_GetException(&__pyx_3, &__pyx_1, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; goto __pyx_L1;} + Py_INCREF(__pyx_v_default); + __pyx_r = __pyx_v_default; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.MultiIndexMap.getItemForValue"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexValue); + Py_DECREF(__pyx_v_default); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_13MultiIndexMap_getViews(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_13MultiIndexMap_getViews = {"getViews", (PyCFunction)__pyx_f_8database_13MultiIndexMap_getViews, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_13MultiIndexMap_getViews(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_values); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.MultiIndexMap.getViews"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_rootDB; +static PyObject *__pyx_n_cursor; +static PyObject *__pyx_n_changeCallbacks; +static PyObject *__pyx_n_addCallbacks; +static PyObject *__pyx_n_removeCallbacks; +static PyObject *__pyx_n_viewChangeCallbacks; +static PyObject *__pyx_n_resortCallbacks; +static PyObject *__pyx_n_viewUnlinkCallbacks; +static PyObject *__pyx_n_subFilters; +static PyObject *__pyx_n_subSorts; +static PyObject *__pyx_n_subMaps; +static PyObject *__pyx_n_clones; +static PyObject *__pyx_n_cursorStack; +static PyObject *__pyx_n_objectLocs; +static PyObject *__pyx_n_indexes; +static PyObject *__pyx_n_liveStorage; +static PyObject *__pyx_n_append; + +static PyObject *__pyx_f_8database_15DynamicDatabase___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase___init__ = {"__init__", (PyCFunction)__pyx_f_8database_15DynamicDatabase___init__, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_objects = 0; + PyObject *__pyx_v_rootDB = 0; + PyObject *__pyx_v_sortFunc = 0; + PyObject *__pyx_v_filterFunc = 0; + PyObject *__pyx_v_mapFunc = 0; + PyObject *__pyx_v_cursorID = 0; + PyObject *__pyx_v_parent = 0; + PyObject *__pyx_v_resort = 0; + PyObject *__pyx_v_temp; + PyObject *__pyx_v_it; + PyObject *__pyx_v_id; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","objects","rootDB","sortFunc","filterFunc","mapFunc","cursorID","parent","resort",0}; + __pyx_v_objects = __pyx_k41; + __pyx_v_rootDB = __pyx_k42; + __pyx_v_sortFunc = __pyx_k43; + __pyx_v_filterFunc = __pyx_k44; + __pyx_v_mapFunc = __pyx_k45; + __pyx_v_cursorID = __pyx_k46; + __pyx_v_parent = __pyx_k47; + __pyx_v_resort = __pyx_k48; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|OOOOOOOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_objects, &__pyx_v_rootDB, &__pyx_v_sortFunc, &__pyx_v_filterFunc, &__pyx_v_mapFunc, &__pyx_v_cursorID, &__pyx_v_parent, &__pyx_v_resort)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_objects); + Py_INCREF(__pyx_v_rootDB); + Py_INCREF(__pyx_v_sortFunc); + Py_INCREF(__pyx_v_filterFunc); + Py_INCREF(__pyx_v_mapFunc); + Py_INCREF(__pyx_v_cursorID); + Py_INCREF(__pyx_v_parent); + Py_INCREF(__pyx_v_resort); + __pyx_v_temp = Py_None; Py_INCREF(Py_None); + __pyx_v_it = Py_None; Py_INCREF(Py_None); + __pyx_v_id = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":344 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_rootDB, __pyx_v_rootDB) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":345 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":346 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_parent, __pyx_v_parent) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":347 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_changeCallbacks, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":348 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_addCallbacks, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":349 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_removeCallbacks, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":350 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_viewChangeCallbacks, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":351 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_resortCallbacks, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":352 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_set); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_viewUnlinkCallbacks, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":353 */ + __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_subFilters, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":354 */ + __pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_subSorts, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":355 */ + __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_subMaps, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":356 */ + __pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_clones, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":359 */ + __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursorStack, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":360 */ + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objectLocs, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":361 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_indexes, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":362 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_liveStorage, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":363 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_sortFunc, __pyx_v_sortFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":365 */ + __pyx_3 = __pyx_v_sortFunc != Py_None; + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":366 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_SortedList); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L1;} + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L1;} + Py_INCREF(__pyx_v_sortFunc); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_sortFunc); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objects, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":367 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_resort, __pyx_v_resort) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L1;} + goto __pyx_L2; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":369 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_LinkedList); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objects, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":370 */ + __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_resort, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":371 */ + __pyx_2 = PyObject_GetIter(__pyx_v_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; goto __pyx_L1;} + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_temp); + __pyx_v_temp = __pyx_1; + __pyx_1 = 0; + __pyx_3 = __pyx_v_filterFunc == Py_None; + __pyx_4 = PyInt_FromLong(__pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; goto __pyx_L1;} + __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; goto __pyx_L1;} + if (!__pyx_3) { + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_v_temp, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_5); + __pyx_5 = 0; + __pyx_4 = PyObject_CallObject(__pyx_v_filterFunc, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":373 */ + __pyx_3 = __pyx_v_mapFunc != Py_None; + if (__pyx_3) { + __pyx_5 = PyInt_FromLong(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_temp, __pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_4 = PyInt_FromLong(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_v_temp, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_5); + __pyx_5 = 0; + __pyx_5 = PyObject_CallObject(__pyx_v_mapFunc, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_1); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_5); + __pyx_1 = 0; + __pyx_5 = 0; + Py_DECREF(__pyx_v_temp); + __pyx_v_temp = __pyx_4; + __pyx_4 = 0; + goto __pyx_L6; + } + __pyx_L6:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":375 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; goto __pyx_L1;} + __pyx_5 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; goto __pyx_L1;} + Py_INCREF(__pyx_v_temp); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_temp); + __pyx_1 = PyObject_CallObject(__pyx_5, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 375; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_it); + __pyx_v_it = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":376 */ + __pyx_5 = PyInt_FromLong(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_temp, __pyx_5); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_id); + __pyx_v_id = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":377 */ + if (PyObject_Cmp(__pyx_v_id, __pyx_v_cursorID, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + if (__pyx_3) { + __pyx_5 = PyObject_GetAttr(__pyx_v_it, __pyx_n_copy); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_5, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L7; + } + __pyx_L7:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":379 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_1, __pyx_v_id, __pyx_v_it) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L5; + } + __pyx_L5:; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.__init__"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_temp); + Py_DECREF(__pyx_v_it); + Py_DECREF(__pyx_v_id); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_objects); + Py_DECREF(__pyx_v_rootDB); + Py_DECREF(__pyx_v_sortFunc); + Py_DECREF(__pyx_v_filterFunc); + Py_DECREF(__pyx_v_mapFunc); + Py_DECREF(__pyx_v_cursorID); + Py_DECREF(__pyx_v_parent); + Py_DECREF(__pyx_v_resort); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_count_databases(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_count_databases = {"count_databases", (PyCFunction)__pyx_f_8database_15DynamicDatabase_count_databases, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_count_databases(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_count; + PyObject *__pyx_v_size; + PyObject *__pyx_v_db; + PyObject *__pyx_v_func; + PyObject *__pyx_v_new; + PyObject *__pyx_v_index; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + Py_ssize_t __pyx_2; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_count = Py_None; Py_INCREF(Py_None); + __pyx_v_size = Py_None; Py_INCREF(Py_None); + __pyx_v_db = Py_None; Py_INCREF(Py_None); + __pyx_v_func = Py_None; Py_INCREF(Py_None); + __pyx_v_new = Py_None; Py_INCREF(Py_None); + __pyx_v_index = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":383 */ + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; goto __pyx_L1;} + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":384 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; goto __pyx_L1;} + __pyx_2 = PyObject_Length(__pyx_1); if (__pyx_2 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyInt_FromSsize_t(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; goto __pyx_L1;} + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":385 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; goto __pyx_L1;} + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_3); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; goto __pyx_L1;} + break; + } + __pyx_4 = PyObject_GetIter(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; goto __pyx_L1;} + Py_DECREF(__pyx_v_db); + __pyx_v_db = __pyx_1; + __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; goto __pyx_L1;} + Py_DECREF(__pyx_v_func); + __pyx_v_func = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":386 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_db, __pyx_n_count_databases); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":387 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_new, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyNumber_Add(__pyx_v_count, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":388 */ + __pyx_4 = PyInt_FromLong(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_new, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyNumber_Add(__pyx_v_size, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_4; + __pyx_4 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":389 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; goto __pyx_L1;} + __pyx_4 = PyObject_GetIter(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_4); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_db); + __pyx_v_db = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":390 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_db, __pyx_n_count_databases); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":391 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_new, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyNumber_Add(__pyx_v_count, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":392 */ + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_new, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyNumber_Add(__pyx_v_size, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_3; + __pyx_3 = 0; + } + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":393 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; goto __pyx_L1;} + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_3); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; goto __pyx_L1;} + break; + } + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; goto __pyx_L1;} + Py_DECREF(__pyx_v_db); + __pyx_v_db = __pyx_4; + __pyx_4 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; goto __pyx_L1;} + Py_DECREF(__pyx_v_func); + __pyx_v_func = __pyx_4; + __pyx_4 = 0; + if (__Pyx_EndUnpack(__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":394 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_db, __pyx_n_count_databases); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":395 */ + __pyx_4 = PyInt_FromLong(0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_new, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyNumber_Add(__pyx_v_count, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":396 */ + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_new, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyNumber_Add(__pyx_v_size, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_1; + __pyx_1 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":397 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_1); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; goto __pyx_L1;} + break; + } + __pyx_4 = PyObject_GetIter(__pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; goto __pyx_L1;} + Py_DECREF(__pyx_v_db); + __pyx_v_db = __pyx_3; + __pyx_3 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; goto __pyx_L1;} + Py_DECREF(__pyx_v_func); + __pyx_v_func = __pyx_3; + __pyx_3 = 0; + if (__Pyx_EndUnpack(__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":398 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_db, __pyx_n_count_databases); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":399 */ + __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_new, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyNumber_Add(__pyx_v_count, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":400 */ + __pyx_4 = PyInt_FromLong(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_new, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyNumber_Add(__pyx_v_size, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_4; + __pyx_4 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":401 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_3, __pyx_n_itervalues); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_3); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_index); + __pyx_v_index = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":402 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_index, __pyx_n_count_databases); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":403 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_new, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyNumber_Add(__pyx_v_count, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":404 */ + __pyx_4 = PyInt_FromLong(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_new, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyNumber_Add(__pyx_v_size, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_size); + __pyx_v_size = __pyx_4; + __pyx_4 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":405 */ + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; goto __pyx_L1;} + Py_INCREF(__pyx_v_count); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_count); + Py_INCREF(__pyx_v_size); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_size); + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.count_databases"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_count); + Py_DECREF(__pyx_v_size); + Py_DECREF(__pyx_v_db); + Py_DECREF(__pyx_v_func); + Py_DECREF(__pyx_v_new); + Py_DECREF(__pyx_v_index); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase___iter__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase___iter__ = {"__iter__", (PyCFunction)__pyx_f_8database_15DynamicDatabase___iter__, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase___iter__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":459 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":460 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":461 */ + Py_INCREF(__pyx_v_self); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.__iter__"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_saveCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_saveCursor = {"saveCursor", (PyCFunction)__pyx_f_8database_15DynamicDatabase_saveCursor, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_saveCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + int __pyx_2; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; goto __pyx_L1;} + __pyx_2 = __pyx_1 != Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_2) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursorStack); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_copy); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L2; + } + /*else*/ { + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursorStack); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_3, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; goto __pyx_L1;} + Py_INCREF(Py_None); + PyTuple_SET_ITEM(__pyx_1, 0, Py_None); + __pyx_3 = PyObject_CallObject(__pyx_4, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.saveCursor"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_restoreCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_restoreCursor = {"restoreCursor", (PyCFunction)__pyx_f_8database_15DynamicDatabase_restoreCursor, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_restoreCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursorStack); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_pop); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.restoreCursor"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase___getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase___getitem__ = {"__getitem__", (PyCFunction)__pyx_f_8database_15DynamicDatabase___getitem__, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase___getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_n = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"self","n",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_n)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_n); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":489 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":490 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_n); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":492 */ + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_IndexError); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; goto __pyx_L1;} + __pyx_4 = PyErr_ExceptionMatches(__pyx_2); + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_4) { + __Pyx_AddTraceback("database.__getitem__"); + if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; goto __pyx_L1;} + Py_INCREF(Py_None); + __pyx_r = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.__getitem__"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_n); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase___len__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase___len__ = {"__len__", (PyCFunction)__pyx_f_8database_15DynamicDatabase___len__, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase___len__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_len); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.__len__"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_len(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_len = {"len", (PyCFunction)__pyx_f_8database_15DynamicDatabase_len, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_len(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_length; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + Py_ssize_t __pyx_3; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_length = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":499 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":500 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;} + __pyx_3 = PyObject_Length(__pyx_1); if (__pyx_3 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyInt_FromSsize_t(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; goto __pyx_L1;} + Py_DECREF(__pyx_v_length); + __pyx_v_length = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":501 */ + Py_INCREF(__pyx_v_length); + __pyx_r = __pyx_v_length; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.len"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_length); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_confirmDBThread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_confirmDBThread = {"confirmDBThread", (PyCFunction)__pyx_f_8database_15DynamicDatabase_confirmDBThread, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_confirmDBThread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.confirmDBThread"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_cur(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_cur = {"cur", (PyCFunction)__pyx_f_8database_15DynamicDatabase_cur, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_cur(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":517 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":518 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":520 */ + /*except:*/ { + __Pyx_AddTraceback("database.cur"); + if (__Pyx_GetException(&__pyx_3, &__pyx_1, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":521 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":522 */ + Py_INCREF(Py_None); + __pyx_r = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.cur"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_firstIter; +static PyObject *__pyx_n_forward; +static PyObject *__pyx_n_StopIteration; +static PyObject *__pyx_n_TypeError; + +static PyObject *__pyx_k98p; + +static char __pyx_k98[] = "No next"; + +static PyObject *__pyx_f_8database_15DynamicDatabase_next(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_next = {"next", (PyCFunction)__pyx_f_8database_15DynamicDatabase_next, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_next(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + PyObject *__pyx_7 = 0; + PyObject *__pyx_8 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":527 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":528 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":529 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; goto __pyx_L2;} + __pyx_3 = __pyx_1 == Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L2;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_firstIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L4; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":532 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_forward); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + __pyx_L4:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":533 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L2;} + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L2;} + __pyx_4 = PyObject_GetItem(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L2;} + __pyx_1 = PyObject_GetItem(__pyx_4, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; goto __pyx_L2;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_4); __pyx_4 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":534 */ + /*except:*/ { + __Pyx_AddTraceback("database.next"); + if (__Pyx_GetException(&__pyx_4, &__pyx_2, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; goto __pyx_L1;} + /*try:*/ { + __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_StopIteration); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; goto __pyx_L5;} + __Pyx_Raise(__pyx_5, __pyx_k98p, 0); + Py_DECREF(__pyx_5); __pyx_5 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; goto __pyx_L5;} + } + goto __pyx_L6; + __pyx_L5:; + Py_XDECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":537 */ + __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_TypeError); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;} + __pyx_3 = PyErr_ExceptionMatches(__pyx_5); + Py_DECREF(__pyx_5); __pyx_5 = 0; + if (__pyx_3) { + __Pyx_AddTraceback("database.next"); + if (__Pyx_GetException(&__pyx_5, &__pyx_6, &__pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; goto __pyx_L1;} + __pyx_8 = __Pyx_GetName(__pyx_b, __pyx_n_StopIteration); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; goto __pyx_L1;} + __Pyx_Raise(__pyx_8, 0, 0); + Py_DECREF(__pyx_8); __pyx_8 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + goto __pyx_L6; + } + goto __pyx_L1; + __pyx_L6:; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + Py_XDECREF(__pyx_7); + Py_XDECREF(__pyx_8); + __Pyx_AddTraceback("database.DynamicDatabase.next"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_getNext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getNext = {"getNext", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getNext, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getNext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_ret; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_ret = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":544 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":545 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; goto __pyx_L1;} + __pyx_3 = __pyx_1 == Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_firstIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L2; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":548 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_forward); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":549 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cur); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_ret); + __pyx_v_ret = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":550 */ + Py_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.getNext"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_ret); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_back; + +static PyObject *__pyx_f_8database_15DynamicDatabase_getPrev(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getPrev = {"getPrev", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getPrev, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getPrev(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_ret; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_ret = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":556 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":557 */ + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_ret); + __pyx_v_ret = Py_None; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":558 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; goto __pyx_L1;} + __pyx_3 = __pyx_1 != Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":559 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_back); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":560 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cur); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_ret); + __pyx_v_ret = __pyx_2; + __pyx_2 = 0; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":561 */ + Py_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.getPrev"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_ret); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_resetCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_resetCursor = {"resetCursor", (PyCFunction)__pyx_f_8database_15DynamicDatabase_resetCursor, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_resetCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":566 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":567 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; goto __pyx_L1;} + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.resetCursor"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_moveCursorToObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_moveCursorToObject = {"moveCursorToObject", (PyCFunction)__pyx_f_8database_15DynamicDatabase_moveCursorToObject, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_moveCursorToObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","obj",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":572 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":573 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_moveCursorToID); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.moveCursorToObject"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + return __pyx_r; +} + +static PyObject *__pyx_k99p; + +static char __pyx_k99[] = "No object with id %s in the database"; + +static PyObject *__pyx_f_8database_15DynamicDatabase_moveCursorToID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_moveCursorToID = {"moveCursorToID", (PyCFunction)__pyx_f_8database_15DynamicDatabase_moveCursorToID, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_moveCursorToID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_id = 0; + PyObject *__pyx_v_msg; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","id",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_id)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_id); + __pyx_v_msg = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":578 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":579 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":581 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_KeyError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; goto __pyx_L1;} + __pyx_3 = PyErr_ExceptionMatches(__pyx_1); + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __Pyx_AddTraceback("database.moveCursorToID"); + if (__Pyx_GetException(&__pyx_2, &__pyx_1, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":582 */ + __pyx_5 = PyNumber_Remainder(__pyx_k99p, __pyx_v_id); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; goto __pyx_L1;} + Py_DECREF(__pyx_v_msg); + __pyx_v_msg = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":583 */ + __pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n_ObjectNotFoundError); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; goto __pyx_L1;} + __Pyx_Raise(__pyx_5, __pyx_v_msg, 0); + Py_DECREF(__pyx_5); __pyx_5 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L3; + } + goto __pyx_L1; + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.moveCursorToID"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_msg); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_id); + return __pyx_r; +} + +static PyObject *__pyx_n_cursorID; +static PyObject *__pyx_n_filterFunc; + + +static PyObject *__pyx_f_8database_15DynamicDatabase_filter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_filter = {"filter", (PyCFunction)__pyx_f_8database_15DynamicDatabase_filter, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_filter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_f = 0; + PyObject *__pyx_v_sortFunc = 0; + PyObject *__pyx_v_resort = 0; + PyObject *__pyx_v_curID; + PyObject *__pyx_v_new; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","f","sortFunc","resort",0}; + __pyx_v_sortFunc = __pyx_k49; + __pyx_v_resort = __pyx_k50; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_f, &__pyx_v_sortFunc, &__pyx_v_resort)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_f); + Py_INCREF(__pyx_v_sortFunc); + Py_INCREF(__pyx_v_resort); + __pyx_v_curID = Py_None; Py_INCREF(Py_None); + __pyx_v_new = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":589 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":590 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = __pyx_3; + __pyx_3 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":592 */ + /*except:*/ { + __Pyx_AddTraceback("database.filter"); + if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; goto __pyx_L1;} + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":594 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_DynamicDatabase); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3); + __pyx_2 = 0; + __pyx_3 = 0; + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_cursorID, __pyx_v_curID) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_filterFunc, __pyx_v_f) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_parent, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_sortFunc, __pyx_v_sortFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_resort, __pyx_v_resort) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + __pyx_3 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_4, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":595 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyList_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; goto __pyx_L1;} + Py_INCREF(__pyx_v_new); + PyList_SET_ITEM(__pyx_2, 0, __pyx_v_new); + Py_INCREF(__pyx_v_f); + PyList_SET_ITEM(__pyx_2, 1, __pyx_v_f); + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":596 */ + Py_INCREF(__pyx_v_new); + __pyx_r = __pyx_v_new; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.filter"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_curID); + Py_DECREF(__pyx_v_new); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_sortFunc); + Py_DECREF(__pyx_v_resort); + return __pyx_r; +} + + +static PyObject *__pyx_f_8database_15DynamicDatabase_clone(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_clone = {"clone", (PyCFunction)__pyx_f_8database_15DynamicDatabase_clone, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_clone(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_curID; + PyObject *__pyx_v_new; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_curID = Py_None; Py_INCREF(Py_None); + __pyx_v_new = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":604 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 604; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 604; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":605 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = __pyx_3; + __pyx_3 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":607 */ + /*except:*/ { + __Pyx_AddTraceback("database.clone"); + if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; goto __pyx_L1;} + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":609 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_DynamicDatabase); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3); + __pyx_2 = 0; + __pyx_3 = 0; + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_cursorID, __pyx_v_curID) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_parent, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_sortFunc, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resort); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_resort, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_4, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":610 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyList_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; goto __pyx_L1;} + Py_INCREF(__pyx_v_new); + PyList_SET_ITEM(__pyx_2, 0, __pyx_v_new); + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":611 */ + Py_INCREF(__pyx_v_new); + __pyx_r = __pyx_v_new; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.clone"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_curID); + Py_DECREF(__pyx_v_new); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_n_mapFunc; + + +static PyObject *__pyx_f_8database_15DynamicDatabase_map(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_map = {"map", (PyCFunction)__pyx_f_8database_15DynamicDatabase_map, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_map(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_f = 0; + PyObject *__pyx_v_curID; + PyObject *__pyx_v_new; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","f",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_f)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_f); + __pyx_v_curID = Py_None; Py_INCREF(Py_None); + __pyx_v_new = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":620 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":621 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = __pyx_3; + __pyx_3 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":623 */ + /*except:*/ { + __Pyx_AddTraceback("database.map"); + if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; goto __pyx_L1;} + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":625 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_DynamicDatabase); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3); + __pyx_2 = 0; + __pyx_3 = 0; + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_cursorID, __pyx_v_curID) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_mapFunc, __pyx_v_f) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_parent, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + __pyx_3 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_4, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":626 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyList_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; goto __pyx_L1;} + Py_INCREF(__pyx_v_new); + PyList_SET_ITEM(__pyx_2, 0, __pyx_v_new); + Py_INCREF(__pyx_v_f); + PyList_SET_ITEM(__pyx_2, 1, __pyx_v_f); + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":627 */ + Py_INCREF(__pyx_v_new); + __pyx_r = __pyx_v_new; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.map"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_curID); + Py_DECREF(__pyx_v_new); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_f); + return __pyx_r; +} + + +static PyObject *__pyx_f_8database_15DynamicDatabase_sort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_sort = {"sort", (PyCFunction)__pyx_f_8database_15DynamicDatabase_sort, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_sort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_f = 0; + PyObject *__pyx_v_resort = 0; + PyObject *__pyx_v_curID; + PyObject *__pyx_v_new; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","f","resort",0}; + __pyx_v_resort = __pyx_k51; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_f, &__pyx_v_resort)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_f); + Py_INCREF(__pyx_v_resort); + __pyx_v_curID = Py_None; Py_INCREF(Py_None); + __pyx_v_new = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":634 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":635 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = __pyx_3; + __pyx_3 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":637 */ + /*except:*/ { + __Pyx_AddTraceback("database.sort"); + if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; goto __pyx_L1;} + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_curID); + __pyx_v_curID = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":639 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_DynamicDatabase); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3); + __pyx_2 = 0; + __pyx_3 = 0; + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_sortFunc, __pyx_v_f) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_cursorID, __pyx_v_curID) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_parent, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_resort, __pyx_v_resort) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + __pyx_3 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_4, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_new); + __pyx_v_new = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":640 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyList_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;} + Py_INCREF(__pyx_v_new); + PyList_SET_ITEM(__pyx_2, 0, __pyx_v_new); + Py_INCREF(__pyx_v_f); + PyList_SET_ITEM(__pyx_2, 1, __pyx_v_f); + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":641 */ + Py_INCREF(__pyx_v_new); + __pyx_r = __pyx_v_new; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.sort"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_curID); + Py_DECREF(__pyx_v_new); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_resort); + return __pyx_r; +} + +static PyObject *__pyx_n_add; + +static PyObject *__pyx_f_8database_15DynamicDatabase_addChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addChangeCallback = {"addChangeCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addChangeCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":649 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":650 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_changeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_add); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.addChangeCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_addAddCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addAddCallback = {"addAddCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addAddCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addAddCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":658 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":659 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_add); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.addAddCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_addRemoveCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addRemoveCallback = {"addRemoveCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addRemoveCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addRemoveCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":667 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":668 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_removeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_add); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.addRemoveCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_addViewChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addViewChangeCallback = {"addViewChangeCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addViewChangeCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addViewChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":675 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":676 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_viewChangeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_add); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.addViewChangeCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_addResortCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addResortCallback = {"addResortCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addResortCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addResortCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":684 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":685 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resortCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_add); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.addResortCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_addViewUnlinkCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addViewUnlinkCallback = {"addViewUnlinkCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addViewUnlinkCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addViewUnlinkCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":692 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":693 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_viewUnlinkCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_add); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.addViewUnlinkCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeChangeCallback = {"removeChangeCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeChangeCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":697 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":698 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_changeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.removeChangeCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeAddCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeAddCallback = {"removeAddCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeAddCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeAddCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":701 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 701; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 701; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":702 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.removeAddCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeRemoveCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeRemoveCallback = {"removeRemoveCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeRemoveCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeRemoveCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":705 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":706 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_removeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.removeRemoveCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeViewChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeViewChangeCallback = {"removeViewChangeCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeViewChangeCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeViewChangeCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":709 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":710 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_viewChangeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.removeViewChangeCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeResortCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeResortCallback = {"removeResortCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeResortCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeResortCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":713 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":714 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resortCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.removeResortCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeViewUnlinkCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeViewUnlinkCallback = {"removeViewUnlinkCallback", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeViewUnlinkCallback, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeViewUnlinkCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","function",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_function)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_function); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":717 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":718 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_viewUnlinkCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; goto __pyx_L1;} + Py_INCREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_function); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.removeViewUnlinkCallback"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_function); + return __pyx_r; +} + +static PyObject *__pyx_n_has_key; +static PyObject *__pyx_n_insertBefore; +static PyObject *__pyx_n_lastIter; +static PyObject *__pyx_n_iteritems; +static PyObject *__pyx_n_update; + +static PyObject *__pyx_k116p; + +static char __pyx_k116[] = "%s (%d) is already in the database"; + +static PyObject *__pyx_f_8database_15DynamicDatabase_addBeforeCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addBeforeCursor = {"addBeforeCursor", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addBeforeCursor, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addBeforeCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_newobject = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_point; + PyObject *__pyx_v_it; + PyObject *__pyx_v_origObj; + PyObject *__pyx_v_view; + PyObject *__pyx_v_f; + PyObject *__pyx_v_indexFunc; + PyObject *__pyx_v_indexMap; + PyObject *__pyx_v_callback; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + int __pyx_5; + PyObject *__pyx_6 = 0; + static char *__pyx_argnames[] = {"self","newobject","value",0}; + __pyx_v_value = __pyx_k52; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_newobject, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_newobject); + Py_INCREF(__pyx_v_value); + __pyx_v_point = Py_None; Py_INCREF(Py_None); + __pyx_v_it = Py_None; Py_INCREF(Py_None); + __pyx_v_origObj = Py_None; Py_INCREF(Py_None); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + __pyx_v_f = Py_None; Py_INCREF(Py_None); + __pyx_v_indexFunc = Py_None; Py_INCREF(Py_None); + __pyx_v_indexMap = Py_None; Py_INCREF(Py_None); + __pyx_v_callback = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":724 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":725 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_has_key); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_newobject, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_DatabaseConsistencyError); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_newobject, __pyx_n_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyNumber_Remainder(__pyx_k116p, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __Pyx_Raise(__pyx_2, __pyx_3, 0); + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; goto __pyx_L1;} + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":727 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; goto __pyx_L1;} + Py_DECREF(__pyx_v_point); + __pyx_v_point = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":728 */ + __pyx_4 = __pyx_v_point == Py_None; + if (__pyx_4) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_firstIter); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_copy); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_point); + __pyx_v_point = __pyx_3; + __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":730 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_NoValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; goto __pyx_L1;} + __pyx_4 = __pyx_v_value == __pyx_1; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + Py_INCREF(__pyx_v_newobject); + Py_DECREF(__pyx_v_value); + __pyx_v_value = __pyx_v_newobject; + goto __pyx_L4; + } + __pyx_L4:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":732 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_insertBefore); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_value); + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; goto __pyx_L1;} + Py_INCREF(__pyx_v_point); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_point); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_it); + __pyx_v_it = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":733 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_newobject, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_3, __pyx_2, __pyx_v_it) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":736 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_it, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_point); + __pyx_v_point = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":737 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_lastIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_Cmp(__pyx_v_point, __pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_5 = (!__pyx_4); + if (__pyx_5) { + __pyx_2 = PyObject_GetAttr(__pyx_v_point, __pyx_n_forward); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L5; + } + __pyx_L5:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":739 */ + /*try:*/ { + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; goto __pyx_L6;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_v_point); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; goto __pyx_L6;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_origObj); + __pyx_v_origObj = __pyx_2; + __pyx_2 = 0; + } + goto __pyx_L7; + __pyx_L6:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":741 */ + /*except:*/ { + __Pyx_AddTraceback("database.addBeforeCursor"); + if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; goto __pyx_L1;} + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_origObj); + __pyx_v_origObj = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L7; + } + __pyx_L7:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":745 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; goto __pyx_L1;} + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_3); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; goto __pyx_L1;} + break; + } + __pyx_1 = PyObject_GetIter(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_2; + __pyx_2 = 0; + if (__Pyx_EndUnpack(__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 745; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":746 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_confirmDBThread); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":747 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_saveCursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":749 */ + __pyx_4 = __pyx_v_origObj == Py_None; + if (__pyx_4) { + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_lastIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_cursor, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L10; + } + /*else*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + __pyx_6 = PyObject_GetItem(__pyx_v_origObj, __pyx_2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_6, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_6 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_6, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_cursor, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + __pyx_L10:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":753 */ + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n_addBeforeCursor); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; goto __pyx_L1;} + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_value); + __pyx_2 = PyObject_CallObject(__pyx_v_f, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_6, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":754 */ + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n_restoreCursor); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":773 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; goto __pyx_L1;} + __pyx_6 = PyObject_GetIter(__pyx_2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_6); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; goto __pyx_L1;} + break; + } + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_addBeforeCursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 774; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 774; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 774; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + Py_DECREF(__pyx_6); __pyx_6 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":775 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_1); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;} + break; + } + __pyx_6 = PyObject_GetIter(__pyx_3); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_3; + __pyx_3 = 0; + if (__Pyx_EndUnpack(__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_v_f, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_5 = PyObject_IsTrue(__pyx_3); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (__pyx_5) { + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n_addBeforeCursor); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_6, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L15; + } + __pyx_L15:; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":799 */ + __pyx_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_2); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; goto __pyx_L1;} + break; + } + __pyx_1 = PyObject_GetIter(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_6 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_6; + __pyx_6 = 0; + if (__Pyx_EndUnpack(__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_addBeforeCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; goto __pyx_L1;} + __pyx_6 = PyTuple_New(2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_6, 1, __pyx_v_value); + __pyx_1 = PyObject_CallObject(__pyx_3, __pyx_6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":801 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + __pyx_6 = PyObject_GetAttr(__pyx_3, __pyx_n_iteritems); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_2); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + break; + } + __pyx_6 = PyObject_GetIter(__pyx_3); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexFunc); + __pyx_v_indexFunc = __pyx_1; + __pyx_1 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexMap); + __pyx_v_indexMap = __pyx_3; + __pyx_3 = 0; + if (__Pyx_EndUnpack(__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_indexMap, __pyx_n_addObject); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 802; goto __pyx_L1;} + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 802; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_value); + __pyx_6 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 802; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":804 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_liveStorage); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; goto __pyx_L1;} + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_liveStorage); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 805; goto __pyx_L1;} + __pyx_6 = PyObject_GetAttr(__pyx_3, __pyx_n_update); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 805; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 805; goto __pyx_L1;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_newobject); + __pyx_1 = PyObject_CallObject(__pyx_6, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 805; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L20; + } + __pyx_L20:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":806 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addCallbacks); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; goto __pyx_L1;} + __pyx_6 = PyObject_GetIter(__pyx_3); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_6); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_2; + __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_newobject, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 807; goto __pyx_L1;} + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 807; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_1); + __pyx_1 = 0; + __pyx_2 = PyObject_CallObject(__pyx_v_callback, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 807; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_6); __pyx_6 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_6); + __Pyx_AddTraceback("database.DynamicDatabase.addBeforeCursor"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_point); + Py_DECREF(__pyx_v_it); + Py_DECREF(__pyx_v_origObj); + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_indexMap); + Py_DECREF(__pyx_v_callback); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_newobject); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_addAfterCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_addAfterCursor = {"addAfterCursor", (PyCFunction)__pyx_f_8database_15DynamicDatabase_addAfterCursor, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_addAfterCursor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_newobject = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","newobject","value",0}; + __pyx_v_value = __pyx_k53; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_newobject, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_newobject); + Py_INCREF(__pyx_v_value); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":814 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":815 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":816 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_saveCursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 816; goto __pyx_L3;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 816; goto __pyx_L3;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":817 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; goto __pyx_L3;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; goto __pyx_L3;} + __pyx_4 = PyObject_GetAttr(__pyx_2, __pyx_n_lastIter); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; goto __pyx_L3;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; goto __pyx_L3;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (PyObject_Cmp(__pyx_1, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; goto __pyx_L3;} + __pyx_3 = __pyx_3 != 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; goto __pyx_L3;} + __pyx_3 = __pyx_4 != Py_None; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 819; goto __pyx_L3;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_forward); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 819; goto __pyx_L3;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 819; goto __pyx_L3;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L5; + } + __pyx_L5:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":820 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addBeforeCursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 820; goto __pyx_L3;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 820; goto __pyx_L3;} + Py_INCREF(__pyx_v_newobject); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_newobject); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_value); + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 820; goto __pyx_L3;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + /*finally:*/ { + int __pyx_why; + PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; + int __pyx_exc_lineno; + __pyx_why = 0; goto __pyx_L4; + __pyx_L3: { + __pyx_why = 4; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_4); __pyx_4 = 0; + PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); + __pyx_exc_lineno = __pyx_lineno; + goto __pyx_L4; + } + __pyx_L4:; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_restoreCursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 822; goto __pyx_L6;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 822; goto __pyx_L6;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L7; + __pyx_L6:; + if (__pyx_why == 4) { + Py_XDECREF(__pyx_exc_type); + Py_XDECREF(__pyx_exc_value); + Py_XDECREF(__pyx_exc_tb); + } + goto __pyx_L1; + __pyx_L7:; + switch (__pyx_why) { + case 4: { + PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); + __pyx_lineno = __pyx_exc_lineno; + __pyx_exc_type = 0; + __pyx_exc_value = 0; + __pyx_exc_tb = 0; + goto __pyx_L1; + } + } + } + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.addAfterCursor"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_newobject); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeObj(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeObj = {"removeObj", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeObj, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeObj(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","obj",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":828 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":829 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_has_key); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_5); + __pyx_5 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L2; + } + __pyx_L2:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.removeObj"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + return __pyx_r; +} + +static PyObject *__pyx_n_range; + +static PyObject *__pyx_f_8database_15DynamicDatabase__removeIter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase__removeIter = {"_removeIter", (PyCFunction)__pyx_f_8database_15DynamicDatabase__removeIter, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase__removeIter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_it = 0; + PyObject *__pyx_v_first; + PyObject *__pyx_v_i; + PyObject *__pyx_v_cursor; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + Py_ssize_t __pyx_4; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","it",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_it)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_it); + __pyx_v_first = Py_None; Py_INCREF(Py_None); + __pyx_v_i = Py_None; Py_INCREF(Py_None); + __pyx_v_cursor = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":833 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_firstIter); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_first); + __pyx_v_first = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":834 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_v_it, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_1, __pyx_v_first, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; goto __pyx_L1;} + goto __pyx_L3; + } + /*else*/ { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_back); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + __pyx_L3:; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":839 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_range); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursorStack); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + __pyx_4 = PyObject_Length(__pyx_2); if (__pyx_4 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyInt_FromSsize_t(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_1 = PyObject_GetIter(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_5 = PyIter_Next(__pyx_1); + if (!__pyx_5) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_i); + __pyx_v_i = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":840 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursorStack); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_2, __pyx_v_i); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_cursor); + __pyx_v_cursor = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":841 */ + if (PyObject_Cmp(__pyx_v_it, __pyx_v_cursor, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 841; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + if (__pyx_3) { + if (PyObject_Cmp(__pyx_v_cursor, __pyx_v_first, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursorStack); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_2, __pyx_v_i, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L7; + } + /*else*/ { + __pyx_5 = PyObject_GetAttr(__pyx_v_cursor, __pyx_n_back); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_5, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + __pyx_L7:; + goto __pyx_L6; + } + __pyx_L6:; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":846 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_5, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; goto __pyx_L1;} + Py_INCREF(__pyx_v_it); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_it); + __pyx_5 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase._removeIter"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_first); + Py_DECREF(__pyx_v_i); + Py_DECREF(__pyx_v_cursor); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_it); + return __pyx_r; +} + + +static PyObject *__pyx_f_8database_15DynamicDatabase_changeObj(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_changeObj = {"changeObj", (PyCFunction)__pyx_f_8database_15DynamicDatabase_changeObj, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_changeObj(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_v_needsSave = 0; + PyObject *__pyx_v_changed; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","obj","needsSave",0}; + __pyx_v_needsSave = __pyx_k54; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj, &__pyx_v_needsSave)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + Py_INCREF(__pyx_v_needsSave); + __pyx_v_changed = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":851 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; goto __pyx_L1;} + Py_DECREF(__pyx_v_changed); + __pyx_v_changed = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":852 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":853 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_has_key); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":854 */ + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; goto __pyx_L1;} + Py_DECREF(__pyx_v_changed); + __pyx_v_changed = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":855 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_change); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_5); + __pyx_5 = 0; + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_needsSave, __pyx_v_needsSave) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + __pyx_5 = PyEval_CallObjectWithKeywords(__pyx_3, __pyx_1, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":856 */ + Py_INCREF(__pyx_v_changed); + __pyx_r = __pyx_v_changed; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.changeObj"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_changed); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_needsSave); + return __pyx_r; +} + +static PyObject *__pyx_k118p; + +static char __pyx_k118[] = "No object with id %s in database"; + +static PyObject *__pyx_f_8database_15DynamicDatabase_remove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_remove = {"remove", (PyCFunction)__pyx_f_8database_15DynamicDatabase_remove, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_remove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_it = 0; + PyObject *__pyx_v_point; + PyObject *__pyx_v_temp; + PyObject *__pyx_v_tempobj; + PyObject *__pyx_v_tempid; + PyObject *__pyx_v_tempmapped; + PyObject *__pyx_v_callback; + PyObject *__pyx_v_view; + PyObject *__pyx_v_f; + PyObject *__pyx_v_indexFunc; + PyObject *__pyx_v_indexMap; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","it",0}; + __pyx_v_it = __pyx_k55; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_it)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_it); + __pyx_v_point = Py_None; Py_INCREF(Py_None); + __pyx_v_temp = Py_None; Py_INCREF(Py_None); + __pyx_v_tempobj = Py_None; Py_INCREF(Py_None); + __pyx_v_tempid = Py_None; Py_INCREF(Py_None); + __pyx_v_tempmapped = Py_None; Py_INCREF(Py_None); + __pyx_v_callback = Py_None; Py_INCREF(Py_None); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + __pyx_v_f = Py_None; Py_INCREF(Py_None); + __pyx_v_indexFunc = Py_None; Py_INCREF(Py_None); + __pyx_v_indexMap = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":864 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":865 */ + Py_INCREF(__pyx_v_it); + Py_DECREF(__pyx_v_point); + __pyx_v_point = __pyx_v_it; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":866 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_NoValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 866; goto __pyx_L1;} + __pyx_3 = __pyx_v_point == __pyx_1; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; goto __pyx_L1;} + __pyx_3 = __pyx_2 == Py_None; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_point); + __pyx_v_point = Py_None; + goto __pyx_L3; + } + /*else*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_copy); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_point); + __pyx_v_point = __pyx_1; + __pyx_1 = 0; + } + __pyx_L3:; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":871 */ + __pyx_3 = __pyx_v_point != Py_None; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 871; goto __pyx_L1;} + __pyx_3 = __pyx_v_point == __pyx_2; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_point, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_point); + __pyx_v_point = __pyx_2; + __pyx_2 = 0; + goto __pyx_L4; + } + __pyx_L4:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":873 */ + __pyx_3 = __pyx_v_point == Py_None; + if (__pyx_3) { + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_ObjectNotFoundError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 874; goto __pyx_L1;} + __pyx_2 = PyNumber_Remainder(__pyx_k118p, __pyx_v_point); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 874; goto __pyx_L1;} + __Pyx_Raise(__pyx_1, __pyx_2, 0); + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 874; goto __pyx_L1;} + goto __pyx_L5; + } + __pyx_L5:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":877 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_point); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_temp); + __pyx_v_temp = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":878 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_temp, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_tempobj); + __pyx_v_tempobj = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":879 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_tempobj, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; goto __pyx_L1;} + Py_DECREF(__pyx_v_tempid); + __pyx_v_tempid = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":880 */ + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_temp, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_tempmapped); + __pyx_v_tempmapped = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":884 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_pop); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempid); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempid); + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":887 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n__removeIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; goto __pyx_L1;} + Py_INCREF(__pyx_v_point); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_point); + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":891 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_removeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_2); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_4; + __pyx_4 = 0; + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_tempmapped); + Py_INCREF(__pyx_v_tempid); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_tempid); + __pyx_4 = PyObject_CallObject(__pyx_v_callback, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":894 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_liveStorage); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; goto __pyx_L1;} + __pyx_3 = PyObject_IsTrue(__pyx_1); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_liveStorage); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_4, __pyx_n_remove); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_tempobj); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L8; + } + __pyx_L8:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":898 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_1); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; goto __pyx_L1;} + break; + } + __pyx_2 = PyObject_GetIter(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_4; + __pyx_4 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_4; + __pyx_4 = 0; + if (__Pyx_EndUnpack(__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_removeObj); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 899; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 899; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempobj); + __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 899; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":900 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_5 = PyIter_Next(__pyx_2); + if (!__pyx_5) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; goto __pyx_L1;} + break; + } + __pyx_1 = PyObject_GetIter(__pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_4; + __pyx_4 = 0; + __pyx_5 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_5; + __pyx_5 = 0; + if (__Pyx_EndUnpack(__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_removeObj); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 901; goto __pyx_L1;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 901; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_tempobj); + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 901; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":902 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; goto __pyx_L1;} + __pyx_5 = PyObject_GetIter(__pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_5); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; goto __pyx_L1;} + break; + } + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_4; + __pyx_4 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_removeObj); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; goto __pyx_L1;} + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_tempobj); + __pyx_2 = PyObject_CallObject(__pyx_4, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":904 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_1); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; goto __pyx_L1;} + break; + } + __pyx_5 = PyObject_GetIter(__pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_5); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_4; + __pyx_4 = 0; + if (__Pyx_EndUnpack(__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_removeObj); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 905; goto __pyx_L1;} + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 905; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_tempobj); + __pyx_5 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 905; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":906 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_2, __pyx_n_iteritems); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_5 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyObject_GetIter(__pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_1); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + break; + } + __pyx_4 = PyObject_GetIter(__pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_5 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexFunc); + __pyx_v_indexFunc = __pyx_5; + __pyx_5 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexMap); + __pyx_v_indexMap = __pyx_2; + __pyx_2 = 0; + if (__Pyx_EndUnpack(__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_5 = PyObject_GetAttr(__pyx_v_indexMap, __pyx_n_removeObject); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempobj); + __pyx_4 = PyObject_CallObject(__pyx_5, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.remove"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_point); + Py_DECREF(__pyx_v_temp); + Py_DECREF(__pyx_v_tempobj); + Py_DECREF(__pyx_v_tempid); + Py_DECREF(__pyx_v_tempmapped); + Py_DECREF(__pyx_v_callback); + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_indexMap); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_it); + return __pyx_r; +} + + +static PyObject *__pyx_f_8database_15DynamicDatabase_change(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_change = {"change", (PyCFunction)__pyx_f_8database_15DynamicDatabase_change, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_change(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_it = 0; + PyObject *__pyx_v_needsSave = 0; + PyObject *__pyx_v_madeCallback; + PyObject *__pyx_v_temp; + PyObject *__pyx_v_tempobj; + PyObject *__pyx_v_tempid; + PyObject *__pyx_v_tempmapped; + PyObject *__pyx_v_before; + PyObject *__pyx_v_after; + PyObject *__pyx_v_doResort; + PyObject *__pyx_v_nexttemp; + PyObject *__pyx_v_prevtemp; + PyObject *__pyx_v_newIt; + PyObject *__pyx_v_iterAfter; + PyObject *__pyx_v_callback; + PyObject *__pyx_v_nextId; + PyObject *__pyx_v_view; + PyObject *__pyx_v_f; + PyObject *__pyx_v_indexFunc; + PyObject *__pyx_v_indexMap; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + int __pyx_6; + PyObject *__pyx_7 = 0; + static char *__pyx_argnames[] = {"self","it","needsSave",0}; + __pyx_v_it = __pyx_k56; + __pyx_v_needsSave = __pyx_k57; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_it, &__pyx_v_needsSave)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_it); + Py_INCREF(__pyx_v_needsSave); + __pyx_v_madeCallback = Py_None; Py_INCREF(Py_None); + __pyx_v_temp = Py_None; Py_INCREF(Py_None); + __pyx_v_tempobj = Py_None; Py_INCREF(Py_None); + __pyx_v_tempid = Py_None; Py_INCREF(Py_None); + __pyx_v_tempmapped = Py_None; Py_INCREF(Py_None); + __pyx_v_before = Py_None; Py_INCREF(Py_None); + __pyx_v_after = Py_None; Py_INCREF(Py_None); + __pyx_v_doResort = Py_None; Py_INCREF(Py_None); + __pyx_v_nexttemp = Py_None; Py_INCREF(Py_None); + __pyx_v_prevtemp = Py_None; Py_INCREF(Py_None); + __pyx_v_newIt = Py_None; Py_INCREF(Py_None); + __pyx_v_iterAfter = Py_None; Py_INCREF(Py_None); + __pyx_v_callback = Py_None; Py_INCREF(Py_None); + __pyx_v_nextId = Py_None; Py_INCREF(Py_None); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + __pyx_v_f = Py_None; Py_INCREF(Py_None); + __pyx_v_indexFunc = Py_None; Py_INCREF(Py_None); + __pyx_v_indexMap = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":916 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":917 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; goto __pyx_L1;} + Py_DECREF(__pyx_v_madeCallback); + __pyx_v_madeCallback = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":918 */ + __pyx_3 = __pyx_v_it == Py_None; + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":919 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; goto __pyx_L1;} + Py_DECREF(__pyx_v_it); + __pyx_v_it = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":920 */ + __pyx_3 = __pyx_v_it == Py_None; + if (__pyx_3) { + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + goto __pyx_L3; + } + __pyx_L3:; + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":922 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 922; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_it); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 922; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_temp); + __pyx_v_temp = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":923 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_temp, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_tempobj); + __pyx_v_tempobj = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":924 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_tempobj, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 924; goto __pyx_L1;} + Py_DECREF(__pyx_v_tempid); + __pyx_v_tempid = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":925 */ + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 925; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_temp, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 925; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_tempmapped); + __pyx_v_tempmapped = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":927 */ + __pyx_2 = __pyx_v_needsSave; + Py_INCREF(__pyx_2); + __pyx_3 = PyObject_IsTrue(__pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 927; goto __pyx_L1;} + if (__pyx_3) { + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_liveStorage); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 927; goto __pyx_L1;} + } + __pyx_3 = PyObject_IsTrue(__pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 927; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_liveStorage); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_update); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_tempobj); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L4; + } + __pyx_L4:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":930 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resort); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; goto __pyx_L1;} + __pyx_3 = PyObject_IsTrue(__pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":931 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_it, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_before); + __pyx_v_before = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":932 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_it, __pyx_n_copy); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_after); + __pyx_v_after = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":933 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_before, __pyx_n_back); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":934 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_after, __pyx_n_forward); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":935 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_firstIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_Cmp(__pyx_v_it, __pyx_4, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 936; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_lastIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 936; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 936; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_Cmp(__pyx_v_after, __pyx_4, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 936; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + if (__pyx_3) { + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 938; goto __pyx_L1;} + Py_DECREF(__pyx_v_doResort); + __pyx_v_doResort = __pyx_2; + __pyx_2 = 0; + goto __pyx_L6; + } + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 939; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_firstIter); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 939; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 939; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (PyObject_Cmp(__pyx_v_it, __pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 939; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":941 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_1, __pyx_v_after); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_nexttemp); + __pyx_v_nexttemp = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":942 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; goto __pyx_L1;} + Py_INCREF(__pyx_v_nexttemp); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_nexttemp); + Py_INCREF(__pyx_v_temp); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_temp); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_doResort); + __pyx_v_doResort = __pyx_4; + __pyx_4 = 0; + goto __pyx_L6; + } + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_lastIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_Cmp(__pyx_v_after, __pyx_4, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; goto __pyx_L1;} + __pyx_3 = __pyx_3 == 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":945 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_2, __pyx_v_before); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_prevtemp); + __pyx_v_prevtemp = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":946 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; goto __pyx_L1;} + Py_INCREF(__pyx_v_temp); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_temp); + Py_INCREF(__pyx_v_prevtemp); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_prevtemp); + __pyx_1 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_doResort); + __pyx_v_doResort = __pyx_1; + __pyx_1 = 0; + goto __pyx_L6; + } + /*else*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":949 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_4, __pyx_v_after); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_nexttemp); + __pyx_v_nexttemp = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":950 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_1, __pyx_v_before); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_prevtemp); + __pyx_v_prevtemp = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":951 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; goto __pyx_L1;} + Py_INCREF(__pyx_v_temp); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_temp); + Py_INCREF(__pyx_v_prevtemp); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_prevtemp); + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyObject_IsTrue(__pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; goto __pyx_L1;} + if (!__pyx_3) { + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; goto __pyx_L1;} + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; goto __pyx_L1;} + Py_INCREF(__pyx_v_nexttemp); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_nexttemp); + Py_INCREF(__pyx_v_temp); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_temp); + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_v_doResort); + __pyx_v_doResort = __pyx_2; + __pyx_2 = 0; + } + __pyx_L6:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":953 */ + __pyx_3 = PyObject_IsTrue(__pyx_v_doResort); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 953; goto __pyx_L1;} + if (__pyx_3) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":955 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n__removeIter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; goto __pyx_L1;} + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; goto __pyx_L1;} + Py_INCREF(__pyx_v_it); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_it); + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":956 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 956; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_insertBefore); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 956; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 956; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempobj); + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_tempmapped); + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 956; goto __pyx_L1;} + Py_INCREF(__pyx_v_after); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_after); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_4, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 956; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_newIt); + __pyx_v_newIt = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":957 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_4, __pyx_v_tempid, __pyx_v_newIt) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":958 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_saveCursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":959 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_newIt, __pyx_n_copy); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_iterAfter); + __pyx_v_iterAfter = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":960 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_iterAfter, __pyx_n_forward); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; goto __pyx_L1;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":961 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":962 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_newIt, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; goto __pyx_L9;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; goto __pyx_L9;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; goto __pyx_L9;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":963 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; goto __pyx_L9;} + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_forward); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; goto __pyx_L9;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; goto __pyx_L9;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":964 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_removeCallbacks); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; goto __pyx_L9;} + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; goto __pyx_L9;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_1); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; goto __pyx_L9;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_2; + __pyx_2 = 0; + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; goto __pyx_L9;} + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_tempmapped); + Py_INCREF(__pyx_v_tempid); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_tempid); + __pyx_2 = PyObject_CallObject(__pyx_v_callback, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; goto __pyx_L9;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":966 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addCallbacks); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; goto __pyx_L9;} + __pyx_2 = PyObject_GetIter(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; goto __pyx_L9;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; goto __pyx_L9;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_1; + __pyx_1 = 0; + __pyx_4 = PyTuple_New(2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; goto __pyx_L9;} + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_tempmapped); + Py_INCREF(__pyx_v_tempid); + PyTuple_SET_ITEM(__pyx_4, 1, __pyx_v_tempid); + __pyx_1 = PyObject_CallObject(__pyx_v_callback, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; goto __pyx_L9;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":968 */ + /*try:*/ { + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; goto __pyx_L15;} + __pyx_1 = PyObject_GetItem(__pyx_4, __pyx_v_iterAfter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; goto __pyx_L15;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; goto __pyx_L15;} + __pyx_4 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; goto __pyx_L15;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_4, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; goto __pyx_L15;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_nextId); + __pyx_v_nextId = __pyx_1; + __pyx_1 = 0; + } + goto __pyx_L16; + __pyx_L15:; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_4); __pyx_4 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":970 */ + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_IndexError); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; goto __pyx_L9;} + __pyx_3 = PyErr_ExceptionMatches(__pyx_2); + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (__pyx_3) { + __Pyx_AddTraceback("database.change"); + if (__Pyx_GetException(&__pyx_4, &__pyx_1, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; goto __pyx_L9;} + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_nextId); + __pyx_v_nextId = Py_None; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L16; + } + goto __pyx_L9; + __pyx_L16:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":972 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; goto __pyx_L9;} + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; goto __pyx_L9;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_1); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; goto __pyx_L9;} + break; + } + __pyx_4 = PyObject_GetIter(__pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; goto __pyx_L9;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; goto __pyx_L9;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; goto __pyx_L9;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_2; + __pyx_2 = 0; + if (__Pyx_EndUnpack(__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; goto __pyx_L9;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":973 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_saveCursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; goto __pyx_L9;} + __pyx_4 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; goto __pyx_L9;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":974 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":975 */ + __pyx_3 = __pyx_v_nextId != Py_None; + if (__pyx_3) { + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objectLocs); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; goto __pyx_L22;} + __pyx_4 = PyObject_GetItem(__pyx_2, __pyx_v_nextId); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; goto __pyx_L22;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_cursor, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; goto __pyx_L22;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L24; + } + /*else*/ { + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; goto __pyx_L22;} + __pyx_4 = PyObject_GetAttr(__pyx_2, __pyx_n_lastIter); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; goto __pyx_L22;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; goto __pyx_L22;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_cursor, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; goto __pyx_L22;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + __pyx_L24:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":979 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_removeObj); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; goto __pyx_L22;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; goto __pyx_L22;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempobj); + __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; goto __pyx_L22;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":980 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_addBeforeCursor); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; goto __pyx_L22;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; goto __pyx_L22;} + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempmapped); + __pyx_5 = PyObject_CallObject(__pyx_v_f, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; goto __pyx_L22;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; goto __pyx_L22;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_5); + __pyx_5 = 0; + __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; goto __pyx_L22;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + } + /*finally:*/ { + int __pyx_why; + PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; + int __pyx_exc_lineno; + __pyx_why = 0; goto __pyx_L23; + __pyx_L22: { + __pyx_why = 4; + Py_XDECREF(__pyx_4); __pyx_4 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_5); __pyx_5 = 0; + PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); + __pyx_exc_lineno = __pyx_lineno; + goto __pyx_L23; + } + __pyx_L23:; + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_restoreCursor); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; goto __pyx_L25;} + __pyx_2 = PyObject_CallObject(__pyx_4, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; goto __pyx_L25;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L26; + __pyx_L25:; + if (__pyx_why == 4) { + Py_XDECREF(__pyx_exc_type); + Py_XDECREF(__pyx_exc_value); + Py_XDECREF(__pyx_exc_tb); + } + goto __pyx_L9; + __pyx_L26:; + switch (__pyx_why) { + case 4: { + PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); + __pyx_lineno = __pyx_exc_lineno; + __pyx_exc_type = 0; + __pyx_exc_value = 0; + __pyx_exc_tb = 0; + goto __pyx_L9; + } + } + } + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + /*finally:*/ { + int __pyx_why; + PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; + int __pyx_exc_lineno; + __pyx_why = 0; goto __pyx_L10; + __pyx_L9: { + __pyx_why = 4; + Py_XDECREF(__pyx_5); __pyx_5 = 0; + Py_XDECREF(__pyx_4); __pyx_4 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); + __pyx_exc_lineno = __pyx_lineno; + goto __pyx_L10; + } + __pyx_L10:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":984 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_restoreCursor); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 984; goto __pyx_L27;} + __pyx_4 = PyObject_CallObject(__pyx_5, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 984; goto __pyx_L27;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":985 */ + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 985; goto __pyx_L27;} + Py_DECREF(__pyx_v_madeCallback); + __pyx_v_madeCallback = __pyx_2; + __pyx_2 = 0; + goto __pyx_L28; + __pyx_L27:; + if (__pyx_why == 4) { + Py_XDECREF(__pyx_exc_type); + Py_XDECREF(__pyx_exc_value); + Py_XDECREF(__pyx_exc_tb); + } + goto __pyx_L1; + __pyx_L28:; + switch (__pyx_why) { + case 4: { + PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); + __pyx_lineno = __pyx_exc_lineno; + __pyx_exc_type = 0; + __pyx_exc_value = 0; + __pyx_exc_tb = 0; + goto __pyx_L1; + } + } + } + goto __pyx_L7; + } + __pyx_L7:; + goto __pyx_L5; + } + __pyx_L5:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":987 */ + __pyx_3 = PyObject_IsTrue(__pyx_v_madeCallback); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; goto __pyx_L1;} + __pyx_6 = (!__pyx_3); + if (__pyx_6) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_changeCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; goto __pyx_L1;} + __pyx_5 = PyObject_GetIter(__pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_5); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_4; + __pyx_4 = 0; + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempmapped); + Py_INCREF(__pyx_v_tempid); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_tempid); + __pyx_1 = PyObject_CallObject(__pyx_v_callback, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L29; + } + __pyx_L29:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":990 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; goto __pyx_L1;} + break; + } + __pyx_5 = PyObject_GetIter(__pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_5); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_4; + __pyx_4 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_changeObj); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; goto __pyx_L1;} + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_tempobj); + __pyx_5 = PyDict_New(); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_5, __pyx_n_needsSave, __pyx_v_needsSave) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; goto __pyx_L1;} + __pyx_7 = PyEval_CallObjectWithKeywords(__pyx_4, __pyx_1, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":992 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_5 = PyIter_Next(__pyx_1); + if (!__pyx_5) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; goto __pyx_L1;} + break; + } + __pyx_7 = PyObject_GetIter(__pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_7); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_7); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_4; + __pyx_4 = 0; + if (__Pyx_EndUnpack(__pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_5 = PyObject_GetAttr(__pyx_v_view, __pyx_n_changeObj); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_tempobj); + __pyx_4 = PyDict_New(); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_4, __pyx_n_needsSave, __pyx_v_needsSave) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; goto __pyx_L1;} + __pyx_7 = PyEval_CallObjectWithKeywords(__pyx_5, __pyx_2, __pyx_4); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":994 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_2); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; goto __pyx_L1;} + break; + } + __pyx_7 = PyObject_GetIter(__pyx_4); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_7); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_1; + __pyx_1 = 0; + __pyx_5 = __Pyx_UnpackItem(__pyx_7); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_5; + __pyx_5 = 0; + if (__Pyx_EndUnpack(__pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 994; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_tempmapped); + __pyx_1 = PyObject_CallObject(__pyx_v_f, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyObject_IsTrue(__pyx_1); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_3) { + __pyx_5 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objectLocs); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 997; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_5, __pyx_n_has_key); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 997; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 997; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempid); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_tempid); + __pyx_1 = PyObject_CallObject(__pyx_7, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 997; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_6 = PyObject_IsTrue(__pyx_1); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 997; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_6) { + __pyx_5 = PyObject_GetAttr(__pyx_v_view, __pyx_n_changeObj); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; goto __pyx_L1;} + __pyx_7 = PyTuple_New(1); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_7, 0, __pyx_v_tempobj); + __pyx_4 = PyDict_New(); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_4, __pyx_n_needsSave, __pyx_v_needsSave) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; goto __pyx_L1;} + __pyx_1 = PyEval_CallObjectWithKeywords(__pyx_5, __pyx_7, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L39; + } + /*else*/ { + __pyx_5 = PyObject_GetAttr(__pyx_v_view, __pyx_n_addBeforeCursor); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; goto __pyx_L1;} + __pyx_7 = PyTuple_New(2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_7, 0, __pyx_v_tempobj); + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_7, 1, __pyx_v_tempmapped); + __pyx_4 = PyObject_CallObject(__pyx_5, __pyx_7); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + __pyx_L39:; + goto __pyx_L38; + } + /*else*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; goto __pyx_L1;} + __pyx_5 = PyObject_GetAttr(__pyx_1, __pyx_n_has_key); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_7 = PyTuple_New(1); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempid); + PyTuple_SET_ITEM(__pyx_7, 0, __pyx_v_tempid); + __pyx_4 = PyObject_CallObject(__pyx_5, __pyx_7); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_3) { + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n_removeObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; goto __pyx_L1;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_tempobj); + __pyx_7 = PyObject_CallObject(__pyx_1, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + goto __pyx_L40; + } + __pyx_L40:; + } + __pyx_L38:; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1004 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_5 = PyIter_Next(__pyx_1); + if (!__pyx_5) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; goto __pyx_L1;} + break; + } + __pyx_7 = PyObject_GetIter(__pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_7); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + if (__Pyx_EndUnpack(__pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_changeObj); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; goto __pyx_L1;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_tempobj); + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_needsSave, __pyx_v_needsSave) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; goto __pyx_L1;} + __pyx_7 = PyEval_CallObjectWithKeywords(__pyx_4, __pyx_5, __pyx_2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1007 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + __pyx_5 = PyObject_GetAttr(__pyx_4, __pyx_n_iteritems); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyObject_CallObject(__pyx_5, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_7 = PyObject_GetIter(__pyx_2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_7); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + break; + } + __pyx_4 = PyObject_GetIter(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_5 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexFunc); + __pyx_v_indexFunc = __pyx_5; + __pyx_5 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexMap); + __pyx_v_indexMap = __pyx_2; + __pyx_2 = 0; + if (__Pyx_EndUnpack(__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_indexMap, __pyx_n_changeObject); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; goto __pyx_L1;} + __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; goto __pyx_L1;} + Py_INCREF(__pyx_v_tempobj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_tempobj); + Py_INCREF(__pyx_v_tempmapped); + PyTuple_SET_ITEM(__pyx_5, 1, __pyx_v_tempmapped); + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_7); __pyx_7 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_7); + __Pyx_AddTraceback("database.DynamicDatabase.change"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_madeCallback); + Py_DECREF(__pyx_v_temp); + Py_DECREF(__pyx_v_tempobj); + Py_DECREF(__pyx_v_tempid); + Py_DECREF(__pyx_v_tempmapped); + Py_DECREF(__pyx_v_before); + Py_DECREF(__pyx_v_after); + Py_DECREF(__pyx_v_doResort); + Py_DECREF(__pyx_v_nexttemp); + Py_DECREF(__pyx_v_prevtemp); + Py_DECREF(__pyx_v_newIt); + Py_DECREF(__pyx_v_iterAfter); + Py_DECREF(__pyx_v_callback); + Py_DECREF(__pyx_v_nextId); + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_indexMap); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_it); + Py_DECREF(__pyx_v_needsSave); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeFilter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_recomputeFilter = {"recomputeFilter", (PyCFunction)__pyx_f_8database_15DynamicDatabase_recomputeFilter, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeFilter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_filter = 0; + PyObject *__pyx_v_all = 0; + PyObject *__pyx_v_view; + PyObject *__pyx_v_f; + PyObject *__pyx_v_myObj; + PyObject *__pyx_v_myObjObj; + PyObject *__pyx_v_myObjVal; + PyObject *__pyx_v_callback; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + int __pyx_7; + static char *__pyx_argnames[] = {"self","filter","all",0}; + __pyx_v_all = __pyx_k58; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_filter, &__pyx_v_all)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_filter); + Py_INCREF(__pyx_v_all); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + __pyx_v_f = Py_None; Py_INCREF(Py_None); + __pyx_v_myObj = Py_None; Py_INCREF(Py_None); + __pyx_v_myObjObj = Py_None; Py_INCREF(Py_None); + __pyx_v_myObjVal = Py_None; Py_INCREF(Py_None); + __pyx_v_callback = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1012 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1012; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1012; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1014 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; goto __pyx_L1;} + break; + } + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_1; + __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = __pyx_v_all; + Py_INCREF(__pyx_1); + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; goto __pyx_L1;} + if (!__pyx_4) { + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = __pyx_v_view == __pyx_v_filter; + __pyx_1 = PyInt_FromLong(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; goto __pyx_L1;} + } + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1016 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_saveCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1017 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resetCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1017; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1017; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1018 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_saveCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1019 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_resetCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1021 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_1); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_myObj); + __pyx_v_myObj = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1022 */ + __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1022; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_v_myObj, __pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1022; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_myObjObj); + __pyx_v_myObjObj = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1023 */ + __pyx_3 = PyInt_FromLong(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_v_myObj, __pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_myObjVal); + __pyx_v_myObjVal = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1024 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objectLocs); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; goto __pyx_L1;} + __pyx_5 = PyObject_GetAttr(__pyx_3, __pyx_n_has_key); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_myObjObj, __pyx_n_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; goto __pyx_L1;} + __pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_5, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_4 = PyObject_IsTrue(__pyx_3); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (__pyx_4) { + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; goto __pyx_L1;} + Py_INCREF(__pyx_v_myObjVal); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_myObjVal); + __pyx_6 = PyObject_CallObject(__pyx_v_f, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_4 = PyObject_IsTrue(__pyx_6); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_7 = (!__pyx_4); + if (__pyx_7) { + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_removeObj); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; goto __pyx_L1;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; goto __pyx_L1;} + Py_INCREF(__pyx_v_myObjObj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_myObjObj); + __pyx_6 = PyObject_CallObject(__pyx_3, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + goto __pyx_L8; + } + __pyx_L8:; + goto __pyx_L7; + } + /*else*/ { + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; goto __pyx_L1;} + Py_INCREF(__pyx_v_myObjVal); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_myObjVal); + __pyx_5 = PyObject_CallObject(__pyx_v_f, __pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyObject_IsTrue(__pyx_5); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + if (__pyx_4) { + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n_addBeforeCursor); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; goto __pyx_L1;} + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; goto __pyx_L1;} + Py_INCREF(__pyx_v_myObjObj); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_myObjObj); + Py_INCREF(__pyx_v_myObjVal); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_v_myObjVal); + __pyx_5 = PyObject_CallObject(__pyx_6, __pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L9; + } + __pyx_L9:; + } + __pyx_L7:; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1031 */ + __pyx_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_restoreCursor); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1032 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_view, __pyx_n_restoreCursor); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_5, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1033 */ + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n_recomputeFilters); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1034 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_view, __pyx_n_viewChangeCallbacks); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + for (;;) { + __pyx_6 = PyIter_Next(__pyx_1); + if (!__pyx_6) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_6; + __pyx_6 = 0; + __pyx_3 = PyObject_CallObject(__pyx_v_callback, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1035; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L4; + } + __pyx_L4:; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + __Pyx_AddTraceback("database.DynamicDatabase.recomputeFilter"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_myObj); + Py_DECREF(__pyx_v_myObjObj); + Py_DECREF(__pyx_v_myObjVal); + Py_DECREF(__pyx_v_callback); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_filter); + Py_DECREF(__pyx_v_all); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_recomputeIndex = {"recomputeIndex", (PyCFunction)__pyx_f_8database_15DynamicDatabase_recomputeIndex, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_filter = 0; + PyObject *__pyx_v_all = 0; + PyObject *__pyx_v_indexFunc; + PyObject *__pyx_v_indexMap; + PyObject *__pyx_v_obj; + PyObject *__pyx_v_value; + PyObject *__pyx_v_view; + PyObject *__pyx_v_callback; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + static char *__pyx_argnames[] = {"self","filter","all",0}; + __pyx_v_all = __pyx_k59; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_filter, &__pyx_v_all)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_filter); + Py_INCREF(__pyx_v_all); + __pyx_v_indexFunc = Py_None; Py_INCREF(Py_None); + __pyx_v_indexMap = Py_None; Py_INCREF(Py_None); + __pyx_v_obj = Py_None; Py_INCREF(Py_None); + __pyx_v_value = Py_None; Py_INCREF(Py_None); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + __pyx_v_callback = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1039 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1039; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1039; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1041 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_iteritems); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + break; + } + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexFunc); + __pyx_v_indexFunc = __pyx_1; + __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexMap); + __pyx_v_indexMap = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = __pyx_v_all; + Py_INCREF(__pyx_1); + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; goto __pyx_L1;} + if (!__pyx_4) { + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = __pyx_v_indexFunc == __pyx_v_filter; + __pyx_1 = PyInt_FromLong(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; goto __pyx_L1;} + } + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1043 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_saveCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1044 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1045 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resetCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; goto __pyx_L8;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; goto __pyx_L8;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1046 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; goto __pyx_L8;} + __pyx_1 = PyObject_GetIter(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; goto __pyx_L8;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_1); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; goto __pyx_L8;} + break; + } + __pyx_5 = PyObject_GetIter(__pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; goto __pyx_L8;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; goto __pyx_L8;} + Py_DECREF(__pyx_v_obj); + __pyx_v_obj = __pyx_3; + __pyx_3 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; goto __pyx_L8;} + Py_DECREF(__pyx_v_value); + __pyx_v_value = __pyx_3; + __pyx_3 = 0; + if (__Pyx_EndUnpack(__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; goto __pyx_L8;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_indexMap, __pyx_n_recomputeObject); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; goto __pyx_L8;} + __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; goto __pyx_L8;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_5, 1, __pyx_v_value); + __pyx_6 = PyObject_CallObject(__pyx_3, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; goto __pyx_L8;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + /*finally:*/ { + int __pyx_why; + PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; + int __pyx_exc_lineno; + __pyx_why = 0; goto __pyx_L9; + __pyx_L8: { + __pyx_why = 4; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_5); __pyx_5 = 0; + Py_XDECREF(__pyx_6); __pyx_6 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); + __pyx_exc_lineno = __pyx_lineno; + goto __pyx_L9; + } + __pyx_L9:; + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_restoreCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; goto __pyx_L12;} + __pyx_5 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; goto __pyx_L12;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L13; + __pyx_L12:; + if (__pyx_why == 4) { + Py_XDECREF(__pyx_exc_type); + Py_XDECREF(__pyx_exc_value); + Py_XDECREF(__pyx_exc_tb); + } + goto __pyx_L1; + __pyx_L13:; + switch (__pyx_why) { + case 4: { + PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); + __pyx_lineno = __pyx_exc_lineno; + __pyx_exc_type = 0; + __pyx_exc_value = 0; + __pyx_exc_tb = 0; + goto __pyx_L1; + } + } + } + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1050 */ + __pyx_6 = PyObject_GetAttr(__pyx_v_indexMap, __pyx_n_getViews); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_5 = PyIter_Next(__pyx_3); + if (!__pyx_5) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1051 */ + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n_recomputeFilters); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1051; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1051; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1052 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_view, __pyx_n_viewChangeCallbacks); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; goto __pyx_L1;} + __pyx_6 = PyObject_GetIter(__pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_6); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_1; + __pyx_1 = 0; + __pyx_5 = PyObject_CallObject(__pyx_v_callback, 0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + } + Py_DECREF(__pyx_6); __pyx_6 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L4; + } + __pyx_L4:; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + __Pyx_AddTraceback("database.DynamicDatabase.recomputeIndex"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_indexMap); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_callback); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_filter); + Py_DECREF(__pyx_v_all); + return __pyx_r; +} + +static PyObject *__pyx_n_all; + + +static PyObject *__pyx_f_8database_15DynamicDatabase__recomputeSingleSort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase__recomputeSingleSort = {"_recomputeSingleSort", (PyCFunction)__pyx_f_8database_15DynamicDatabase__recomputeSingleSort, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase__recomputeSingleSort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_view = 0; + PyObject *__pyx_v_f = 0; + PyObject *__pyx_v_curObj; + PyObject *__pyx_v_newCursor; + PyObject *__pyx_v_newLocs; + PyObject *__pyx_v_temp; + PyObject *__pyx_v_obj; + PyObject *__pyx_v_it; + PyObject *__pyx_v_newStack; + PyObject *__pyx_v_changed; + PyObject *__pyx_v_callback; + PyObject *__pyx_v_subView; + PyObject *__pyx_v_index; + PyObject *__pyx_v_key; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + int __pyx_5; + PyObject *__pyx_6 = 0; + static char *__pyx_argnames[] = {"self","view","f",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_view, &__pyx_v_f)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_view); + Py_INCREF(__pyx_v_f); + __pyx_v_curObj = Py_None; Py_INCREF(Py_None); + __pyx_v_newCursor = Py_None; Py_INCREF(Py_None); + __pyx_v_newLocs = Py_None; Py_INCREF(Py_None); + __pyx_v_temp = Py_None; Py_INCREF(Py_None); + __pyx_v_obj = Py_None; Py_INCREF(Py_None); + __pyx_v_it = Py_None; Py_INCREF(Py_None); + __pyx_v_newStack = Py_None; Py_INCREF(Py_None); + __pyx_v_changed = Py_None; Py_INCREF(Py_None); + __pyx_v_callback = Py_None; Py_INCREF(Py_None); + __pyx_v_subView = Py_None; Py_INCREF(Py_None); + __pyx_v_index = Py_None; Py_INCREF(Py_None); + __pyx_v_key = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1056 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_curObj); + __pyx_v_curObj = __pyx_3; + __pyx_3 = 0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1058 */ + /*except:*/ { + __Pyx_AddTraceback("database._recomputeSingleSort"); + if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; goto __pyx_L1;} + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_curObj); + __pyx_v_curObj = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1060 */ + Py_INCREF(Py_None); + Py_DECREF(__pyx_v_newCursor); + __pyx_v_newCursor = Py_None; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1061 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; goto __pyx_L1;} + Py_DECREF(__pyx_v_newLocs); + __pyx_v_newLocs = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1062 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_SortedList); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; goto __pyx_L1;} + Py_INCREF(__pyx_v_f); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_f); + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_v_temp); + __pyx_v_temp = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1063 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1063; goto __pyx_L1;} + __pyx_3 = PyObject_GetIter(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1063; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_3); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1063; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_obj); + __pyx_v_obj = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1064 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_temp, __pyx_n_append); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; goto __pyx_L1;} + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_obj); + __pyx_4 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_it); + __pyx_v_it = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1065 */ + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1065; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_v_obj, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1065; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_1, __pyx_n_id); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1065; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetItem(__pyx_v_newLocs, __pyx_4, __pyx_v_it) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1065; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1066 */ + __pyx_5 = __pyx_v_obj == __pyx_v_curObj; + if (__pyx_5) { + __pyx_2 = PyObject_GetAttr(__pyx_v_it, __pyx_n_copy); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_newCursor); + __pyx_v_newCursor = __pyx_1; + __pyx_1 = 0; + goto __pyx_L6; + } + __pyx_L6:; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1068 */ + __pyx_4 = PyList_New(0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1068; goto __pyx_L1;} + Py_DECREF(__pyx_v_newStack); + __pyx_v_newStack = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1069 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_cursorStack); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_1); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_it); + __pyx_v_it = __pyx_3; + __pyx_3 = 0; + __pyx_5 = __pyx_v_it == Py_None; + if (__pyx_5) { + __pyx_4 = PyObject_GetAttr(__pyx_v_newStack, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; goto __pyx_L1;} + Py_INCREF(Py_None); + PyTuple_SET_ITEM(__pyx_2, 0, Py_None); + __pyx_3 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L9; + } + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_4, __pyx_n_lastIter); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_Cmp(__pyx_v_it, __pyx_3, &__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; goto __pyx_L1;} + __pyx_5 = __pyx_5 == 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (__pyx_5) { + __pyx_4 = PyObject_GetAttr(__pyx_v_newStack, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_lastIter); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_copy); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_4, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L9; + } + /*else*/ { + __pyx_4 = PyObject_GetAttr(__pyx_v_newStack, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_v_it); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + __pyx_6 = PyObject_GetItem(__pyx_2, __pyx_3); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_6, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_3 = PyObject_GetItem(__pyx_v_newLocs, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_3); + __pyx_3 = 0; + __pyx_2 = PyObject_CallObject(__pyx_4, __pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + __pyx_L9:; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1076 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_objects); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_3, __pyx_v_temp, &__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; goto __pyx_L1;} + __pyx_5 = __pyx_5 != 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyInt_FromLong(__pyx_5); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; goto __pyx_L1;} + Py_DECREF(__pyx_v_changed); + __pyx_v_changed = __pyx_4; + __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1078 */ + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_objects, __pyx_v_temp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1079 */ + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_cursor, __pyx_v_newCursor) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1080 */ + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_objectLocs, __pyx_v_newLocs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1081 */ + if (PyObject_SetAttr(__pyx_v_view, __pyx_n_cursorStack, __pyx_v_newStack) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1081; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1083 */ + __pyx_5 = PyObject_IsTrue(__pyx_v_changed); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; goto __pyx_L1;} + if (__pyx_5) { + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n_resortCallbacks); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1084; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1084; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1084; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_1; + __pyx_1 = 0; + __pyx_3 = PyObject_CallObject(__pyx_v_callback, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1085; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L10; + } + __pyx_L10:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1088 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_subSorts); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; goto __pyx_L1;} + __pyx_6 = PyObject_GetIter(__pyx_4); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_6); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; goto __pyx_L1;} + break; + } + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; goto __pyx_L1;} + Py_DECREF(__pyx_v_subView); + __pyx_v_subView = __pyx_2; + __pyx_2 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_4; + __pyx_4 = 0; + if (__Pyx_EndUnpack(__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_resort); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; goto __pyx_L1;} + __pyx_5 = PyObject_IsTrue(__pyx_1); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_5) { + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_recomputeSort); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; goto __pyx_L1;} + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; goto __pyx_L1;} + Py_INCREF(__pyx_v_subView); + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_subView); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L15; + } + /*else*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_recomputeFilters); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + __pyx_L15:; + } + Py_DECREF(__pyx_6); __pyx_6 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1095 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_subFilters); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; goto __pyx_L1;} + __pyx_3 = PyObject_GetIter(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_3); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; goto __pyx_L1;} + break; + } + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_6 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; goto __pyx_L1;} + Py_DECREF(__pyx_v_subView); + __pyx_v_subView = __pyx_6; + __pyx_6 = 0; + __pyx_4 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_4; + __pyx_4 = 0; + if (__Pyx_EndUnpack(__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1096 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_resort); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1096; goto __pyx_L1;} + __pyx_5 = PyObject_IsTrue(__pyx_1); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1096; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_5) { + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n__recomputeSingleSort); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_sortFunc); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; goto __pyx_L1;} + Py_INCREF(__pyx_v_subView); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_subView); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_4); + __pyx_4 = 0; + __pyx_1 = PyObject_CallObject(__pyx_6, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L18; + } + __pyx_L18:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1098 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_recomputeFilter); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; goto __pyx_L1;} + __pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; goto __pyx_L1;} + Py_INCREF(__pyx_v_subView); + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_subView); + __pyx_2 = PyObject_CallObject(__pyx_4, __pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1101 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n_subMaps); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; goto __pyx_L1;} + __pyx_4 = PyObject_GetIter(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_6 = PyIter_Next(__pyx_4); + if (!__pyx_6) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; goto __pyx_L1;} + break; + } + __pyx_2 = PyObject_GetIter(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; goto __pyx_L1;} + Py_DECREF(__pyx_v_subView); + __pyx_v_subView = __pyx_3; + __pyx_3 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1101; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_6 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_recomputeFilters); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1105 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n_indexes); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_iteritems); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_6 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_GetIter(__pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + for (;;) { + __pyx_4 = PyIter_Next(__pyx_3); + if (!__pyx_4) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + break; + } + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_2; + __pyx_2 = 0; + __pyx_6 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + Py_DECREF(__pyx_v_index); + __pyx_v_index = __pyx_6; + __pyx_6 = 0; + if (__Pyx_EndUnpack(__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_v_index, __pyx_n_resort); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; goto __pyx_L1;} + __pyx_5 = PyObject_IsTrue(__pyx_4); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_5) { + __pyx_2 = PyObject_GetAttr(__pyx_v_index, __pyx_n_views); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + __pyx_6 = PyObject_GetAttr(__pyx_2, __pyx_n_iteritems); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_CallObject(__pyx_6, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_4 = PyObject_GetIter(__pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_4); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + break; + } + __pyx_6 = PyObject_GetIter(__pyx_2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + Py_DECREF(__pyx_v_key); + __pyx_v_key = __pyx_1; + __pyx_1 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + Py_DECREF(__pyx_v_subView); + __pyx_v_subView = __pyx_2; + __pyx_2 = 0; + if (__Pyx_EndUnpack(__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n__recomputeSingleSort); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_sortFunc); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; goto __pyx_L1;} + __pyx_6 = PyTuple_New(2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; goto __pyx_L1;} + Py_INCREF(__pyx_v_subView); + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_subView); + PyTuple_SET_ITEM(__pyx_6, 1, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L23; + } + __pyx_L23:; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1109 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_view, __pyx_n_recomputeIndex); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; goto __pyx_L1;} + __pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; goto __pyx_L1;} + Py_INCREF(Py_None); + PyTuple_SET_ITEM(__pyx_6, 0, Py_None); + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; goto __pyx_L1;} + __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_2, __pyx_n_all, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_6, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1111 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_clones); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; goto __pyx_L1;} + __pyx_1 = PyObject_GetIter(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_6 = PyIter_Next(__pyx_1); + if (!__pyx_6) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; goto __pyx_L1;} + break; + } + __pyx_2 = PyObject_GetIter(__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; goto __pyx_L1;} + Py_DECREF(__pyx_v_subView); + __pyx_v_subView = __pyx_3; + __pyx_3 = 0; + if (__Pyx_EndUnpack(__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1112 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_resort); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1112; goto __pyx_L1;} + __pyx_5 = PyObject_IsTrue(__pyx_4); if (__pyx_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1112; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + if (__pyx_5) { + __pyx_6 = PyObject_GetAttr(__pyx_v_view, __pyx_n__recomputeSingleSort); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_subView, __pyx_n_sortFunc); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; goto __pyx_L1;} + Py_INCREF(__pyx_v_subView); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_subView); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_3); + __pyx_3 = 0; + __pyx_4 = PyObject_CallObject(__pyx_6, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L28; + } + __pyx_L28:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1114 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_recomputeFilter); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; goto __pyx_L1;} + __pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; goto __pyx_L1;} + Py_INCREF(__pyx_v_subView); + PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_subView); + __pyx_2 = PyObject_CallObject(__pyx_3, __pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1117 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_view, __pyx_n_viewChangeCallbacks); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; goto __pyx_L1;} + __pyx_3 = PyObject_GetIter(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + for (;;) { + __pyx_6 = PyIter_Next(__pyx_3); + if (!__pyx_6) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_6; + __pyx_6 = 0; + __pyx_2 = PyObject_CallObject(__pyx_v_callback, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_6); + __Pyx_AddTraceback("database.DynamicDatabase._recomputeSingleSort"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_curObj); + Py_DECREF(__pyx_v_newCursor); + Py_DECREF(__pyx_v_newLocs); + Py_DECREF(__pyx_v_temp); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_it); + Py_DECREF(__pyx_v_newStack); + Py_DECREF(__pyx_v_changed); + Py_DECREF(__pyx_v_callback); + Py_DECREF(__pyx_v_subView); + Py_DECREF(__pyx_v_index); + Py_DECREF(__pyx_v_key); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_f); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeSort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_recomputeSort = {"recomputeSort", (PyCFunction)__pyx_f_8database_15DynamicDatabase_recomputeSort, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeSort(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_sort = 0; + PyObject *__pyx_v_all = 0; + PyObject *__pyx_v_view; + PyObject *__pyx_v_f; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","sort","all",0}; + __pyx_v_all = __pyx_k60; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_sort, &__pyx_v_all)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_sort); + Py_INCREF(__pyx_v_all); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + __pyx_v_f = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1122 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1123 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; goto __pyx_L1;} + break; + } + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_1; + __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = __pyx_v_all; + Py_INCREF(__pyx_1); + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; goto __pyx_L1;} + if (!__pyx_4) { + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = __pyx_v_view == __pyx_v_sort; + __pyx_1 = PyInt_FromLong(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; goto __pyx_L1;} + } + __pyx_4 = PyObject_IsTrue(__pyx_1); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_4) { + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n__recomputeSingleSort); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; goto __pyx_L1;} + Py_INCREF(__pyx_v_view); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_view); + Py_INCREF(__pyx_v_f); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_f); + __pyx_5 = PyObject_CallObject(__pyx_3, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L4; + } + __pyx_L4:; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1126 */ + __pyx_4 = __pyx_v_sort != Py_None; + if (__pyx_4) { + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; goto __pyx_L1;} + if (PyObject_Cmp(__pyx_v_all, __pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; goto __pyx_L1;} + __pyx_4 = __pyx_4 == 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + if (__pyx_4) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; goto __pyx_L1;} + __pyx_5 = PyObject_GetIter(__pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_5); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; goto __pyx_L1;} + break; + } + __pyx_3 = PyObject_GetIter(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_1; + __pyx_1 = 0; + __pyx_2 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_2; + __pyx_2 = 0; + if (__Pyx_EndUnpack(__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = __pyx_v_view == __pyx_v_sort; + if (__pyx_4) { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n__recomputeSingleSort); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1129; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_view, __pyx_n_sortFunc); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1129; goto __pyx_L1;} + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1129; goto __pyx_L1;} + Py_INCREF(__pyx_v_view); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_view); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1129; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L8; + } + __pyx_L8:; + } + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L5; + } + __pyx_L5:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.recomputeSort"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_sort); + Py_DECREF(__pyx_v_all); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeFilters(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_recomputeFilters = {"recomputeFilters", (PyCFunction)__pyx_f_8database_15DynamicDatabase_recomputeFilters, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_recomputeFilters(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_view; + PyObject *__pyx_v_f; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + __pyx_v_f = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1137 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1138 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_recomputeFilter); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1138; goto __pyx_L1;} + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1138; goto __pyx_L1;} + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1138; goto __pyx_L1;} + Py_INCREF(Py_None); + PyTuple_SET_ITEM(__pyx_3, 0, Py_None); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1138; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1139 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_recomputeSort); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1139; goto __pyx_L1;} + __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1139; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1139; goto __pyx_L1;} + Py_INCREF(Py_None); + PyTuple_SET_ITEM(__pyx_2, 0, Py_None); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_3); + __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1139; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1140 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_2); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; goto __pyx_L1;} + break; + } + __pyx_1 = PyObject_GetIter(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; goto __pyx_L1;} + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_3; + __pyx_3 = 0; + __pyx_3 = __Pyx_UnpackItem(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; goto __pyx_L1;} + Py_DECREF(__pyx_v_f); + __pyx_v_f = __pyx_3; + __pyx_3 = 0; + if (__Pyx_EndUnpack(__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_recomputeFilters); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1142 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_recomputeIndex); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; goto __pyx_L1;} + Py_INCREF(Py_None); + PyTuple_SET_ITEM(__pyx_2, 0, Py_None); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.recomputeFilters"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_f); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_getVal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getVal = {"getVal", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getVal, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getVal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_obj = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self","obj",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_obj)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_obj); + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_obj, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.getVal"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_obj); + return __pyx_r; +} + +static PyObject *__pyx_n_ValueError; + +static PyObject *__pyx_f_8database_15DynamicDatabase_restoreFromObjectList(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_15DynamicDatabase_restoreFromObjectList[] = "Restore the database using a list of DDBObjects."; +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_restoreFromObjectList = {"restoreFromObjectList", (PyCFunction)__pyx_f_8database_15DynamicDatabase_restoreFromObjectList, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_15DynamicDatabase_restoreFromObjectList}; +static PyObject *__pyx_f_8database_15DynamicDatabase_restoreFromObjectList(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_objectList = 0; + PyObject *__pyx_v_obj; + PyObject *__pyx_v_it; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + int __pyx_5; + static char *__pyx_argnames[] = {"self","objectList",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_objectList)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_objectList); + __pyx_v_obj = Py_None; Py_INCREF(Py_None); + __pyx_v_it = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1155 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1155; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1155; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1157 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objectLocs, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1158 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_LinkedList); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; goto __pyx_L1;} + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objects, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1159 */ + __pyx_2 = PyObject_GetIter(__pyx_v_objectList); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1159; goto __pyx_L1;} + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1159; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_obj); + __pyx_v_obj = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1160 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_obj); + __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_4, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_3, __pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_v_it); + __pyx_v_it = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1161 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_id); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_3, __pyx_4, __pyx_v_it) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1163 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursor, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1163; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1164 */ + __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1164; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cursorStack, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1164; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1165 */ + /*try:*/ { + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_getLastID); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; goto __pyx_L4;} + __pyx_4 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; goto __pyx_L4;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_DDBObject); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; goto __pyx_L4;} + if (PyObject_SetAttr(__pyx_2, __pyx_n_lastID, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; goto __pyx_L4;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + goto __pyx_L5; + __pyx_L4:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_4); __pyx_4 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1167 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_ValueError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; goto __pyx_L1;} + __pyx_5 = PyErr_ExceptionMatches(__pyx_1); + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_5) { + __Pyx_AddTraceback("database.restoreFromObjectList"); + if (__Pyx_GetException(&__pyx_3, &__pyx_4, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L5; + } + goto __pyx_L1; + __pyx_L5:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1170 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1170; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.restoreFromObjectList"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_it); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_objectList); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_getLastID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getLastID = {"getLastID", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getLastID, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getLastID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_last; + PyObject *__pyx_v_obj; + PyObject *__pyx_v_temp; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_last = Py_None; Py_INCREF(Py_None); + __pyx_v_obj = Py_None; Py_INCREF(Py_None); + __pyx_v_temp = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1173 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1173; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1173; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1174 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_DDBObject); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_lastID); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_last); + __pyx_v_last = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1175 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_obj); + __pyx_v_obj = __pyx_1; + __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1176 */ + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_v_obj, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_getID); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_temp); + __pyx_v_temp = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1177 */ + if (PyObject_Cmp(__pyx_v_temp, __pyx_v_last, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1177; goto __pyx_L1;} + __pyx_4 = __pyx_4 > 0; + if (__pyx_4) { + Py_INCREF(__pyx_v_temp); + Py_DECREF(__pyx_v_last); + __pyx_v_last = __pyx_v_temp; + goto __pyx_L4; + } + __pyx_L4:; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1179 */ + Py_INCREF(__pyx_v_last); + __pyx_r = __pyx_v_last; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.getLastID"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_last); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_temp); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_unlink(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_unlink = {"unlink", (PyCFunction)__pyx_f_8database_15DynamicDatabase_unlink, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_unlink(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_callback; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_v_callback = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1184 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_viewUnlinkCallbacks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1184; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1184; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1184; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_callback); + __pyx_v_callback = __pyx_1; + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_v_callback, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1186 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_parent); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1186; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_removeView); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1186; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1186; goto __pyx_L1;} + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_self); + __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1186; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.unlink"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_callback); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_k124p; + +static char __pyx_k124[] = "Indexed views should never be directly returned"; + +static PyObject *__pyx_f_8database_15DynamicDatabase_removeView(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_removeView = {"removeView", (PyCFunction)__pyx_f_8database_15DynamicDatabase_removeView, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_removeView(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_oldView = 0; + PyObject *__pyx_v_count; + PyObject *__pyx_v_indexFunc; + PyObject *__pyx_v_indexMap; + PyObject *__pyx_v_view; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + Py_ssize_t __pyx_4; + PyObject *__pyx_5 = 0; + int __pyx_6; + PyObject *__pyx_7 = 0; + Py_ssize_t __pyx_8; + PyObject *__pyx_9 = 0; + PyObject *__pyx_10 = 0; + static char *__pyx_argnames[] = {"self","oldView",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_oldView)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_oldView); + __pyx_v_count = Py_None; Py_INCREF(Py_None); + __pyx_v_indexFunc = Py_None; Py_INCREF(Py_None); + __pyx_v_indexMap = Py_None; Py_INCREF(Py_None); + __pyx_v_view = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1193 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1194 */ + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_range); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + __pyx_4 = PyObject_Length(__pyx_3); if (__pyx_4 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyInt_FromSsize_t(__pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_5, 1, __pyx_3); + __pyx_2 = 0; + __pyx_3 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_3 = PyObject_GetIter(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_3); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_5, __pyx_v_count); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_2, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_6 = __pyx_5 == __pyx_v_oldView; + Py_DECREF(__pyx_5); __pyx_5 = 0; + if (__pyx_6) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1196 */ + __pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subFilters); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;} + __pyx_4 = PyInt_AsSsize_t(__pyx_v_count); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;} + __pyx_5 = PyInt_FromLong(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;} + __pyx_7 = PyNumber_Add(__pyx_v_count, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_8 = PyInt_AsSsize_t(__pyx_7); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PySequence_SetSlice(__pyx_1, __pyx_4, __pyx_8, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1197 */ + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + goto __pyx_L4; + } + __pyx_L4:; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1198 */ + __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_range); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + __pyx_7 = PyInt_FromLong(0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + __pyx_4 = PyObject_Length(__pyx_2); if (__pyx_4 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromSsize_t(__pyx_4); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + __pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_7); + PyTuple_SET_ITEM(__pyx_3, 1, __pyx_1); + __pyx_7 = 0; + __pyx_1 = 0; + __pyx_2 = PyObject_CallObject(__pyx_5, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_7 = PyObject_GetIter(__pyx_2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_7); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_1; + __pyx_1 = 0; + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_5, __pyx_v_count); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_3, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_6 = __pyx_1 == __pyx_v_oldView; + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_6) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1200 */ + __pyx_5 = PyList_New(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_clones); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; goto __pyx_L1;} + __pyx_8 = PyInt_AsSsize_t(__pyx_v_count); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; goto __pyx_L1;} + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; goto __pyx_L1;} + __pyx_1 = PyNumber_Add(__pyx_v_count, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyInt_AsSsize_t(__pyx_1); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PySequence_SetSlice(__pyx_3, __pyx_8, __pyx_4, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1200; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1201 */ + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_7); __pyx_7 = 0; + goto __pyx_L0; + goto __pyx_L7; + } + __pyx_L7:; + } + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1202 */ + __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_range); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + __pyx_8 = PyObject_Length(__pyx_5); if (__pyx_8 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_3 = PyInt_FromSsize_t(__pyx_8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + __pyx_7 = PyTuple_New(2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_7, 0, __pyx_1); + PyTuple_SET_ITEM(__pyx_7, 1, __pyx_3); + __pyx_1 = 0; + __pyx_3 = 0; + __pyx_5 = PyObject_CallObject(__pyx_2, __pyx_7); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_1 = PyObject_GetIter(__pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_1); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_3; + __pyx_3 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; goto __pyx_L1;} + __pyx_7 = PyObject_GetItem(__pyx_2, __pyx_v_count); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_5 = PyInt_FromLong(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; goto __pyx_L1;} + __pyx_3 = PyObject_GetItem(__pyx_7, __pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_6 = __pyx_3 == __pyx_v_oldView; + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (__pyx_6) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1204 */ + __pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subSorts); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; goto __pyx_L1;} + __pyx_4 = PyInt_AsSsize_t(__pyx_v_count); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; goto __pyx_L1;} + __pyx_5 = PyInt_FromLong(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; goto __pyx_L1;} + __pyx_3 = PyNumber_Add(__pyx_v_count, __pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_8 = PyInt_AsSsize_t(__pyx_3); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PySequence_SetSlice(__pyx_7, __pyx_4, __pyx_8, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1205 */ + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_1); __pyx_1 = 0; + goto __pyx_L0; + goto __pyx_L10; + } + __pyx_L10:; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1206 */ + __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_range); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + __pyx_4 = PyObject_Length(__pyx_2); if (__pyx_4 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_7 = PyInt_FromSsize_t(__pyx_4); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_3); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_7); + __pyx_3 = 0; + __pyx_7 = 0; + __pyx_2 = PyObject_CallObject(__pyx_5, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetIter(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_7 = PyIter_Next(__pyx_3); + if (!__pyx_7) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_7; + __pyx_7 = 0; + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1207; goto __pyx_L1;} + __pyx_1 = PyObject_GetItem(__pyx_5, __pyx_v_count); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1207; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1207; goto __pyx_L1;} + __pyx_7 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1207; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_6 = __pyx_7 == __pyx_v_oldView; + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (__pyx_6) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1208 */ + __pyx_5 = PyList_New(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_subMaps); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; goto __pyx_L1;} + __pyx_8 = PyInt_AsSsize_t(__pyx_v_count); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; goto __pyx_L1;} + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; goto __pyx_L1;} + __pyx_7 = PyNumber_Add(__pyx_v_count, __pyx_2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_4 = PyInt_AsSsize_t(__pyx_7); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PySequence_SetSlice(__pyx_1, __pyx_8, __pyx_4, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1209 */ + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + goto __pyx_L13; + } + __pyx_L13:; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1210 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_2, __pyx_n_iteritems); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_5 = PyObject_CallObject(__pyx_7, 0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_1 = PyObject_GetIter(__pyx_5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + for (;;) { + __pyx_3 = PyIter_Next(__pyx_1); + if (!__pyx_3) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + break; + } + __pyx_2 = PyObject_GetIter(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_7 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexFunc); + __pyx_v_indexFunc = __pyx_7; + __pyx_7 = 0; + __pyx_5 = __Pyx_UnpackItem(__pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + Py_DECREF(__pyx_v_indexMap); + __pyx_v_indexMap = __pyx_5; + __pyx_5 = 0; + if (__Pyx_EndUnpack(__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_indexMap, __pyx_n_getViews); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; goto __pyx_L1;} + __pyx_7 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_5 = PyObject_GetIter(__pyx_7); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + for (;;) { + __pyx_2 = PyIter_Next(__pyx_5); + if (!__pyx_2) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_view); + __pyx_v_view = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1213 */ + __pyx_6 = __pyx_v_view == __pyx_v_oldView; + if (__pyx_6) { + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_DatabaseConsistencyError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1214; goto __pyx_L1;} + __Pyx_Raise(__pyx_3, __pyx_k124p, 0); + Py_DECREF(__pyx_3); __pyx_3 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1214; goto __pyx_L1;} + goto __pyx_L18; + } + __pyx_L18:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1215 */ + __pyx_7 = __Pyx_GetName(__pyx_b, __pyx_n_range); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_view, __pyx_n_clones); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + __pyx_8 = PyObject_Length(__pyx_3); if (__pyx_8 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_3 = PyInt_FromSsize_t(__pyx_8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + __pyx_9 = PyTuple_New(2); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_9, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_9, 1, __pyx_3); + __pyx_2 = 0; + __pyx_3 = 0; + __pyx_2 = PyObject_CallObject(__pyx_7, __pyx_9); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_9); __pyx_9 = 0; + __pyx_3 = PyObject_GetIter(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_7 = PyIter_Next(__pyx_3); + if (!__pyx_7) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_count); + __pyx_v_count = __pyx_7; + __pyx_7 = 0; + __pyx_9 = PyObject_GetAttr(__pyx_v_view, __pyx_n_clones); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_9, __pyx_v_count); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + __pyx_7 = PyInt_FromLong(0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; goto __pyx_L1;} + __pyx_9 = PyObject_GetItem(__pyx_2, __pyx_7); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + __pyx_6 = __pyx_9 == __pyx_v_oldView; + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (__pyx_6) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1217 */ + __pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; goto __pyx_L1;} + __pyx_7 = PyObject_GetAttr(__pyx_v_view, __pyx_n_clones); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; goto __pyx_L1;} + __pyx_4 = PyInt_AsSsize_t(__pyx_v_count); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; goto __pyx_L1;} + __pyx_9 = PyInt_FromLong(1); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; goto __pyx_L1;} + __pyx_10 = PyNumber_Add(__pyx_v_count, __pyx_9); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + __pyx_8 = PyInt_AsSsize_t(__pyx_10); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + if (PySequence_SetSlice(__pyx_7, __pyx_4, __pyx_8, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1218 */ + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L0; + goto __pyx_L21; + } + __pyx_L21:; + } + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + Py_DECREF(__pyx_5); __pyx_5 = 0; + } + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_7); + Py_XDECREF(__pyx_9); + Py_XDECREF(__pyx_10); + __Pyx_AddTraceback("database.DynamicDatabase.removeView"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_count); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_indexMap); + Py_DECREF(__pyx_v_view); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_oldView); + return __pyx_r; +} + +static PyObject *__pyx_k125p; + +static char __pyx_k125[] = "No object with id %s in the database"; + +static PyObject *__pyx_f_8database_15DynamicDatabase_getObjectByID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getObjectByID = {"getObjectByID", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getObjectByID, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getObjectByID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_id = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + static char *__pyx_argnames[] = {"self","id",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_id)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_id); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1223 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1223; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1223; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1224 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_2, __pyx_v_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1226 */ + /*except:*/ { + __Pyx_AddTraceback("database.getObjectByID"); + if (__Pyx_GetException(&__pyx_2, &__pyx_1, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1226; goto __pyx_L1;} + __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_ObjectNotFoundError); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; goto __pyx_L1;} + __pyx_5 = PyNumber_Remainder(__pyx_k125p, __pyx_v_id); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; goto __pyx_L1;} + __Pyx_Raise(__pyx_4, __pyx_5, 0); + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.getObjectByID"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_id); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_idExists(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_idExists = {"idExists", (PyCFunction)__pyx_f_8database_15DynamicDatabase_idExists, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_idExists(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_id = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + static char *__pyx_argnames[] = {"self","id",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_id)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_id); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1230 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1230; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1230; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1231 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; goto __pyx_L1;} + __pyx_3 = PySequence_Contains(__pyx_1, __pyx_v_id); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyInt_FromLong(__pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; goto __pyx_L1;} + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DynamicDatabase.idExists"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_id); + return __pyx_r; +} + +static PyObject *__pyx_k126p; + +static char __pyx_k126[] = "No object at current cursor position"; + +static PyObject *__pyx_f_8database_15DynamicDatabase_getCurrentID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getCurrentID = {"getCurrentID", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getCurrentID, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getCurrentID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1236 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1237 */ + /*try:*/ { + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; goto __pyx_L2;} + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_cursor); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_id); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1239 */ + /*except:*/ { + __Pyx_AddTraceback("database.getCurrentID"); + if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1239; goto __pyx_L1;} + __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_ObjectNotFoundError); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; goto __pyx_L1;} + __Pyx_Raise(__pyx_4, __pyx_k126p, 0); + Py_DECREF(__pyx_4); __pyx_4 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DynamicDatabase.getCurrentID"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_getNextID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getNextID = {"getNextID", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getNextID, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getNextID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_id = 0; + PyObject *__pyx_v_pos; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","id",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_id)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_id); + __pyx_v_pos = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1245 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1245; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1245; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1246 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1247 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_pos); + __pyx_v_pos = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1248 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_pos, __pyx_n_forward); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1248; goto __pyx_L2;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1248; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1249 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_pos); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1250 */ + /*except:*/ { + __Pyx_AddTraceback("database.getNextID"); + if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; goto __pyx_L1;} + Py_INCREF(Py_None); + __pyx_r = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.getNextID"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_pos); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_id); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_getPrevID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getPrevID = {"getPrevID", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getPrevID, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getPrevID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_id = 0; + PyObject *__pyx_v_pos; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","id",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_id)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_id); + __pyx_v_pos = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1256 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1256; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1256; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1257 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1258 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_copy); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_pos); + __pyx_v_pos = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1259 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_pos, __pyx_n_back); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; goto __pyx_L2;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1260 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; goto __pyx_L2;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_pos); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; goto __pyx_L2;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; goto __pyx_L2;} + __pyx_3 = PyObject_GetItem(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; goto __pyx_L2;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_3, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; goto __pyx_L2;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + } + goto __pyx_L3; + __pyx_L2:; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1261 */ + /*except:*/ { + __Pyx_AddTraceback("database.getPrevID"); + if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1261; goto __pyx_L1;} + Py_INCREF(Py_None); + __pyx_r = Py_None; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + goto __pyx_L0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.getPrevID"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_pos); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_id); + return __pyx_r; +} + + +static PyObject *__pyx_f_8database_15DynamicDatabase_createIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_createIndex = {"createIndex", (PyCFunction)__pyx_f_8database_15DynamicDatabase_createIndex, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_createIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexFunc = 0; + PyObject *__pyx_v_sortFunc = 0; + PyObject *__pyx_v_multiValued = 0; + PyObject *__pyx_v_resort = 0; + PyObject *__pyx_v_indexMap; + PyObject *__pyx_v_obj; + PyObject *__pyx_v_value; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + int __pyx_3; + int __pyx_4; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + static char *__pyx_argnames[] = {"self","indexFunc","sortFunc","multiValued","resort",0}; + __pyx_v_sortFunc = __pyx_k61; + __pyx_v_multiValued = __pyx_k62; + __pyx_v_resort = __pyx_k63; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexFunc, &__pyx_v_sortFunc, &__pyx_v_multiValued, &__pyx_v_resort)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexFunc); + Py_INCREF(__pyx_v_sortFunc); + Py_INCREF(__pyx_v_multiValued); + Py_INCREF(__pyx_v_resort); + __pyx_v_indexMap = Py_None; Py_INCREF(Py_None); + __pyx_v_obj = Py_None; Py_INCREF(Py_None); + __pyx_v_value = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1265 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1265; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1265; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1266 */ + __pyx_3 = PyObject_IsTrue(__pyx_v_multiValued); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; goto __pyx_L1;} + __pyx_4 = (!__pyx_3); + if (__pyx_4) { + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_IndexMap); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; goto __pyx_L1;} + Py_INCREF(__pyx_v_indexFunc); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_indexFunc); + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_self); + __pyx_5 = PyDict_New(); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_5, __pyx_n_sortFunc, __pyx_v_sortFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_5, __pyx_n_resort, __pyx_v_resort) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; goto __pyx_L1;} + __pyx_6 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_2, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_v_indexMap); + __pyx_v_indexMap = __pyx_6; + __pyx_6 = 0; + goto __pyx_L2; + } + /*else*/ { + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_MultiIndexMap); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1269; goto __pyx_L1;} + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1269; goto __pyx_L1;} + Py_INCREF(__pyx_v_indexFunc); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_indexFunc); + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_self); + __pyx_5 = PyDict_New(); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1269; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_5, __pyx_n_sortFunc, __pyx_v_sortFunc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1269; goto __pyx_L1;} + if (PyDict_SetItem(__pyx_5, __pyx_n_resort, __pyx_v_resort) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1269; goto __pyx_L1;} + __pyx_6 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_2, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1269; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_v_indexMap); + __pyx_v_indexMap = __pyx_6; + __pyx_6 = 0; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1270 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_5 = PyIter_Next(__pyx_2); + if (!__pyx_5) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; goto __pyx_L1;} + break; + } + __pyx_6 = PyObject_GetIter(__pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; goto __pyx_L1;} + Py_DECREF(__pyx_v_obj); + __pyx_v_obj = __pyx_1; + __pyx_1 = 0; + __pyx_5 = __Pyx_UnpackItem(__pyx_6); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; goto __pyx_L1;} + Py_DECREF(__pyx_v_value); + __pyx_v_value = __pyx_5; + __pyx_5 = 0; + if (__Pyx_EndUnpack(__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_indexMap, __pyx_n_addObject); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; goto __pyx_L1;} + __pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; goto __pyx_L1;} + Py_INCREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_v_obj); + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_5, 1, __pyx_v_value); + __pyx_6 = PyObject_CallObject(__pyx_1, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1271; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1272 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; goto __pyx_L1;} + if (PyObject_SetItem(__pyx_1, __pyx_v_indexFunc, __pyx_v_indexMap) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + __Pyx_AddTraceback("database.DynamicDatabase.createIndex"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_indexMap); + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_value); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_sortFunc); + Py_DECREF(__pyx_v_multiValued); + Py_DECREF(__pyx_v_resort); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_filterWithIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_filterWithIndex = {"filterWithIndex", (PyCFunction)__pyx_f_8database_15DynamicDatabase_filterWithIndex, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_filterWithIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexFunc = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","indexFunc","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexFunc, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexFunc); + Py_INCREF(__pyx_v_value); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_indexFunc); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_getViewForValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_value); + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_3, __pyx_n_clone); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_r = __pyx_2; + __pyx_2 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.filterWithIndex"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_changeIndexValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_changeIndexValue = {"changeIndexValue", (PyCFunction)__pyx_f_8database_15DynamicDatabase_changeIndexValue, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_15DynamicDatabase_changeIndexValue(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexFunc = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_obj; + PyObject *__pyx_v_mapped; + PyObject *__pyx_v_newView; + PyObject *__pyx_v_temp; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + int __pyx_6; + static char *__pyx_argnames[] = {"self","indexFunc","value",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexFunc, &__pyx_v_value)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexFunc); + Py_INCREF(__pyx_v_value); + __pyx_v_obj = Py_None; Py_INCREF(Py_None); + __pyx_v_mapped = Py_None; Py_INCREF(Py_None); + __pyx_v_newView = Py_None; Py_INCREF(Py_None); + __pyx_v_temp = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1282 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objects); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; goto __pyx_L1;} + __pyx_2 = PyObject_GetIter(__pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_2); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; goto __pyx_L1;} + break; + } + __pyx_3 = PyObject_GetIter(__pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; goto __pyx_L1;} + Py_DECREF(__pyx_v_obj); + __pyx_v_obj = __pyx_1; + __pyx_1 = 0; + __pyx_1 = __Pyx_UnpackItem(__pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; goto __pyx_L1;} + Py_DECREF(__pyx_v_mapped); + __pyx_v_mapped = __pyx_1; + __pyx_1 = 0; + if (__Pyx_EndUnpack(__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_remove); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_objectLocs); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_v_obj, __pyx_n_id); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; goto __pyx_L1;} + __pyx_5 = PyObject_GetItem(__pyx_3, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_5); + __pyx_5 = 0; + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + } + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1286 */ + __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_parent); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_5, __pyx_n_removeView); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; goto __pyx_L1;} + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_self); + __pyx_4 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1290 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_parent); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; goto __pyx_L1;} + __pyx_5 = PyObject_GetAttr(__pyx_2, __pyx_n_parent); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_5, __pyx_n_indexes); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_v_indexFunc); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyObject_GetAttr(__pyx_3, __pyx_n_getViewForValue); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_value); + __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1290; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_v_newView); + __pyx_v_newView = __pyx_5; + __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1291 */ + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_parent, __pyx_v_newView) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1292 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_newView, __pyx_n_clones); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_append); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_4 = PyList_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; goto __pyx_L1;} + Py_INCREF(__pyx_v_self); + PyList_SET_ITEM(__pyx_4, 0, __pyx_v_self); + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_4); + __pyx_4 = 0; + __pyx_5 = PyObject_CallObject(__pyx_3, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1294 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_resort); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1294; goto __pyx_L1;} + __pyx_6 = PyObject_IsTrue(__pyx_1); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1294; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (__pyx_6) { + __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_SortedList); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_sortFunc); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3); + __pyx_3 = 0; + __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objects, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + goto __pyx_L4; + } + /*else*/ { + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_LinkedList); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objects, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + } + __pyx_L4:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1298 */ + __pyx_4 = PyDict_New(); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_objectLocs, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1300 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_newView, __pyx_n_objects); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1300; goto __pyx_L1;} + __pyx_5 = PyObject_GetIter(__pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1300; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + for (;;) { + __pyx_1 = PyIter_Next(__pyx_5); + if (!__pyx_1) { + if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1300; goto __pyx_L1;} + break; + } + Py_DECREF(__pyx_v_temp); + __pyx_v_temp = __pyx_1; + __pyx_1 = 0; + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_addBeforeCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; goto __pyx_L1;} + __pyx_4 = PyInt_FromLong(0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_v_temp, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_1 = PyInt_FromLong(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; goto __pyx_L1;} + __pyx_4 = PyObject_GetItem(__pyx_v_temp, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2); + PyTuple_SET_ITEM(__pyx_1, 1, __pyx_4); + __pyx_2 = 0; + __pyx_4 = 0; + __pyx_2 = PyObject_CallObject(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + } + Py_DECREF(__pyx_5); __pyx_5 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + __Pyx_AddTraceback("database.DynamicDatabase.changeIndexValue"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_obj); + Py_DECREF(__pyx_v_mapped); + Py_DECREF(__pyx_v_newView); + Py_DECREF(__pyx_v_temp); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_value); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_15DynamicDatabase_getItemWithIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_15DynamicDatabase_getItemWithIndex[] = "Get a single item using an index.\n\n This will return an item such that indexFunc(item) == value. If\n multiple objects match have the same index value, the one choosen is\n not defined. If no items in the db map to the value, default will be\n returned.\n\n If there isn\'t an index for indexFunc, a KeyError will be raised.\n "; +static PyMethodDef __pyx_mdef_8database_15DynamicDatabase_getItemWithIndex = {"getItemWithIndex", (PyCFunction)__pyx_f_8database_15DynamicDatabase_getItemWithIndex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_15DynamicDatabase_getItemWithIndex}; +static PyObject *__pyx_f_8database_15DynamicDatabase_getItemWithIndex(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_indexFunc = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_default = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self","indexFunc","value","default",0}; + __pyx_v_default = __pyx_k64; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_indexFunc, &__pyx_v_value, &__pyx_v_default)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_indexFunc); + Py_INCREF(__pyx_v_value); + Py_INCREF(__pyx_v_default); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_indexes); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; goto __pyx_L1;} + __pyx_2 = PyObject_GetItem(__pyx_1, __pyx_v_indexFunc); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_getItemForValue); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyTuple_New(2); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; goto __pyx_L1;} + Py_INCREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_value); + Py_INCREF(__pyx_v_default); + PyTuple_SET_ITEM(__pyx_2, 1, __pyx_v_default); + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_r = __pyx_3; + __pyx_3 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DynamicDatabase.getItemWithIndex"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_indexFunc); + Py_DECREF(__pyx_v_value); + Py_DECREF(__pyx_v_default); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_9DDBObject___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_9DDBObject___init__ = {"__init__", (PyCFunction)__pyx_f_8database_9DDBObject___init__, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_9DDBObject___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_dd = 0; + PyObject *__pyx_v_add = 0; + PyObject *__pyx_r; + int __pyx_1; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + static char *__pyx_argnames[] = {"self","dd","add",0}; + __pyx_v_dd = __pyx_k66; + __pyx_v_add = __pyx_k67; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_dd, &__pyx_v_add)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_dd); + Py_INCREF(__pyx_v_add); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1334 */ + if (PyObject_Cmp(__pyx_v_dd, Py_None, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; goto __pyx_L1;} + __pyx_1 = __pyx_1 != 0; + if (__pyx_1) { + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_dd, __pyx_v_dd) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; goto __pyx_L1;} + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1338 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1339 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_DDBObject); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_lastID); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; goto __pyx_L1;} + __pyx_4 = PyNumber_Add(__pyx_3, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_DDBObject); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_3, __pyx_n_lastID, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1340 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_DDBObject); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1340; goto __pyx_L1;} + __pyx_4 = PyObject_GetAttr(__pyx_2, __pyx_n_lastID); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1340; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_v_self, __pyx_n_id, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1340; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1341 */ + __pyx_1 = PyObject_IsTrue(__pyx_v_add); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; goto __pyx_L1;} + if (__pyx_1) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1342 */ + __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_checkConstraints); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1343 */ + __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; goto __pyx_L1;} + __pyx_3 = PyObject_GetAttr(__pyx_4, __pyx_n_addAfterCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; goto __pyx_L1;} + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_self); + __pyx_4 = PyObject_CallObject(__pyx_3, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_4); __pyx_4 = 0; + goto __pyx_L3; + } + __pyx_L3:; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + __Pyx_AddTraceback("database.DDBObject.__init__"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_dd); + Py_DECREF(__pyx_v_add); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_9DDBObject_getID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_9DDBObject_getID = {"getID", (PyCFunction)__pyx_f_8database_9DDBObject_getID, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_9DDBObject_getID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; goto __pyx_L1;} + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + __Pyx_AddTraceback("database.DDBObject.getID"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_9DDBObject_idExists(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_9DDBObject_idExists = {"idExists", (PyCFunction)__pyx_f_8database_9DDBObject_idExists, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_9DDBObject_idExists(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1351 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1351; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1351; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1352 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_idExists); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_r = __pyx_1; + __pyx_1 = 0; + goto __pyx_L0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DDBObject.idExists"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_9DDBObject_remove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_9DDBObject_remove = {"remove", (PyCFunction)__pyx_f_8database_9DDBObject_remove, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_9DDBObject_remove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1357 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_confirmDBThread); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1358 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_removeObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; goto __pyx_L1;} + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_self); + __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + __Pyx_AddTraceback("database.DDBObject.remove"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_9DDBObject_confirmDBThread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_9DDBObject_confirmDBThread = {"confirmDBThread", (PyCFunction)__pyx_f_8database_9DDBObject_confirmDBThread, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_9DDBObject_confirmDBThread(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_confirmDBThread); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1369; goto __pyx_L1;} + __pyx_2 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1369; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.DDBObject.confirmDBThread"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_f_8database_9DDBObject_checkConstraints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8database_9DDBObject_checkConstraints[] = "Subclasses can override this method to do constraint checking\n before they get saved to disk. They should raise a\n DatabaseConstraintError on problems.\n "; +static PyMethodDef __pyx_mdef_8database_9DDBObject_checkConstraints = {"checkConstraints", (PyCFunction)__pyx_f_8database_9DDBObject_checkConstraints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8database_9DDBObject_checkConstraints}; +static PyObject *__pyx_f_8database_9DDBObject_checkConstraints(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_r; + static char *__pyx_argnames[] = {"self",0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_self)) return 0; + Py_INCREF(__pyx_v_self); + + __pyx_r = Py_None; Py_INCREF(Py_None); + Py_DECREF(__pyx_v_self); + return __pyx_r; +} + +static PyObject *__pyx_k131p; + +static char __pyx_k131[] = "signalChange() called on non-existant object (id is %s)"; + +static PyObject *__pyx_f_8database_9DDBObject_signalChange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8database_9DDBObject_signalChange = {"signalChange", (PyCFunction)__pyx_f_8database_9DDBObject_signalChange, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_f_8database_9DDBObject_signalChange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_needsSave = 0; + PyObject *__pyx_v_msg; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + int __pyx_4; + int __pyx_5; + PyObject *__pyx_6 = 0; + static char *__pyx_argnames[] = {"self","needsSave",0}; + __pyx_v_needsSave = __pyx_k68; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|O", __pyx_argnames, &__pyx_v_self, &__pyx_v_needsSave)) return 0; + Py_INCREF(__pyx_v_self); + Py_INCREF(__pyx_v_needsSave); + __pyx_v_msg = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1381 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_confirmDBThread); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1381; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1382 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_idExists); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_id); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2); + __pyx_2 = 0; + __pyx_2 = PyObject_CallObject(__pyx_1, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + __pyx_4 = PyObject_IsTrue(__pyx_2); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_5 = (!__pyx_4); + if (__pyx_5) { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1384 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_id); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1384; goto __pyx_L1;} + __pyx_3 = PyNumber_Remainder(__pyx_k131p, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1384; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_v_msg); + __pyx_v_msg = __pyx_3; + __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1385 */ + __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_DatabaseConstraintError); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; goto __pyx_L1;} + __Pyx_Raise(__pyx_2, __pyx_v_msg, 0); + Py_DECREF(__pyx_2); __pyx_2 = 0; + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; goto __pyx_L1;} + goto __pyx_L2; + } + __pyx_L2:; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1386 */ + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_checkConstraints); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; goto __pyx_L1;} + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1387 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; goto __pyx_L1;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_saveCursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1388 */ + /*try:*/ { + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1389 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; goto __pyx_L4;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_resetCursor); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; goto __pyx_L4;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; goto __pyx_L4;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1390 */ + __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; goto __pyx_L4;} + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_changeObj); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; goto __pyx_L4;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; goto __pyx_L4;} + Py_INCREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_self); + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; goto __pyx_L4;} + if (PyDict_SetItem(__pyx_2, __pyx_n_needsSave, __pyx_v_needsSave) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; goto __pyx_L4;} + __pyx_6 = PyEval_CallObjectWithKeywords(__pyx_1, __pyx_3, __pyx_2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; goto __pyx_L4;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + } + /*finally:*/ { + int __pyx_why; + PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb; + int __pyx_exc_lineno; + __pyx_why = 0; goto __pyx_L5; + __pyx_L4: { + __pyx_why = 4; + Py_XDECREF(__pyx_1); __pyx_1 = 0; + Py_XDECREF(__pyx_3); __pyx_3 = 0; + Py_XDECREF(__pyx_2); __pyx_2 = 0; + Py_XDECREF(__pyx_6); __pyx_6 = 0; + PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb); + __pyx_exc_lineno = __pyx_lineno; + goto __pyx_L5; + } + __pyx_L5:; + __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_dd); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; goto __pyx_L6;} + __pyx_3 = PyObject_GetAttr(__pyx_1, __pyx_n_restoreCursor); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; goto __pyx_L6;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_2 = PyObject_CallObject(__pyx_3, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; goto __pyx_L6;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + goto __pyx_L7; + __pyx_L6:; + if (__pyx_why == 4) { + Py_XDECREF(__pyx_exc_type); + Py_XDECREF(__pyx_exc_value); + Py_XDECREF(__pyx_exc_tb); + } + goto __pyx_L1; + __pyx_L7:; + switch (__pyx_why) { + case 4: { + PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb); + __pyx_lineno = __pyx_exc_lineno; + __pyx_exc_type = 0; + __pyx_exc_value = 0; + __pyx_exc_tb = 0; + goto __pyx_L1; + } + } + } + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_6); + __Pyx_AddTraceback("database.DDBObject.signalChange"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_msg); + Py_DECREF(__pyx_v_self); + Py_DECREF(__pyx_v_needsSave); + return __pyx_r; +} + + +static PyObject *__pyx_f_8database_resetDefaultDatabase(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_f_8database_resetDefaultDatabase(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_views; + PyObject *__pyx_r; + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + static char *__pyx_argnames[] = {0}; + if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; + __pyx_v_views = Py_None; Py_INCREF(Py_None); + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1397 */ + __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_defaultDatabase); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1397; goto __pyx_L1;} + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n___init__); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1397; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_CallObject(__pyx_2, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1397; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1398 */ + __pyx_2 = __Pyx_Import(__pyx_n_views, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1398; goto __pyx_L1;} + Py_DECREF(__pyx_v_views); + __pyx_v_views = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1399 */ + __pyx_1 = PyImport_ReloadModule(__pyx_v_views); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1399; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + __pyx_r = Py_None; Py_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + __Pyx_AddTraceback("database.resetDefaultDatabase"); + __pyx_r = 0; + __pyx_L0:; + Py_DECREF(__pyx_v_views); + return __pyx_r; +} + +static __Pyx_InternTabEntry __pyx_intern_tab[] = { + {&__pyx_n_BAD, "BAD"}, + {&__pyx_n_DDBObject, "DDBObject"}, + {&__pyx_n_DatabaseConsistencyError, "DatabaseConsistencyError"}, + {&__pyx_n_DatabaseConstraintError, "DatabaseConstraintError"}, + {&__pyx_n_DatabaseThreadError, "DatabaseThreadError"}, + {&__pyx_n_DatabaseVersionError, "DatabaseVersionError"}, + {&__pyx_n_DictType, "DictType"}, + {&__pyx_n_DynamicDatabase, "DynamicDatabase"}, + {&__pyx_n_Exception, "Exception"}, + {&__pyx_n_False, "False"}, + {&__pyx_n_HIGHEST_PROTOCOL, "HIGHEST_PROTOCOL"}, + {&__pyx_n_IndexError, "IndexError"}, + {&__pyx_n_IndexMap, "IndexMap"}, + {&__pyx_n_InstanceType, "InstanceType"}, + {&__pyx_n_KeyError, "KeyError"}, + {&__pyx_n_LinkedList, "LinkedList"}, + {&__pyx_n_ListType, "ListType"}, + {&__pyx_n_MultiIndexMap, "MultiIndexMap"}, + {&__pyx_n_NoValue, "NoValue"}, + {&__pyx_n_NotRootDBError, "NotRootDBError"}, + {&__pyx_n_OK, "OK"}, + {&__pyx_n_ObjectNotFoundError, "ObjectNotFoundError"}, + {&__pyx_n_SortedList, "SortedList"}, + {&__pyx_n_StandardError, "StandardError"}, + {&__pyx_n_StopIteration, "StopIteration"}, + {&__pyx_n_True, "True"}, + {&__pyx_n_TupleType, "TupleType"}, + {&__pyx_n_TypeError, "TypeError"}, + {&__pyx_n_UnpicklingError, "UnpicklingError"}, + {&__pyx_n_ValueError, "ValueError"}, + {&__pyx_n___dict__, "__dict__"}, + {&__pyx_n___getitem__, "__getitem__"}, + {&__pyx_n___getstate__, "__getstate__"}, + {&__pyx_n___init__, "__init__"}, + {&__pyx_n___iter__, "__iter__"}, + {&__pyx_n___len__, "__len__"}, + {&__pyx_n__changeOrRecompute, "_changeOrRecompute"}, + {&__pyx_n__recomputeSingleSort, "_recomputeSingleSort"}, + {&__pyx_n__removeIter, "_removeIter"}, + {&__pyx_n_add, "add"}, + {&__pyx_n_addAddCallback, "addAddCallback"}, + {&__pyx_n_addAfterCursor, "addAfterCursor"}, + {&__pyx_n_addBeforeCursor, "addBeforeCursor"}, + {&__pyx_n_addCallbacks, "addCallbacks"}, + {&__pyx_n_addChangeCallback, "addChangeCallback"}, + {&__pyx_n_addObject, "addObject"}, + {&__pyx_n_addRemoveCallback, "addRemoveCallback"}, + {&__pyx_n_addResortCallback, "addResortCallback"}, + {&__pyx_n_addViewChangeCallback, "addViewChangeCallback"}, + {&__pyx_n_addViewUnlinkCallback, "addViewUnlinkCallback"}, + {&__pyx_n_all, "all"}, + {&__pyx_n_append, "append"}, + {&__pyx_n_back, "back"}, + {&__pyx_n_cPickle, "cPickle"}, + {&__pyx_n_change, "change"}, + {&__pyx_n_changeCallbacks, "changeCallbacks"}, + {&__pyx_n_changeIndexValue, "changeIndexValue"}, + {&__pyx_n_changeObj, "changeObj"}, + {&__pyx_n_changeObject, "changeObject"}, + {&__pyx_n_checkConstraints, "checkConstraints"}, + {&__pyx_n_clone, "clone"}, + {&__pyx_n_clones, "clones"}, + {&__pyx_n_confirmDBThread, "confirmDBThread"}, + {&__pyx_n_copy, "copy"}, + {&__pyx_n_copyfile, "copyfile"}, + {&__pyx_n_count_databases, "count_databases"}, + {&__pyx_n_createIndex, "createIndex"}, + {&__pyx_n_cur, "cur"}, + {&__pyx_n_currentThread, "currentThread"}, + {&__pyx_n_cursor, "cursor"}, + {&__pyx_n_cursorID, "cursorID"}, + {&__pyx_n_cursorStack, "cursorStack"}, + {&__pyx_n_dd, "dd"}, + {&__pyx_n_defaultDatabase, "defaultDatabase"}, + {&__pyx_n_dump, "dump"}, + {&__pyx_n_dumps, "dumps"}, + {&__pyx_n_event_thread, "event_thread"}, + {&__pyx_n_exists, "exists"}, + {&__pyx_n_expanduser, "expanduser"}, + {&__pyx_n_filter, "filter"}, + {&__pyx_n_filterFunc, "filterFunc"}, + {&__pyx_n_filterWithIndex, "filterWithIndex"}, + {&__pyx_n_findUnpicklableParts, "findUnpicklableParts"}, + {&__pyx_n_firstIter, "firstIter"}, + {&__pyx_n_forward, "forward"}, + {&__pyx_n_getCurrentID, "getCurrentID"}, + {&__pyx_n_getID, "getID"}, + {&__pyx_n_getItemForValue, "getItemForValue"}, + {&__pyx_n_getItemWithIndex, "getItemWithIndex"}, + {&__pyx_n_getLastID, "getLastID"}, + {&__pyx_n_getNext, "getNext"}, + {&__pyx_n_getNextID, "getNextID"}, + {&__pyx_n_getObjectByID, "getObjectByID"}, + {&__pyx_n_getPrev, "getPrev"}, + {&__pyx_n_getPrevID, "getPrevID"}, + {&__pyx_n_getVal, "getVal"}, + {&__pyx_n_getViewForValue, "getViewForValue"}, + {&__pyx_n_getViews, "getViews"}, + {&__pyx_n_has_key, "has_key"}, + {&__pyx_n_id, "id"}, + {&__pyx_n_idExists, "idExists"}, + {&__pyx_n_indexFunc, "indexFunc"}, + {&__pyx_n_indexes, "indexes"}, + {&__pyx_n_insertBefore, "insertBefore"}, + {&__pyx_n_intersection, "intersection"}, + {&__pyx_n_iteritems, "iteritems"}, + {&__pyx_n_itervalues, "itervalues"}, + {&__pyx_n_lastID, "lastID"}, + {&__pyx_n_lastIter, "lastIter"}, + {&__pyx_n_len, "len"}, + {&__pyx_n_liveStorage, "liveStorage"}, + {&__pyx_n_load, "load"}, + {&__pyx_n_map, "map"}, + {&__pyx_n_mapFunc, "mapFunc"}, + {&__pyx_n_mappings, "mappings"}, + {&__pyx_n_moveCursorToID, "moveCursorToID"}, + {&__pyx_n_moveCursorToObject, "moveCursorToObject"}, + {&__pyx_n_needsSave, "needsSave"}, + {&__pyx_n_next, "next"}, + {&__pyx_n_objectLocs, "objectLocs"}, + {&__pyx_n_objects, "objects"}, + {&__pyx_n_parent, "parent"}, + {&__pyx_n_parentDB, "parentDB"}, + {&__pyx_n_pop, "pop"}, + {&__pyx_n_print_stack, "print_stack"}, + {&__pyx_n_range, "range"}, + {&__pyx_n_recomputeFilter, "recomputeFilter"}, + {&__pyx_n_recomputeFilters, "recomputeFilters"}, + {&__pyx_n_recomputeIndex, "recomputeIndex"}, + {&__pyx_n_recomputeObject, "recomputeObject"}, + {&__pyx_n_recomputeSort, "recomputeSort"}, + {&__pyx_n_remove, "remove"}, + {&__pyx_n_removeAddCallback, "removeAddCallback"}, + {&__pyx_n_removeCallbacks, "removeCallbacks"}, + {&__pyx_n_removeChangeCallback, "removeChangeCallback"}, + {&__pyx_n_removeObj, "removeObj"}, + {&__pyx_n_removeObject, "removeObject"}, + {&__pyx_n_removeRemoveCallback, "removeRemoveCallback"}, + {&__pyx_n_removeResortCallback, "removeResortCallback"}, + {&__pyx_n_removeView, "removeView"}, + {&__pyx_n_removeViewChangeCallback, "removeViewChangeCallback"}, + {&__pyx_n_removeViewUnlinkCallback, "removeViewUnlinkCallback"}, + {&__pyx_n_resetCursor, "resetCursor"}, + {&__pyx_n_resort, "resort"}, + {&__pyx_n_resortCallbacks, "resortCallbacks"}, + {&__pyx_n_restoreCursor, "restoreCursor"}, + {&__pyx_n_restoreFromObjectList, "restoreFromObjectList"}, + {&__pyx_n_rootDB, "rootDB"}, + {&__pyx_n_saveCursor, "saveCursor"}, + {&__pyx_n_set, "set"}, + {&__pyx_n_shutil, "shutil"}, + {&__pyx_n_signalChange, "signalChange"}, + {&__pyx_n_sort, "sort"}, + {&__pyx_n_sortFunc, "sortFunc"}, + {&__pyx_n_str, "str"}, + {&__pyx_n_subFilters, "subFilters"}, + {&__pyx_n_subMaps, "subMaps"}, + {&__pyx_n_subSorts, "subSorts"}, + {&__pyx_n_sys, "sys"}, + {&__pyx_n_threading, "threading"}, + {&__pyx_n_traceback, "traceback"}, + {&__pyx_n_type, "type"}, + {&__pyx_n_types, "types"}, + {&__pyx_n_unlink, "unlink"}, + {&__pyx_n_update, "update"}, + {&__pyx_n_values, "values"}, + {&__pyx_n_viewChangeCallbacks, "viewChangeCallbacks"}, + {&__pyx_n_viewUnlinkCallbacks, "viewUnlinkCallbacks"}, + {&__pyx_n_views, "views"}, + {0, 0} +}; + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_k1p, __pyx_k1, sizeof(__pyx_k1)}, + {&__pyx_k18p, __pyx_k18, sizeof(__pyx_k18)}, + {&__pyx_k22p, __pyx_k22, sizeof(__pyx_k22)}, + {&__pyx_k24p, __pyx_k24, sizeof(__pyx_k24)}, + {&__pyx_k26p, __pyx_k26, sizeof(__pyx_k26)}, + {&__pyx_k35p, __pyx_k35, sizeof(__pyx_k35)}, + {&__pyx_k39p, __pyx_k39, sizeof(__pyx_k39)}, + {&__pyx_k69p, __pyx_k69, sizeof(__pyx_k69)}, + {&__pyx_k70p, __pyx_k70, sizeof(__pyx_k70)}, + {&__pyx_k71p, __pyx_k71, sizeof(__pyx_k71)}, + {&__pyx_k72p, __pyx_k72, sizeof(__pyx_k72)}, + {&__pyx_k73p, __pyx_k73, sizeof(__pyx_k73)}, + {&__pyx_k74p, __pyx_k74, sizeof(__pyx_k74)}, + {&__pyx_k76p, __pyx_k76, sizeof(__pyx_k76)}, + {&__pyx_k78p, __pyx_k78, sizeof(__pyx_k78)}, + {&__pyx_k79p, __pyx_k79, sizeof(__pyx_k79)}, + {&__pyx_k80p, __pyx_k80, sizeof(__pyx_k80)}, + {&__pyx_k82p, __pyx_k82, sizeof(__pyx_k82)}, + {&__pyx_k83p, __pyx_k83, sizeof(__pyx_k83)}, + {&__pyx_k84p, __pyx_k84, sizeof(__pyx_k84)}, + {&__pyx_k85p, __pyx_k85, sizeof(__pyx_k85)}, + {&__pyx_k86p, __pyx_k86, sizeof(__pyx_k86)}, + {&__pyx_k87p, __pyx_k87, sizeof(__pyx_k87)}, + {&__pyx_k88p, __pyx_k88, sizeof(__pyx_k88)}, + {&__pyx_k89p, __pyx_k89, sizeof(__pyx_k89)}, + {&__pyx_k98p, __pyx_k98, sizeof(__pyx_k98)}, + {&__pyx_k99p, __pyx_k99, sizeof(__pyx_k99)}, + {&__pyx_k116p, __pyx_k116, sizeof(__pyx_k116)}, + {&__pyx_k118p, __pyx_k118, sizeof(__pyx_k118)}, + {&__pyx_k124p, __pyx_k124, sizeof(__pyx_k124)}, + {&__pyx_k125p, __pyx_k125, sizeof(__pyx_k125)}, + {&__pyx_k126p, __pyx_k126, sizeof(__pyx_k126)}, + {&__pyx_k131p, __pyx_k131, sizeof(__pyx_k131)}, + {0, 0, 0} +}; + +static struct PyMethodDef __pyx_methods[] = { + {"set_thread", (PyCFunction)__pyx_f_8database_set_thread, METH_VARARGS|METH_KEYWORDS, 0}, + {"confirmDBThread", (PyCFunction)__pyx_f_8database_confirmDBThread, METH_VARARGS|METH_KEYWORDS, 0}, + {"findUnpicklableParts", (PyCFunction)__pyx_f_8database_findUnpicklableParts, METH_VARARGS|METH_KEYWORDS, 0}, + {"resetDefaultDatabase", (PyCFunction)__pyx_f_8database_resetDefaultDatabase, METH_VARARGS|METH_KEYWORDS, 0}, + {0, 0, 0, 0} +}; + +static void __pyx_init_filenames(void); /*proto*/ + +PyMODINIT_FUNC initdatabase(void); /*proto*/ +PyMODINIT_FUNC initdatabase(void) { + PyObject *__pyx_1 = 0; + PyObject *__pyx_2 = 0; + PyObject *__pyx_3 = 0; + PyObject *__pyx_4 = 0; + PyObject *__pyx_5 = 0; + PyObject *__pyx_6 = 0; + PyObject *__pyx_7 = 0; + PyObject *__pyx_8 = 0; + PyObject *__pyx_9 = 0; + PyObject *__pyx_10 = 0; + PyObject *__pyx_11 = 0; + PyObject *__pyx_12 = 0; + PyObject *__pyx_13 = 0; + PyObject *__pyx_14 = 0; + PyObject *__pyx_15 = 0; + PyObject *__pyx_16 = 0; + PyObject *__pyx_17 = 0; + PyObject *__pyx_18 = 0; + PyObject *__pyx_19 = 0; + PyObject *__pyx_20 = 0; + PyObject *__pyx_21 = 0; + PyObject *__pyx_22 = 0; + PyObject *__pyx_23 = 0; + PyObject *__pyx_24 = 0; + __pyx_init_filenames(); + __pyx_m = Py_InitModule4("database", __pyx_methods, 0, 0, PYTHON_API_VERSION); + if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}; + Py_INCREF(__pyx_m); + __pyx_b = PyImport_AddModule("__builtin__"); + if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}; + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}; + if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}; + if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;}; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":37 */ + __pyx_1 = PyList_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} + Py_INCREF(__pyx_n_expanduser); + PyList_SET_ITEM(__pyx_1, 0, __pyx_n_expanduser); + Py_INCREF(__pyx_n_exists); + PyList_SET_ITEM(__pyx_1, 1, __pyx_n_exists); + __pyx_2 = __Pyx_Import(__pyx_k1p, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_expanduser); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_expanduser, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_exists); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_exists, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":38 */ + __pyx_2 = PyList_New(5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + Py_INCREF(__pyx_n_dump); + PyList_SET_ITEM(__pyx_2, 0, __pyx_n_dump); + Py_INCREF(__pyx_n_dumps); + PyList_SET_ITEM(__pyx_2, 1, __pyx_n_dumps); + Py_INCREF(__pyx_n_load); + PyList_SET_ITEM(__pyx_2, 2, __pyx_n_load); + Py_INCREF(__pyx_n_HIGHEST_PROTOCOL); + PyList_SET_ITEM(__pyx_2, 3, __pyx_n_HIGHEST_PROTOCOL); + Py_INCREF(__pyx_n_UnpicklingError); + PyList_SET_ITEM(__pyx_2, 4, __pyx_n_UnpicklingError); + __pyx_1 = __Pyx_Import(__pyx_n_cPickle, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_dump); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_dump, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_dumps); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_dumps, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_load); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_load, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_HIGHEST_PROTOCOL); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_HIGHEST_PROTOCOL, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_UnpicklingError); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_UnpicklingError, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":39 */ + __pyx_1 = PyList_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;} + Py_INCREF(__pyx_n_copyfile); + PyList_SET_ITEM(__pyx_1, 0, __pyx_n_copyfile); + __pyx_2 = __Pyx_Import(__pyx_n_shutil, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_copyfile); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_copyfile, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":40 */ + __pyx_2 = PyList_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; goto __pyx_L1;} + Py_INCREF(__pyx_n_copy); + PyList_SET_ITEM(__pyx_2, 0, __pyx_n_copy); + __pyx_1 = __Pyx_Import(__pyx_n_copy, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_copy); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_copy, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":41 */ + __pyx_1 = __Pyx_Import(__pyx_n_traceback, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_traceback, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":42 */ + __pyx_2 = __Pyx_Import(__pyx_n_sys, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_sys, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":43 */ + __pyx_1 = __Pyx_Import(__pyx_n_types, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_types, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":44 */ + __pyx_2 = __Pyx_Import(__pyx_n_threading, 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_threading, __pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":46 */ + __pyx_1 = PyList_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + Py_INCREF(__pyx_n_LinkedList); + PyList_SET_ITEM(__pyx_1, 0, __pyx_n_LinkedList); + Py_INCREF(__pyx_n_SortedList); + PyList_SET_ITEM(__pyx_1, 1, __pyx_n_SortedList); + __pyx_2 = __Pyx_Import(__pyx_k18p, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_LinkedList); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_LinkedList, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_SortedList); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_SortedList, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":48 */ + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1); + __pyx_1 = 0; + if (PyDict_SetItemString(__pyx_2, "__doc__", __pyx_k22p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;} + __pyx_1 = __Pyx_CreateClass(__pyx_3, __pyx_2, __pyx_n_DatabaseConstraintError, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_DatabaseConstraintError, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":54 */ + __pyx_3 = PyDict_New(); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1); + __pyx_1 = 0; + if (PyDict_SetItemString(__pyx_3, "__doc__", __pyx_k24p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;} + __pyx_1 = __Pyx_CreateClass(__pyx_2, __pyx_3, __pyx_n_DatabaseConsistencyError, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_DatabaseConsistencyError, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":59 */ + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1); + __pyx_1 = 0; + if (PyDict_SetItemString(__pyx_2, "__doc__", __pyx_k26p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + __pyx_1 = __Pyx_CreateClass(__pyx_3, __pyx_2, __pyx_n_DatabaseThreadError, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_DatabaseThreadError, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":67 */ + __pyx_3 = PyDict_New(); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_StandardError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = __Pyx_CreateClass(__pyx_2, __pyx_3, __pyx_n_DatabaseVersionError, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_DatabaseVersionError, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":72 */ + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_StandardError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; goto __pyx_L1;} + __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = __Pyx_CreateClass(__pyx_3, __pyx_2, __pyx_n_ObjectNotFoundError, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_ObjectNotFoundError, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":77 */ + __pyx_3 = PyDict_New(); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} + __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_StandardError); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} + __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1); + __pyx_1 = 0; + __pyx_1 = __Pyx_CreateClass(__pyx_2, __pyx_3, __pyx_n_NotRootDBError, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} + Py_DECREF(__pyx_2); __pyx_2 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_NotRootDBError, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_3); __pyx_3 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":81 */ + __pyx_2 = PyDict_New(); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; goto __pyx_L1;} + __pyx_1 = PyTuple_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; goto __pyx_L1;} + __pyx_3 = __Pyx_CreateClass(__pyx_1, __pyx_2, __pyx_n_NoValue, "database"); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_NoValue, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; goto __pyx_L1;} + Py_DECREF(__pyx_3); __pyx_3 = 0; + Py_DECREF(__pyx_2); __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":89 */ + if (PyObject_SetAttr(__pyx_m, __pyx_n_event_thread, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;} + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":95 */ + __pyx_1 = __Pyx_Import(__pyx_n_traceback, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_m, __pyx_n_traceback, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":106 */ + __pyx_3 = PyDict_New(); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; goto __pyx_L1;} + __pyx_k32 = __pyx_3; + __pyx_3 = 0; + __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; goto __pyx_L1;} + __pyx_k33 = __pyx_2; + __pyx_2 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":144 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;} + __pyx_4 = PyTuple_New(0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;} + if (PyDict_SetItemString(__pyx_1, "__doc__", __pyx_k35p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;} + __pyx_5 = __Pyx_CreateClass(__pyx_4, __pyx_1, __pyx_n_IndexMap, "database"); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;} + Py_DECREF(__pyx_4); __pyx_4 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":152 */ + Py_INCREF(Py_None); + __pyx_k36 = Py_None; + __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; goto __pyx_L1;} + __pyx_k37 = __pyx_4; + __pyx_4 = 0; + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap___init__, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n___init__, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":163 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_addObject, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_addObject, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":170 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_removeObject, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_removeObject, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":175 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap__changeOrRecompute, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n__changeOrRecompute, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":196 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_changeObject, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_changeObject, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":205 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_recomputeObject, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_recomputeObject, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":215 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_getViewForValue, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_getViewForValue, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":226 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_getItemForValue, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_getItemForValue, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":236 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_getViews, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_getViews, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":239 */ + __pyx_6 = PyCFunction_New(&__pyx_mdef_8database_8IndexMap_count_databases, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; goto __pyx_L1;} + __pyx_7 = PyMethod_New(__pyx_6, 0, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; goto __pyx_L1;} + Py_DECREF(__pyx_6); __pyx_6 = 0; + if (PyObject_SetAttr(__pyx_5, __pyx_n_count_databases, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_IndexMap, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":248 */ + __pyx_6 = PyDict_New(); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; goto __pyx_L1;} + __pyx_7 = __Pyx_GetName(__pyx_m, __pyx_n_IndexMap); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; goto __pyx_L1;} + __pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; goto __pyx_L1;} + PyTuple_SET_ITEM(__pyx_5, 0, __pyx_7); + __pyx_7 = 0; + if (PyDict_SetItemString(__pyx_6, "__doc__", __pyx_k39p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; goto __pyx_L1;} + __pyx_1 = __Pyx_CreateClass(__pyx_5, __pyx_6, __pyx_n_MultiIndexMap, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":256 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap_addObject, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addObject, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":264 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap_removeObject, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeObject, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":270 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap__changeOrRecompute, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n__changeOrRecompute, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":288 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap_changeObject, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_changeObject, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":297 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap_recomputeObject, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_recomputeObject, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":307 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap_getViewForValue, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getViewForValue, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":318 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap_getItemForValue, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getItemForValue, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":328 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_13MultiIndexMap_getViews, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; goto __pyx_L1;} + __pyx_5 = PyMethod_New(__pyx_7, 0, __pyx_1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getViews, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_MultiIndexMap, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_6); __pyx_6 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":337 */ + __pyx_7 = PyDict_New(); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; goto __pyx_L1;} + __pyx_5 = PyTuple_New(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; goto __pyx_L1;} + __pyx_1 = __Pyx_CreateClass(__pyx_5, __pyx_7, __pyx_n_DynamicDatabase, "database"); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; goto __pyx_L1;} + Py_DECREF(__pyx_5); __pyx_5 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":343 */ + __pyx_6 = PyList_New(0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L1;} + __pyx_k41 = __pyx_6; + __pyx_6 = 0; + __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L1;} + __pyx_k42 = __pyx_5; + __pyx_5 = 0; + Py_INCREF(Py_None); + __pyx_k43 = Py_None; + Py_INCREF(Py_None); + __pyx_k44 = Py_None; + Py_INCREF(Py_None); + __pyx_k45 = Py_None; + Py_INCREF(Py_None); + __pyx_k46 = Py_None; + Py_INCREF(Py_None); + __pyx_k47 = Py_None; + __pyx_8 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L1;} + __pyx_k48 = __pyx_8; + __pyx_8 = 0; + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase___init__, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n___init__, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":382 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_count_databases, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_count_databases, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":458 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase___iter__, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n___iter__, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":473 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_saveCursor, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_saveCursor, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":482 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_restoreCursor, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_restoreCursor, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":487 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase___getitem__, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n___getitem__, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":496 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase___len__, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n___len__, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":498 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_len, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_len, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":510 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_confirmDBThread, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_confirmDBThread, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":516 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_cur, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_cur, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":526 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_next, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_next, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":543 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getNext, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getNext, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":555 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getPrev, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getPrev, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":565 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_resetCursor, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_resetCursor, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":571 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_moveCursorToObject, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_moveCursorToObject, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":577 */ + __pyx_9 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_moveCursorToID, 0); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; goto __pyx_L1;} + __pyx_10 = PyMethod_New(__pyx_9, 0, __pyx_1); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; goto __pyx_L1;} + Py_DECREF(__pyx_9); __pyx_9 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_moveCursorToID, __pyx_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":588 */ + Py_INCREF(Py_None); + __pyx_k49 = Py_None; + __pyx_9 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; goto __pyx_L1;} + __pyx_k50 = __pyx_9; + __pyx_9 = 0; + __pyx_10 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_filter, 0); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; goto __pyx_L1;} + __pyx_11 = PyMethod_New(__pyx_10, 0, __pyx_1); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_filter, __pyx_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":603 */ + __pyx_10 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_clone, 0); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;} + __pyx_11 = PyMethod_New(__pyx_10, 0, __pyx_1); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_clone, __pyx_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":617 */ + __pyx_10 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_map, 0); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; goto __pyx_L1;} + __pyx_11 = PyMethod_New(__pyx_10, 0, __pyx_1); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; goto __pyx_L1;} + Py_DECREF(__pyx_10); __pyx_10 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_map, __pyx_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":632 */ + __pyx_10 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; goto __pyx_L1;} + __pyx_k51 = __pyx_10; + __pyx_10 = 0; + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_sort, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_sort, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":648 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addChangeCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addChangeCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":657 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addAddCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addAddCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":666 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addRemoveCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addRemoveCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":674 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addViewChangeCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 674; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 674; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addViewChangeCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 674; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":683 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addResortCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addResortCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":691 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addViewUnlinkCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addViewUnlinkCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":696 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeChangeCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeChangeCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":700 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeAddCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeAddCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":704 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeRemoveCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeRemoveCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":708 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeViewChangeCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 708; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 708; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeViewChangeCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 708; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":712 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeResortCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeResortCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":716 */ + __pyx_11 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeViewUnlinkCallback, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 716; goto __pyx_L1;} + __pyx_12 = PyMethod_New(__pyx_11, 0, __pyx_1); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 716; goto __pyx_L1;} + Py_DECREF(__pyx_11); __pyx_11 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeViewUnlinkCallback, __pyx_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 716; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":723 */ + __pyx_11 = __Pyx_GetName(__pyx_m, __pyx_n_NoValue); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; goto __pyx_L1;} + __pyx_k52 = __pyx_11; + __pyx_11 = 0; + __pyx_12 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addBeforeCursor, 0); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; goto __pyx_L1;} + __pyx_13 = PyMethod_New(__pyx_12, 0, __pyx_1); if (!__pyx_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; goto __pyx_L1;} + Py_DECREF(__pyx_12); __pyx_12 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addBeforeCursor, __pyx_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; goto __pyx_L1;} + Py_DECREF(__pyx_13); __pyx_13 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":813 */ + __pyx_12 = __Pyx_GetName(__pyx_m, __pyx_n_NoValue); if (!__pyx_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; goto __pyx_L1;} + __pyx_k53 = __pyx_12; + __pyx_12 = 0; + __pyx_13 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_addAfterCursor, 0); if (!__pyx_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; goto __pyx_L1;} + __pyx_14 = PyMethod_New(__pyx_13, 0, __pyx_1); if (!__pyx_14) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; goto __pyx_L1;} + Py_DECREF(__pyx_13); __pyx_13 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_addAfterCursor, __pyx_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; goto __pyx_L1;} + Py_DECREF(__pyx_14); __pyx_14 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":827 */ + __pyx_13 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeObj, 0); if (!__pyx_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; goto __pyx_L1;} + __pyx_14 = PyMethod_New(__pyx_13, 0, __pyx_1); if (!__pyx_14) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; goto __pyx_L1;} + Py_DECREF(__pyx_13); __pyx_13 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeObj, __pyx_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; goto __pyx_L1;} + Py_DECREF(__pyx_14); __pyx_14 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":832 */ + __pyx_13 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase__removeIter, 0); if (!__pyx_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; goto __pyx_L1;} + __pyx_14 = PyMethod_New(__pyx_13, 0, __pyx_1); if (!__pyx_14) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; goto __pyx_L1;} + Py_DECREF(__pyx_13); __pyx_13 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n__removeIter, __pyx_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; goto __pyx_L1;} + Py_DECREF(__pyx_14); __pyx_14 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":850 */ + __pyx_13 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; goto __pyx_L1;} + __pyx_k54 = __pyx_13; + __pyx_13 = 0; + __pyx_14 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_changeObj, 0); if (!__pyx_14) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; goto __pyx_L1;} + __pyx_15 = PyMethod_New(__pyx_14, 0, __pyx_1); if (!__pyx_15) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; goto __pyx_L1;} + Py_DECREF(__pyx_14); __pyx_14 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_changeObj, __pyx_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; goto __pyx_L1;} + Py_DECREF(__pyx_15); __pyx_15 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":863 */ + __pyx_14 = __Pyx_GetName(__pyx_m, __pyx_n_NoValue); if (!__pyx_14) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 863; goto __pyx_L1;} + __pyx_k55 = __pyx_14; + __pyx_14 = 0; + __pyx_15 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_remove, 0); if (!__pyx_15) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 863; goto __pyx_L1;} + __pyx_16 = PyMethod_New(__pyx_15, 0, __pyx_1); if (!__pyx_16) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 863; goto __pyx_L1;} + Py_DECREF(__pyx_15); __pyx_15 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_remove, __pyx_16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 863; goto __pyx_L1;} + Py_DECREF(__pyx_16); __pyx_16 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":915 */ + Py_INCREF(Py_None); + __pyx_k56 = Py_None; + __pyx_15 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_15) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; goto __pyx_L1;} + __pyx_k57 = __pyx_15; + __pyx_15 = 0; + __pyx_16 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_change, 0); if (!__pyx_16) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; goto __pyx_L1;} + __pyx_17 = PyMethod_New(__pyx_16, 0, __pyx_1); if (!__pyx_17) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; goto __pyx_L1;} + Py_DECREF(__pyx_16); __pyx_16 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_change, __pyx_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; goto __pyx_L1;} + Py_DECREF(__pyx_17); __pyx_17 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1011 */ + __pyx_16 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_16) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; goto __pyx_L1;} + __pyx_k58 = __pyx_16; + __pyx_16 = 0; + __pyx_17 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_recomputeFilter, 0); if (!__pyx_17) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; goto __pyx_L1;} + __pyx_18 = PyMethod_New(__pyx_17, 0, __pyx_1); if (!__pyx_18) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; goto __pyx_L1;} + Py_DECREF(__pyx_17); __pyx_17 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_recomputeFilter, __pyx_18) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; goto __pyx_L1;} + Py_DECREF(__pyx_18); __pyx_18 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1038 */ + __pyx_17 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_17) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; goto __pyx_L1;} + __pyx_k59 = __pyx_17; + __pyx_17 = 0; + __pyx_18 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_recomputeIndex, 0); if (!__pyx_18) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; goto __pyx_L1;} + __pyx_19 = PyMethod_New(__pyx_18, 0, __pyx_1); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; goto __pyx_L1;} + Py_DECREF(__pyx_18); __pyx_18 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_recomputeIndex, __pyx_19) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1055 */ + __pyx_18 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase__recomputeSingleSort, 0); if (!__pyx_18) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; goto __pyx_L1;} + __pyx_19 = PyMethod_New(__pyx_18, 0, __pyx_1); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; goto __pyx_L1;} + Py_DECREF(__pyx_18); __pyx_18 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n__recomputeSingleSort, __pyx_19) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1121 */ + __pyx_18 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_18) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; goto __pyx_L1;} + __pyx_k60 = __pyx_18; + __pyx_18 = 0; + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_recomputeSort, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_recomputeSort, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1136 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_recomputeFilters, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_recomputeFilters, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1136; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1146 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getVal, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getVal, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1152 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_restoreFromObjectList, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_restoreFromObjectList, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1172 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getLastID, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getLastID, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1183 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_unlink, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_unlink, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1191 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_removeView, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_removeView, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1222 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getObjectByID, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getObjectByID, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1229 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_idExists, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_idExists, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1235 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getCurrentID, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getCurrentID, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1244 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getNextID, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getNextID, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1255 */ + __pyx_19 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getPrevID, 0); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; goto __pyx_L1;} + __pyx_20 = PyMethod_New(__pyx_19, 0, __pyx_1); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; goto __pyx_L1;} + Py_DECREF(__pyx_19); __pyx_19 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getPrevID, __pyx_20) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; goto __pyx_L1;} + Py_DECREF(__pyx_20); __pyx_20 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1264 */ + Py_INCREF(Py_None); + __pyx_k61 = Py_None; + __pyx_19 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_19) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1264; goto __pyx_L1;} + __pyx_k62 = __pyx_19; + __pyx_19 = 0; + __pyx_20 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_20) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1264; goto __pyx_L1;} + __pyx_k63 = __pyx_20; + __pyx_20 = 0; + __pyx_21 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_createIndex, 0); if (!__pyx_21) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1264; goto __pyx_L1;} + __pyx_22 = PyMethod_New(__pyx_21, 0, __pyx_1); if (!__pyx_22) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1264; goto __pyx_L1;} + Py_DECREF(__pyx_21); __pyx_21 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_createIndex, __pyx_22) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1264; goto __pyx_L1;} + Py_DECREF(__pyx_22); __pyx_22 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1274 */ + __pyx_21 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_filterWithIndex, 0); if (!__pyx_21) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; goto __pyx_L1;} + __pyx_22 = PyMethod_New(__pyx_21, 0, __pyx_1); if (!__pyx_22) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; goto __pyx_L1;} + Py_DECREF(__pyx_21); __pyx_21 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_filterWithIndex, __pyx_22) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; goto __pyx_L1;} + Py_DECREF(__pyx_22); __pyx_22 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1281 */ + __pyx_21 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_changeIndexValue, 0); if (!__pyx_21) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; goto __pyx_L1;} + __pyx_22 = PyMethod_New(__pyx_21, 0, __pyx_1); if (!__pyx_22) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; goto __pyx_L1;} + Py_DECREF(__pyx_21); __pyx_21 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_changeIndexValue, __pyx_22) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; goto __pyx_L1;} + Py_DECREF(__pyx_22); __pyx_22 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1303 */ + Py_INCREF(Py_None); + __pyx_k64 = Py_None; + __pyx_21 = PyCFunction_New(&__pyx_mdef_8database_15DynamicDatabase_getItemWithIndex, 0); if (!__pyx_21) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1303; goto __pyx_L1;} + __pyx_22 = PyMethod_New(__pyx_21, 0, __pyx_1); if (!__pyx_22) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1303; goto __pyx_L1;} + Py_DECREF(__pyx_21); __pyx_21 = 0; + if (PyObject_SetAttr(__pyx_1, __pyx_n_getItemWithIndex, __pyx_22) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1303; goto __pyx_L1;} + Py_DECREF(__pyx_22); __pyx_22 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_DynamicDatabase, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; goto __pyx_L1;} + Py_DECREF(__pyx_1); __pyx_1 = 0; + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1318 */ + __pyx_21 = __Pyx_GetName(__pyx_m, __pyx_n_DynamicDatabase); if (!__pyx_21) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; goto __pyx_L1;} + __pyx_22 = PyObject_CallObject(__pyx_21, 0); if (!__pyx_22) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; goto __pyx_L1;} + Py_DECREF(__pyx_21); __pyx_21 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_defaultDatabase, __pyx_22) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; goto __pyx_L1;} + Py_DECREF(__pyx_22); __pyx_22 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1321 */ + __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; goto __pyx_L1;} + __pyx_7 = PyTuple_New(0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; goto __pyx_L1;} + __pyx_21 = __Pyx_CreateClass(__pyx_7, __pyx_1, __pyx_n_DDBObject, "database"); if (!__pyx_21) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1323 */ + __pyx_22 = PyInt_FromLong(0); if (!__pyx_22) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_21, __pyx_n_lastID, __pyx_22) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; goto __pyx_L1;} + Py_DECREF(__pyx_22); __pyx_22 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1326 */ + __pyx_7 = __Pyx_GetName(__pyx_m, __pyx_n_defaultDatabase); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; goto __pyx_L1;} + if (PyObject_SetAttr(__pyx_21, __pyx_n_dd, __pyx_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1333 */ + Py_INCREF(Py_None); + __pyx_k66 = Py_None; + __pyx_22 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_22) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; goto __pyx_L1;} + __pyx_k67 = __pyx_22; + __pyx_22 = 0; + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_9DDBObject___init__, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; goto __pyx_L1;} + __pyx_23 = PyMethod_New(__pyx_7, 0, __pyx_21); if (!__pyx_23) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_21, __pyx_n___init__, __pyx_23) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; goto __pyx_L1;} + Py_DECREF(__pyx_23); __pyx_23 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1347 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_9DDBObject_getID, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; goto __pyx_L1;} + __pyx_23 = PyMethod_New(__pyx_7, 0, __pyx_21); if (!__pyx_23) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_21, __pyx_n_getID, __pyx_23) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; goto __pyx_L1;} + Py_DECREF(__pyx_23); __pyx_23 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1350 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_9DDBObject_idExists, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; goto __pyx_L1;} + __pyx_23 = PyMethod_New(__pyx_7, 0, __pyx_21); if (!__pyx_23) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_21, __pyx_n_idExists, __pyx_23) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; goto __pyx_L1;} + Py_DECREF(__pyx_23); __pyx_23 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1356 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_9DDBObject_remove, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; goto __pyx_L1;} + __pyx_23 = PyMethod_New(__pyx_7, 0, __pyx_21); if (!__pyx_23) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_21, __pyx_n_remove, __pyx_23) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; goto __pyx_L1;} + Py_DECREF(__pyx_23); __pyx_23 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1368 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_9DDBObject_confirmDBThread, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; goto __pyx_L1;} + __pyx_23 = PyMethod_New(__pyx_7, 0, __pyx_21); if (!__pyx_23) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_21, __pyx_n_confirmDBThread, __pyx_23) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; goto __pyx_L1;} + Py_DECREF(__pyx_23); __pyx_23 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1371 */ + __pyx_7 = PyCFunction_New(&__pyx_mdef_8database_9DDBObject_checkConstraints, 0); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; goto __pyx_L1;} + __pyx_23 = PyMethod_New(__pyx_7, 0, __pyx_21); if (!__pyx_23) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; goto __pyx_L1;} + Py_DECREF(__pyx_7); __pyx_7 = 0; + if (PyObject_SetAttr(__pyx_21, __pyx_n_checkConstraints, __pyx_23) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; goto __pyx_L1;} + Py_DECREF(__pyx_23); __pyx_23 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1380 */ + __pyx_7 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1380; goto __pyx_L1;} + __pyx_k68 = __pyx_7; + __pyx_7 = 0; + __pyx_23 = PyCFunction_New(&__pyx_mdef_8database_9DDBObject_signalChange, 0); if (!__pyx_23) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1380; goto __pyx_L1;} + __pyx_24 = PyMethod_New(__pyx_23, 0, __pyx_21); if (!__pyx_24) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1380; goto __pyx_L1;} + Py_DECREF(__pyx_23); __pyx_23 = 0; + if (PyObject_SetAttr(__pyx_21, __pyx_n_signalChange, __pyx_24) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1380; goto __pyx_L1;} + Py_DECREF(__pyx_24); __pyx_24 = 0; + if (PyObject_SetAttr(__pyx_m, __pyx_n_DDBObject, __pyx_21) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; goto __pyx_L1;} + Py_DECREF(__pyx_21); __pyx_21 = 0; + Py_DECREF(__pyx_1); __pyx_1 = 0; + + /* "/home/uwe/code/debian/miro/miro-1.2.3/portable/database.pyx":1395 */ + return; + __pyx_L1:; + Py_XDECREF(__pyx_1); + Py_XDECREF(__pyx_2); + Py_XDECREF(__pyx_3); + Py_XDECREF(__pyx_4); + Py_XDECREF(__pyx_5); + Py_XDECREF(__pyx_6); + Py_XDECREF(__pyx_7); + Py_XDECREF(__pyx_8); + Py_XDECREF(__pyx_9); + Py_XDECREF(__pyx_10); + Py_XDECREF(__pyx_11); + Py_XDECREF(__pyx_12); + Py_XDECREF(__pyx_13); + Py_XDECREF(__pyx_14); + Py_XDECREF(__pyx_15); + Py_XDECREF(__pyx_16); + Py_XDECREF(__pyx_17); + Py_XDECREF(__pyx_18); + Py_XDECREF(__pyx_19); + Py_XDECREF(__pyx_20); + Py_XDECREF(__pyx_21); + Py_XDECREF(__pyx_22); + Py_XDECREF(__pyx_23); + Py_XDECREF(__pyx_24); + __Pyx_AddTraceback("database"); +} + +static char *__pyx_filenames[] = { + "database.pyx", +}; + +/* Runtime support code */ + +static void __pyx_init_filenames(void) { + __pyx_f = __pyx_filenames; +} + +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) { + PyObject *__import__ = 0; + PyObject *empty_list = 0; + PyObject *module = 0; + PyObject *global_dict = 0; + PyObject *empty_dict = 0; + PyObject *list; + __import__ = PyObject_GetAttrString(__pyx_b, "__import__"); + if (!__import__) + goto bad; + if (from_list) + list = from_list; + else { + empty_list = PyList_New(0); + if (!empty_list) + goto bad; + list = empty_list; + } + global_dict = PyModule_GetDict(__pyx_m); + if (!global_dict) + goto bad; + empty_dict = PyDict_New(); + if (!empty_dict) + goto bad; + module = PyObject_CallFunction(__import__, "OOOO", + name, global_dict, empty_dict, list); +bad: + Py_XDECREF(empty_list); + Py_XDECREF(__import__); + Py_XDECREF(empty_dict); + return module; +} + +static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { + PyObject *result; + result = PyObject_GetAttr(dict, name); + if (!result) + PyErr_SetObject(PyExc_NameError, name); + return result; +} + +static PyObject *__Pyx_CreateClass( + PyObject *bases, PyObject *dict, PyObject *name, char *modname) +{ + PyObject *py_modname; + PyObject *result = 0; + + py_modname = PyString_FromString(modname); + if (!py_modname) + goto bad; + if (PyDict_SetItemString(dict, "__module__", py_modname) < 0) + goto bad; + result = PyClass_New(bases, dict, name); +bad: + Py_XDECREF(py_modname); + return result; +} + +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) { + Py_XINCREF(type); + Py_XINCREF(value); + Py_XINCREF(tb); + /* First, check the traceback argument, replacing None with NULL. */ + if (tb == Py_None) { + Py_DECREF(tb); + tb = 0; + } + else if (tb != NULL && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + /* Next, replace a missing value with None */ + if (value == NULL) { + value = Py_None; + Py_INCREF(value); + } + #if PY_VERSION_HEX < 0x02050000 + if (!PyClass_Check(type)) + #else + if (!PyType_Check(type)) + #endif + { + /* Raising an instance. The value should be a dummy. */ + if (value != Py_None) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + /* Normalize to raise , */ + Py_DECREF(value); + value = type; + #if PY_VERSION_HEX < 0x02050000 + if (PyInstance_Check(type)) { + type = (PyObject*) ((PyInstanceObject*)type)->in_class; + Py_INCREF(type); + } + else { + PyErr_SetString(PyExc_TypeError, + "raise: exception must be an old-style class or instance"); + goto raise_error; + } + #else + type = (PyObject*) type->ob_type; + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + #endif + } + PyErr_Restore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} + +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { + PyThreadState *tstate = PyThreadState_Get(); + PyErr_Fetch(type, value, tb); + PyErr_NormalizeException(type, value, tb); + if (PyErr_Occurred()) + goto bad; + Py_INCREF(*type); + Py_INCREF(*value); + Py_INCREF(*tb); + Py_XDECREF(tstate->exc_type); + Py_XDECREF(tstate->exc_value); + Py_XDECREF(tstate->exc_traceback); + tstate->exc_type = *type; + tstate->exc_value = *value; + tstate->exc_traceback = *tb; + return 0; +bad: + Py_XDECREF(*type); + Py_XDECREF(*value); + Py_XDECREF(*tb); + return -1; +} + +static void __Pyx_UnpackError(void) { + PyErr_SetString(PyExc_ValueError, "unpack sequence of wrong size"); +} + +static PyObject *__Pyx_UnpackItem(PyObject *iter) { + PyObject *item; + if (!(item = PyIter_Next(iter))) { + if (!PyErr_Occurred()) + __Pyx_UnpackError(); + } + return item; +} + +static int __Pyx_EndUnpack(PyObject *iter) { + PyObject *item; + if ((item = PyIter_Next(iter))) { + Py_DECREF(item); + __Pyx_UnpackError(); + return -1; + } + else if (!PyErr_Occurred()) + return 0; + else + return -1; +} + +static int __Pyx_InternStrings(__Pyx_InternTabEntry *t) { + while (t->p) { + *t->p = PyString_InternFromString(t->s); + if (!*t->p) + return -1; + ++t; + } + return 0; +} + +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + while (t->p) { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + if (!*t->p) + return -1; + ++t; + } + return 0; +} + +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" + +static void __Pyx_AddTraceback(char *funcname) { + PyObject *py_srcfile = 0; + PyObject *py_funcname = 0; + PyObject *py_globals = 0; + PyObject *empty_tuple = 0; + PyObject *empty_string = 0; + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + + py_srcfile = PyString_FromString(__pyx_filename); + if (!py_srcfile) goto bad; + py_funcname = PyString_FromString(funcname); + if (!py_funcname) goto bad; + py_globals = PyModule_GetDict(__pyx_m); + if (!py_globals) goto bad; + empty_tuple = PyTuple_New(0); + if (!empty_tuple) goto bad; + empty_string = PyString_FromString(""); + if (!empty_string) goto bad; + py_code = PyCode_New( + 0, /*int argcount,*/ + 0, /*int nlocals,*/ + 0, /*int stacksize,*/ + 0, /*int flags,*/ + empty_string, /*PyObject *code,*/ + empty_tuple, /*PyObject *consts,*/ + empty_tuple, /*PyObject *names,*/ + empty_tuple, /*PyObject *varnames,*/ + empty_tuple, /*PyObject *freevars,*/ + empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + __pyx_lineno, /*int firstlineno,*/ + empty_string /*PyObject *lnotab*/ + ); + if (!py_code) goto bad; + py_frame = PyFrame_New( + PyThreadState_Get(), /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + py_globals, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + py_frame->f_lineno = __pyx_lineno; + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_srcfile); + Py_XDECREF(py_funcname); + Py_XDECREF(empty_tuple); + Py_XDECREF(empty_string); + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} --- miro-1.2.3.orig/portable/dl_daemon/daemon.py +++ miro-1.2.3/portable/dl_daemon/daemon.py @@ -0,0 +1,254 @@ +from miro.dl_daemon import command +import os +import cPickle +import socket +import traceback +from time import sleep +from struct import pack, unpack, calcsize +import tempfile +from miro import config +from miro import prefs +from miro import eventloop +from miro import util +import logging +from miro.platform.utils import launchDownloadDaemon, killProcess +from miro import signals +from miro import trapcall +from miro.httpclient import ConnectionHandler + +SIZE_OF_INT = calcsize("I") + +class DaemonError(Exception): + """Exception while communicating to a daemon (either controller or + downloader). + """ + pass + +firstDaemonLaunch = '1' +def startDownloadDaemon(oldpid, port): + global firstDaemonLaunch + + daemonEnv = { + 'DEMOCRACY_DOWNLOADER_PORT' : str(port), + 'DEMOCRACY_DOWNLOADER_FIRST_LAUNCH' : firstDaemonLaunch, + } + launchDownloadDaemon(oldpid, daemonEnv) + firstDaemonLaunch = '0' + +def getDataFile(): + try: + uid = os.getuid() + except: + # This works for win32, where we don't have getuid() + uid = os.environ['USERNAME'] + + shortAppName = "Miro" + return os.path.join(tempfile.gettempdir(), ('%s_Download_Daemon_%s.txt' % (shortAppName,uid))) + +pidfile = None +def writePid(pid): + """Write out our pid. + + This method locks the pid file until the downloader exits. On windows + this is achieved by keeping the file open. On Unix/OS X, we use the + fcntl.lockf() function. + """ + + global pidfile + # NOTE: we want to open the file in a mode the standard open() doesn't + # support. We want to create the file if nessecary, but not truncate it + # if it's already around. We can't truncate it because on unix we haven't + # locked the file yet. + fd = os.open(getDataFile(), os.O_WRONLY | os.O_CREAT) + pidfile = os.fdopen(fd, 'w') + try: + import fcntl + except: + pass + else: + fcntl.lockf(pidfile, fcntl.LOCK_EX | fcntl.LOCK_NB) + pidfile.write("%s\n" % pid) + pidfile.flush() + # NOTE: There may be extra data after the line we write left around from + # prevous writes to the pid file. This is fine since readPid() only reads + # the 1st line. + # + # NOTE 2: we purposely don't close the file, to achieve locking on + # windows. + +def readPid(): + try: + f = open(getDataFile(), "r") + except IOError: + return None + try: + try: + return int(f.readline()) + except ValueError: + return None + finally: + f.close() + +lastDaemon = None + +class Daemon(ConnectionHandler): + def __init__(self): + ConnectionHandler.__init__(self) + global lastDaemon + lastDaemon = self + self.waitingCommands = {} + self.returnValues = {} + self.size = 0 + self.states['ready'] = self.onSize + self.states['command'] = self.onCommand + self.queuedCommands = [] + self.shutdown = False + self.stream.disableReadTimeout = True + # disable read timeouts for the downloader daemon communication. Our + # normal state is to wait for long periods of time for without seeing + # any data. + + def onError(self, error): + """Call this when an error occurs. It forces the + daemon to close its connection. + """ + logging.warning ("socket error in daemon, closing my socket") + self.closeConnection() + raise error + + def onConnection(self, socket): + self.changeState('ready') + for (comm, callback) in self.queuedCommands: + self.send(comm, callback) + self.queuedCommands = [] + + def onSize(self): + if self.buffer.length >= SIZE_OF_INT: + (self.size,) = unpack("I", self.buffer.read(SIZE_OF_INT)) + self.changeState('command') + + def onCommand(self): + if self.buffer.length >= self.size: + try: + comm = cPickle.loads(self.buffer.read(self.size)) + except: + logging.exception ("WARNING: error unpickling command.") + else: + self.processCommand(comm) + self.changeState('ready') + + def processCommand(self, comm): + trapcall.timeTrapCall("Running: %s" % (comm,), self.runCommand, comm) + + def runCommand(self, comm): + comm.setDaemon(self) + comm.action() + + def send(self, comm, callback = None): + if self.state == 'initializing': + self.queuedCommands.append((comm, callback)) + else: + raw = cPickle.dumps(comm, cPickle.HIGHEST_PROTOCOL) + self.sendData(pack("I",len(raw)) + raw, callback) + +class DownloaderDaemon(Daemon): + def __init__(self, port): + # before anything else, write out our PID + writePid(os.getpid()) + # connect to the controller and start our listen loop + Daemon.__init__(self) + self.openConnection('127.0.0.1', port, self.onConnection, self.onError) + signals.system.connect('error', self.handleError) + + def handleError(self, obj, report): + command.DownloaderErrorCommand(self, report).send() + + def handleClose(self, type): + if self.shutdown: + return + self.shutdown = True + eventloop.quit() + logging.warning ("downloader: connection closed -- quitting") + from miro.dl_daemon import download + download.shutDown() + import threading + for thread in threading.enumerate(): + if thread != threading.currentThread() and not thread.isDaemon(): + thread.join() + +class ControllerDaemon(Daemon): + def __init__(self): + Daemon.__init__(self) + self.stream.acceptConnection('127.0.0.1', 0, self.onConnection, self.onError) + self.port = self.stream.port + startDownloadDaemon(readPid(), self.port) + data = {} + remoteConfigItems = [prefs.LIMIT_UPSTREAM, + prefs.UPSTREAM_LIMIT_IN_KBS, + prefs.LIMIT_DOWNSTREAM_BT, + prefs.DOWNSTREAM_BT_LIMIT_IN_KBS, + prefs.BT_MIN_PORT, + prefs.BT_MAX_PORT, + prefs.USE_UPNP, + prefs.BT_ENC_REQ, + prefs.MOVIES_DIRECTORY, + prefs.PRESERVE_DISK_SPACE, + prefs.PRESERVE_X_GB_FREE, + prefs.SUPPORT_DIRECTORY, + prefs.SHORT_APP_NAME, + prefs.LONG_APP_NAME, + prefs.APP_PLATFORM, + prefs.APP_VERSION, + prefs.APP_SERIAL, + prefs.APP_REVISION, + prefs.PUBLISHER, + prefs.PROJECT_URL, + prefs.DOWNLOADER_LOG_PATHNAME, + prefs.LOG_PATHNAME, + prefs.GETTEXT_PATHNAME, + prefs.LIMIT_UPLOAD_RATIO, + prefs.UPLOAD_RATIO + ] + + for desc in remoteConfigItems: + data[desc.key] = config.get(desc) + c = command.InitialConfigCommand(self, data) + c.send() + config.addChangeCallback (self.updateConfig) + + def updateConfig (self, key, value): + if not self.shutdown: + c = command.UpdateConfigCommand (self, key, value) + c.send() + + def handleClose(self, type): + if not self.shutdown: + logging.warning ("Downloader Daemon died") + # FIXME: replace with code to recover here, but for now, + # stop sending. + self.shutdown = True + config.removeChangeCallback (self.updateConfig) + + def shutdown_timeout_cb(self): + logging.warning ("killing download daemon") + killProcess(readPid()) + self.shutdownResponse() + + def shutdownResponse(self): + if self.shutdown_callback: + self.shutdown_callback() + self.shutdown_timeout_dc.cancel() + + def shutdownDownloaderDaemon(self, timeout=5, callback = None): + """Send the downloader daemon the shutdown command. If it doesn't + reply before timeout expires, kill it. (The reply is not sent until + the downloader daemon has one remaining thread and that thread will + immediately exit). + """ + self.shutdown_callback = callback + c = command.ShutDownCommand(self) + c.send() + self.shutdown = True + config.removeChangeCallback (self.updateConfig) + self.shutdown_timeout_dc = eventloop.addTimeout(timeout, self.shutdown_timeout_cb, "Waiting for dl_daemon shutdown") + --- miro-1.2.3.orig/debian/menu +++ miro-1.2.3/debian/menu @@ -0,0 +1,3 @@ +?package(miro):needs="X11" section="Applications/Network/Web News" \ + title="Miro" command="/usr/bin/miro" \ + icon="/usr/share/pixmaps/miro.xpm" --- miro-1.2.3.orig/debian/compat +++ miro-1.2.3/debian/compat @@ -0,0 +1 @@ +5 --- miro-1.2.3.orig/debian/control +++ miro-1.2.3/debian/control @@ -0,0 +1,84 @@ +Source: miro +Section: net +Priority: extra +Maintainer: Uwe Hermann +Build-Depends: cdbs (>= 0.4.43), + debhelper (>= 5.0.37.2), + python2.5 (>= 2.5.2-6), + python-support (>= 0.6), + python-pyrex, + libboost-python-dev (>= 1.34.1-2), + libboost-filesystem-dev, + libboost-date-time-dev, + libboost-thread-dev, + libboost-serialization-dev, + python-gtk2-dev, + python-gnome2-extras-dev (>= 2.19.1), + xulrunner-dev, + libxine-dev (>= 1.1.12), + chrpath, + pkg-config, + libxv-dev, + libssl-dev, + libffi-dev, +Standards-Version: 3.8.0 +Homepage: http://www.getmiro.com + +Package: miro +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + ${python:Depends}, + python-dbus, + python-gtk2, + python-gnome2, + python-gtkmozembed (>= 2.19.1), + python-glade2, + python-pysqlite2, + python-gst0.10, + imagemagick, + libxine1-x (>= 1.1.12), + libxine1-plugins (>= 1.1.12), + xulrunner-1.9, + miro-data (>= 1.2.3-1) +Suggests: ttf-dejavu, python-psyco [i386 hurd-i386 netbsd-i386 kfreebsd-i386] +Description: GTK+ based RSS video aggregator + Miro (previously known as Democracy Player) is a platform for Internet + television and video. + It allows you to download and watch videos from RSS feeds (including + podcasts, video blogs, and BitTorrent feeds). + +Package: miro-data +Architecture: all +Description: GTK+ based RSS video aggregator data files + Miro (previously known as Democracy Player) is a platform for Internet + television and video. + It allows you to download and watch videos from RSS feeds (including + podcasts, video blogs, and BitTorrent feeds). + . + This package contains the data files for Miro. + +Package: democracyplayer +Architecture: all +Depends: miro +Description: GTK+ based RSS video aggregator + Miro (previously known as Democracy Player) is a platform for Internet + television and video. + It allows you to download and watch videos from RSS feeds (including + podcasts, video blogs, and BitTorrent feeds). + . + This package is a transitional package to ease upgrades from the old + democracyplayer packages. It can be safely removed. + +Package: democracyplayer-data +Architecture: all +Depends: miro-data +Description: GTK+ based RSS video aggregator data files + Miro (previously known as Democracy Player) is a platform for Internet + television and video. + It allows you to download and watch videos from RSS feeds (including + podcasts, video blogs, and BitTorrent feeds). + . + This package is a transitional package to ease upgrades from the old + democracyplayer packages. It can be safely removed. + --- miro-1.2.3.orig/debian/miro.docs +++ miro-1.2.3/debian/miro.docs @@ -0,0 +1,2 @@ +README +CREDITS --- miro-1.2.3.orig/debian/changelog +++ miro-1.2.3/debian/changelog @@ -0,0 +1,360 @@ +miro (1.2.3-2) unstable; urgency=low + + * Acknowledge NMU, thanks Mike Hommey (Closes: #480808). + * Standards-Version: 3.8.0 (no changes required). + * Depend on python-gtkmozembed instead of python-gnome2-extras as we only + use the gtkmozembed module (Closes: #485295). + * Close bugs which are no longer relevant: + + Miro does not really depends on libxine 1.1.12 (Closes: #480867). + + Miro doesn't work since recent upgrade of python (Closes: #481574). + This has been likely fixed in Python >= 2.5.2-6, so bump dependencies. + * Add explicit build-dependency on pkg-config. + + -- Uwe Hermann Mon, 30 Jun 2008 12:02:56 +0200 + +miro (1.2.3-1.1) unstable; urgency=low + + * Non-maintainer upload. + * debian/control: + + Build-depend on xulrunner-dev instead of libxul-dev, and newer releases + of python-gnome2-extras-dev that use xulrunner-1.9. + + Depend on xulrunner-1.9 instead of xulrunner, and newer releases of + python-gnome2-extras. (Closes: #480808) + + -- Mike Hommey Mon, 09 Jun 2008 19:32:57 +0200 + +miro (1.2.3-1) unstable; urgency=low + + * New upstream release. + * debian/rules: + + Simplify the file a bit, drop obsolete stuff. + + Update 'clean' rule to drop useless stuff (to make the debdiff smaller). + * debian/README.Debian: + + Add note about the iHeartMiro Firefox plugin. + + Document how to use 'esddsp' with Miro. + * debian/copyright: Update. + + Drop platform/gtk-x11/coverage.py section, file has been removed. + * debian/control: + + Drop 'Recommends: libxine1-ffmpeg', we depend on it via libxine1-plugins. + + Move from 'optional' to 'extra' as we depend on libxine1-plugins + which is also 'extra'. + + Make python-dbus a dependency, no build-dependency. + + Force xulrunner to be >= 1.8.1.14 to get the latest security fixes. + * Not reproducible in the current release, thus closing: + + "esddsp democracyplayer" causes "Bus error" (Closes: #413681). + I verified that this works fine now, addeds docs to README.Debian. + + Crash playing an audio podcast (Closes: #462016). + + -- Uwe Hermann Sat, 26 Apr 2008 21:14:56 +0200 + +miro (1.2.1-1) unstable; urgency=low + + * New upstream release (Closes: #473139). + + There's a default autodownload setting option now (Closes: #439076). + + Torrents have a download speed limit options now (Closes: #387716). + + debian/patches/10_movies_dir.patch: Update. + + debian/patches/20_no_autoupdate.patch: Update. + + debian/patches/30_de_po_typo.patch: Drop, merged upstream. + + debian/patches/50_xine_extractor_path.patch: Update. + * Switch to building for Python 2.5, as Python 2.4 has been removed + from the archive (Closes: #476159, #476486, #445249). + * Build-depend on libffi-dev which is an extra package now (Closes: #472158). + * debian/patches/80_gcc-4.3_headers.patch: Add file, which fixes + compile errors with gcc 4.3 (Closes: #466757). Thanks + Arthur Loiret for the patch! + * debian/menu: Add xpm icon for displaying in the Debian menu. + * Closing a bunch of bugs which I cannot reproduce in the latest release: + + miro: DbusException when starting (Closes: #466011). + + miro: Segfault when switching to Library during video + playback (Closes: #472327). Please reopen if you can reproduce this + multiple times in a row with the latest version. + + Insufficient version dependency for python-gtk2 (Closes: #443101). + + miro: UI freezes on keyboard input (Closes: #459039). + * Add python-gst0.10 dependency as Miro now supports switching the + renderer from xine to gstreamer via the Options menu (Closes: #466337). + * debian/patches/90_disable_iheartmiro_nag.patch: Added. This disables + the annoying nag screen to download and install the iHeartMiro Firefox + plugin. For a manual installation see http://www.iheartmiro.org/. + * Force xine to be >= 1.1.12 to get all the latest security fixes. + * Force xulrunner to be >= 1.8.1.13 to get all the latest security fixes. + * Add dependency on libxine1-plugins (thus also on libxine1-ffmpeg), as + we really want to be able to play all formats. + * Install xine_extractor into /usr/lib/miro, not /usr/libexec. + + -- Uwe Hermann Fri, 18 Apr 2008 16:56:11 +0200 + +miro (1.1.2-3) unstable; urgency=low + + * Provide "real" transitional packages for democracyplayer -> miro upgrades. + * Enforce dependency on xulrunner >= 1.8.1.12-2 so we get all the recent + security fixes in xulrunner, plus GNU/Hurd and GNU/kFreeBSD support. + * Closing some more bugs I cannot reproduce in this version, in order to + allow miro to transition to testing. If you still see the same problems + in the latest release, please reopen as non-RC bugs. Having a version in + testing which works for most people is better than no version at all. + + miro crashes when done playing a video (Closes: #464862). + + miro crashes on playing a video or audio podcast (Closes: #462706). + * Finish transition of debian/copyright to machine-readable format. + * debian/patches/70_rdfa_silence_lintian.patch: Silence lintian. + + -- Uwe Hermann Fri, 07 Mar 2008 23:45:20 +0100 + +miro (1.1.2-2) unstable; urgency=low + + * Add missing build-dependencies on ssl-dev, libboost-filesystem-dev, + libboost-thread-dev, libboost-serialization-dev, and + libboost-date-time-dev (Closes: #465670). + * Add missing dependency: imagemagick. + * Closing some more bugs I cannot reproduce in this version. + Please reopen if the problem persists. + + Doesn't start anymore, unless some KDE app is running (Closes: #399097). + + Solarization effect when playing videos the second time. This looks + like a driver or xine bug, not a Miro bug (Closes: #375911). + + Eats up all CPU time (Closes: #453647). + * debian/copyright: + + Start to convert the file to the machine-readable format described + at http://wiki.debian.org/Proposals/CopyrightFormat (not yet finished). + Based on the work done in the Ubuntu package (thanks!). + + Further updates, add missing items. + + -- Uwe Hermann Fri, 15 Feb 2008 02:39:06 +0100 + +miro (1.1.2-1) unstable; urgency=low + + * New upstream release (Closes: #460442). + * debian/copyright: Update various entries. + + Miro now has a special exception which allows linking against OpenSSL. + + portable/BitTorrent/ is gone, portable/libtorrent/ is here. + * Close some bugs which I cannot reproduce in the latest Miro release. + Please reopen if the problem persists. + + Democracyplayer does not run at all (Closes: #441894). + + Crashes on start gecko/bug-buddy pthread_join() (Closes: #447090). + + Can't close: gives various error messages (Closes: #439398). + * Recommend 'ttf-dejavu' instead of 'ttf-bitstream-vera' which is going + to be removed (Closes: #461253, 461287). + * Channel guide links are no longer opened in a browser (Closes: #442078). + + -- Uwe Hermann Tue, 12 Feb 2008 01:15:49 +0100 + +miro (1.0-2) unstable; urgency=low + + * Fix problem with multiple "crash report" windows popping up without + a real crash happening (Closes: #451980, #452708, #454603, #452486). + * Honor --xine-driver option (Closes: #453406). + * debian/control: Add Homepage field. + * Standards-Version: 3.7.3 (no changes required). + * xine-lib transition: Add explicit dependency on libxine1-x. + * Small fixes to reduce the diff to the Ubuntu package: + + Use $(DEB_PYTHON_COMPILE_VERSION) instead or hard-coding the + version number (but still use 2.4 in Debian for now). + + debian/control: Split long lines for better readability. + + Add watch file. + + -- Uwe Hermann Thu, 20 Dec 2007 13:15:20 +0100 + +miro (1.0-1) unstable; urgency=low + + * New upstream release (Closes: #449131, #451207). + + Fixed malformed miro.xml file (Closes: #445871, #443510). + + Drop several patches which were applied upstream. + * Add missing libxv-dev build-dependency (Closes: #442832, #443006, #443045). + * Miro shipped with a menu file since the beginning (Closes: #443211). + It's currently in the 'Applications/Network/Web News' category. + * Fix small typo in German translation (Closes: #451333). + * Cannot reproduce the following bugs with this release. Please + reopen if you still experience problems: + + Miro crashes on play (Closes: #443266). + + Used to work; now segfaults on startup (Closes: #444484). + Please try removing the ~/.miro directory if the problem persists. + + Segfault on startup (quicktime related?) (Closes: #444051). + + Cannot install Miro (Closes: #443045). Unlikely to be a real bug, + probably stems from mixing packages from stable/unstable. + * New 'Recommends: libxine1-ffmpeg'. + + -- Uwe Hermann Fri, 16 Nov 2007 02:11:55 +0100 + +miro (0.9.9.1-1) unstable; urgency=low + + * New upstream release (Closes: #433752). + + Democracy Player was renamed to Miro upstream, so we now + use Provides/Conflicts/Replaces to transition existing installs. + + Update the package description (and improve it a bit). + + Now supports proxy settings (Closes: #426992). Miro uses the + default GNOME proxy, which you can set/enable using gconf-editor. + * Update debian/copyright. + * Several improvements inspired by the Ubuntu version of the package: + + Remove unneeded RPATH from MozillaBrowser.so (using chrpath). + + debian/menu: Move package into 'Applications/Network/Web News'. + + Drop shebang from feedparser.py, not needed (and silences lintian). + + Only suggest python-psyco on [i386 hurd-i386 netbsd-i386 kfreebsd-i386]. + * miro.desktop improvements: + + Drop 'Encoding=UTF-8', no longer necessary (lintian). + + Change categories to 'AudioVideo;FileTransfer;News;P2P;TV;Player;'. + * Cannot reproduce the following bugs using this release of Miro. + Please feel free to reopen if it's still a problem. + + "Crashes on stop playback" (Closes: #399098). + According to http://bugzilla.pculture.org/show_bug.cgi?id=5197 + this is indeed fixed in Miro 0.9.9.1. + + "Still crashes". Cannot reproduce with Miro (Closes: #438946). + + "Crashes on end of video podcast" (Closes: 419207). + Doesn't seem to happen with latest Miro anymore (I did see it before). + + Installation error. Can't reproduce, no further infos from submitter, + so I'm closing this. (Closes: #387248). + + "Crash after pressing play". Cannot reproduce (Closes: #402264). + + "Position slider doesn't respond to mouse click-and-drag sometimes". + Cannot reproduce with latest Miro (Closes: #405248). + + "Freezes On Start". Cannot reproduce with last Miro (Closes: #408032). + Also, running two instances seems to work fine for me, but it's + not really useful or recommended. + + Problem with xine plugin. Doesn't look like a Democracy Player / Miro + issue, but please reopen if it still happens (Closes: #420144). + + -- Uwe Hermann Tue, 11 Sep 2007 21:14:06 +0200 + +democracyplayer (0.9.6-2) unstable; urgency=low + + * The "Night of the Living Dead" release. + * Fix critical python/dbus errors (Closes: #429881, #418722). + Thanks Krzysztof Sobiecki for the patch! + * Build-depend on libboost-python-dev (>= 1.34.1-2), as that version is + now built with Python 2.4 again, which is currently needed to make + Democracy Player work at all (Closes: #430659, #429407). + Note that we _have_ to build democracyplayer with Python 2.4 at this + point in time, as several of its dependencies are not yet available + as Python 2.5 versions in Debian. + * Build-depend on libxine-dev (>= 1.1.6-2), as starting with that version + xine plays sound/music in *.flv flash files (Closes: #396898, #387726). + * Drop 30_libboost_python.patch, no longer needed. + * Add new required dependency: python-pysqlite2. + + -- Uwe Hermann Fri, 17 Aug 2007 15:53:17 +0200 + +democracyplayer (0.9.6-1) unstable; urgency=low + + * New upstream release. + + This fixes a critical dbus-python related bug (Closes: #422899). + * Link against libboost-python1.34.0 now, as the old + libboost-python1.33.1 is lo longer in the archive (Closes: #428124). + * Fix a libboost-related FTBFS (Closes: #427912). + * Fix FTBFS: /bin/sh: python2.5: command not found (Closes: #423754). + + -- Uwe Hermann Tue, 05 Jun 2007 12:57:36 +0200 + +democracyplayer (0.9.5.3-1) unstable; urgency=low + + * New upstream release. + + Bigger channel descriptions if you click on a channel (Closes: #381454). + + Cannot reproduce search error in this release (Closes: #400555). + + Preferences are saved correctly now (Closes: #404188). + * Acknowledge NMU, thanks Margarita Manterola + (Closes: #401569). Upstream integrated the translation updates and fixes + AFAIK, but if not please re-open (but please submit further fixes + upstream: https://launchpad.net/democracy/trunk/+pots/democracyplayer). + * Re-introduce the changelog entry from 0.9.1-1 which somehow got lost + (don't ask me how _that_ happened!). See #402262. + Thanks Margarita Manterola . + * Build-Depends: python-support (>= 0.6), as we use 'Python-Depends' now. + * Build-Depends: python-dbus (instead of python2.4-dbus). + * Suggests: python-psyco (improves speed a bit). + * Simplified packaging a bit. + + -- Uwe Hermann Sun, 15 Apr 2007 16:58:06 +0200 + +democracyplayer (0.9.2.1-2.1) unstable; urgency=low + + * Non-maintainer upload with the agreement of the Maintainer. + * Really fix incorrect plurar form for Romanian (Closes: #401569) + + -- Margarita Manterola Wed, 3 Jan 2007 13:29:17 -0300 + +democracyplayer (0.9.2.1-2) unstable; urgency=low + + * Fix incorrect versioned dependency on democracyplayer-data by + depending on >= 0.9.2.1-1 instead of >= 0.9.1-1 (Closes: #402263). + Thanks Fabio Pugliese Ornellas and + Margarita Manterola . + * Fix incorrect plural form for Romanian (Closes: #401569). + Thanks Eddy Petrișor . + * Correct typos and also update both, the Brazilian Portuguese + and the Spanish translations (Closes: #402262). + Thanks Margarita Manterola . + + -- Uwe Hermann Sat, 9 Dec 2006 23:55:19 +0100 + +democracyplayer (0.9.2.1-1) unstable; urgency=low + + * New upstream release. + * According to upstream this release should now consume a lot less + memory (Closes: 396869). + + -- Uwe Hermann Tue, 28 Nov 2006 12:31:11 +0100 + +democracyplayer (0.9.1-1) unstable; urgency=low + + * New upstream release. + * Updated debian/copyright to reflect recent upstream changes. + + -- Uwe Hermann Thu, 19 Oct 2006 20:46:30 +0200 + +democracyplayer (0.9.0.2-1) unstable; urgency=low + + * New upstream release. + + -- Uwe Hermann Fri, 22 Sep 2006 19:36:29 +0200 + +democracyplayer (0.9.0-1) unstable; urgency=low + + * New upstream release. + * Added dependency on python2.4-dbus to prevent trouble when someone + tries to start multiple instances of democracyplayer. + * Changed python2.4-pyrex build-dependency to python-pyrex. + + -- Uwe Hermann Mon, 11 Sep 2006 19:45:23 +0200 + +democracyplayer (0.8.5-3) unstable; urgency=low + + * Fix broken XML file (Closes: #383854, #383294). + * Added missing build-dependency on python-support (>= 0.3). + + -- Uwe Hermann Fri, 25 Aug 2006 05:53:34 +0200 + +democracyplayer (0.8.5-2) unstable; urgency=low + + * Switch to debhelper v5 (+ cdbs). + * Python transition (Closes: #380769). + + Changed lots of depends from python2.4-* to python-* (see #376979). + + Versioned build-deps: cdbs (>= 0.4.43), debhelper (>= 5.0.37.2) + + Use pysupport. + * Add proper license to manpage (+ cosmetic fixes). + + -- Uwe Hermann Wed, 2 Aug 2006 00:41:42 +0200 + +democracyplayer (0.8.5-1) unstable; urgency=low + + * New upstream release. + + Fixes GTK+/mozembed breakage (Closes: #376979). + + Move package to xulrunner: Replace mozilla-dev build dependency + with xulrunner-dev, and replace mozilla-browser and mozilla-psm + dependencies with xulrunner (Closes: #376360). + * Suggest: ttf-bitstream-vera (for nicer looking fonts). + * Do not install /usr/share/democracy/resources/testdata and + /usr/share/democracy/resources/templates/unittest. They're not needed + in the installed package, so we can save some space here. + * Updated debian/copyright (cosmetic changes). + + -- Uwe Hermann Fri, 21 Jul 2006 12:50:51 +0200 + +democracyplayer (0.8.4.1-1) unstable; urgency=low + + * New upstream release. + + Remove patch which applies 'gzip -9' to the manpage, it's now + included upstream. + + -- Uwe Hermann Tue, 27 Jun 2006 11:50:10 +0200 + +democracyplayer (0.8.3+0.8.4rc0-1) unstable; urgency=low + + * Initial release (Closes: #338808, #365303). + + -- Uwe Hermann Mon, 12 Jun 2006 17:53:30 +0200 + --- miro-1.2.3.orig/debian/README.Debian +++ miro-1.2.3/debian/README.Debian @@ -0,0 +1,34 @@ +Miro for Debian +--------------- + + * The default Miro movies directory in Debian is ~/.miro/Movies + instead of ~/Movies/Miro. + + * Also, the non-video directory in Debian is ~/.miro/Nonvideo + instead of ~/Desktop. + + * The autoupdate feature, which checks for new versions of Miro, + has been disabled in the Debian package. + + * The iHeartMiro nag screen is disabled in the Debian package. + You can install iHeartMiro Firefox plugin manually from the + http://www.iheartmiro.org/ website if you want to use it. + + * You can install 'python-psyco' which will likely speed up Miro a bit. + + * If you want to redirect the sound output (but not video) to another + host via 'esddsp' here's what you have to do: + + - Edit ~/.xine/config to say 'audio.driver:esd' on your localhost. + + - Start an esd server on another (remote) host, e.g. + using 'esd -public -tcp'. Make sure you allow connections to your + esd server (check firewall settings for port 16001 and your + /etc/hosts.allow and /etc/hosts.deny). + + - Now run 'esddsp -s xxx.xxx.xxx.xxx:16001 miro' on localhost, where + xxx.xxx.xxx.xxx is the IP address of the host where esd runs. + The video will now be displayed on localhost, audio will be redirected + to the remote host's esd. + + -- Uwe Hermann , Sat, 26 Apr 2008 21:50:56 +0200 --- miro-1.2.3.orig/debian/rules +++ miro-1.2.3/debian/rules @@ -0,0 +1,53 @@ +#!/usr/bin/make -f + +DEB_PYTHON_SYSTEM = pysupport +DEB_PYTHON_COMPILE_VERSION = $(shell pyversions -vd 2>/dev/null) + +# Must be included before python-distutils.mk to use dh_python/dh_pysupport. +include /usr/share/cdbs/1/rules/debhelper.mk + +# Use Python distutils to install the package. +include /usr/share/cdbs/1/class/python-distutils.mk + +# Must come after python-distutils.mk. +DEB_PYTHON_SETUP_CMD := platform/gtk-x11/setup.py + +include /usr/share/cdbs/1/rules/utils.mk +include /usr/share/cdbs/1/rules/simple-patchsys.mk + +# Install everything into debian/tmp, as we have a multi-binary package. +DEB_DH_INSTALL_SOURCEDIR := debian/tmp + +binary-post-install/miro:: + @# Remove unneeded files from the deb. + rm -rf debian/miro/usr/share/python-support/miro/miro/frontends/html/compiled_templates/unittest + rm -rf debian/miro/usr/share/python-support/miro/miro/test + rm -rf debian/miro/usr/share/python-support/miro/miro/coverage.py + rm -rf debian/miro/usr/share/python-support/miro/miro/timetemplates.py + @# Strip the RPATH. Upstream ships a wrapper that makes it unnecessary. + chrpath -d debian/miro/usr/lib/python-support/miro/python$(DEB_PYTHON_COMPILE_VERSION)/miro/platform/MozillaBrowser.so + @# Put xine_extractor into /usr/lib/miro, not /usr/libexec. + @mkdir -p debian/miro/usr/lib/miro + cp debian/tmp/usr/libexec/xine_extractor debian/miro/usr/lib/miro + @# Copy xpm file (for the Debian menu icon). + cp debian/miro.xpm debian/miro/usr/share/pixmaps + @# Add a miro.real(1) manpage (just a copy of miro(1)). + cp debian/miro/usr/share/man/man1/miro.1.gz \ + debian/miro/usr/share/man/man1/miro.real.1.gz + +binary-post-install/miro-data:: + @# Remove unneeded files from the miro-data deb. + rm -rf debian/miro-data/usr/share/miro/resources/testdata + rm -rf debian/miro-data/usr/share/miro/resources/templates/unittest + +clean:: + @# TODO: This should probably be done in the upstream source. + rm -rf portable/frontends/html/compiled_templates/* + rm -f platform/gtk-x11/platform/frontends/html/MozillaBrowser.[ch] + rm -f platform/gtk-x11/platform/frontends/html/xlibhelper.c + rm -f platform/gtk-x11/miro.1.gz + rm -f platform/gtk-x11/xine/xine_extractor + +# For /usr/share/cdbs/1/rules/utils.mk sanity check. +common-binary-post-install-arch:: list-missing + --- miro-1.2.3.orig/debian/copyright +++ miro-1.2.3/debian/copyright @@ -0,0 +1,397 @@ +This package was debianized by Uwe Hermann on +Mon, 12 Jun 2006 13:34:47 +0200 + +The current Debian maintainer is Uwe Hermann . + +It was downloaded from: + + http://www.getmiro.com + +Upstream Authors: + + Nick Nassar + Geoff Schmidt + Luc Heinrich + Ben Dean-Kawamura + Chris Lahey + Paul Swartz + Will Guaraldi + Nick Reville + Matt Bret + +------------------------------------------------------------------------------- + +Files: * +Copyright: © 2005-2008 Participatory Culture Foundation +License: GPL-2+ | other + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the OpenSSL + library. + + You must obey the GNU General Public License in all respects for all of + the code used other than OpenSSL. If you modify file(s) with this + exception, you may extend this exception to your version of the file(s), + but you are not obligated to do so. If you do not wish to do so, delete + this exception statement from your version. If you delete this exception + statement from all source files in the program, then also delete it here. + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +------------------------------------------------------------------------------- + +Files: portable/feedparser.py +Copyright: © 2002-2006 Mark Pilgrim +License: other + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- + +Files: notes/vlc-packages.mak +Copyright: © 2003, 2004 VideoLAN +License: GPL-2+ + +------------------------------------------------------------------------------- + +Files: platform/windows-xul/tools/altgraph/* +Copyright: © 2004 Istvan Albert +License: other + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without + limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to + whom the Software is furnished to do so. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +Files: platform/windows-xul/tools/modulegraph/* +Copyright: © 2004 Bob Ippolito +License: other + This is the MIT license. This software may also be distributed under + the same terms as Python (the PSF license). + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +(see http://svn.red-bean.com/bob/py2app/trunk/LICENSE.txt) + +------------------------------------------------------------------------------- + +Files: portable/rdfa.py +Copyright: © 2006 Elias Torres +License: GPL-2 + +------------------------------------------------------------------------------- + +Files: portable/setup_portable.py +Copyright: © Zach Tibbitts ('zachtib') +License: GPL-2+ | other + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the OpenSSL + library. + You must obey the GNU General Public License in all respects for all of + the code used other than OpenSSL. If you modify file(s) with this + exception, you may extend this exception to your version of the file(s), + but you are not obligated to do so. If you do not wish to do so, delete + this exception statement from your version. If you delete this exception + statement from all source files in the program, then also delete it here. + +------------------------------------------------------------------------------- + +Files: portable/libtorrent/* +Copyright: © 2003 - 2007 Arvid Norberg +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: portable/libtorrent/bindings/python/src/* +Copyright: © 2006 - 2007 Daniel Wallin +License: other + Boost Software License - Version 1.0 - August 17th, 2003 + + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +Files: */python/src/extensions.cpp, + */python/src/session.cpp +Copyright: © 2006 - 2007 Daniel Wallin, + © 2006 - 2007 Arvid Norberg +License: other + Boost Software License - Version 1.0 - August 17th, 2003 + + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +Files: */include/libtorrent/alert.hpp, + */include/libtorrent/random_sample.hpp, + */include/libtorrent/variant_stream.hpp, + */include/libtorrent/invariant_check.hpp, + */include/libtorrent/kademlia/refresh.hpp, + */include/libtorrent/kademlia/find_data.hpp, + */include/libtorrent/kademlia/closest_nodes.hpp, + */include/libtorrent/kademlia/traversal_algorithm.hpp, + */include/libtorrent/kademlia/logging.hpp, + */libtorrent/src/alert.cpp, + */libtorrent/src/storage.cpp, + */libtorrent/src/kademlia/refresh.cpp, + */libtorrent/src/kademlia/find_data.hpp, + */libtorrent/src/kademlia/closest_nodes.hpp, + */libtorrent/src/kademlia/traversal_algorithm.hpp +Copyright: © 2003 - 2007 Daniel Wallin, + © 2003 - 2007 Arvid Norberg +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: */include/libtorrent/allocate_resources.hpp, + */include/libtorrent/aux_/allocate_resources_impl.hpp +Copyright: © 2003 Magnus Jonsson +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: */include/libtorrent/resource_request.hpp, + */include/libtorrent/bt_peer_connection.hpp, + */libtorrent/src/allocate_resources.cpp, + */libtorrent/src/file_win.cpp, + */libtorrent/src/session.cpp, + */libtorrent/src/session_impl.cpp +Copyright: © 2003 - 2007 Magnus Jonsson, + © 2003 - 2007 Arvid Norberg +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: */include/libtorrent/extensions/ut_pex.hpp +Copyright: © 2006 MassaRoddel +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: */libtorrent/src/ut_pex.hpp +Copyright: © 2006 MassaRoddel, + © 2006 Arvid Norberg +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: */include/libtorrent/pe_crypto.hpp, + */libtorrent/src/pe_crypto.cpp +Copyright: © 2007 Un Shayam +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: */libtorrent/src/bt_peer_connection.cpp +Copyright: © 2007 Un Shayam, + © 2003 - 2007 Avrid Norberg +License: BSD-3 + +------------------------------------------------------------------------------- + +Files: */include/libtorrent/utf8.hpp +Copyright: © 2004 - 2005 Cory Nelson +License: other + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + +------------------------------------------------------------------------------- + +Files: */libtorrent/asio/*, + */libtorrent/asio/ssl/context_base.hpp, + */libtorrent/asio/ssl/detail/openssl_types.hpp, + */libtorrent/asoi/ssl/stream_base.hpp +Copyright: © 2003 - 2007 Christopher M. Kohlhoff +License: other + Boost Software License - Version 1.0 - August 17th, 2003 + + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +Files: */libtorrent/asio/ssl/* +Copyright: © 2003 - 2007 Christopher M. Kohlhoff , + © 2005 Voipster +License: other + Boost Software License - Version 1.0 - August 17th, 2003 + + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +Files: */libtorrent/asio/detail/kqueue_reactor.hpp, + */libtorrent/asio/detail/kqueue_reactor_fwd.hpp +Copyright: © 2003 - 2007 Christopher M. Kohlhoff , + © 2005 Stefan Arentz +License: other + Boost Software License - Version 1.0 - August 17th, 2003 + + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------------- + +Files: debian/* +Copyright: © 2006 - 2008 Uwe Hermann +License: PD + The packaging done by Uwe Hermann is hereby + released as public domain. + --- miro-1.2.3.orig/debian/miro.install +++ miro-1.2.3/debian/miro.install @@ -0,0 +1,6 @@ +usr/bin/ +usr/lib/ +usr/share/applications/ +usr/share/man/ +usr/share/mime/ +usr/share/pixmaps/ --- miro-1.2.3.orig/debian/pyversions +++ miro-1.2.3/debian/pyversions @@ -0,0 +1 @@ +2.5 --- miro-1.2.3.orig/debian/watch +++ miro-1.2.3/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://ftp.osuosl.org/pub/pculture.org/miro/src/Miro-(.*)\.tar\.gz --- miro-1.2.3.orig/debian/miro-data.install +++ miro-1.2.3/debian/miro-data.install @@ -0,0 +1,2 @@ +usr/share/miro/ +usr/share/locale/ --- miro-1.2.3.orig/debian/miro.xpm +++ miro-1.2.3/debian/miro.xpm @@ -0,0 +1,406 @@ +/* XPM */ +static char * miro_xpm[] = { +"32 32 371 2", +" c None", +". c #DD5F34", +"+ c #E5774A", +"@ c #E98355", +"# c #EA8658", +"$ c #E98356", +"% c #E4764A", +"& c #DD5E32", +"* c #EC8554", +"= c #F7A772", +"- c #F8B380", +"; c #F8B27F", +"> c #F8B27E", +", c #F8B17E", +"' c #F8B07D", +") c #F4AB7B", +"! c #E58662", +"~ c #D35639", +"{ c #D64A30", +"] c #EA7D59", +"^ c #F19C77", +"/ c #F19D79", +"( c #F49373", +"_ c #F68F71", +": c #F68E70", +"< c #F58D6F", +"[ c #F0A275", +"} c #F0A174", +"| c #ED9971", +"1 c #E3846B", +"2 c #E28269", +"3 c #D75A46", +"4 c #EC7D4A", +"5 c #F0946E", +"6 c #EA8571", +"7 c #EA8470", +"8 c #EA846F", +"9 c #F16E64", +"0 c #F36660", +"a c #F3655F", +"b c #F3645E", +"c c #E9926C", +"d c #E8916B", +"e c #E8906A", +"f c #E58566", +"g c #D9645A", +"h c #D86359", +"i c #D86258", +"j c #D74540", +"k c #D9562C", +"l c #F3925A", +"m c #F6A16B", +"n c #EF8E69", +"o c #E87B68", +"p c #E87A67", +"q c #E87967", +"r c #F0625B", +"s c #F25A56", +"t c #F25956", +"u c #F25855", +"v c #E78963", +"w c #E78962", +"x c #E68862", +"y c #E27C5D", +"z c #D65850", +"A c #D55750", +"B c #D5564F", +"C c #DB534D", +"D c #DA3434", +"E c #D95833", +"F c #EA875C", +"G c #EA8C62", +"H c #EA8B61", +"I c #E7735A", +"J c #E35A52", +"K c #E35951", +"L c #E35851", +"M c #F07A58", +"N c #F4845A", +"O c #F48459", +"P c #F48358", +"Q c #D6473E", +"R c #D6463D", +"S c #D6453D", +"T c #D7443E", +"U c #DC4344", +"V c #DC4243", +"W c #DC4143", +"X c #E04F49", +"Y c #E35A4E", +"Z c #BD2721", +"` c #E56938", +" . c #ED8858", +".. c #E58059", +"+. c #E47F59", +"@. c #E47E58", +"#. c #E2634E", +"$. c #E04744", +"%. c #E04643", +"&. c #E04542", +"*. c #EF7D51", +"=. c #F48F56", +"-. c #F48E55", +";. c #F48E54", +">. c #CF262A", +",. c #CF252A", +"'. c #CE2429", +"). c #D2272D", +"!. c #DD333A", +"~. c #DD3239", +"{. c #DD3138", +"]. c #E04642", +"^. c #E35A4C", +"/. c #BD2F27", +"(. c #DF6034", +"_. c #EF8752", +":. c #E97651", +"<. c #E26550", +"[. c #E2644F", +"}. c #DA4D44", +"|. c #D2373A", +"1. c #D23639", +"2. c #D23538", +"3. c #E76847", +"4. c #EF784C", +"5. c #EF784B", +"6. c #EE774B", +"7. c #C41C25", +"8. c #C41B24", +"9. c #C31923", +"0. c #C81B24", +"a. c #D5222B", +"b. c #D5212A", +"c. c #D52029", +"d. c #D43133", +"e. c #D3433E", +"f. c #B42723", +"g. c #D14C2E", +"h. c #E16F49", +"i. c #E17049", +"j. c #DA7973", +"k. c #C6E1F5", +"l. c #C3DCF2", +"m. c #B8BBD2", +"n. c #AF6578", +"o. c #AF1625", +"p. c #C20C15", +"q. c #B61220", +"r. c #A9192A", +"s. c #970C17", +"t. c #D04927", +"u. c #DF6842", +"v. c #E06943", +"w. c #E06942", +"x. c #E77B70", +"y. c #FFFFFF", +"z. c #FCFDFE", +"A. c #DDEDF9", +"B. c #B44A5C", +"C. c #900C15", +"D. c #E64C37", +"E. c #D53A38", +"F. c #E26D6C", +"G. c #F5B3B1", +"H. c #EB6F71", +"I. c #FBDADA", +"J. c #DA969E", +"K. c #D28088", +"L. c #F9F3F3", +"M. c #FEFEFF", +"N. c #FCFEFF", +"O. c #C498A5", +"P. c #A61422", +"Q. c #AD1421", +"R. c #B41321", +"S. c #E4272B", +"T. c #E22632", +"U. c #CB0C2E", +"V. c #DD6067", +"W. c #E9574C", +"X. c #E70C0D", +"Y. c #F38687", +"Z. c #FEFFFF", +"`. c #FDFEFF", +" + c #A91A2B", +".+ c #DEBBBD", +"++ c #F6FBFE", +"@+ c #F4FBFE", +"#+ c #CEBBC6", +"$+ c #891C2F", +"%+ c #DA1F22", +"&+ c #E92F33", +"*+ c #E9564B", +"=+ c #F18586", +"-+ c #FAFDFF", +";+ c #F8FCFE", +">+ c #D8B5BA", +",+ c #EEF8FE", +"'+ c #ECF8FE", +")+ c #CFBEC9", +"!+ c #C10B13", +"~+ c #BD1214", +"{+ c #DE292D", +"]+ c #DE2A2E", +"^+ c #DE2F32", +"/+ c #DB3E3D", +"(+ c #E1676B", +"_+ c #FBFDFF", +":+ c #FAFDFE", +"<+ c #BC4658", +"[+ c #991831", +"}+ c #C68998", +"|+ c #F2FAFE", +"1+ c #F0F9FE", +"2+ c #C2292D", +"3+ c #D2B3B9", +"4+ c #E6F5FD", +"5+ c #E4F4FD", +"6+ c #D3BAC3", +"7+ c #AB1016", +"8+ c #A1141F", +"9+ c #981320", +"0+ c #D01C1F", +"a+ c #DB292D", +"b+ c #DC3232", +"c+ c #E04E42", +"d+ c #E0696C", +"e+ c #F5FBFE", +"f+ c #F3FAFE", +"g+ c #AC405C", +"h+ c #7F1C3D", +"i+ c #B58A9D", +"j+ c #EAF6FD", +"k+ c #E8F6FD", +"l+ c #CB2E2E", +"m+ c #CDB1B9", +"n+ c #DEF2FC", +"o+ c #DCF1FC", +"p+ c #D1B8C0", +"q+ c #B60C0D", +"r+ c #A0141E", +"s+ c #821320", +"t+ c #AF0104", +"u+ c #CF2225", +"v+ c #D72A2D", +"w+ c #D43031", +"x+ c #CA423D", +"y+ c #D16369", +"z+ c #EDF8FE", +"A+ c #EBF7FD", +"B+ c #E9F6FD", +"C+ c #B1425A", +"D+ c #911E39", +"E+ c #BA899B", +"F+ c #E2F4FD", +"G+ c #E0F3FD", +"H+ c #B82A32", +"I+ c #C8AEB9", +"J+ c #D6EFFC", +"K+ c #D4EEFC", +"L+ c #C8B6C3", +"M+ c #A81019", +"N+ c #A01421", +"O+ c #C0060F", +"P+ c #C92628", +"Q+ c #BA2A2E", +"R+ c #A95161", +"S+ c #E5F5FD", +"T+ c #E3F4FD", +"U+ c #E1F3FD", +"V+ c #C34853", +"W+ c #C6262E", +"X+ c #D08B95", +"Y+ c #DAF0FC", +"Z+ c #D8F0FC", +"`+ c #C3AABA", +" @ c #CEECFB", +".@ c #CDEBFB", +"+@ c #B8B7CC", +"@@ c #9C1227", +"#@ c #A30005", +"$@ c #C0050E", +"%@ c #C92528", +"&@ c #A75061", +"*@ c #DDF2FC", +"=@ c #DBF1FC", +"-@ c #D9F0FC", +";@ c #C14753", +">@ c #CC8A95", +",@ c #D2EDFB", +"'@ c #D0ECFB", +")@ c #C0A9BA", +"!@ c #CBEBFB", +"~@ c #7F1025", +"{@ c #A10504", +"]@ c #AE1E21", +"^@ c #AA252E", +"/@ c #A6222E", +"(@ c #9A1A2C", +"_@ c #9D2739", +":@ c #A65061", +"<@ c #A55061", +"[@ c #A44F61", +"}@ c #A0273B", +"|@ c #A22136", +"1@ c #A43A4F", +"2@ c #A45269", +"3@ c #A64F64", +"4@ c #A74E63", +"5@ c #941A34", +"6@ c #9F3F50", +"7@ c #A24F61", +"8@ c #97425C", +"9@ c #78194C", +"0@ c #7A1748", +"a@ c #7B0913", +"b@ c #861428", +"c@ c #921B2E", +"d@ c #AC1729", +"e@ c #841C36", +"f@ c #9E1A2F", +"g@ c #831A3A", +"h@ c #71165C", +"i@ c #720B3C", +"j@ c #700710", +"k@ c #871225", +"l@ c #911A2C", +"m@ c #731050", +"n@ c #94071B", +"o@ c #7D134D", +"p@ c #80164F", +"q@ c #811944", +"r@ c #821C3A", +"s@ c #901B34", +"t@ c #8F1B36", +"u@ c #8A1B38", +"v@ c #771851", +"w@ c #78184E", +"x@ c #7A1741", +"y@ c #68061E", +"z@ c #6B0734", +"A@ c #6E0E54", +"B@ c #70155B", +"C@ c #721350", +"D@ c #77091A", +"E@ c #70083C", +"F@ c #7D113D", +"G@ c #7E1B3C", +"H@ c #8D1A3A", +"I@ c #9B1836", +"J@ c #831A41", +"K@ c #7C1A45", +"L@ c #741854", +"M@ c #741653", +"N@ c #720F4B", +"O@ c #660527", +"P@ c #750B23", +"Q@ c #7E1231", +"R@ c #7C1839", +"S@ c #77174B", +"T@ c #6F135A", +"U@ c #7D1435", +"V@ c #770C24", +"W@ c #5E0613", +"X@ c #69082C", +"Y@ c #6C093F", +"Z@ c #710B47", +"`@ c #730C49", +" # c #700B45", +".# c #6A083C", +"+# c #5F062B", +" ", +" ", +" . + @ # $ % ", +" & * = - - ; > , ' ) ! ~ ", +" { ] ^ / ( _ : < [ [ } | 1 2 3 ", +" 4 5 6 7 8 9 0 a b c d e f g h i j ", +" k l m n o p q r s t u v w x y z A B C D ", +" E F G H I J K L M N O P Q R S T U V W X Y Z ", +" ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.", +" (._.:.<.[.#.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.", +" g.h.i.j.k.k.k.k.k.k.k.k.k.k.k.l.m.n.o.p.p.p.q.r.s.", +" t.u.v.w.x.y.y.y.y.y.y.y.y.y.y.y.y.z.A.B.p.p.p.q.r.C.", +" D.E.E.E.F.y.y.y.G.H.I.y.y.y.J.K.L.M.N.O.P.P.P.Q.R. ", +" S.T.U.U.U.V.y.y.y.W.X.Y.y.Z.`. +r..+++@+#+$+$+$+P.p. ", +" %+&+T.U.U.U.V.y.y.y.*+X.=+-+;+++r.r.>+,+'+)+$+$+$+P.!+ ", +" ~+{+]+^+/+/+/+(+`._+:+<+[+}+|+1+,+2+2+3+4+5+6+7+7+7+8+9+ ", +" 0+a+a+b+c+c+c+d+e+f+|+g+h+i+j+k+4+l+l+m+n+o+p+q+q+q+r+s+ ", +" t+u+v+v+w+x+x+x+y+z+A+B+C+D+E+F+G+n+H+H+I+J+K+L+M+M+M+N+ ", +" O+P+l+l+Q+$+$+$+R+S+T+U+V+W+X+Y+Z+J+h+h+`+ @.@+@h+h+h+@@ ", +" #@$@%@l+l+Q+$+$+$+&@*@=@-@;@W+>@,@'@ @h+h+)@!@!@+@h+h+h+~@ ", +" {@]@^@^@/@(@(@(@_@:@<@[@}@|@1@2@3@4@5@5@6@7@7@8@9@9@0@ ", +" a@b@$+c@d@d@d@(@$+$+$+e@h+h+h+f@r.r.r.$+$+$+g@h@h@i@ ", +" j@k@l@d@d@d@(@$+$+$+e@h+h+h+f@r.r.r.$+$+$+g@h@m@ ", +" n@o@p@p@q@r@r@r@s@f@f@f@t@u@u@u@v@v@v@w@x@y@ ", +" z@A@B@9@h+h+h+5@r.r.r.u@h+h+h+h@h@h@C@D@ ", +" E@F@G@h+h+H@I@I@I@J@K@K@K@L@M@N@O@ ", +" P@Q@R@S@h@h@h@h@h@h@T@U@V@ ", +" W@X@Y@Z@`@`@ #.#+# ", +" ", +" ", +" ", +" "}; --- miro-1.2.3.orig/debian/pycompat +++ miro-1.2.3/debian/pycompat @@ -0,0 +1 @@ +2 --- miro-1.2.3.orig/debian/patches/40_feedparser.patch +++ miro-1.2.3/debian/patches/40_feedparser.patch @@ -0,0 +1,7 @@ +--- portable/feedparser.py.orig 2007-11-15 22:05:36.000000000 +0100 ++++ portable/feedparser.py 2007-11-15 22:05:43.000000000 +0100 +@@ -1,4 +1,3 @@ +-#!/usr/bin/env python + """Universal feed parser + + Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds --- miro-1.2.3.orig/debian/patches/80_gcc-4.3_headers.patch +++ miro-1.2.3/debian/patches/80_gcc-4.3_headers.patch @@ -0,0 +1,29 @@ +--- ./portable/libtorrent/include/libtorrent/peer_id.hpp 2008-03-31 20:47:32.000000000 +0000 ++++ ./portable/libtorrent/include/libtorrent/peer_id.hpp 2008-03-31 20:47:44.000000000 +0000 +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #include "libtorrent/config.hpp" + #include "libtorrent/assert.hpp" +--- ./portable/libtorrent/src/file.cpp 2008-03-31 20:51:16.000000000 +0000 ++++ ./portable/libtorrent/src/file.cpp 2008-03-31 20:52:11.000000000 +0000 +@@ -57,6 +57,7 @@ + #include + #include + #include ++#include + + #include + // make sure the _FILE_OFFSET_BITS define worked +--- ./portable/libtorrent/src/entry.cpp 2008-03-31 20:53:14.000000000 +0000 ++++ ./portable/libtorrent/src/entry.cpp 2008-03-31 21:05:16.000000000 +0000 +@@ -34,6 +34,7 @@ + + #include + #include ++#include + #include "libtorrent/entry.hpp" + #include "libtorrent/config.hpp" --- miro-1.2.3.orig/debian/patches/60_xine_driver.patch +++ miro-1.2.3/debian/patches/60_xine_driver.patch @@ -0,0 +1,26 @@ +# Honour the --xine-driver miro commandline option. +# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453406 + +diff -Nur -x '*.orig' -x '*~' miro-1.0/platform/gtk-x11/xine/xine_impl.c miro-1.0.new/platform/gtk-x11/xine/xine_impl.c +--- miro-1.0/platform/gtk-x11/xine/xine_impl.c 2007-11-13 12:22:57.000000000 +1100 ++++ miro-1.0.new/platform/gtk-x11/xine/xine_impl.c 2007-12-10 22:17:21.000000000 +1100 +@@ -263,14 +264,18 @@ + vis.user_data = xine; + + /* opening xine output ports */ ++ /* Try to use char *driver for video, default to "auto" if NULL */ ++ if (!driver) ++ driver = "auto"; ++ + #ifdef INCLUDE_XINE_DRIVER_HACK + miro_using_xv_driver_hack = 0; /* by default, don't use the hack */ +- xine->videoPort = xine_open_video_driver(xine->xine, "xv", ++ xine->videoPort = xine_open_video_driver(xine->xine, driver, + XINE_VISUAL_TYPE_X11, (void *)&vis); + if (!xine->videoPort) { + #endif + +- xine->videoPort = xine_open_video_driver(xine->xine, "auto", ++ xine->videoPort = xine_open_video_driver(xine->xine, driver, + XINE_VISUAL_TYPE_X11, (void *)&vis); + --- miro-1.2.3.orig/debian/patches/90_disable_iheartmiro_nag.patch +++ miro-1.2.3/debian/patches/90_disable_iheartmiro_nag.patch @@ -0,0 +1,10 @@ +--- portable/iheartmiro.py.orig 2008-04-18 04:12:28.000000000 +0200 ++++ portable/iheartmiro.py 2008-04-18 04:12:37.000000000 +0200 +@@ -52,6 +52,7 @@ + + # request_count makes it so that the second time you + def checkIHeartMiroInstall(): ++ return + request_count = config.get(prefs.IHEARTMIRO_REQUEST_COUNT) + + # if request_count >= 2: --- miro-1.2.3.orig/debian/patches/20_no_autoupdate.patch +++ miro-1.2.3/debian/patches/20_no_autoupdate.patch @@ -0,0 +1,21 @@ +--- portable/frontends/html/main.py.orig 2008-04-17 15:21:37.000000000 +0200 ++++ portable/frontends/html/main.py 2008-04-17 15:22:14.000000000 +0200 +@@ -63,7 +63,8 @@ + templates for the display (i.e. the Miro frontend for version 1.0) + """ + +- AUTOUPDATE_SUPPORTED = True ++ # AUTOUPDATE_SUPPORTED = True ++ AUTOUPDATE_SUPPORTED = False + + def __init__(self): + self.ignoreErrors = False +@@ -298,7 +299,7 @@ + @eventloop.asUrgent + def checkForUpdates(self): + """Call when the user manually asks for updates.""" +- autoupdate.checkForUpdates(self.handleUpToDate) ++ # autoupdate.checkForUpdates(self.handleUpToDate) + + + @eventloop.asUrgent --- miro-1.2.3.orig/debian/patches/10_movies_dir.patch +++ miro-1.2.3/debian/patches/10_movies_dir.patch @@ -0,0 +1,29 @@ +--- platform/gtk-x11/platform/config.py.orig 2008-04-17 14:55:36.000000000 +0200 ++++ platform/gtk-x11/platform/config.py 2008-04-17 14:56:24.000000000 +0200 +@@ -103,13 +103,13 @@ + value = descriptor.default + + if descriptor == prefs.MOVIES_DIRECTORY: +- value = os.path.expanduser('~/Movies/Miro') ++ value = os.path.expanduser('~/.miro/Movies') + try: + os.makedirs (value) + except: + pass + elif descriptor == prefs.NON_VIDEO_DIRECTORY: +- value = os.path.expanduser('~/Desktop') ++ value = os.path.expanduser('~/.miro/Nonvideo') + + elif descriptor == prefs.GETTEXT_PATHNAME: + value = resources.path("../../locale") +--- platform/gtk-x11/platform/upgrade.py.orig 2008-04-17 14:57:09.000000000 +0200 ++++ platform/gtk-x11/platform/upgrade.py 2008-04-17 14:58:46.000000000 +0200 +@@ -77,7 +77,7 @@ + _copy_gconf("/apps/democracy/player", "/apps/miro") + client.recursive_unset("/apps/democracy", 1) + if client.get("/apps/miro/MoviesDirectory") is None: +- value = os.path.expanduser('~/Movies/Democracy') ++ value = os.path.expanduser('~/.miro/Movies') + client.set_string("/apps/miro/MoviesDirectory", value) + try: + os.makedirs (value) --- miro-1.2.3.orig/debian/patches/70_rdfa_silence_lintian.patch +++ miro-1.2.3/debian/patches/70_rdfa_silence_lintian.patch @@ -0,0 +1,7 @@ +--- portable/rdfa.py.orig 2008-03-07 22:04:22.000000000 +0100 ++++ portable/rdfa.py 2008-03-07 23:10:13.000000000 +0100 +@@ -1,4 +1,3 @@ +-#!/usr/bin/python2.4 + """ + RDFa parser. + --- miro-1.2.3.orig/debian/patches/50_xine_extractor_path.patch +++ miro-1.2.3/debian/patches/50_xine_extractor_path.patch @@ -0,0 +1,8 @@ +--- platform/gtk-x11/platform/renderers/xinerenderer.py.orig 2008-04-17 15:28:20.000000000 +0200 ++++ platform/gtk-x11/platform/renderers/xinerenderer.py 2008-04-17 15:28:38.000000000 +0200 +@@ -237,4 +237,4 @@ + self.xine.setRate(rate) + + def movieDataProgramInfo(self, moviePath, thumbnailPath): +- return ((resources.path('../../../libexec/xine_extractor'), moviePath, thumbnailPath), None) ++ return ((resources.path('../../../lib/miro/xine_extractor'), moviePath, thumbnailPath), None)