diff options
Diffstat (limited to 'databases/glom/files/patch-glom-libglom-python_embed-py_glom_related.cc')
-rw-r--r-- | databases/glom/files/patch-glom-libglom-python_embed-py_glom_related.cc | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/databases/glom/files/patch-glom-libglom-python_embed-py_glom_related.cc b/databases/glom/files/patch-glom-libglom-python_embed-py_glom_related.cc deleted file mode 100644 index 206b2133b49e..000000000000 --- a/databases/glom/files/patch-glom-libglom-python_embed-py_glom_related.cc +++ /dev/null @@ -1,170 +0,0 @@ ---- glom/libglom/python_embed/py_glom_related.cc.orig 2006-05-20 06:35:32.000000000 -0500 -+++ glom/libglom/python_embed/py_glom_related.cc 2007-09-05 00:42:52.657306150 -0500 -@@ -52,62 +52,79 @@ - - //Set the object's member data, from the parameters supplied when creating the object: - static int --Related_init(PyGlomRelated *self, PyObject* /* args */, PyObject* /* kwds */) -+Related_init(PyObject *self, PyObject* /* args */, PyObject* /* kwds */) - { -- if(self) -+ PyGlomRelated *self_related = (PyGlomRelated*)self; -+ -+ if(self_related) - { -- self->m_record = 0; -+ self_related->m_record = 0; - -- if(self->m_pMap_relationships == 0) -- self->m_pMap_relationships = new PyGlomRelated::type_map_relationships(); -+ if(self_related->m_pMap_relationships == 0) -+ self_related->m_pMap_relationships = new PyGlomRelated::type_map_relationships(); - -- if(self->m_pMap_relatedrecords == 0) -- self->m_pMap_relatedrecords = new PyGlomRelated::type_map_relatedrecords(); -+ if(self_related->m_pMap_relatedrecords == 0) -+ self_related->m_pMap_relatedrecords = new PyGlomRelated::type_map_relatedrecords(); - } - - return 0; - } - - static void --Related_dealloc(PyGlomRelated* self) -+Related_dealloc(PyObject* self) - { -- if(self->m_pMap_relationships) -+ PyGlomRelated *self_related = (PyGlomRelated*)self; -+ -+ if(self_related->m_pMap_relationships) - { -- delete self->m_pMap_relationships; -- self->m_pMap_relationships = 0; -+ delete self_related->m_pMap_relationships; -+ self_related->m_pMap_relationships = 0; - } - -- if(self->m_record) -+ if(self_related->m_record) - { -- Py_XDECREF( (PyObject*)self->m_record ); -- self->m_record = 0; -+ Py_XDECREF( (PyObject*)self_related->m_record ); -+ self_related->m_record = 0; - } - -- if(self->m_pMap_relatedrecords) -+ if(self_related->m_pMap_relatedrecords) - { - //Unref each item: -- for(PyGlomRelated::type_map_relatedrecords::iterator iter = self->m_pMap_relatedrecords->begin(); iter != self->m_pMap_relatedrecords->end(); ++iter) -+ for(PyGlomRelated::type_map_relatedrecords::iterator iter = self_related->m_pMap_relatedrecords->begin(); iter != self_related->m_pMap_relatedrecords->end(); ++iter) - { - Py_XDECREF( (PyObject*)(iter->second) ); - } - -- delete self->m_pMap_relatedrecords; -- self->m_pMap_relatedrecords = 0; -+ delete self_related->m_pMap_relatedrecords; -+ self_related->m_pMap_relatedrecords = 0; - } - -- self->ob_type->tp_free((PyObject*)self); -+ self_related->ob_type->tp_free((PyObject*)self); - } - - -+//Adapt to API changes in Python 2.5: -+#if defined(PY_VERSION_HEX) && (PY_VERSION_HEX >= 0x02050000) /* Python 2.5 */ -+static Py_ssize_t -+Related_tp_as_mapping_length(PyObject *self) -+{ -+ PyGlomRelated *self_related = (PyGlomRelated*)self; -+ return self_related->m_pMap_relationships->size(); -+} -+#else - static int --Related_tp_as_mapping_length(PyGlomRelated *self) -+Related_tp_as_mapping_length(PyObject *self) - { -- return self->m_pMap_relationships->size(); -+ PyGlomRelated *self_related = (PyGlomRelated*)self; -+ return self_related->m_pMap_relationships->size(); - } -+#endif - - static PyObject * --Related_tp_as_mapping_getitem(PyGlomRelated *self, PyObject *item) -+Related_tp_as_mapping_getitem(PyObject *self, PyObject *item) - { -+ PyGlomRelated *self_related = (PyGlomRelated*)self; -+ - if(PyString_Check(item)) - { - const char* pchKey = PyString_AsString(item); -@@ -116,8 +133,8 @@ - const Glib::ustring key(pchKey); - - //Return a cached item if possible: -- PyGlomRelated::type_map_relatedrecords::iterator iterCacheFind = self->m_pMap_relatedrecords->find(key); -- if(iterCacheFind != self->m_pMap_relatedrecords->end()) -+ PyGlomRelated::type_map_relatedrecords::iterator iterCacheFind = self_related->m_pMap_relatedrecords->find(key); -+ if(iterCacheFind != self_related->m_pMap_relatedrecords->end()) - { - //Return a reference to the cached item: - PyGlomRelatedRecord* pyRelatedRecord = iterCacheFind->second; -@@ -127,8 +144,8 @@ - else - { - //If the relationship exists: -- PyGlomRelated::type_map_relationships::const_iterator iterFind = self->m_pMap_relationships->find(key); -- if(iterFind != self->m_pMap_relationships->end()) -+ PyGlomRelated::type_map_relationships::const_iterator iterFind = self_related->m_pMap_relationships->find(key); -+ if(iterFind != self_related->m_pMap_relationships->end()) - { - //Return a new RelatedRecord: - PyObject* new_args = PyTuple_New(0); -@@ -140,15 +157,15 @@ - //Get the value of the from_key in the parent record. - sharedptr<Relationship> relationship = iterFind->second; - const Glib::ustring from_key = relationship->get_from_field(); -- PyGlomRecord::type_map_field_values::const_iterator iterFromKey = self->m_record->m_pMap_field_values->find(from_key); -- if(iterFromKey != self->m_record->m_pMap_field_values->end()) -+ PyGlomRecord::type_map_field_values::const_iterator iterFromKey = self_related->m_record->m_pMap_field_values->find(from_key); -+ if(iterFromKey != self_related->m_record->m_pMap_field_values->end()) - { - const Gnome::Gda::Value from_key_value = iterFromKey->second; - - //TODO_Performance: - //Get the full field details so we can sqlize its value: - sharedptr<Field> from_key_field; -- from_key_field = self->m_record->m_document->get_field(*(self->m_record->m_table_name), from_key); -+ from_key_field = self_related->m_record->m_document->get_field(*(self_related->m_record->m_table_name), from_key); - if(from_key_field) - { - Glib::ustring key_value_sqlized; -@@ -157,11 +174,11 @@ - if(!GlomConversions::value_is_empty(from_key_value)) //Do not link on null-values. That would cause us to link on 0, or "0". - key_value_sqlized = from_key_field->sql(from_key_value); - -- PyGlomRelatedRecord_SetRelationship(pyRelatedRecord, iterFind->second, key_value_sqlized, self->m_record->m_document); -+ PyGlomRelatedRecord_SetRelationship(pyRelatedRecord, iterFind->second, key_value_sqlized, self_related->m_record->m_document); - - //Store it in the cache: - Py_INCREF((PyObject*)pyRelatedRecord); //Dereferenced in _dealloc(). -- (*(self->m_pMap_relatedrecords))[key] = pyRelatedRecord; -+ (*(self_related->m_pMap_relatedrecords))[key] = pyRelatedRecord; - - return (PyObject*)pyRelatedRecord; //TODO: pygda_value_as_pyobject(iterFind->second.gobj(), true /* copy */); - } -@@ -185,8 +202,8 @@ - */ - - static PyMappingMethods Related_tp_as_mapping = { -- (inquiry)Related_tp_as_mapping_length, -- (binaryfunc)Related_tp_as_mapping_getitem, -+ Related_tp_as_mapping_length, -+ Related_tp_as_mapping_getitem, - (objobjargproc)0 /* Related_tp_as_mapping_setitem */ - }; - |