summaryrefslogtreecommitdiffstats
path: root/gobject/gobjectmodule.c
diff options
context:
space:
mode:
authorJohan Dahlin <johan@src.gnome.org>2006-07-13 17:26:56 +0000
committerJohan Dahlin <johan@src.gnome.org>2006-07-13 17:26:56 +0000
commite26921db6615d6ab766ecb10049af254e43eeaa3 (patch)
tree65cf78bda92ddf9f68f243bea929853f24bf873f /gobject/gobjectmodule.c
parentf80b6b9f96a027d926c9ee3d31f0ca8eb05272bf (diff)
downloadpygobject-e26921db6615d6ab766ecb10049af254e43eeaa3.tar.gz
pygobject-e26921db6615d6ab766ecb10049af254e43eeaa3.tar.xz
pygobject-e26921db6615d6ab766ecb10049af254e43eeaa3.zip
Add infrastructure for lazy type registration, fixes #
* gobject/gobjectmodule.c: (pyg_type_from_name), (get_type_name_for_class): * gobject/pygobject-private.h: * gobject/pygobject.c: (pygobject_new_with_interfaces), (pygobject_lookup_class), (pygobject_emit): * gobject/pygobject.h: * gobject/pygtype.c: (_wrap_g_type_from_name), (pyg_type_from_object), (pyg_type_register_custom_callback), (pyg_type_get_custom), (_pyg_type_from_name): Add infrastructure for lazy type registration, fixes #
Diffstat (limited to 'gobject/gobjectmodule.c')
-rw-r--r--gobject/gobjectmodule.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index d4909a9..0004f43 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -277,7 +277,7 @@ pyg_type_from_name (PyObject *self, PyObject *args)
#endif
if (!PyArg_ParseTuple(args, "s:gobject.type_from_name", &name))
return NULL;
- type = g_type_from_name(name);
+ type = _pyg_type_from_name(name);
if (type != 0)
return pyg_type_wrapper_new(type);
PyErr_Format(PyExc_RuntimeError, "%s: unknown type name: %s",
@@ -1136,7 +1136,7 @@ get_type_name_for_class(PyTypeObject *class)
for (i = 0; type_name[i] != '\0'; i++)
if (type_name[i] == '.')
type_name[i] = '+';
- if (g_type_from_name(type_name) == 0)
+ if (_pyg_type_from_name(type_name) == 0)
break; /* we now have a unique name */
++name_serial;
}
@@ -3241,7 +3241,9 @@ struct _PyGObject_Functions pygobject_api_functions = {
pyg_set_object_has_new_constructor,
add_warning_redirection,
- disable_warning_redirections
+ disable_warning_redirections,
+
+ pyg_type_register_custom_callback
};
#define REGISTER_TYPE(d, type, name) \