Fix dia crash on start reported by Jan Danielsson in http://mail-index.netbsd.org/pkgsrc-users/2013/07/12/msg018329.html using fix from https://bugzilla.gnome.org/show_bug.cgi?id=694025 commited to dia git-head.diff -r1.81 -r1.82 pkgsrc/graphics/dia/Makefile
(prlw1)
@@ -1,15 +1,15 @@ | @@ -1,15 +1,15 @@ | |||
1 | # $NetBSD: Makefile,v 1.81 2013/06/06 12:54:28 wiz Exp $ | 1 | # $NetBSD: Makefile,v 1.82 2013/07/16 12:11:29 prlw1 Exp $ | |
2 | # | 2 | # | |
3 | 3 | |||
4 | .include "Makefile.common" | 4 | .include "Makefile.common" | |
5 | 5 | |||
6 | PKGREVISION= 14 | 6 | PKGREVISION= 15 | |
7 | 7 | |||
8 | .include "options.mk" | 8 | .include "options.mk" | |
9 | 9 | |||
10 | # just to convert the manpage | 10 | # just to convert the manpage | |
11 | BUILD_DEPENDS+= docbook-xsl-[0-9]*:../../textproc/docbook-xsl | 11 | BUILD_DEPENDS+= docbook-xsl-[0-9]*:../../textproc/docbook-xsl | |
12 | 12 | |||
13 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" | 13 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" | |
14 | .include "../../graphics/hicolor-icon-theme/buildlink3.mk" | 14 | .include "../../graphics/hicolor-icon-theme/buildlink3.mk" | |
15 | .include "../../mk/bsd.pkg.mk" | 15 | .include "../../mk/bsd.pkg.mk" |
@@ -1,15 +1,16 @@ | @@ -1,15 +1,16 @@ | |||
1 | $NetBSD: distinfo,v 1.28 2012/05/07 00:46:25 dholland Exp $ | 1 | $NetBSD: distinfo,v 1.29 2013/07/16 12:11:29 prlw1 Exp $ | |
2 | 2 | |||
3 | SHA1 (dia-0.97.2.tar.xz) = dc7ed6f8cd83acc8f421d28f30e4042fe370e9ba | 3 | SHA1 (dia-0.97.2.tar.xz) = dc7ed6f8cd83acc8f421d28f30e4042fe370e9ba | |
4 | RMD160 (dia-0.97.2.tar.xz) = f9270f1f2cb6ad505219463827d02e3759693796 | 4 | RMD160 (dia-0.97.2.tar.xz) = f9270f1f2cb6ad505219463827d02e3759693796 | |
5 | Size (dia-0.97.2.tar.xz) = 5507004 bytes | 5 | Size (dia-0.97.2.tar.xz) = 5507004 bytes | |
6 | SHA1 (patch-aa) = ab5acd47ba4557aa8cc4a5abb3ce1f41ea5e2574 | 6 | SHA1 (patch-aa) = ab5acd47ba4557aa8cc4a5abb3ce1f41ea5e2574 | |
7 | SHA1 (patch-app_render_gdk.c) = 2bff345b8168ef731eb977f1850fd6a725224c78 | |||
7 | SHA1 (patch-be) = dab7626daefcd702b31f54d198311d9be921e1ff | 8 | SHA1 (patch-be) = dab7626daefcd702b31f54d198311d9be921e1ff | |
8 | SHA1 (patch-ca) = 8737f3ff19244e2f87ffb571da21159bc2248648 | 9 | SHA1 (patch-ca) = 8737f3ff19244e2f87ffb571da21159bc2248648 | |
9 | SHA1 (patch-cb) = 02210139cbf38e91a61ad1e090f63f5635bb26ef | 10 | SHA1 (patch-cb) = 02210139cbf38e91a61ad1e090f63f5635bb26ef | |
10 | SHA1 (patch-cc) = 2dd4c822d8771e48ff1ac67946d765e5d8b85d50 | 11 | SHA1 (patch-cc) = 2dd4c822d8771e48ff1ac67946d765e5d8b85d50 | |
11 | SHA1 (patch-cd) = b7dd72a359fe6f36a56d2c16f94427c6977b0477 | 12 | SHA1 (patch-cd) = b7dd72a359fe6f36a56d2c16f94427c6977b0477 | |
12 | SHA1 (patch-da) = 4ed80c2a7eaa2dbbebd8265c8b74faac20c4f6c2 | 13 | SHA1 (patch-da) = 4ed80c2a7eaa2dbbebd8265c8b74faac20c4f6c2 | |
13 | SHA1 (patch-objects_custom_shape__typeinfo_c) = 128477ab7cc363a490e042062379585800893626 | 14 | SHA1 (patch-objects_custom_shape__typeinfo_c) = 128477ab7cc363a490e042062379585800893626 | |
14 | SHA1 (patch-tests_test-boundingbox_c) = f05fe01fd2d79bf5b519808aa491458040097fb7 | 15 | SHA1 (patch-tests_test-boundingbox_c) = f05fe01fd2d79bf5b519808aa491458040097fb7 | |
15 | SHA1 (patch-tests_test-objects_c) = 759b788aa55e3256758514906c1ce812fb3b6aba | 16 | SHA1 (patch-tests_test-objects_c) = 759b788aa55e3256758514906c1ce812fb3b6aba |
$NetBSD: patch-app_render_gdk.c,v 1.1 2013/07/16 12:11:29 prlw1 Exp $
Fix crash on start-up with newish glib2.
Bug 694025 - GLib drop support for adding interfaces after class_init
commit 213bdfe956bf8fe57c86316f68a09408fef1647e
--- app/render_gdk.c.orig 2009-11-07 17:13:53.000000000 +0000
+++ app/render_gdk.c
@@ -50,7 +50,21 @@ static void copy_to_window (DiaRenderer
gpointer window,
int x, int y, int width, int height);
-static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
+typedef struct _DiaGdkInteractiveRenderer DiaGdkInteractiveRenderer;
+struct _DiaGdkInteractiveRenderer
+{
+ DiaGdkRenderer parent_instance; /*!< inheritance in object oriented C */
+};
+typedef struct _DiaGdkInteractiveRendererClass DiaGdkInteractiveRendererClass;
+struct _DiaGdkInteractiveRendererClass
+{
+ DiaGdkRendererClass parent_class; /*!< the base class */
+};
+#define DIA_TYPE_GDK_INTERACTIVE_RENDERER (dia_gdk_interactive_renderer_get_type ())
+#define DIA_GDK_INTERACTIVE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_GDK_INTERACTIVE_RENDERER, DiaGdkInteractiveRenderer))
+
+static void
+dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
{
iface->clip_region_clear = clip_region_clear;
iface->clip_region_add_rect = clip_region_add_rect;
@@ -61,35 +75,35 @@ static void dia_gdk_renderer_iface_init
iface->set_size = set_size;
}
+G_DEFINE_TYPE_WITH_CODE (DiaGdkInteractiveRenderer, dia_gdk_interactive_renderer, DIA_TYPE_GDK_RENDERER,
+ G_IMPLEMENT_INTERFACE (DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE, dia_gdk_renderer_iface_init));
+
+static void
+dia_gdk_interactive_renderer_class_init(DiaGdkInteractiveRendererClass *klass)
+{
+}
+static void
+dia_gdk_interactive_renderer_init(DiaGdkInteractiveRenderer *object)
+{
+ DiaGdkInteractiveRenderer *ia_renderer = DIA_GDK_INTERACTIVE_RENDERER (object);
+ DiaGdkRenderer *renderer = DIA_GDK_RENDERER(object);
+ DiaRenderer *dia_renderer = DIA_RENDERER(object);
+
+ dia_renderer->is_interactive = 1;
+
+ renderer->gc = NULL;
+ renderer->pixmap = NULL;
+ renderer->clip_region = NULL;
+}
+
DiaRenderer *
new_gdk_renderer(DDisplay *ddisp)
{
DiaGdkRenderer *renderer;
GType renderer_type = 0;
- renderer = g_object_new (DIA_TYPE_GDK_RENDERER, NULL);
+ renderer = g_object_new (DIA_TYPE_GDK_INTERACTIVE_RENDERER, NULL);
renderer->transform = dia_transform_new (&ddisp->visible, &ddisp->zoom_factor);
- if (!DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer))
- {
- static const GInterfaceInfo irenderer_iface_info =
- {
- (GInterfaceInitFunc) dia_gdk_renderer_iface_init,
- NULL, /* iface_finalize */
- NULL /* iface_data */
- };
-
- renderer_type = DIA_TYPE_GDK_RENDERER;
- /* register the interactive renderer interface */
- g_type_add_interface_static (renderer_type,
- DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE,
- &irenderer_iface_info);
-
- }
- renderer->parent_instance.is_interactive = 1;
- renderer->gc = NULL;
-
- renderer->pixmap = NULL;
- renderer->clip_region = NULL;
return DIA_RENDERER(renderer);
}