-require 0.92.1
+requires 0.92.1
+
+/* This will work with an older version (0.92.1 specifically), if you want
+ * to see a version with automatic argument<->datamember linking, automatic
+ * initialization and destruction, look at my-person2.gob */
%{
#include <time.h>
argument POINTER (type char *) name
get {
- if(self->name)
- ARG = g_strdup(self->name);
- else
- ARG = NULL;
+ /* note that strdup handles NULL correctly */
+ ARG = g_strdup(self->name);
}
set {
+ /* note that strdup handles NULL correctly */
g_free(self->name);
- if(ARG)
- self->name = g_strdup(ARG);
- else
- self->name = NULL;
+ self->name = g_strdup(ARG);
};
argument LONG dob get { ARG = self->dob; } set { self->dob = ARG; };
self->_priv->rounds_in_shotgun--;
/* death is imminent if we shoot oneself in the head */
- death(self,(long)time(NULL));
+ death(self, (long)time(NULL));
+ }
+
+ /* override the destroy signal where we destroy data we need to free */
+ override (Gtk:Object)
+ void
+ destroy (Gtk:Object *self (check null type))
+ {
+ g_free(MY_PERSON(self)->name);
+ PARENT_HANDLER(self);
}
}