Re: ejemplo del sistema de objetos de glib
- From: Germán Poó Caamaño <gpoo ubiobio cl>
- To: Claudio Saavedra <csaavedra alumnos utalca cl>
- Cc: "Advocacy, chit-chat and event planning in Chile" <gnome-cl-list gnome org>
- Subject: Re: ejemplo del sistema de objetos de glib
- Date: Mon, 07 May 2007 20:40:56 -0400
On Mon, 2007-05-07 at 17:35 -0400, Claudio Saavedra wrote:
> On Fri, 2007-05-04 at 10:28 -0400, Alejandro Valdes Jimenez wrote:
> > Adjunto un ejemplo que hice de gobject para que alguien si tiene un
> > tiempecito le de una miradita... quiero saber si est�ien
> > implementado
> > y si es un buen ejemplo.
>
> Le ech�na mirada r�da, no soy experto en GObject, pero tengo algunos
> comentarios, ojal�e sean �s:
> [lista de comentarios �s]
Yo agregar�lo siguiente:
- Aprender y acostumbrarse a usar g_assert, g_return_if_fail y afines.
Si PersonaMainApp ser�arte de una biblioteca independiente, que puede
ser utilizada por otras aplicaciones, entonces usar g_return_if_fail o
g_return_val_if_fail.
Si es parte de la misma aplicaci�entonces usar g_assert.
La idea es verificar los par�tros punteros que recibe cada
funci��do; antes de realizar cualquier operaci� Esto es
para atrapar los errores tan pronto como sucedan.
As�por ejemplo, est�efinida:
void
persona_main_app_agregar_persona (PersonaMainApp *obj, gchar *nombre,
gint edad)
{
obj->nombre = g_string_new (nombre);
obj->edad = edad;
}
�Qu�ucede si obj es nulo? �O no corresponde al tipo? Lo mismo
con nombre.
Lo correcto ser�
void
persona_main_app_agregar_persona (PersonaMainApp *obj, gchar *nombre,
gint edad)
{
g_assert (PERSONA_IS_MAIN_APP (obj));
g_assert (nombre != NULL);
obj->nombre = g_string_new (nombre);
obj->edad = edad;
}
Algo similar ocurre en otras funciones.
--
Germ�Po�ama�oncepci� Chile
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]