diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/yelp-db-pager.c | 7 | ||||
-rw-r--r-- | src/yelp-toc-pager.c | 10 | ||||
-rw-r--r-- | src/yelp-window.c | 2 | ||||
-rw-r--r-- | src/yelp-xslt-pager.c | 14 |
5 files changed, 29 insertions, 12 deletions
@@ -1,3 +1,11 @@ +2005-08-19 Shaun McCance <shaunm@gnome.org> + + * src/yelp-db-pager.c: + * src/yelp-toc-pager.c: + * src/yelp-window.c: + * src/yelp-xslt-pager.c: + - Patch from Don Scorgie to fix crash, #172227 + 2005-07-25 Ross Burton <ross@burtonini.com> * src/yelp-db-pager.c: diff --git a/src/yelp-db-pager.c b/src/yelp-db-pager.c index 7798dc50..fa044791 100644 --- a/src/yelp-db-pager.c +++ b/src/yelp-db-pager.c @@ -277,10 +277,13 @@ db_pager_parse (YelpPager *pager) walker_walk_xml (walker); done: - xsltFreeStylesheet (walker->titleStylesheet); + if (walker) { + if (walker->titleStylesheet) + xsltFreeStylesheet (walker->titleStylesheet); + g_free (walker); + } g_free (filename); - g_free (walker); if (parserCtxt) xmlFreeParserCtxt (parserCtxt); diff --git a/src/yelp-toc-pager.c b/src/yelp-toc-pager.c index 4e1aced5..711298ae 100644 --- a/src/yelp-toc-pager.c +++ b/src/yelp-toc-pager.c @@ -871,7 +871,7 @@ process_xslt (YelpTocPager *pager) GError *error = NULL; xmlDocPtr outdoc; YelpTocPagerPriv *priv = pager->priv; - gchar **params; + gchar **params = NULL; gint params_i = 0; gint params_max = 10; GtkIconInfo *info; @@ -925,9 +925,11 @@ process_xslt (YelpTocPager *pager) g_signal_emit_by_name (pager, "finish"); done: - for (params_i = 0; params[params_i] != NULL; params_i++) - if (params_i % 2 == 1) - g_free ((gchar *) params[params_i]); + if (params) { + for (params_i = 0; params[params_i] != NULL; params_i++) + if (params_i % 2 == 1) + g_free ((gchar *) params[params_i]); + } if (outdoc) xmlFreeDoc (outdoc); if (priv->toc_doc) { diff --git a/src/yelp-window.c b/src/yelp-window.c index 4e672303..9783b4a4 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -584,6 +584,8 @@ history_step_back (YelpWindow *window) priv->current_doc = yelp_doc_info_ref (entry->doc_info); priv->current_frag = g_strdup (entry->frag_id); history_entry_free (entry); + } else { + yelp_window_load (window, "x-yelp-toc:"); } } diff --git a/src/yelp-xslt-pager.c b/src/yelp-xslt-pager.c index b6e5475a..01eac790 100644 --- a/src/yelp-xslt-pager.c +++ b/src/yelp-xslt-pager.c @@ -161,9 +161,9 @@ xslt_pager_process (YelpPager *pager) YelpXsltPagerClass *klass; YelpDocInfo *doc_info; - gchar *filename; + gchar *filename = NULL; - gchar **params; + gchar **params = NULL; gint params_i = 0; GError *error = NULL; @@ -257,10 +257,12 @@ xslt_pager_process (YelpPager *pager) g_signal_emit_by_name (pager, "finish"); done: - for (params_i = 0; params[params_i] != NULL; params_i++) - if (params_i % 2 == 1) - g_free (params[params_i]); - g_free (params); + if (params) { + for (params_i = 0; params[params_i] != NULL; params_i++) + if (params_i % 2 == 1) + g_free (params[params_i]); + g_free (params); + } g_free (filename); if (priv->inputDoc) { |