Mercurial > pidgin
comparison libgaim/dbus-analyze-functions.py @ 14648:74b69a11830c
[gaim-migrate @ 17394]
sf patch #1469293, from Ari Pollak
Our python script that generates dbus bindings was assuming that va_list
is a pointer, but it is not a pointer on all platforms (like alpha, for
example). I couldn't find a way to pass a va_list as a python
parameter, but I'm not very familiar with dbus.
This patch avoids creating a python binding for any function that accepts
a va_list.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 29 Sep 2006 06:04:13 +0000 |
parents | 9c884b84afb9 |
children |
comparison
equal
deleted
inserted
replaced
14647:18b74ed00850 | 14648:74b69a11830c |
---|---|
97 if len(type) == 1: | 97 if len(type) == 1: |
98 # simple types (int, gboolean, etc.) and enums | 98 # simple types (int, gboolean, etc.) and enums |
99 if (type[0] in simpletypes) or (type[0].startswith("Gaim")): | 99 if (type[0] in simpletypes) or (type[0].startswith("Gaim")): |
100 return self.inputsimple(type, name) | 100 return self.inputsimple(type, name) |
101 | 101 |
102 | |
103 # va_list, replace by NULL | |
104 if type[0] == "va_list": | |
105 return self.inputvalist(type, name) | |
106 | |
107 # pointers ... | 102 # pointers ... |
108 if (len(type) == 2) and (type[1] == pointer): | 103 if (len(type) == 2) and (type[1] == pointer): |
109 # strings | 104 # strings |
110 if type[0] == "char": | 105 if type[0] == "char": |
111 if const: | 106 if const: |
207 self.knowntypes.append(type[0]) | 202 self.knowntypes.append(type[0]) |
208 | 203 |
209 def inputsimple(self, type, name): | 204 def inputsimple(self, type, name): |
210 self.paramshdr.append("%s %s" % (type[0], name)) | 205 self.paramshdr.append("%s %s" % (type[0], name)) |
211 self.inputparams.append(("G_TYPE_INT", name)) | 206 self.inputparams.append(("G_TYPE_INT", name)) |
212 | |
213 def inputvalist(self, type, name): | |
214 self.paramshdr.append("va_list %s_NULL" % name) | |
215 | 207 |
216 def inputstring(self, type, name): | 208 def inputstring(self, type, name): |
217 self.paramshdr.append("const char *%s" % name) | 209 self.paramshdr.append("const char *%s" % name) |
218 self.inputparams.append(("G_TYPE_STRING", name)) | 210 self.inputparams.append(("G_TYPE_STRING", name)) |
219 | 211 |
327 | 319 |
328 def inputsimple(self, type, name): | 320 def inputsimple(self, type, name): |
329 self.cdecls.append("\tdbus_int32_t %s;" % name) | 321 self.cdecls.append("\tdbus_int32_t %s;" % name) |
330 self.cparams.append(("INT32", name)) | 322 self.cparams.append(("INT32", name)) |
331 self.addintype("i", name) | 323 self.addintype("i", name) |
332 | |
333 def inputvalist(self, type, name): | |
334 self.cdecls.append("\tvoid * %s;" % name); | |
335 self.ccode.append("\t%s = NULL;" % name); | |
336 | 324 |
337 def inputstring(self, type, name): | 325 def inputstring(self, type, name): |
338 self.cdecls.append("\tconst char *%s;" % name) | 326 self.cdecls.append("\tconst char *%s;" % name) |
339 self.cparams.append(("STRING", name)) | 327 self.cparams.append(("STRING", name)) |
340 self.ccode .append("\tNULLIFY(%s);" % name) | 328 self.ccode .append("\tNULLIFY(%s);" % name) |