summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBilal Elmoussaoui <bil.elmoussaoui@gmail.com>2022-01-14 15:05:08 +0100
committerBastien Nocera <hadess@hadess.net>2022-05-11 15:38:46 +0200
commit5f5133a0f054575f37e476d52cda19804877f1fe (patch)
tree5e55753a04af295b62e5013076cc498600417bde
parentd5b8691b43a4506554461f3f63ae8796d9e1c830 (diff)
downloadgeocode-glib-5f5133a0f054575f37e476d52cda19804877f1fe.tar.gz
lib: Stop using g_type_class_add_private()
It was deprecated, replace it with the G_DEFINE_TYPE_WITH_CODE macro.
-rw-r--r--geocode-glib/geocode-bounding-box.c55
-rw-r--r--geocode-glib/geocode-forward.c92
-rw-r--r--geocode-glib/geocode-location.c155
-rw-r--r--geocode-glib/geocode-place.c276
-rw-r--r--geocode-glib/geocode-reverse.c46
5 files changed, 405 insertions, 219 deletions
diff --git a/geocode-glib/geocode-bounding-box.c b/geocode-glib/geocode-bounding-box.c
index 2dd99de..bb57c0e 100644
--- a/geocode-glib/geocode-bounding-box.c
+++ b/geocode-glib/geocode-bounding-box.c
@@ -47,7 +47,8 @@ enum {
PROP_RIGHT
};
-G_DEFINE_TYPE (GeocodeBoundingBox, geocode_bounding_box, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_CODE (GeocodeBoundingBox, geocode_bounding_box, G_TYPE_OBJECT,
+ G_ADD_PRIVATE (GeocodeBoundingBox))
static void
geocode_bounding_box_get_property (GObject *object,
@@ -89,36 +90,44 @@ static void
geocode_bounding_box_set_top (GeocodeBoundingBox *bbox,
gdouble top)
{
+ GeocodeBoundingBoxPrivate *priv;
g_return_if_fail (top >= -90.0 && top <= 90.0);
- bbox->priv->top = top;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ priv->top = top;
}
static void
geocode_bounding_box_set_bottom (GeocodeBoundingBox *bbox,
gdouble bottom)
{
+ GeocodeBoundingBoxPrivate *priv;
g_return_if_fail (bottom >= -90.0 && bottom <= 90.0);
- bbox->priv->bottom = bottom;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ priv->bottom = bottom;
}
static void
geocode_bounding_box_set_left (GeocodeBoundingBox *bbox,
gdouble left)
{
+ GeocodeBoundingBoxPrivate *priv;
g_return_if_fail (left >= -180.0 && left <= 180.0);
- bbox->priv->left = left;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ priv->left = left;
}
static void
geocode_bounding_box_set_right (GeocodeBoundingBox *bbox,
gdouble right)
{
+ GeocodeBoundingBoxPrivate *priv;
g_return_if_fail (right >= -180.0 && right <= 180.0);
- bbox->priv->right = right;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ priv->right = right;
}
static void
@@ -173,8 +182,6 @@ geocode_bounding_box_class_init (GeocodeBoundingBoxClass *klass)
gbbox_class->get_property = geocode_bounding_box_get_property;
gbbox_class->set_property = geocode_bounding_box_set_property;
- g_type_class_add_private (klass, sizeof (GeocodeBoundingBoxPrivate));
-
/**
* GeocodeBoundingBox:top:
*
@@ -244,9 +251,6 @@ geocode_bounding_box_class_init (GeocodeBoundingBoxClass *klass)
static void
geocode_bounding_box_init (GeocodeBoundingBox *bbox)
{
- bbox->priv = G_TYPE_INSTANCE_GET_PRIVATE ((bbox),
- GEOCODE_TYPE_BOUNDING_BOX,
- GeocodeBoundingBoxPrivate);
}
/**
@@ -291,13 +295,19 @@ gboolean
geocode_bounding_box_equal (GeocodeBoundingBox *a,
GeocodeBoundingBox *b)
{
+ GeocodeBoundingBoxPrivate *priv_a;
+ GeocodeBoundingBoxPrivate *priv_b;
+
g_return_val_if_fail (GEOCODE_IS_BOUNDING_BOX (a), FALSE);
g_return_val_if_fail (GEOCODE_IS_BOUNDING_BOX (b), FALSE);
- return (a->priv->top == b->priv->top &&
- a->priv->bottom == b->priv->bottom &&
- a->priv->left == b->priv->left &&
- a->priv->right == b->priv->right);
+ priv_a = geocode_bounding_box_get_instance_private (a);
+ priv_b = geocode_bounding_box_get_instance_private (b);
+
+ return (priv_a->top == priv_b->top &&
+ priv_a->bottom == priv_b->bottom &&
+ priv_a->left == priv_b->left &&
+ priv_a->right == priv_b->right);
}
/**
@@ -311,9 +321,11 @@ geocode_bounding_box_equal (GeocodeBoundingBox *a,
gdouble
geocode_bounding_box_get_top (GeocodeBoundingBox *bbox)
{
+ GeocodeBoundingBoxPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_BOUNDING_BOX (bbox), 0.0);
- return bbox->priv->top;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ return priv->top;
}
/**
@@ -327,9 +339,11 @@ geocode_bounding_box_get_top (GeocodeBoundingBox *bbox)
gdouble
geocode_bounding_box_get_bottom (GeocodeBoundingBox *bbox)
{
+ GeocodeBoundingBoxPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_BOUNDING_BOX (bbox), 0.0);
- return bbox->priv->bottom;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ return priv->bottom;
}
/**
@@ -343,9 +357,11 @@ geocode_bounding_box_get_bottom (GeocodeBoundingBox *bbox)
gdouble
geocode_bounding_box_get_left (GeocodeBoundingBox *bbox)
{
+ GeocodeBoundingBoxPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_BOUNDING_BOX (bbox), 0.0);
- return bbox->priv->left;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ return priv->left;
}
/**
@@ -359,7 +375,10 @@ geocode_bounding_box_get_left (GeocodeBoundingBox *bbox)
gdouble
geocode_bounding_box_get_right (GeocodeBoundingBox *bbox)
{
+ GeocodeBoundingBoxPrivate *priv;
+
g_return_val_if_fail (GEOCODE_IS_BOUNDING_BOX (bbox), 0.0);
- return bbox->priv->right;
+ priv = geocode_bounding_box_get_instance_private (bbox);
+ return priv->right;
}
diff --git a/geocode-glib/geocode-forward.c b/geocode-glib/geocode-forward.c
index 43ea4ad..e690c30 100644
--- a/geocode-glib/geocode-forward.c
+++ b/geocode-glib/geocode-forward.c
@@ -58,7 +58,8 @@ enum {
PROP_BOUNDED
};
-G_DEFINE_TYPE (GeocodeForward, geocode_forward, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_CODE (GeocodeForward, geocode_forward, G_TYPE_OBJECT,
+ G_ADD_PRIVATE (GeocodeForward))
static void
geocode_forward_get_property (GObject *object,
@@ -125,10 +126,12 @@ geocode_forward_set_property(GObject *object,
static void
geocode_forward_finalize (GObject *gforward)
{
+ GeocodeForwardPrivate *priv;
GeocodeForward *forward = (GeocodeForward *) gforward;
- g_clear_pointer (&forward->priv->ht, g_hash_table_unref);
- g_clear_object (&forward->priv->backend);
+ priv = geocode_forward_get_instance_private (forward);
+ g_clear_pointer (&priv->ht, g_hash_table_unref);
+ g_clear_object (&priv->backend);
G_OBJECT_CLASS (geocode_forward_parent_class)->finalize (gforward);
}
@@ -143,9 +146,6 @@ geocode_forward_class_init (GeocodeForwardClass *klass)
gforward_class->get_property = geocode_forward_get_property;
gforward_class->set_property = geocode_forward_set_property;
-
- g_type_class_add_private (klass, sizeof (GeocodeForwardPrivate));
-
/**
* GeocodeForward:answer-count:
*
@@ -203,21 +203,24 @@ free_value (GValue *value)
static void
geocode_forward_init (GeocodeForward *forward)
{
- forward->priv = G_TYPE_INSTANCE_GET_PRIVATE ((forward), GEOCODE_TYPE_FORWARD, GeocodeForwardPrivate);
- forward->priv->ht = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free,
- (GDestroyNotify) free_value);
- forward->priv->answer_count = DEFAULT_ANSWER_COUNT;
- forward->priv->search_area = NULL;
- forward->priv->bounded = FALSE;
+ GeocodeForwardPrivate *priv;
+
+ priv = geocode_forward_get_instance_private (forward);
+ priv->ht = g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free,
+ (GDestroyNotify) free_value);
+ priv->answer_count = DEFAULT_ANSWER_COUNT;
+ priv->search_area = NULL;
+ priv->bounded = FALSE;
}
static void
ensure_backend (GeocodeForward *object)
{
+ GeocodeForwardPrivate *priv = geocode_forward_get_instance_private (object);
/* If no backend is specified, default to the GNOME Nominatim backend */
- if (object->priv->backend == NULL)
- object->priv->backend = GEOCODE_BACKEND (geocode_nominatim_get_gnome ());
+ if (priv->backend == NULL)
+ priv->backend = GEOCODE_BACKEND (geocode_nominatim_get_gnome ());
}
/**
@@ -236,6 +239,7 @@ GeocodeForward *
geocode_forward_new_for_params (GHashTable *params)
{
GeocodeForward *forward;
+ GeocodeForwardPrivate *priv;
GHashTableIter iter;
const gchar *key;
const GValue *value;
@@ -250,12 +254,13 @@ geocode_forward_new_for_params (GHashTable *params)
forward = g_object_new (GEOCODE_TYPE_FORWARD, NULL);
g_hash_table_iter_init (&iter, params);
+ priv = geocode_forward_get_instance_private (forward);
while (g_hash_table_iter_next (&iter, (gpointer *) &key, (gpointer *) &value)) {
GValue *value_copy = g_new0 (GValue, 1);
g_value_init (value_copy, G_VALUE_TYPE (value));
g_value_copy (value, value_copy);
- g_hash_table_insert (forward->priv->ht, g_strdup (key), value_copy);
+ g_hash_table_insert (priv->ht, g_strdup (key), value_copy);
}
return forward;
@@ -274,6 +279,7 @@ GeocodeForward *
geocode_forward_new_for_string (const char *location)
{
GeocodeForward *forward;
+ GeocodeForwardPrivate *priv;
GValue *location_value;
g_return_val_if_fail (location != NULL, NULL);
@@ -283,7 +289,8 @@ geocode_forward_new_for_string (const char *location)
location_value = g_new0 (GValue, 1);
g_value_init (location_value, G_TYPE_STRING);
g_value_set_string (location_value, location);
- g_hash_table_insert (forward->priv->ht, g_strdup ("location"),
+ priv = geocode_forward_get_instance_private (forward);
+ g_hash_table_insert (priv->ht, g_strdup ("location"),
location_value);
return forward;
@@ -325,17 +332,19 @@ geocode_forward_search_async (GeocodeForward *forward,
GAsyncReadyCallback callback,
gpointer user_data)
{
+ GeocodeForwardPrivate *priv;
GTask *task;
g_return_if_fail (GEOCODE_IS_FORWARD (forward));
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
ensure_backend (forward);
- g_assert (forward->priv->backend != NULL);
+ priv = geocode_forward_get_instance_private (forward);
+ g_assert (priv->backend != NULL);
task = g_task_new (forward, cancellable, callback, user_data);
- geocode_backend_forward_search_async (forward->priv->backend,
- forward->priv->ht,
+ geocode_backend_forward_search_async (priv->backend,
+ priv->ht,
cancellable,
(GAsyncReadyCallback) backend_forward_search_ready,
g_object_ref (task));
@@ -386,14 +395,16 @@ GList *
geocode_forward_search (GeocodeForward *forward,
GError **error)
{
+ GeocodeForwardPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_FORWARD (forward), NULL);
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
ensure_backend (forward);
- g_assert (forward->priv->backend != NULL);
+ priv = geocode_forward_get_instance_private (forward);
+ g_assert (priv->backend != NULL);
- return geocode_backend_forward_search (forward->priv->backend,
- forward->priv->ht,
+ return geocode_backend_forward_search (priv->backend,
+ priv->ht,
NULL,
error);
}
@@ -410,18 +421,20 @@ geocode_forward_set_answer_count (GeocodeForward *forward,
guint count)
{
GValue *count_value;
+ GeocodeForwardPrivate *priv;
g_return_if_fail (GEOCODE_IS_FORWARD (forward));
g_return_if_fail (count > 0);
- forward->priv->answer_count = count;
+ priv = geocode_forward_get_instance_private (forward);
+ priv->answer_count = count;
/* Note: This key name is not defined in the Telepathy specification or
* in XEP-0080; it is custom, but standard within Geocode. */
count_value = g_new0 (GValue, 1);
g_value_init (count_value, G_TYPE_UINT);
g_value_set_uint (count_value, count);
- g_hash_table_insert (forward->priv->ht, g_strdup ("limit"),
+ g_hash_table_insert (priv->ht, g_strdup ("limit"),
count_value);
}
@@ -437,6 +450,7 @@ geocode_forward_set_search_area (GeocodeForward *forward,
GeocodeBoundingBox *bbox)
{
GValue *area_value;
+ GeocodeForwardPrivate *priv;
char *area;
char top[G_ASCII_DTOSTR_BUF_SIZE];
char left[G_ASCII_DTOSTR_BUF_SIZE];
@@ -445,7 +459,8 @@ geocode_forward_set_search_area (GeocodeForward *forward,
g_return_if_fail (GEOCODE_IS_FORWARD (forward));
- forward->priv->search_area = bbox;
+ priv = geocode_forward_get_instance_private (forward);
+ priv->search_area = bbox;
/* need to convert with g_ascii_dtostr to be locale safe */
g_ascii_dtostr (top, G_ASCII_DTOSTR_BUF_SIZE,
@@ -466,7 +481,7 @@ geocode_forward_set_search_area (GeocodeForward *forward,
area_value = g_new0 (GValue, 1);
g_value_init (area_value, G_TYPE_STRING);
g_value_take_string (area_value, area);
- g_hash_table_insert (forward->priv->ht, g_strdup ("viewbox"),
+ g_hash_table_insert (priv->ht, g_strdup ("viewbox"),
area_value);
}
@@ -484,17 +499,19 @@ geocode_forward_set_bounded (GeocodeForward *forward,
gboolean bounded)
{
GValue *bounded_value;
+ GeocodeForwardPrivate *priv;
g_return_if_fail (GEOCODE_IS_FORWARD (forward));
- forward->priv->bounded = bounded;
+ priv = geocode_forward_get_instance_private (forward);
+ priv->bounded = bounded;
/* Note: This key name is not defined in the Telepathy specification or
* in XEP-0080; it is custom, but standard within Geocode. */
bounded_value = g_new0 (GValue, 1);
g_value_init (bounded_value, G_TYPE_STRING);
g_value_set_boolean (bounded_value, bounded);
- g_hash_table_insert (forward->priv->ht, g_strdup ("bounded"),
+ g_hash_table_insert (priv->ht, g_strdup ("bounded"),
bounded_value);
}
@@ -507,9 +524,11 @@ geocode_forward_set_bounded (GeocodeForward *forward,
guint
geocode_forward_get_answer_count (GeocodeForward *forward)
{
+ GeocodeForwardPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_FORWARD (forward), 0);
- return forward->priv->answer_count;
+ priv = geocode_forward_get_instance_private (forward);
+ return priv->answer_count;
}
/**
@@ -523,9 +542,11 @@ geocode_forward_get_answer_count (GeocodeForward *forward)
GeocodeBoundingBox *
geocode_forward_get_search_area (GeocodeForward *forward)
{
+ GeocodeForwardPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_FORWARD (forward), NULL);
- return forward->priv->search_area;
+ priv = geocode_forward_get_instance_private (forward);
+ return priv->search_area;
}
/**
@@ -538,9 +559,11 @@ geocode_forward_get_search_area (GeocodeForward *forward)
gboolean
geocode_forward_get_bounded (GeocodeForward *forward)
{
+ GeocodeForwardPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_FORWARD (forward), FALSE);
- return forward->priv->bounded;
+ priv = geocode_forward_get_instance_private (forward);
+ return priv->bounded;
}
/**
@@ -559,8 +582,11 @@ void
geocode_forward_set_backend (GeocodeForward *forward,
GeocodeBackend *backend)
{
+ GeocodeForwardPrivate *priv;
+
g_return_if_fail (GEOCODE_IS_FORWARD (forward));
g_return_if_fail (backend == NULL || GEOCODE_IS_BACKEND (backend));
- g_set_object (&forward->priv->backend, backend);
+ priv = geocode_forward_get_instance_private (forward);
+ g_set_object (&priv->backend, backend);
}
diff --git a/geocode-glib/geocode-location.c b/geocode-glib/geocode-location.c
index 70a94c1..5be1711 100644
--- a/geocode-glib/geocode-location.c
+++ b/geocode-glib/geocode-location.c
@@ -60,7 +60,8 @@ enum {
PROP_CRS,
};
-G_DEFINE_TYPE (GeocodeLocation, geocode_location, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_CODE (GeocodeLocation, geocode_location, G_TYPE_OBJECT,
+ G_ADD_PRIVATE (GeocodeLocation))
static void
geocode_location_get_property (GObject *object,
@@ -138,77 +139,100 @@ gboolean
geocode_location_equal (GeocodeLocation *a,
GeocodeLocation *b)
{
+ GeocodeLocationPrivate *priv_a;
+ GeocodeLocationPrivate *priv_b;
+
g_return_val_if_fail (GEOCODE_IS_LOCATION (a), FALSE);
g_return_val_if_fail (GEOCODE_IS_LOCATION (b), FALSE);
- return (a->priv->longitude == b->priv->longitude &&
- a->priv->latitude == b->priv->latitude &&
- a->priv->altitude == b->priv->altitude &&
- a->priv->accuracy == b->priv->accuracy &&
- a->priv->timestamp == b->priv->timestamp &&
- g_strcmp0 (a->priv->description, b->priv->description) == 0 &&
- a->priv->crs == b->priv->crs);
+ priv_a = geocode_location_get_instance_private (a);
+ priv_b = geocode_location_get_instance_private (b);
+
+ return (priv_a->longitude == priv_b->longitude &&
+ priv_a->latitude == priv_b->latitude &&
+ priv_a->altitude == priv_b->altitude &&
+ priv_a->accuracy == priv_b->accuracy &&
+ priv_a->timestamp == priv_b->timestamp &&
+ g_strcmp0 (priv_a->description, priv_b->description) == 0 &&
+ priv_a->crs == priv_b->crs);
}
static void
geocode_location_set_latitude (GeocodeLocation *loc,
gdouble latitude)
{
+ GeocodeLocationPrivate *priv;
g_return_if_fail (latitude >= -90.0 && latitude <= 90.0);
- loc->priv->latitude = latitude;
+ priv = geocode_location_get_instance_private (loc);
+ priv->latitude = latitude;
}
static void
geocode_location_set_longitude (GeocodeLocation *loc,
gdouble longitude)
{
+ GeocodeLocationPrivate *priv;
g_return_if_fail (longitude >= -180.0 && longitude <= 180.0);
- loc->priv->longitude = longitude;
+ priv = geocode_location_get_instance_private (loc);
+ priv->longitude = longitude;
}
static void
geocode_location_set_altitude (GeocodeLocation *loc,
gdouble altitude)
{
- loc->priv->altitude = altitude;
+ GeocodeLocationPrivate *priv;
+
+ priv = geocode_location_get_instance_private (loc);
+ priv->altitude = altitude;
}
static void
geocode_location_set_accuracy (GeocodeLocation *loc,
gdouble accuracy)
{
+
+ GeocodeLocationPrivate *priv;
g_return_if_fail (accuracy >= GEOCODE_LOCATION_ACCURACY_UNKNOWN);
- loc->priv->accuracy = accuracy;
+ priv = geocode_location_get_instance_private (loc);
+ priv->accuracy = accuracy;
}
static void
geocode_location_set_crs(GeocodeLocation *loc,
GeocodeLocationCRS crs)
{
+ GeocodeLocationPrivate *priv;
g_return_if_fail (GEOCODE_IS_LOCATION (loc));
- loc->priv->crs = crs;
+ priv = geocode_location_get_instance_private (loc);
+ priv->crs = crs;
}
static void
geocode_location_set_timestamp (GeocodeLocation *loc,
guint64 timestamp)
{
+ GeocodeLocationPrivate *priv;
g_return_if_fail (GEOCODE_IS_LOCATION (loc));
- loc->priv->timestamp = timestamp;
+ priv = geocode_location_get_instance_private (loc);
+ priv->timestamp = timestamp;
}
static void
geocode_location_constructed (GObject *object)
{
GeocodeLocation *location = GEOCODE_LOCATION (object);
+ GeocodeLocationPrivate *priv;
GTimeVal tv;
- if (location->priv->timestamp != 0)
+ priv = geocode_location_get_instance_private (location);
+
+ if (priv->timestamp != 0)
return;
g_get_current_time (&tv);
@@ -271,13 +295,16 @@ parse_geo_uri_special_parameters (GeocodeLocation *loc,
const char *params,
GError **error)
{
+ GeocodeLocationPrivate *priv;
char *end_ptr;
char *next_token;
char *description;
char *token_end;
int description_len;
- if (loc->priv->latitude != 0 || loc->priv->longitude != 0)
+ priv = geocode_location_get_instance_private (loc);
+
+ if (priv->latitude != 0 || priv->longitude != 0)
goto err;
if (strncmp (params, "q=", 2) != 0)
@@ -285,12 +312,12 @@ parse_geo_uri_special_parameters (GeocodeLocation *loc,
next_token = ((char *)params) + 2;
- loc->priv->latitude = g_ascii_strtod (next_token, &end_ptr);
+ priv->latitude = g_ascii_strtod (next_token, &end_ptr);
if (*end_ptr != ',' || *end_ptr == *params)
goto err;
next_token = end_ptr + 1;
- loc->priv->longitude = g_ascii_strtod (next_token, &end_ptr);
+ priv->longitude = g_ascii_strtod (next_token, &end_ptr);
if (*end_ptr == *next_token)
goto err;
@@ -332,6 +359,7 @@ parse_geo_uri_parameters (GeocodeLocation *loc,
const char *params,
GError **error)
{
+ GeocodeLocationPrivate *priv;
char **parameters;
char *endptr;
char *val;
@@ -340,6 +368,7 @@ parse_geo_uri_parameters (GeocodeLocation *loc,
int i;
int ret = TRUE;
+ priv = geocode_location_get_instance_private (loc);
parameters = g_strsplit (params, ";", 256);
if (parameters[0] == NULL)
goto err;
@@ -367,7 +396,7 @@ parse_geo_uri_parameters (GeocodeLocation *loc,
if (u != NULL) {
val = u + 2; /* len of 'u=' */
- loc->priv->accuracy = g_ascii_strtod (val, &endptr);
+ priv->accuracy = g_ascii_strtod (val, &endptr);
if (*endptr != '\0' && *endptr != ';')
goto err;
}
@@ -436,11 +465,13 @@ parse_geo_uri (GeocodeLocation *loc,
const char *uri,
GError **error)
{
+ GeocodeLocationPrivate *priv;
const char *uri_part;
char *end_ptr;
char *next_token;
const char *s;
+ priv = geocode_location_get_instance_private (loc);
/* bail out if we encounter whitespace in uri */
s = uri;
while (*s) {
@@ -451,19 +482,19 @@ parse_geo_uri (GeocodeLocation *loc,
uri_part = (const char *) uri + strlen("geo") + 1;
/* g_ascii_strtod is locale safe */
- loc->priv->latitude = g_ascii_strtod (uri_part, &end_ptr);
+ priv->latitude = g_ascii_strtod (uri_part, &end_ptr);
if (*end_ptr != ',' || *end_ptr == *uri_part) {
goto err;
}
next_token = end_ptr + 1;
- loc->priv->longitude = g_ascii_strtod (next_token, &end_ptr);
+ priv->longitude = g_ascii_strtod (next_token, &end_ptr);
if (*end_ptr == *next_token) {
goto err;
}
if (*end_ptr == ',') {
next_token = end_ptr + 1;
- loc->priv->altitude = g_ascii_strtod (next_token, &end_ptr);
+ priv->altitude = g_ascii_strtod (next_token, &end_ptr);
if (*end_ptr == *next_token) {
goto err;
}
@@ -526,8 +557,10 @@ static void
geocode_location_finalize (GObject *glocation)
{
GeocodeLocation *location = (GeocodeLocation *) glocation;
+ GeocodeLocationPrivate *priv;
- g_clear_pointer (&location->priv->description, g_free);
+ priv = geocode_location_get_instance_private (location);
+ g_clear_pointer (&priv->description, g_free);
G_OBJECT_CLASS (geocode_location_parent_class)->finalize (glocation);
}
@@ -543,8 +576,6 @@ geocode_location_class_init (GeocodeLocationClass *klass)
glocation_class->set_property = geocode_location_set_property;
glocation_class->constructed = geocode_location_constructed;
- g_type_class_add_private (klass, sizeof (GeocodeLocationPrivate));
-
/**
* GeocodeLocation:description:
*
@@ -660,13 +691,12 @@ geocode_location_class_init (GeocodeLocationClass *klass)
static void
geocode_location_init (GeocodeLocation *location)
{
- location->priv = G_TYPE_INSTANCE_GET_PRIVATE ((location),
- GEOCODE_TYPE_LOCATION,
- GeocodeLocationPrivate);
+ GeocodeLocationPrivate *priv;
- location->priv->altitude = GEOCODE_LOCATION_ALTITUDE_UNKNOWN;
- location->priv->accuracy = GEOCODE_LOCATION_ACCURACY_UNKNOWN;
- location->priv->crs = GEOCODE_LOCATION_CRS_WGS84;
+ priv = geocode_location_get_instance_private (location);
+ priv->altitude = GEOCODE_LOCATION_ALTITUDE_UNKNOWN;
+ priv->accuracy = GEOCODE_LOCATION_ACCURACY_UNKNOWN;
+ priv->crs = GEOCODE_LOCATION_CRS_WGS84;
}
/**
@@ -756,10 +786,12 @@ void
geocode_location_set_description (GeocodeLocation *loc,
const char *description)
{
+ GeocodeLocationPrivate *priv;
g_return_if_fail (GEOCODE_IS_LOCATION (loc));
- g_free (loc->priv->description);
- loc->priv->description = g_strdup (description);
+ priv = geocode_location_get_instance_private (loc);
+ g_free (priv->description);
+ priv->description = g_strdup (description);
}
/**
@@ -773,9 +805,11 @@ geocode_location_set_description (GeocodeLocation *loc,
const char *
geocode_location_get_description (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc), NULL);
- return loc->priv->description;
+ priv = geocode_location_get_instance_private (loc);
+ return priv->description;
}
/**
@@ -789,9 +823,11 @@ geocode_location_get_description (GeocodeLocation *loc)
gdouble
geocode_location_get_latitude (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc), 0.0);
- return loc->priv->latitude;
+ priv = geocode_location_get_instance_private (loc);
+ return priv->latitude;
}
/**
@@ -805,9 +841,11 @@ geocode_location_get_latitude (GeocodeLocation *loc)
gdouble
geocode_location_get_longitude (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc), 0.0);
- return loc->priv->longitude;
+ priv = geocode_location_get_instance_private (loc);
+ return priv->longitude;
}
/**
@@ -821,10 +859,12 @@ geocode_location_get_longitude (GeocodeLocation *loc)
gdouble
geocode_location_get_altitude (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc),
GEOCODE_LOCATION_ALTITUDE_UNKNOWN);
- return loc->priv->altitude;
+ priv = geocode_location_get_instance_private (loc);
+ return priv->altitude;
}
/**
@@ -838,10 +878,12 @@ geocode_location_get_altitude (GeocodeLocation *loc)
gdouble
geocode_location_get_accuracy (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc),
GEOCODE_LOCATION_ACCURACY_UNKNOWN);
- return loc->priv->accuracy;
+ priv = geocode_location_get_instance_private (loc);
+ return priv->accuracy;
}
/**
@@ -855,10 +897,12 @@ geocode_location_get_accuracy (GeocodeLocation *loc)
GeocodeLocationCRS
geocode_location_get_crs (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc),
GEOCODE_LOCATION_CRS_WGS84);
- return loc->priv->crs;
+ priv = geocode_location_get_instance_private (loc);
+ return priv->crs;
}
/**
@@ -873,9 +917,11 @@ geocode_location_get_crs (GeocodeLocation *loc)
guint64
geocode_location_get_timestamp (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc), 0);
- return loc->priv->timestamp;
+ priv = geocode_location_get_instance_private (loc);
+ return priv->timestamp;
}
static gdouble
@@ -889,6 +935,7 @@ round_coord_n (gdouble coord, guint n)
static char *
geo_uri_from_location (GeocodeLocation *loc)
{
+ GeocodeLocationPrivate *priv;
guint precision = 6; /* 0.1 meter precision */
char *uri;
char *coords;
@@ -901,26 +948,27 @@ geo_uri_from_location (GeocodeLocation *loc)
g_return_val_if_fail (GEOCODE_IS_LOCATION (loc), NULL);
+ priv = geocode_location_get_instance_private (loc);
g_ascii_formatd (lat,
G_ASCII_DTOSTR_BUF_SIZE,
"%.6f",
- round_coord_n (loc->priv->latitude, precision));
+ round_coord_n (priv->latitude, precision));
g_ascii_formatd (lon,
G_ASCII_DTOSTR_BUF_SIZE,
"%.6f",
- round_coord_n (loc->priv->longitude, precision));
+ round_coord_n (priv->longitude, precision));
- if (loc->priv->altitude != GEOCODE_LOCATION_ALTITUDE_UNKNOWN) {
+ if (priv->altitude != GEOCODE_LOCATION_ALTITUDE_UNKNOWN) {
g_ascii_dtostr (alt, G_ASCII_DTOSTR_BUF_SIZE,
- loc->priv->altitude);
+ priv->altitude);
coords = g_strdup_printf ("%s,%s,%s", lat, lon, alt);
} else {
coords = g_strdup_printf ("%s,%s", lat, lon);
}
- if (loc->priv->accuracy != GEOCODE_LOCATION_ACCURACY_UNKNOWN) {
+ if (priv->accuracy != GEOCODE_LOCATION_ACCURACY_UNKNOWN) {
g_ascii_dtostr (acc, G_ASCII_DTOSTR_BUF_SIZE,
- loc->priv->accuracy);
+ priv->accuracy);
params = g_strdup_printf (";crs=%s;u=%s", crs, acc);
} else {
params = g_strdup_printf (";crs=%s", crs);
@@ -967,20 +1015,25 @@ geocode_location_to_uri (GeocodeLocation *loc,
double
geocode_location_get_distance_from (GeocodeLocation *loca,
GeocodeLocation *locb)
-{
+{
+ GeocodeLocationPrivate *priv_a;
+ GeocodeLocationPrivate *priv_b;
gdouble dlat, dlon, lat1, lat2;
gdouble a, c;
g_return_val_if_fail (GEOCODE_IS_LOCATION (loca), 0.0);
g_return_val_if_fail (GEOCODE_IS_LOCATION (locb), 0.0);
+ priv_a = geocode_location_get_instance_private (loca);
+ priv_b = geocode_location_get_instance_private (locb);
+
/* Algorithm from:
* http://www.movable-type.co.uk/scripts/latlong.html */
- dlat = (locb->priv->latitude - loca->priv->latitude) * M_PI / 180.0;
- dlon = (locb->priv->longitude - loca->priv->longitude) * M_PI / 180.0;
- lat1 = loca->priv->latitude * M_PI / 180.0;
- lat2 = locb->priv->latitude * M_PI / 180.0;
+ dlat = (priv_b->latitude - priv_a->latitude) * M_PI / 180.0;
+ dlon = (priv_b->longitude - priv_a->longitude) * M_PI / 180.0;
+ lat1 = priv_a->latitude * M_PI / 180.0;
+ lat2 = priv_b->latitude * M_PI / 180.0;
a = sin (dlat / 2) * sin (dlat / 2) +
sin (dlon / 2) * sin (dlon / 2) * cos (lat1) * cos (lat2);
diff --git a/geocode-glib/geocode-place.c b/geocode-glib/geocode-place.c
index 1d4760c..c4177c3 100644
--- a/geocode-glib/geocode-place.c
+++ b/geocode-glib/geocode-place.c
@@ -84,7 +84,8 @@ enum {
PROP_OSM_TYPE
};
-G_DEFINE_TYPE (GeocodePlace, geocode_place, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_CODE (GeocodePlace, geocode_place, G_TYPE_OBJECT,
+ G_ADD_PRIVATE (GeocodePlace))
static void
geocode_place_get_property (GObject *object,
@@ -203,18 +204,19 @@ geocode_place_set_property(GObject *object,
GParamSpec *pspec)
{
GeocodePlace *place = GEOCODE_PLACE (object);
+ GeocodePlacePrivate *priv = geocode_place_get_instance_private (place);
switch (property_id) {
case PROP_NAME:
- place->priv->name = g_value_dup_string (value);
+ priv->name = g_value_dup_string (value);
break;
case PROP_PLACE_TYPE:
- place->priv->place_type = g_value_get_enum (value);
+ priv->place_type = g_value_get_enum (value);
break;
case PROP_LOCATION:
- place->priv->location = g_value_dup_object (value);
+ priv->location = g_value_dup_object (value);
break;
case PROP_STREET_ADDRESS:
@@ -271,15 +273,15 @@ geocode_place_set_property(GObject *object,
break;
case PROP_BBOX:
- place->priv->bbox = g_value_dup_object (value);
+ priv->bbox = g_value_dup_object (value);
break;
case PROP_OSM_ID:
- place->priv->osm_id = g_value_dup_string (value);
+ priv->osm_id = g_value_dup_string (value);
break;
case PROP_OSM_TYPE:
- place->priv->osm_type = g_value_get_enum (value);
+ priv->osm_type = g_value_get_enum (value);
break;
default:
@@ -292,24 +294,25 @@ static void
geocode_place_dispose (GObject *gplace)
{
GeocodePlace *place = (GeocodePlace *) gplace;
-
- g_clear_object (&place->priv->location);
- g_clear_object (&place->priv->bbox);
-
- g_clear_pointer (&place->priv->name, g_free);
- g_clear_pointer (&place->priv->osm_id, g_free);
- g_clear_pointer (&place->priv->street_address, g_free);
- g_clear_pointer (&place->priv->street, g_free);
- g_clear_pointer (&place->priv->building, g_free);
- g_clear_pointer (&place->priv->postal_code, g_free);
- g_clear_pointer (&place->priv->area, g_free);
- g_clear_pointer (&place->priv->town, g_free);
- g_clear_pointer (&place->priv->county, g_free);
- g_clear_pointer (&place->priv->state, g_free);
- g_clear_pointer (&place->priv->admin_area, g_free);
- g_clear_pointer (&place->priv->country_code, g_free);
- g_clear_pointer (&place->priv->country, g_free);
- g_clear_pointer (&place->priv->continent, g_free);
+ GeocodePlacePrivate *priv = geocode_place_get_instance_private (place);
+
+ g_clear_object (&priv->location);
+ g_clear_object (&priv->bbox);
+
+ g_clear_pointer (&priv->name, g_free);
+ g_clear_pointer (&priv->osm_id, g_free);
+ g_clear_pointer (&priv->street_address, g_free);
+ g_clear_pointer (&priv->street, g_free);
+ g_clear_pointer (&priv->building, g_free);
+ g_clear_pointer (&priv->postal_code, g_free);
+ g_clear_pointer (&priv->area, g_free);
+ g_clear_pointer (&priv->town, g_free);
+ g_clear_pointer (&priv->county, g_free);
+ g_clear_pointer (&priv->state, g_free);
+ g_clear_pointer (&priv->admin_area, g_free);
+ g_clear_pointer (&priv->country_code, g_free);
+ g_clear_pointer (&priv->country, g_free);
+ g_clear_pointer (&priv->continent, g_free);
G_OBJECT_CLASS (geocode_place_parent_class)->dispose (gplace);
}
@@ -324,8 +327,6 @@ geocode_place_class_init (GeocodePlaceClass *klass)
gplace_class->get_property = geocode_place_get_property;
gplace_class->set_property = geocode_place_set_property;
- g_type_class_add_private (klass, sizeof (GeocodePlacePrivate));
-
/**
* GeocodePlace:name:
*
@@ -580,11 +581,9 @@ geocode_place_class_init (GeocodePlaceClass *klass)
static void
geocode_place_init (GeocodePlace *place)
{
- place->priv = G_TYPE_INSTANCE_GET_PRIVATE ((place),
- GEOCODE_TYPE_PLACE,
- GeocodePlacePrivate);
- place->priv->bbox = NULL;
- place->priv->osm_type = GEOCODE_PLACE_OSM_TYPE_UNKNOWN;
+ GeocodePlacePrivate *priv = geocode_place_get_instance_private (place);
+ priv->bbox = NULL;
+ priv->osm_type = GEOCODE_PLACE_OSM_TYPE_UNKNOWN;
}
/**
@@ -666,27 +665,32 @@ gboolean
geocode_place_equal (GeocodePlace *a,
GeocodePlace *b)
{
+ GeocodePlacePrivate *priv_a;
+ GeocodePlacePrivate *priv_b;
g_return_val_if_fail (GEOCODE_IS_PLACE (a), FALSE);
g_return_val_if_fail (GEOCODE_IS_PLACE (b), FALSE);
- return (g_strcmp0 (a->priv->name, b->priv->name) == 0 &&
- a->priv->place_type == b->priv->place_type &&
- location_equal0 (a->priv->location, b->priv->location) &&
- bbox_equal0 (a->priv->bbox, b->priv->bbox) &&
- g_strcmp0 (a->priv->street_address, b->priv->street_address) == 0 &&
- g_strcmp0 (a->priv->street, b->priv->street) == 0 &&
- g_strcmp0 (a->priv->building, b->priv->building) == 0 &&
- g_strcmp0 (a->priv->postal_code, b->priv->postal_code) == 0 &&
- g_strcmp0 (a->priv->area, b->priv->area) == 0 &&
- g_strcmp0 (a->priv->town, b->priv->town) == 0 &&
- g_strcmp0 (a->priv->county, b->priv->county) == 0 &&
- g_strcmp0 (a->priv->state, b->priv->state) == 0 &&
- g_strcmp0 (a->priv->admin_area, b->priv->admin_area) == 0 &&
- g_strcmp0 (a->priv->country_code, b->priv->country_code) == 0 &&
- g_strcmp0 (a->priv->country, b->priv->country) == 0 &&
- g_strcmp0 (a->priv->continent, b->priv->continent) == 0 &&
- g_strcmp0 (a->priv->osm_id, b->priv->osm_id) == 0 &&
- a->priv->osm_type == b->priv->osm_type);
+ priv_a = geocode_place_get_instance_private (a);
+ priv_b = geocode_place_get_instance_private (b);
+
+ return (g_strcmp0 (priv_a->name, priv_b->name) == 0 &&
+ priv_a->place_type == priv_b->place_type &&
+ location_equal0 (priv_a->location, priv_b->location) &&
+ bbox_equal0 (priv_a->bbox, priv_b->bbox) &&
+ g_strcmp0 (priv_a->street_address, priv_b->street_address) == 0 &&
+ g_strcmp0 (priv_a->street, priv_b->street) == 0 &&
+ g_strcmp0 (priv_a->building, priv_b->building) == 0 &&
+ g_strcmp0 (priv_a->postal_code, priv_b->postal_code) == 0 &&
+ g_strcmp0 (priv_a->area, priv_b->area) == 0 &&
+ g_strcmp0 (priv_a->town, priv_b->town) == 0 &&
+ g_strcmp0 (priv_a->county, priv_b->county) == 0 &&
+ g_strcmp0 (priv_a->state, priv_b->state) == 0 &&
+ g_strcmp0 (priv_a->admin_area, priv_b->admin_area) == 0 &&
+ g_strcmp0 (priv_a->country_code, priv_b->country_code) == 0 &&
+ g_strcmp0 (priv_a->country, priv_b->country) == 0 &&
+ g_strcmp0 (priv_a->continent, priv_b->continent) == 0 &&
+ g_strcmp0 (priv_a->osm_id, priv_b->osm_id) == 0 &&
+ priv_a->osm_type == priv_b->osm_type);
}
/**
@@ -700,11 +704,13 @@ void
geocode_place_set_name (GeocodePlace *place,
const char *name)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (name != NULL);
- g_free (place->priv->name);
- place->priv->name = g_strdup (name);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->name);
+ priv->name = g_strdup (name);
}
/**
@@ -718,9 +724,11 @@ geocode_place_set_name (GeocodePlace *place,
const char *
geocode_place_get_name (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->name;
+ priv = geocode_place_get_instance_private (place);
+ return priv->name;
}
@@ -735,10 +743,12 @@ geocode_place_get_name (GeocodePlace *place)
GeocodePlaceType
geocode_place_get_place_type (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place),
GEOCODE_PLACE_TYPE_UNKNOWN);
- return place->priv->place_type;
+ priv = geocode_place_get_instance_private (place);
+ return priv->place_type;
}
/**
@@ -752,11 +762,13 @@ void
geocode_place_set_location (GeocodePlace *place,
GeocodeLocation *location)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (GEOCODE_IS_LOCATION (location));
- g_clear_object (&place->priv->location);
- place->priv->location = g_object_ref (location);
+ priv = geocode_place_get_instance_private (place);
+ g_clear_object (&priv->location);
+ priv->location = g_object_ref (location);
}
/**
@@ -770,9 +782,11 @@ geocode_place_set_location (GeocodePlace *place,
GeocodeLocation *
geocode_place_get_location (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->location;
+ priv = geocode_place_get_instance_private (place);
+ return priv->location;
}
/**
@@ -786,11 +800,14 @@ void
geocode_place_set_street_address (GeocodePlace *place,
const char *street_address)
{
+ GeocodePlacePrivate *priv;
+
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (street_address != NULL);
- g_free (place->priv->street_address);
- place->priv->street_address = g_strdup (street_address);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->street_address);
+ priv->street_address = g_strdup (street_address);
}
/**
@@ -804,9 +821,11 @@ geocode_place_set_street_address (GeocodePlace *place,
const char *
geocode_place_get_street_address (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->street_address;
+ priv = geocode_place_get_instance_private (place);
+ return priv->street_address;
}
/**
@@ -820,11 +839,14 @@ void
geocode_place_set_street (GeocodePlace *place,
const char *street)
{
+ GeocodePlacePrivate *priv;
+
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (street != NULL);
- g_free (place->priv->street);
- place->priv->street = g_strdup (street);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->street);
+ priv->street = g_strdup (street);
}
/**
@@ -838,9 +860,11 @@ geocode_place_set_street (GeocodePlace *place,
const char *
geocode_place_get_street (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->street;
+ priv = geocode_place_get_instance_private (place);
+ return priv->street;
}
/**
@@ -854,11 +878,13 @@ void
geocode_place_set_building (GeocodePlace *place,
const char *building)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (building != NULL);
- g_free (place->priv->building);
- place->priv->building = g_strdup (building);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->building);
+ priv->building = g_strdup (building);
}
/**
@@ -872,9 +898,11 @@ geocode_place_set_building (GeocodePlace *place,
const char *
geocode_place_get_building (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->building;
+ priv = geocode_place_get_instance_private (place);
+ return priv->building;
}
/**
@@ -888,11 +916,13 @@ void
geocode_place_set_postal_code (GeocodePlace *place,
const char *postal_code)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (postal_code != NULL);
- g_free (place->priv->postal_code);
- place->priv->postal_code = g_strdup (postal_code);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->postal_code);
+ priv->postal_code = g_strdup (postal_code);
}
/**
@@ -906,9 +936,11 @@ geocode_place_set_postal_code (GeocodePlace *place,
const char *
geocode_place_get_postal_code (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->postal_code;
+ priv = geocode_place_get_instance_private (place);
+ return priv->postal_code;
}
/**
@@ -922,11 +954,13 @@ void
geocode_place_set_area (GeocodePlace *place,
const char *area)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (area != NULL);
- g_free (place->priv->area);
- place->priv->area = g_strdup (area);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->area);
+ priv->area = g_strdup (area);
}
/**
@@ -940,9 +974,11 @@ geocode_place_set_area (GeocodePlace *place,
const char *
geocode_place_get_area (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->area;
+ priv = geocode_place_get_instance_private (place);
+ return priv->area;
}
/**
@@ -956,11 +992,14 @@ void
geocode_place_set_town (GeocodePlace *place,
const char *town)
{
+ GeocodePlacePrivate *priv;
+
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (town != NULL);
- g_free (place->priv->town);
- place->priv->town = g_strdup (town);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->town);
+ priv->town = g_strdup (town);
}
/**
@@ -974,9 +1013,11 @@ geocode_place_set_town (GeocodePlace *place,
const char *
geocode_place_get_town (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->town;
+ priv = geocode_place_get_instance_private (place);
+ return priv->town;
}
/**
@@ -990,11 +1031,13 @@ void
geocode_place_set_county (GeocodePlace *place,
const char *county)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (county != NULL);
- g_free (place->priv->county);
- place->priv->county = g_strdup (county);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->county);
+ priv->county = g_strdup (county);
}
/**
@@ -1008,9 +1051,11 @@ geocode_place_set_county (GeocodePlace *place,
const char *
geocode_place_get_county (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->county;
+ priv = geocode_place_get_instance_private (place);
+ return priv->county;
}
/**
@@ -1024,11 +1069,13 @@ void
geocode_place_set_state (GeocodePlace *place,
const char *state)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (state != NULL);
- g_free (place->priv->state);
- place->priv->state = g_strdup (state);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->state);
+ priv->state = g_strdup (state);
}
/**
@@ -1042,9 +1089,11 @@ geocode_place_set_state (GeocodePlace *place,
const char *
geocode_place_get_state (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->state;
+ priv = geocode_place_get_instance_private (place);
+ return priv->state;
}
/**
@@ -1058,11 +1107,13 @@ void
geocode_place_set_administrative_area (GeocodePlace *place,
const char *admin_area)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (admin_area != NULL);
- g_free (place->priv->admin_area);
- place->priv->admin_area = g_strdup (admin_area);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->admin_area);
+ priv->admin_area = g_strdup (admin_area);
}
/**
@@ -1076,9 +1127,11 @@ geocode_place_set_administrative_area (GeocodePlace *place,
const char *
geocode_place_get_administrative_area (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->admin_area;
+ priv = geocode_place_get_instance_private (place);
+ return priv->admin_area;
}
/**
@@ -1092,11 +1145,13 @@ void
geocode_place_set_country_code (GeocodePlace *place,
const char *country_code)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (country_code != NULL);
- g_free (place->priv->country_code);
- place->priv->country_code = g_utf8_strup (country_code, -1);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->country_code);
+ priv->country_code = g_utf8_strup (country_code, -1);
}
/**
@@ -1109,10 +1164,12 @@ geocode_place_set_country_code (GeocodePlace *place,
**/
const char *
geocode_place_get_country_code (GeocodePlace *place)
-{
+{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->country_code;
+ priv = geocode_place_get_instance_private (place);
+ return priv->country_code;
}
/**
@@ -1126,11 +1183,13 @@ void
geocode_place_set_country (GeocodePlace *place,
const char *country)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (country != NULL);
- g_free (place->priv->country);
- place->priv->country = g_strdup (country);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->country);
+ priv->country = g_strdup (country);
}
/**
@@ -1144,9 +1203,11 @@ geocode_place_set_country (GeocodePlace *place,
const char *
geocode_place_get_country (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->country;
+ priv = geocode_place_get_instance_private (place);
+ return priv->country;
}
/**
@@ -1160,11 +1221,13 @@ void
geocode_place_set_continent (GeocodePlace *place,
const char *continent)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (continent != NULL);
- g_free (place->priv->continent);
- place->priv->continent = g_strdup (continent);
+ priv = geocode_place_get_instance_private (place);
+ g_free (priv->continent);
+ priv->continent = g_strdup (continent);
}
/**
@@ -1178,15 +1241,18 @@ geocode_place_set_continent (GeocodePlace *place,
const char *
geocode_place_get_continent (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->continent;
+ priv = geocode_place_get_instance_private (place);
+ return priv->continent;
}
static const char *
get_icon_name (GeocodePlace *place)
{
- switch ((int) place->priv->place_type) {
+ GeocodePlacePrivate *priv = geocode_place_get_instance_private (place);
+ switch ((int) priv->place_type) {
case GEOCODE_PLACE_TYPE_BUILDING:
return "poi-building";
@@ -1257,9 +1323,11 @@ geocode_place_get_icon (GeocodePlace *place)
GeocodeBoundingBox *
geocode_place_get_bounding_box (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->bbox;
+ priv = geocode_place_get_instance_private (place);
+ return priv->bbox;
}
/**
@@ -1274,11 +1342,13 @@ void
geocode_place_set_bounding_box (GeocodePlace *place,
GeocodeBoundingBox *bbox)
{
+ GeocodePlacePrivate *priv;
g_return_if_fail (GEOCODE_IS_PLACE (place));
g_return_if_fail (GEOCODE_IS_BOUNDING_BOX (bbox));
- g_clear_object (&place->priv->bbox);
- place->priv->bbox = g_object_ref (bbox);
+ priv = geocode_place_get_instance_private (place);
+ g_clear_object (&priv->bbox);
+ priv->bbox = g_object_ref (bbox);
}
/**
@@ -1292,9 +1362,11 @@ geocode_place_set_bounding_box (GeocodePlace *place,
const char *
geocode_place_get_osm_id (GeocodePlace *place)
{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), NULL);
- return place->priv->osm_id;
+ priv = geocode_place_get_instance_private (place);
+ return priv->osm_id;
}
/**
@@ -1307,8 +1379,10 @@ geocode_place_get_osm_id (GeocodePlace *place)
**/
GeocodePlaceOsmType
geocode_place_get_osm_type (GeocodePlace *place)
-{
+{
+ GeocodePlacePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_PLACE (place), GEOCODE_PLACE_OSM_TYPE_UNKNOWN);
- return place->priv->osm_type;
+ priv = geocode_place_get_instance_private (place);
+ return priv->osm_type;
}
diff --git a/geocode-glib/geocode-reverse.c b/geocode-glib/geocode-reverse.c
index 4bfe0ea..29cf733 100644
--- a/geocode-glib/geocode-reverse.c
+++ b/geocode-glib/geocode-reverse.c
@@ -47,15 +47,19 @@ struct _GeocodeReversePrivate {
GeocodeBackend *backend;
};
-G_DEFINE_TYPE (GeocodeReverse, geocode_reverse, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_CODE (GeocodeReverse, geocode_reverse, G_TYPE_OBJECT,
+ G_ADD_PRIVATE (GeocodeReverse))
static void
geocode_reverse_finalize (GObject *gobject)
{
GeocodeReverse *object = (GeocodeReverse *) gobject;
+ GeocodeReversePrivate *priv;
- g_clear_object (&object->priv->location);
- g_clear_object (&object->priv->backend);
+ priv = geocode_reverse_get_instance_private (object);
+
+ g_clear_object (&priv->location);
+ g_clear_object (&priv->backend);
G_OBJECT_CLASS (geocode_reverse_parent_class)->finalize (gobject);
}
@@ -69,14 +73,11 @@ geocode_reverse_class_init (GeocodeReverseClass *klass)
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
gobject_class->finalize = geocode_reverse_finalize;
-
- g_type_class_add_private (klass, sizeof (GeocodeReversePrivate));
}
static void
geocode_reverse_init (GeocodeReverse *object)
{
- object->priv = G_TYPE_INSTANCE_GET_PRIVATE ((object), GEOCODE_TYPE_REVERSE, GeocodeReversePrivate);
}
/**
@@ -92,11 +93,13 @@ GeocodeReverse *
geocode_reverse_new_for_location (GeocodeLocation *location)
{
GeocodeReverse *object;
+ GeocodeReversePrivate *priv;
g_return_val_if_fail (GEOCODE_IS_LOCATION (location), NULL);
object = g_object_new (GEOCODE_TYPE_REVERSE, NULL);
- object->priv->location = g_object_ref (location);
+ priv = geocode_reverse_get_instance_private (object);
+ priv->location = g_object_ref (location);
return object;
}
@@ -104,9 +107,12 @@ geocode_reverse_new_for_location (GeocodeLocation *location)
static void
ensure_backend (GeocodeReverse *object)
{
+ GeocodeReversePrivate *priv;
+
+ priv = geocode_reverse_get_instance_private (object);
/* If no backend is specified, default to the GNOME Nominatim backend */
- if (object->priv->backend == NULL)
- object->priv->backend = GEOCODE_BACKEND (geocode_nominatim_get_gnome ());
+ if (priv->backend == NULL)
+ priv->backend = GEOCODE_BACKEND (geocode_nominatim_get_gnome ());
}
static GValue *
@@ -190,18 +196,20 @@ geocode_reverse_resolve_async (GeocodeReverse *object,
gpointer user_data)
{
GTask *task;
+ GeocodeReversePrivate *priv;
g_autoptr (GHashTable) params = NULL;
g_return_if_fail (GEOCODE_IS_REVERSE (object));
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
ensure_backend (object);
- g_assert (object->priv->backend != NULL);
+ priv = geocode_reverse_get_instance_private (object);
+ g_assert (priv->backend != NULL);
- params = _geocode_location_to_params (object->priv->location);
+ params = _geocode_location_to_params (priv->location);
task = g_task_new (object, cancellable, callback, user_data);
- geocode_backend_reverse_resolve_async (object->priv->backend,
+ geocode_backend_reverse_resolve_async (priv->backend,
params,
cancellable,
(GAsyncReadyCallback) backend_reverse_resolve_ready,
@@ -253,6 +261,7 @@ GeocodePlace *
geocode_reverse_resolve (GeocodeReverse *object,
GError **error)
{
+ GeocodeReversePrivate *priv;
GList *places = NULL; /* (element-type GeocodePlace) */
GeocodePlace *place = NULL;
g_autoptr (GHashTable) params = NULL;
@@ -260,11 +269,12 @@ geocode_reverse_resolve (GeocodeReverse *object,
g_return_val_if_fail (GEOCODE_IS_REVERSE (object), NULL);
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+ priv = geocode_reverse_get_instance_private (object);
ensure_backend (object);
- g_assert (object->priv->backend != NULL);
+ g_assert (priv->backend != NULL);
- params = _geocode_location_to_params (object->priv->location);
- places = geocode_backend_reverse_resolve (object->priv->backend,
+ params = _geocode_location_to_params (priv->location);
+ places = geocode_backend_reverse_resolve (priv->backend,
params,
NULL,
error);
@@ -292,8 +302,12 @@ void
geocode_reverse_set_backend (GeocodeReverse *object,
GeocodeBackend *backend)
{
+ GeocodeReversePrivate *priv;
+
g_return_if_fail (GEOCODE_IS_REVERSE (object));
g_return_if_fail (backend == NULL || GEOCODE_IS_BACKEND (backend));
- g_set_object (&object->priv->backend, backend);
+ priv = geocode_reverse_get_instance_private (object);
+
+ g_set_object (&priv->backend, backend);
}