]> git.itanic.dy.fi Git - maemo-mapper/commitdiff
Fixed a silly little seg fault on startup.
authorgnuite <gnuite@gmail.com>
Tue, 10 Mar 2009 05:05:36 +0000 (05:05 +0000)
committergnuite <gnuite@gmail.com>
Tue, 10 Mar 2009 05:05:36 +0000 (05:05 +0000)
git-svn-id: svn+ssh://garage/var/lib/gforge/svnroot/maemo-mapper/trunk@255 6c538b50-5814-0410-93ad-8bdf4c0149d1

src/maps.c
src/maps.h
src/settings.c

index 48e5a0bdb6aa33e27388d0579c0542c2656dd475..c08ec15593695ac1b1bb309b82a18b36bdfec770 100644 (file)
@@ -3799,6 +3799,30 @@ map_layer_refresh_cb (gpointer data)
     return TRUE;
 }
 
+RepoData*
+create_default_repo()
+{
+    /* We have no repositories - create a default one. */
+    RepoData *repo = g_new0(RepoData, 1);
+
+    repo->db_filename = gnome_vfs_expand_initial_tilde(
+            REPO_DEFAULT_CACHE_DIR);
+    repo->url=g_strdup(REPO_DEFAULT_MAP_URI);
+    repo->dl_zoom_steps = REPO_DEFAULT_DL_ZOOM_STEPS;
+    repo->name = g_strdup(REPO_DEFAULT_NAME);
+    repo->view_zoom_steps = REPO_DEFAULT_VIEW_ZOOM_STEPS;
+    repo->double_size = FALSE;
+    repo->nextable = TRUE;
+    repo->min_zoom = REPO_DEFAULT_MIN_ZOOM;
+    repo->max_zoom = REPO_DEFAULT_MAX_ZOOM;
+    repo->layers = NULL;
+    repo->layer_level = 0;
+    repo->is_sqlite = TRUE;
+    set_repo_type(repo);
+
+    return repo;
+}
+
 void
 maps_init(gint map_cache_size)
 {
@@ -3806,30 +3830,6 @@ maps_init(gint map_cache_size)
 
     map_cache_init(map_cache_size);
 
-    if(_repo_list == NULL)
-    {
-        /* We have no repositories - create a default one. */
-        RepoData *repo = g_new0(RepoData, 1);
-
-        repo->db_filename = gnome_vfs_expand_initial_tilde(
-                REPO_DEFAULT_CACHE_DIR);
-        repo->url=g_strdup(REPO_DEFAULT_MAP_URI);
-        repo->dl_zoom_steps = REPO_DEFAULT_DL_ZOOM_STEPS;
-        repo->name = g_strdup(REPO_DEFAULT_NAME);
-        repo->view_zoom_steps = REPO_DEFAULT_VIEW_ZOOM_STEPS;
-        repo->double_size = FALSE;
-        repo->nextable = TRUE;
-        repo->min_zoom = REPO_DEFAULT_MIN_ZOOM;
-        repo->max_zoom = REPO_DEFAULT_MAX_ZOOM;
-        repo->layers = NULL;
-        repo->layer_level = 0;
-        repo->is_sqlite = TRUE;
-        set_repo_type(repo);
-
-        _repo_list = g_list_append(_repo_list, repo);
-        repo_set_curr(repo);
-    }
-
     /* this timer decrements layers' counters, clears layer databases, and
      * frefresh map if needed */
     g_timeout_add (60 * 1000, map_layer_refresh_cb, NULL);
index 5af0103a4df06ca713755783d867b8db3b755b09..2bf0ef9354881aaf1e67d3baec36f72ff892541e 100644 (file)
@@ -30,6 +30,8 @@ void map_cache_clean (void);
 void maps_init();
 void maps_destroy();
 
+RepoData *create_default_repo();
+
 gboolean mapdb_exists(RepoData *repo, gint zoom, gint tilex, gint tiley);
 GdkPixbuf* mapdb_get(RepoData *repo, gint zoom, gint tilex, gint tiley);
 
index 11a2346348a4c622a6f97e7f2217e4b977836937..a35272c8cd80001690fbe028097ea14f56ca07c7 100644 (file)
@@ -2611,6 +2611,13 @@ settings_init()
             repo_set_curr(curr_repo);
     }
 
+    if(_repo_list == NULL)
+    {
+        RepoData *repo = create_default_repo();
+        _repo_list = g_list_append(_repo_list, repo);
+        repo_set_curr(repo);
+    }
+
     /* Get last Zoom Level.  Default is 16. */
     value = gconf_client_get(gconf_client, GCONF_KEY_ZOOM, NULL);
     if(value)