diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:02:26 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:02:26 +0000 |
| commit | 61bd776bba2ba9f30d334dd1e451c4f15830bec3 (patch) | |
| tree | 6536b31ea2b5a2dbc7be8d62de14bed7cf7cb020 /bindings | |
| parent | c1bf8393fb0d546ed14a53377d0e9074fdce8b95 (diff) | |
[project @ fpeters@0d.be-20071006180132-1t68niy6jyj26k88]
bugfix for string members
Original author: Frederic Peters <fpeters@0d.be>
Date: 2007-10-06 20:01:32.249000+02:00
Diffstat (limited to 'bindings')
| -rw-r--r-- | bindings/lang_python.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/bindings/lang_python.py b/bindings/lang_python.py index 85be9e7a..31656083 100644 --- a/bindings/lang_python.py +++ b/bindings/lang_python.py @@ -341,6 +341,8 @@ register_constants(PyObject *d) if self.is_pygobject(m[0]): print >> fd, ' return_value = g_object_ref(this->%s);' % m[1]; + elif m[0] in ('char*', 'const char*', 'gchar*', 'const gchar*'): + print >> fd, ' return_value = g_strdup(this->%s);' % m[1] else: print >> fd, ' return_value = this->%s;' % m[1]; @@ -360,7 +362,7 @@ register_constants(PyObject *d) arg_type = m[0] if m[0] in ('char*', 'const char*', 'gchar*', 'const gchar*'): arg_type = arg_type.replace('const ', '') - parse_format = 's' + parse_format = 'z' parse_arg = '&value' print >> fd, ' %s value;' % arg_type elif arg_type in ['int', 'gint', 'gboolean', 'const gboolean'] + self.binding_data.enums: @@ -379,7 +381,8 @@ register_constants(PyObject *d) if parse_format == 'i': print >> fd, ' this->%s = value;' % m[1] - elif parse_format == 's': + elif parse_format in ('s', 'z'): + print >> fd, ' if (this->%s) g_free(this->%s);' % (m[1], m[1]) print >> fd, ' this->%s = g_strdup(value);' % m[1] elif parse_format == 'O': print >> fd, ' this->%s = (%s)g_object_ref(cvt_value->obj);' % (m[1], m[0]) |
