Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-02-07 21:51:28 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-02-07 21:51:28 (GMT)
commiteaa64d066e4b4e7e85d5045e5cb16ab2c19716f9 (patch)
treea9d1ba4c8e6c4924bb6c1e4e151926d175a431ba
parent5a6c7a5d16f693a626f8d4dfb7b39e541031d965 (diff)
Some cleanups, stop the interpreter on finalize
2005-02-07 Marco Pesenti Gritti <marco@gnome.org> * ps/ps-document.c: (ps_document_finalize), (ps_document_get_n_pages), (ps_document_get_page): Some cleanups, stop the interpreter on finalize * shell/ev-page-view.c: (ev_page_view_dispose), (ev_page_view_class_init): Release our reference on the document
-rw-r--r--ChangeLog12
-rw-r--r--ps/ps-document.c66
-rw-r--r--shell/ev-page-view.c15
3 files changed, 55 insertions, 38 deletions
diff --git a/ChangeLog b/ChangeLog
index f789a60..ab79810 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2005-02-07 Marco Pesenti Gritti <marco@gnome.org>
+ * ps/ps-document.c: (ps_document_finalize),
+ (ps_document_get_n_pages), (ps_document_get_page):
+
+ Some cleanups, stop the interpreter on finalize
+
+ * shell/ev-page-view.c: (ev_page_view_dispose),
+ (ev_page_view_class_init):
+
+ Release our reference on the document
+
+2005-02-07 Marco Pesenti Gritti <marco@gnome.org>
+
* Makefile.am:
* configure.ac:
* doc/debugging.txt:
diff --git a/ps/ps-document.c b/ps/ps-document.c
index 0e4f369..c7263bc 100644
--- a/ps/ps-document.c
+++ b/ps/ps-document.c
@@ -389,23 +389,26 @@ ps_document_cleanup(PSDocument * gs)
}
static void
-ps_document_finalize(GObject * object)
+ps_document_finalize (GObject * object)
{
- PSDocument *gs;
+ PSDocument *gs;
- g_return_if_fail(object != NULL);
- g_return_if_fail(GTK_IS_GS(object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GTK_IS_GS (object));
- gs = PS_DOCUMENT(object);
+ LOG ("Finalize")
- ps_document_cleanup(gs);
+ gs = PS_DOCUMENT (object);
- if(gs->input_buffer) {
- g_free(gs->input_buffer);
- gs->input_buffer = NULL;
- }
+ ps_document_cleanup (gs);
+ stop_interpreter (gs);
+
+ if(gs->input_buffer) {
+ g_free(gs->input_buffer);
+ gs->input_buffer = NULL;
+ }
- (*G_OBJECT_CLASS(parent_class)->finalize) (object);
+ (*G_OBJECT_CLASS(parent_class)->finalize) (object);
}
static void
@@ -1431,31 +1434,6 @@ ps_document_next_page(PSDocument * gs)
return TRUE;
}
-static gint
-ps_document_get_current_page(PSDocument * gs)
-{
- g_return_val_if_fail(gs != NULL, -1);
- g_return_val_if_fail(GTK_IS_GS(gs), -1);
-
- return gs->current_page;
-}
-
-static gint
-ps_document_get_page_count(PSDocument * gs)
-{
- if(!gs->gs_filename)
- return 0;
-
- if(gs->doc) {
- if(gs->structured_doc)
- return gs->doc->numpages;
- else
- return G_MAXINT;
- }
- else
- return 0;
-}
-
static gboolean
ps_document_goto_page(PSDocument * gs, gint page)
{
@@ -1732,7 +1710,15 @@ ps_document_save (EvDocument *document,
static int
ps_document_get_n_pages (EvDocument *document)
{
- return ps_document_get_page_count (PS_DOCUMENT (document));
+ PSDocument *ps = PS_DOCUMENT (document);
+
+ g_return_val_if_fail (ps != NULL, -1);
+
+ if (!ps->gs_filename || !ps->doc) {
+ return -1;
+ }
+
+ return ps->structured_doc ? ps->doc->numpages : 1;
}
static void
@@ -1745,7 +1731,11 @@ ps_document_set_page (EvDocument *document,
static int
ps_document_get_page (EvDocument *document)
{
- return ps_document_get_current_page (PS_DOCUMENT (document));
+ PSDocument *ps = PS_DOCUMENT (document);
+
+ g_return_val_if_fail (ps != NULL, -1);
+
+ return ps->current_page;
}
static gboolean
diff --git a/shell/ev-page-view.c b/shell/ev-page-view.c
index 050e3cc..4b019c4 100644
--- a/shell/ev-page-view.c
+++ b/shell/ev-page-view.c
@@ -98,6 +98,19 @@ ev_page_view_init (EvPageView *page_view)
}
static void
+ev_page_view_dispose (GObject *object)
+{
+ EvPageView *view = EV_PAGE_VIEW (object);
+
+ if (view->priv->document) {
+ g_object_unref (view->priv->document);
+ view->priv->document = NULL;
+ }
+
+ G_OBJECT_CLASS (ev_page_view_parent_class)->dispose (object);
+}
+
+static void
ev_page_view_class_init (EvPageViewClass *klass)
{
GObjectClass *o_class;
@@ -115,6 +128,8 @@ ev_page_view_class_init (EvPageViewClass *klass)
widget_class->unrealize = ev_page_view_unrealize;
widget_class->map = ev_page_view_map;
+ o_class->dispose = ev_page_view_dispose;
+
widget_class->set_scroll_adjustments_signal =
g_signal_new ("set_scroll_adjustments",
G_TYPE_FROM_CLASS (o_class),