diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-02-08 10:14:46 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-02-08 10:14:46 +0000 |
commit | 2a1c6fc96ff03c84723ca1fb7d3a48e0cd3df115 (patch) | |
tree | dd4eec987c7dcb2b7f0c361831c697c95901f4c9 /src/trg-peers-model.c | |
parent | 3938a1340d62d6e207b117e0bc84ddb4f62cf6c8 (diff) |
if the torrent selection changes as a result of an update, was possible that it would select another item which has no JSON but isn't removed from the model yet. use updateSerial and updateMutex to ignore these.
Diffstat (limited to 'src/trg-peers-model.c')
-rw-r--r-- | src/trg-peers-model.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/trg-peers-model.c b/src/trg-peers-model.c index 9119678..d2e0191 100644 --- a/src/trg-peers-model.c +++ b/src/trg-peers-model.c @@ -43,16 +43,18 @@ G_DEFINE_TYPE(TrgPeersModel, trg_peers_model, GTK_TYPE_LIST_STORE) typedef struct _TrgPeersModelPrivate TrgPeersModelPrivate; -struct _TrgPeersModelPrivate { #ifdef HAVE_GEOIP +struct _TrgPeersModelPrivate { GeoIP *geoip; -#endif }; +#endif static void trg_peers_model_class_init(TrgPeersModelClass * klass G_GNUC_UNUSED) { +#ifdef HAVE_GEOIP g_type_class_add_private (klass, sizeof (TrgPeersModelPrivate)); +#endif } gboolean @@ -126,7 +128,9 @@ static void resolved_dns_cb(GObject * source_object, void trg_peers_model_update(TrgPeersModel * model, gint64 updateSerial, JsonObject * t, gboolean first) { +#ifdef HAVE_GEOIP TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(model); +#endif JsonArray *peers; GtkTreeIter peerIter; @@ -141,7 +145,7 @@ void trg_peers_model_update(TrgPeersModel * model, gint64 updateSerial, for (j = 0; j < json_array_get_length(peers); j++) { JsonObject *peer; const gchar *address=NULL, *flagStr; -#if HAVE_GEOIP +#ifdef HAVE_GEOIP const gchar *country = NULL; #endif peer = json_node_get_object(json_array_get_element(peers, j)); @@ -151,7 +155,7 @@ void trg_peers_model_update(TrgPeersModel * model, gint64 updateSerial, gtk_list_store_append(GTK_LIST_STORE(model), &peerIter); address = peer_get_address(peer); -#if HAVE_GEOIP +#ifdef HAVE_GEOIP if (priv->geoip != NULL) country = GeoIP_country_name_by_addr(priv->geoip, address); #endif @@ -210,7 +214,9 @@ void trg_peers_model_update(TrgPeersModel * model, gint64 updateSerial, static void trg_peers_model_init(TrgPeersModel * self) { - TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(self); +#ifdef HAVE_GEOIP + TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(self); +#endif GType column_types[PEERSCOL_COLUMNS]; |