aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/gal-view-factory.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/gal-view-factory.c')
-rw-r--r--e-util/gal-view-factory.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/e-util/gal-view-factory.c b/e-util/gal-view-factory.c
index c6de38a110..d235a63d86 100644
--- a/e-util/gal-view-factory.c
+++ b/e-util/gal-view-factory.c
@@ -50,13 +50,19 @@ const gchar *
gal_view_factory_get_type_code (GalViewFactory *factory)
{
GalViewFactoryClass *class;
+ GalViewClass *view_class;
g_return_val_if_fail (GAL_IS_VIEW_FACTORY (factory), NULL);
class = GAL_VIEW_FACTORY_GET_CLASS (factory);
- g_return_val_if_fail (class->get_type_code != NULL, NULL);
- return class->get_type_code (factory);
+ /* All GalView types are registered statically, so there's no
+ * harm in dereferencing the class pointer after unreffing it. */
+ view_class = g_type_class_ref (class->gal_view_type);
+ g_return_val_if_fail (GAL_IS_VIEW_CLASS (view_class), NULL);
+ g_type_class_unref (view_class);
+
+ return view_class->type_code;
}
/**