Mercurial > pidgin
view libpurple/dbus-analyze-types.py @ 28882:36daf22b09f6
I think this is only the place this could leak...
==14064== 36 bytes in 2 blocks are definitely lost in loss record 13,092 of 20,211
==14064== at 0x4024C1C: malloc (vg_replace_malloc.c:195)
==14064== by 0x4A73B0F: __vasprintf_chk (vasprintf_chk.c:82)
==14064== by 0x485197E: g_vasprintf (in /lib/libglib-2.0.so.0.2200.3)
==14064== by 0x483D485: g_strdup_vprintf (in /lib/libglib-2.0.so.0.2200.3)
==14064== by 0x483D4A7: g_strdup_printf (in /lib/libglib-2.0.so.0.2200.3)
==14064== by 0x492FC6D: purple_mkstemp (util.c:2916)
==14064== by 0x80FEDD5: pidgin_convert_buddy_icon (gtkutils.c:2690)
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Thu, 14 Jan 2010 18:37:32 +0000 |
parents | 5fe8042783c1 |
children |
line wrap: on
line source
# This program takes a C header/source as the input and produces # # with --keyword=enum: the list of all enums # with --keyword=struct: the list of all structs # # the output styles: # # --enum DBUS_POINTER_NAME1, # DBUS_POINTER_NAME2, # DBUS_POINTER_NAME3, # # --list NAME1 # NAME2 # NAME3 # import re import sys options = {} def toprint(match, line): if verbatim: return line else: return pattern % match for arg in sys.argv[1:]: if arg[0:2] == "--": mylist = arg[2:].split("=",1) command = mylist[0] if len(mylist) > 1: options[command] = mylist[1] else: options[command] = None keyword = options.get("keyword", "struct") pattern = options.get("pattern", "%s") verbatim = options.has_key("verbatim") structregexp1 = re.compile(r"^(typedef\s+)?%s\s+\w+\s+(\w+)\s*;" % keyword) structregexp2 = re.compile(r"^(typedef\s+)?%s" % keyword) structregexp3 = re.compile(r"^}\s+(\w+)\s*;") print "/* Generated by %s. Do not edit! */" % sys.argv[0] myinput = iter(sys.stdin) for line in myinput: match = structregexp1.match(line) if match is not None: print toprint(match.group(2), line) continue match = structregexp2.match(line) if match is not None: while True: if verbatim: print line.rstrip() line = myinput.next() match = structregexp3.match(line) if match is not None: print toprint(match.group(1), line) break if line[0] not in [" ", "\t", "{", "\n"]: if verbatim: print line break