summaryrefslogtreecommitdiff
path: root/libyelp/yelp-mallard-document.c
diff options
context:
space:
mode:
Diffstat (limited to 'libyelp/yelp-mallard-document.c')
-rw-r--r--libyelp/yelp-mallard-document.c49
1 files changed, 25 insertions, 24 deletions
diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c
index b1565580..f417a361 100644
--- a/libyelp/yelp-mallard-document.c
+++ b/libyelp/yelp-mallard-document.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
- * Copyright (C) 2009 Shaun McCance <shaunm@gnome.org>
+ * Copyright (C) 2009-2020 Shaun McCance <shaunm@gnome.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -115,9 +115,6 @@ static gboolean xml_node_is_ns_name (xmlNodePtr node,
const xmlChar *name);
-G_DEFINE_TYPE (YelpMallardDocument, yelp_mallard_document, YELP_TYPE_DOCUMENT)
-#define GET_PRIV(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), YELP_TYPE_MALLARD_DOCUMENT, YelpMallardDocumentPrivate))
-
typedef struct _YelpMallardDocumentPrivate YelpMallardDocumentPrivate;
struct _YelpMallardDocumentPrivate {
MallardState state;
@@ -139,6 +136,8 @@ struct _YelpMallardDocumentPrivate {
xmlXPathCompExprPtr normalize;
};
+G_DEFINE_TYPE_WITH_PRIVATE (YelpMallardDocument, yelp_mallard_document, YELP_TYPE_DOCUMENT)
+
/******************************************************************************/
static void
@@ -152,14 +151,12 @@ yelp_mallard_document_class_init (YelpMallardDocumentClass *klass)
document_class->request_page = mallard_request_page;
document_class->index = mallard_index;
-
- g_type_class_add_private (klass, sizeof (YelpMallardDocumentPrivate));
}
static void
yelp_mallard_document_init (YelpMallardDocument *mallard)
{
- YelpMallardDocumentPrivate *priv = GET_PRIV (mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (mallard);
xmlNodePtr cur;
g_mutex_init (&priv->mutex);
@@ -185,7 +182,8 @@ static void
yelp_mallard_document_dispose (GObject *object)
{
gint i;
- YelpMallardDocumentPrivate *priv = GET_PRIV (object);
+ YelpMallardDocumentPrivate *priv =
+ yelp_mallard_document_get_instance_private (YELP_MALLARD_DOCUMENT (object));
if (priv->monitors != NULL) {
for (i = 0; priv->monitors[i]; i++) {
@@ -201,7 +199,8 @@ yelp_mallard_document_dispose (GObject *object)
static void
yelp_mallard_document_finalize (GObject *object)
{
- YelpMallardDocumentPrivate *priv = GET_PRIV (object);
+ YelpMallardDocumentPrivate *priv =
+ yelp_mallard_document_get_instance_private (YELP_MALLARD_DOCUMENT (object));
g_mutex_clear (&priv->mutex);
g_hash_table_destroy (priv->pages_hash);
@@ -228,7 +227,7 @@ yelp_mallard_document_new (YelpUri *uri)
mallard = (YelpMallardDocument *) g_object_new (YELP_TYPE_MALLARD_DOCUMENT,
"document-uri", uri,
NULL);
- priv = GET_PRIV (mallard);
+ priv = yelp_mallard_document_get_instance_private (mallard);
yelp_document_set_page_id ((YelpDocument *) mallard, NULL, "index");
yelp_document_set_page_id ((YelpDocument *) mallard, "index", "index");
@@ -259,7 +258,8 @@ mallard_request_page (YelpDocument *document,
gpointer user_data,
GDestroyNotify notify)
{
- YelpMallardDocumentPrivate *priv = GET_PRIV (document);
+ YelpMallardDocumentPrivate *priv =
+ yelp_mallard_document_get_instance_private (YELP_MALLARD_DOCUMENT (document));
gchar *docuri;
GError *error;
gboolean handled;
@@ -326,7 +326,7 @@ mallard_request_page (YelpDocument *document,
static void
mallard_think (YelpMallardDocument *mallard)
{
- YelpMallardDocumentPrivate *priv = GET_PRIV (mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (mallard);
GError *error = NULL;
gboolean editor_mode;
@@ -442,7 +442,7 @@ mallard_try_run (YelpMallardDocument *mallard,
const gchar *page_id)
{
/* We expect to be in a locked mutex when this function is called. */
- YelpMallardDocumentPrivate *priv = GET_PRIV (mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (mallard);
MallardPageData *page_data = NULL;
gchar *real_id = NULL;
GError *error;
@@ -507,7 +507,7 @@ mallard_page_data_cancel (MallardPageData *page_data)
static void
mallard_page_data_walk (MallardPageData *page_data)
{
- YelpMallardDocumentPrivate *priv = GET_PRIV (page_data->mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (page_data->mallard);
xmlParserCtxtPtr parserCtxt = NULL;
xmlChar *id = NULL;
@@ -649,7 +649,8 @@ mallard_page_data_info (MallardPageData *page_data,
if (xmlStrEqual (type, BAD_CAST "sort"))
page_data->sort_title = TRUE;
if (xmlStrEqual (type, BAD_CAST "text")) {
- YelpMallardDocumentPrivate *priv = GET_PRIV (page_data->mallard);
+ YelpMallardDocumentPrivate *priv =
+ yelp_mallard_document_get_instance_private (page_data->mallard);
xmlXPathObjectPtr obj;
page_data->xpath->node = child;
obj = xmlXPathCompiledEval (priv->normalize, page_data->xpath);
@@ -663,7 +664,7 @@ mallard_page_data_info (MallardPageData *page_data,
}
}
else if (xml_node_is_ns_name (child, MALLARD_NS, BAD_CAST "desc")) {
- YelpMallardDocumentPrivate *priv = GET_PRIV (page_data->mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (page_data->mallard);
xmlXPathObjectPtr obj;
page_data->xpath->node = child;
obj = xmlXPathCompiledEval (priv->normalize, page_data->xpath);
@@ -676,7 +677,7 @@ mallard_page_data_info (MallardPageData *page_data,
else if (xml_node_is_ns_name (child, MALLARD_NS, BAD_CAST "keywords")) {
/* FIXME: multiple keywords? same for desc/title */
- YelpMallardDocumentPrivate *priv = GET_PRIV (page_data->mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (page_data->mallard);
xmlXPathObjectPtr obj;
page_data->xpath->node = child;
obj = xmlXPathCompiledEval (priv->normalize, page_data->xpath);
@@ -721,7 +722,7 @@ static void
mallard_page_data_run (MallardPageData *page_data)
{
YelpSettings *settings = yelp_settings_get_default ();
- YelpMallardDocumentPrivate *priv = GET_PRIV (page_data->mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (page_data->mallard);
gchar **params = NULL;
mallard_page_data_cancel (page_data);
@@ -790,7 +791,7 @@ transform_chunk_ready (YelpTransform *transform,
YELP_IS_MALLARD_DOCUMENT (page_data->mallard));
g_assert (transform == page_data->transform);
- priv = GET_PRIV (page_data->mallard);
+ priv = yelp_mallard_document_get_instance_private (page_data->mallard);
if (priv->state == MALLARD_STATE_STOP) {
mallard_page_data_cancel (page_data);
@@ -819,7 +820,7 @@ transform_finished (YelpTransform *transform,
YELP_IS_MALLARD_DOCUMENT (page_data->mallard));
g_assert (transform == page_data->transform);
- priv = GET_PRIV (page_data->mallard);
+ priv = yelp_mallard_document_get_instance_private (page_data->mallard);
if (priv->state == MALLARD_STATE_STOP) {
mallard_page_data_cancel (page_data);
@@ -844,7 +845,7 @@ transform_error (YelpTransform *transform,
YELP_IS_MALLARD_DOCUMENT (page_data->mallard));
g_assert (transform == page_data->transform);
- priv = GET_PRIV (page_data->mallard);
+ priv = yelp_mallard_document_get_instance_private (page_data->mallard);
if (priv->state == MALLARD_STATE_STOP) {
mallard_page_data_cancel (page_data);
@@ -990,7 +991,7 @@ mallard_index_threaded (YelpMallardDocument *mallard)
GHashTable *ids;
gchar *doc_uri;
YelpUri *document_uri;
- YelpMallardDocumentPrivate *priv = GET_PRIV (mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (mallard);
document_uri = yelp_document_get_uri (YELP_DOCUMENT (mallard));
doc_uri = yelp_uri_get_document_uri (document_uri);
@@ -1125,7 +1126,7 @@ mallard_index (YelpDocument *document)
if (done)
return;
- priv = GET_PRIV (document);
+ priv = yelp_mallard_document_get_instance_private (YELP_MALLARD_DOCUMENT (document));
g_object_ref (document);
priv->index = g_thread_new ("mallard-index",
(GThreadFunc)(GCallback) mallard_index_threaded,
@@ -1143,7 +1144,7 @@ mallard_monitor_changed (GFileMonitor *monitor,
gchar **ids;
gint i;
xmlNodePtr cur;
- YelpMallardDocumentPrivate *priv = GET_PRIV (mallard);
+ YelpMallardDocumentPrivate *priv = yelp_mallard_document_get_instance_private (mallard);
/* Exiting the thinking thread would require a fair amount of retooling.
For now, we'll just fail to auto-reload if that's still happening.