diff options
| author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-08-27 12:02:33 +0000 |
|---|---|---|
| committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-08-27 12:02:33 +0000 |
| commit | d05fccab23aef7fa4c406352552262782bf1066c (patch) | |
| tree | 0e35f797d3aaacf586384e343120ea06f8ae5358 /gobject | |
| parent | 3938273dfd085dc75f64ce44706cf508fd971099 (diff) | |
| download | pygobject-d05fccab23aef7fa4c406352552262782bf1066c.tar.gz pygobject-d05fccab23aef7fa4c406352552262782bf1066c.tar.xz pygobject-d05fccab23aef7fa4c406352552262782bf1066c.zip | |
interface fixes and tests
Diffstat (limited to 'gobject')
| -rw-r--r-- | gobject/gobjectmodule.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index dde48b6..fa6ffbc 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1295,6 +1295,7 @@ pyg_type_register(PyTypeObject *class, const char *type_name) continue; itype = pyg_type_from_object((PyObject *) base); + /* ignore interface unless defined in parent type */ if (n_parent_interfaces == 0) continue; @@ -1305,7 +1306,7 @@ pyg_type_register(PyTypeObject *class, const char *type_name) if (parent_interfaces[parent_interface_iter] == itype) break; } - if (parent_interface_iter != n_parent_interfaces) + if (parent_interface_iter == n_parent_interfaces) continue; iinfo = pyg_lookup_interface_info(itype); @@ -1393,9 +1394,11 @@ pyg_type_register(PyTypeObject *class, const char *type_name) ++parent_interface_iter) { if (parent_interfaces[parent_interface_iter] == itype) - continue; + break; } } + if (parent_interface_iter < n_parent_interfaces) + continue; iinfo = pyg_lookup_interface_info(itype); iinfo_copy = *iinfo; |
