From bddb5b9929292fb3183e1327b5e68592ae5fe0e3 Mon Sep 17 00:00:00 2001 From: Nicola Fontana Date: Mon, 11 Jan 2010 12:15:44 +0100 Subject: [PATCH] [AdgMarker] adg_marker_get_segment() must return a const Fixing issue #8: http://dev.entidi.com/p/adg/issues/8/ --- adg/adg-marker.c | 68 ++++++++++++++++++++++++++++---------------------------- adg/adg-marker.h | 29 ++++++++++++------------ 2 files changed, 48 insertions(+), 49 deletions(-) diff --git a/adg/adg-marker.c b/adg/adg-marker.c index 231bde30..d7b0878d 100644 --- a/adg/adg-marker.c +++ b/adg/adg-marker.c @@ -297,7 +297,7 @@ adg_marker_get_n_segment(AdgMarker *marker) * * Returns: the segment or %NULL on errors **/ -AdgSegment * +const AdgSegment * adg_marker_get_segment(AdgMarker *marker) { AdgMarkerPrivate *data; @@ -481,39 +481,6 @@ adg_marker_set_size(AdgMarker *marker, gdouble size) } /** - * adg_marker_model: - * @marker: an #AdgMarker - * - * - * This function is only useful in marker implementations. - * - * - * Gets the model of @marker. If the model is not found, it is - * automatically created by calling the create_model() virtual method. - * - * Returns: the current model owned by @marker or %NULL on errors - **/ -AdgModel * -adg_marker_model(AdgMarker *marker) -{ - AdgMarkerPrivate *data; - - g_return_val_if_fail(ADG_IS_MARKER(marker), NULL); - - data = marker->data; - - if (data->model == NULL) { - /* Model not found: regenerate it */ - AdgMarkerClass *marker_class = ADG_MARKER_GET_CLASS(marker); - - if (marker_class->create_model) - adg_marker_set_model(marker, marker_class->create_model(marker)); - } - - return data->model; -} - -/** * adg_marker_get_model: * @marker: an #AdgMarker * @@ -561,6 +528,39 @@ adg_marker_set_model(AdgMarker *marker, AdgModel *model) g_object_notify((GObject *) marker, "model"); } +/** + * adg_marker_model: + * @marker: an #AdgMarker + * + * + * This function is only useful in marker implementations. + * + * + * Gets the model of @marker. If the model is not found, it is + * automatically created by calling the create_model() virtual method. + * + * Returns: the current model owned by @marker or %NULL on errors + **/ +AdgModel * +adg_marker_model(AdgMarker *marker) +{ + AdgMarkerPrivate *data; + + g_return_val_if_fail(ADG_IS_MARKER(marker), NULL); + + data = marker->data; + + if (data->model == NULL) { + /* Model not found: regenerate it */ + AdgMarkerClass *marker_class = ADG_MARKER_GET_CLASS(marker); + + if (marker_class->create_model) + adg_marker_set_model(marker, marker_class->create_model(marker)); + } + + return data->model; +} + static void local_changed(AdgEntity *entity) diff --git a/adg/adg-marker.h b/adg/adg-marker.h index f9365ea1..d90e1025 100644 --- a/adg/adg-marker.h +++ b/adg/adg-marker.h @@ -52,27 +52,26 @@ struct _AdgMarkerClass { }; -GType adg_marker_get_type (void) G_GNUC_CONST; +GType adg_marker_get_type (void) G_GNUC_CONST; -AdgTrail * adg_marker_get_trail (AdgMarker *marker); -guint adg_marker_get_n_segment (AdgMarker *marker); -AdgSegment * adg_marker_get_segment (AdgMarker *marker); -void adg_marker_set_segment (AdgMarker *marker, +AdgTrail * adg_marker_get_trail (AdgMarker *marker); +guint adg_marker_get_n_segment (AdgMarker *marker); +const AdgSegment *adg_marker_get_segment (AdgMarker *marker); +void adg_marker_set_segment (AdgMarker *marker, AdgTrail *trail, guint n_segment); -const AdgSegment * - adg_marker_get_backup_segment (AdgMarker *marker); -void adg_marker_backup_segment (AdgMarker *marker); -gdouble adg_marker_get_pos (AdgMarker *marker); -void adg_marker_set_pos (AdgMarker *marker, +const AdgSegment *adg_marker_get_backup_segment (AdgMarker *marker); +void adg_marker_backup_segment (AdgMarker *marker); +gdouble adg_marker_get_pos (AdgMarker *marker); +void adg_marker_set_pos (AdgMarker *marker, gdouble pos); -gdouble adg_marker_get_size (AdgMarker *marker); -void adg_marker_set_size (AdgMarker *marker, +gdouble adg_marker_get_size (AdgMarker *marker); +void adg_marker_set_size (AdgMarker *marker, gdouble size); -AdgModel * adg_marker_model (AdgMarker *marker); -AdgModel * adg_marker_get_model (AdgMarker *marker); -void adg_marker_set_model (AdgMarker *marker, +AdgModel * adg_marker_get_model (AdgMarker *marker); +void adg_marker_set_model (AdgMarker *marker, AdgModel *model); +AdgModel * adg_marker_model (AdgMarker *marker); G_END_DECLS -- 2.11.4.GIT