[Buoh-dev] Propiedades

Pablo Arroyo zioma at linups.org
Fri Aug 19 08:13:45 MDT 2005


On jue, 2005-08-18 at 23:47 +0200, Carlos Garcia Campos wrote:

> > +       label_title = gtk_label_new (NULL);
> > +       markup = g_markup_printf_escaped ("<b>Title</b>");
> > +       gtk_label_set_markup (GTK_LABEL (label_title), markup);
> > +
> > +       label_author = gtk_label_new (NULL);
> > +       markup = g_markup_printf_escaped (_("<b>Author:</b>"));
> 
> leak
> 
> > +       gtk_label_set_markup (GTK_LABEL (label_author), markup);
> > +
> > +       label_uri = gtk_label_new (NULL);       
> > +       markup = g_markup_printf_escaped (_("<b>URI:</b>"));
> 
> leak
> 
> > +       gtk_label_set_markup (GTK_LABEL (label_uri), markup);
> > +
> > +       label_languaje = gtk_label_new (NULL);  
> > +       markup = g_markup_printf_escaped (_("<b>Languaje:</b>"));
> 
> leak
> 
> > +       gtk_label_set_markup (GTK_LABEL (label_languaje), markup);
> > +
> > +       g_free (markup);
> 
> cada vez que llamas a g_markup_printf_escaped se reserva memoria, la
> segunda vez que lo llamas reservas memoria y pierdes el puntero a la
> zona que reservaste con la primera llamada, con lo que no podrá ser
> liberada. Esto es otra consecuencia de lo que le decía el otro dia a
> esteban, es mejor liberar la memoria en cuanto no la necesitas.
ok, cuando hice esto dudé un poquillo.

>  
> 
> En este caso concreto ni siquiera es necesario la variable markup. La
> función g_markup_printf_escaped se utiliza cuando las cadena contiene
> caracteres com <> y otros especiales, pero que no son del marcado de
> pango, sino que son de la propia cadena, supon que estas escribiendo una
> cadena xml o html. En nuestro caso puedes utilizar directamente
> gtk_label_set_markup (GTK_LABEL (label_uri), <b>cadena</b>) y no
> necesitas de una variable auxiliar.
> 
> La cadena URI no es muy user-friendly, la mayoría de mis amigos no
> sabrían lo que es. Por otro lado sabemos que la uri es siempre una
> dirección http por lo que podríamos usar URL mas ampliamente utilizado,
> pero seguiría siendo técnico. Quizás algo como dirección de internet o
> algo así, no se. Como llaman vuestros padre/amigos a las urls?
vale, le he puesto "Link", a ver si os parece bien. De momento he dejado
comentado lo del ellipsize porque no me gusta como queda.

> 
> > +       
> > +       label_title_val    = gtk_label_new (buoh_comic_get_title
> > (comic));
> 
> leak
> 
> > +       label_author_val   = gtk_label_new (buoh_comic_get_author
> > (comic));
> 
> leak
> 
> > +       label_uri_val      = gtk_label_new (buoh_comic_get_uri
> > (comic));
> 
> leak
> 
> > +       label_languaje_val = gtk_label_new (buoh_comic_get_languaje
> > (comic));
> 
> leak
> 
> Cada vez que pides un atributo de una comic se te entrega una copia.
> Cuando estableces la etiqueta a un label si te fijas recibe con un const
> gchar * lo cual nos dice que el label copiará la cadena que le des, pero
> no la modificará y por tanto no la liberará. Si no utilizas una variable
> auxiliar en este caso no podrás liberar esa memoria, puesto que el
> puntero se lo estas entregando directamente a la función.
amms, no se me habría ocurrido.



Ya cambié lo del languaJe :). Ahí va el parche de nuevo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-patch
Size: 38471 bytes
Desc: not available
Url : http://forge.novell.com/pipermail/buoh-dev/attachments/20050819/a6c194ab/patch.bin


More information about the Buoh-dev mailing list