diff --git a/ChangeLog b/ChangeLog index 64f4253128..1b03c6cd13 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-04-19 Andy Wingo + + * gst/arg-types.py (GstCapsArg.write_const_param) + (GstCapsArg.write_param): If there is a default value, initialize + the py_caps variable to NULL. PyArgs_Parse* doesn't touch c + variables if the optional arg isn't there. Fixes #339010. + 2006-04-19 Andy Wingo * examples/remuxer.py (GstPlayer.seek): Don't do accurate seeks, diff --git a/examples/fvumeter.py b/examples/fvumeter.py index cabf09f593..a5380fda68 100644 --- a/examples/fvumeter.py +++ b/examples/fvumeter.py @@ -165,6 +165,7 @@ class FVUMeter(gtk.DrawingArea): self.style.set_background(self.window, gtk.STATE_NORMAL) def do_expose_event(self, event): + print 'foo' self.chain(event) x, y, w, h = self.allocation @@ -235,5 +236,6 @@ class FVUMeter(gtk.DrawingArea): self.leftborder + vumeter_width + 5, self.topborder + int(vumeter_height / 2 - layout_height / 2), layout) + print 'bar' gobject.type_register(FVUMeter) diff --git a/gst/arg-types.py b/gst/arg-types.py index 6fa9efb5d3..a60aecfc4c 100644 --- a/gst/arg-types.py +++ b/gst/arg-types.py @@ -100,7 +100,11 @@ class GstCapsArg(ArgType): raise RuntimeError, "write_param not implemented for %s" % ptype def write_const_param(self, pname, pdflt, pnull, info): - info.varlist.add('PyObject', '*py_'+pname) + if pdflt: + assert pdflt == 'NULL' + info.varlist.add('PyObject', '*py_' + pname + ' = NULL') + else: + info.varlist.add('PyObject', '*py_' + pname) info.varlist.add('GstCaps', '*'+pname) info.varlist.add('gboolean', pname+'_is_copy') info.add_parselist('O', ['&py_'+pname], [pname]) @@ -112,7 +116,11 @@ class GstCapsArg(ArgType): info.codeafter.append (self.after % { 'name' : pname, 'namecopy' : '&'+pname+'_is_copy' }) def write_normal_param(self, pname, pdflt, pnull, info): - info.varlist.add('PyObject', '*py_'+pname) + if pdflt: + assert pdflt == 'NULL' + info.varlist.add('PyObject', '*py_' + pname + ' = NULL') + else: + info.varlist.add('PyObject', '*py_' + pname) info.varlist.add('GstCaps', '*'+pname) info.add_parselist('O', ['&py_'+pname], [pname]) info.arglist.append(pname)