]> www.fi.muni.cz Git - evince.git/commitdiff
Attempts at cleaning up component destruction - failed :-(
authorMichael Meeks <mmeeks@src.gnome.org>
Fri, 27 Aug 1999 12:38:31 +0000 (12:38 +0000)
committerMichael Meeks <mmeeks@src.gnome.org>
Fri, 27 Aug 1999 12:38:31 +0000 (12:38 +0000)
pdf/xpdf/ChangeLog
pdf/xpdf/gpdf.cc

index fc09c8937e9eee72ae6e03bb4b22846043489e6a..d05f1a7bf2e87ac7822a7e113b6064b840440eb0 100644 (file)
@@ -1,3 +1,15 @@
+1999-08-27  Michael Meeks  <michael@imaginator.com>
+
+       * bonobo-application-x-pdf.cc: Remove count of embeddable
+       servers: seems to be handled inside Bonobo now.
+
+1999-08-26  Michael Meeks  <michael@imaginator.com>
+
+       * gpdf.cc (component_destroy): Improved clean up.
+
+       * bonobo-application-x-pdf.cc (bed_free_data): Expand, and
+       clean; remove redundant pdf_stream delete.
+
 1999-08-24  Michael Meeks  <michael@imaginator.com>
 
        * application-x-pdf.gnorba: Update to new mime type.
index ea3d34078b5a3cccf2736ed8e73e3273a5d2a25d..0db774b6caf3e07ecad4c60bb626f90409501478 100644 (file)
@@ -255,14 +255,34 @@ extern "C" {
     gtk_widget_destroy (GTK_WIDGET (fsel));
   }
 
+  static void 
+  component_destroy (Component *component)
+  {
+    CORBA_Environment ev;
+    g_return_if_fail (component != NULL);
+
+    CORBA_exception_init (&ev);
+    
+    if (component->server)
+      GNOME_Unknown_unref (
+       gnome_object_corba_objref (GNOME_OBJECT (component->server)), &ev);
+    component->server = NULL;
+
+    CORBA_exception_free (&ev);
+  }
+
   static void
   container_destroy (Container *cont)
   {
     containers = g_list_remove (containers, cont);
     if (cont->app)
       gtk_widget_destroy (cont->app);
+    
+    if (cont->component)
+      component_destroy (cont->component);
+    cont->component = NULL;
+    
     cont->app = NULL;
-    /* FIXME: Some serious resource freeing needs to be here */
     
     g_free (cont);
     if (!containers)