Blame SOURCES/0004-Correctly-check-whether-virtual-method-is-implemente.patch

4ff70e
From 3ce3334e9f64eb9eb9f6f52608ca00c2fb74b516 Mon Sep 17 00:00:00 2001
4ff70e
From: Tomas Popela <tpopela@redhat.com>
4ff70e
Date: Mon, 23 Jul 2018 10:30:35 +0200
4ff70e
Subject: [PATCH 04/17] Correctly check whether virtual method is implemented
4ff70e
 before calling it
4ff70e
4ff70e
yelp-3.28.1/libyelp/yelp-document.c:819:27: warning: Access to field 'request_page' results in a dereference of a null pointer (loaded from field 'g_class')
4ff70e
    g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->request_page != NULL, FALSE);
4ff70e
4ff70e
yelp-3.28.1/libyelp/yelp-document.c:943:27: warning: Access to field 'read_contents' results in a dereference of a null pointer (loaded from field 'g_class')
4ff70e
    g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->read_contents != NULL, NULL);
4ff70e
4ff70e
yelp-3.28.1/libyelp/yelp-document.c:1100:23: warning: Access to field 'finish_read' results in a dereference of a null pointer (loaded from field 'g_class')
4ff70e
    g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->finish_read != NULL);
4ff70e
4ff70e
yelp-3.28.1/libyelp/yelp-document.c:1141:27: warning: Access to field 'get_mime_type' results in a dereference of a null pointer (loaded from field 'g_class')
4ff70e
    g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->get_mime_type != NULL, NULL);
4ff70e
4ff70e
yelp-3.28.1/libyelp/yelp-document.c:1173:23: warning: Access to field 'index' results in a dereference of a null pointer (loaded from field 'g_class')
4ff70e
    g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->index != NULL);
4ff70e
---
4ff70e
 libyelp/yelp-document.c | 56 ++++++++++++++++++++++++++++++-----------
4ff70e
 1 file changed, 41 insertions(+), 15 deletions(-)
4ff70e
4ff70e
diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c
4ff70e
index c1eec9cc..d832d1ed 100644
4ff70e
--- a/libyelp/yelp-document.c
4ff70e
+++ b/libyelp/yelp-document.c
4ff70e
@@ -815,17 +815,19 @@ yelp_document_request_page (YelpDocument         *document,
4ff70e
 			    gpointer              user_data,
4ff70e
 			    GDestroyNotify        notify)
4ff70e
 {
4ff70e
+    YelpDocumentClass *klass;
4ff70e
+
4ff70e
+    g_return_val_if_fail (document != NULL, FALSE);
4ff70e
     g_return_val_if_fail (YELP_IS_DOCUMENT (document), FALSE);
4ff70e
-    g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->request_page != NULL, FALSE);
4ff70e
+
4ff70e
+    klass = YELP_DOCUMENT_GET_CLASS (document);
4ff70e
+    g_return_val_if_fail (klass != NULL, FALSE);
4ff70e
+    g_return_val_if_fail (klass->request_page != NULL, FALSE);
4ff70e
 
4ff70e
     debug_print (DB_FUNCTION, "entering\n");
4ff70e
 
4ff70e
-    return YELP_DOCUMENT_GET_CLASS (document)->request_page (document,
4ff70e
-							     page_id,
4ff70e
-							     cancellable,
4ff70e
-							     callback,
4ff70e
-							     user_data,
4ff70e
-							     notify);
4ff70e
+    return klass->request_page (document, page_id, cancellable, callback,
4ff70e
+                                user_data, notify);
4ff70e
 }
4ff70e
 
4ff70e
 static gboolean
4ff70e
@@ -939,10 +941,16 @@ const gchar *
4ff70e
 yelp_document_read_contents (YelpDocument *document,
4ff70e
 			     const gchar  *page_id)
4ff70e
 {
4ff70e
+    YelpDocumentClass *klass;
4ff70e
+
4ff70e
+    g_return_val_if_fail (document != NULL, NULL);
4ff70e
     g_return_val_if_fail (YELP_IS_DOCUMENT (document), NULL);
4ff70e
-    g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->read_contents != NULL, NULL);
4ff70e
 
4ff70e
-    return YELP_DOCUMENT_GET_CLASS (document)->read_contents (document, page_id);
4ff70e
+    klass = YELP_DOCUMENT_GET_CLASS (document);
4ff70e
+    g_return_val_if_fail (klass != NULL, FALSE);
4ff70e
+    g_return_val_if_fail (klass->read_contents != NULL, FALSE);
4ff70e
+
4ff70e
+    return klass->read_contents (document, page_id);
4ff70e
 }
4ff70e
 
4ff70e
 static const gchar *
4ff70e
@@ -1096,10 +1104,16 @@ void
4ff70e
 yelp_document_finish_read (YelpDocument *document,
4ff70e
 			   const gchar  *contents)
4ff70e
 {
4ff70e
+    YelpDocumentClass *klass;
4ff70e
+
4ff70e
+    g_return_if_fail (document != NULL);
4ff70e
     g_return_if_fail (YELP_IS_DOCUMENT (document));
4ff70e
-    g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->finish_read != NULL);
4ff70e
 
4ff70e
-    YELP_DOCUMENT_GET_CLASS (document)->finish_read (document, contents);
4ff70e
+    klass = YELP_DOCUMENT_GET_CLASS (document);
4ff70e
+    g_return_if_fail (klass != NULL);
4ff70e
+    g_return_if_fail (klass->finish_read != NULL);
4ff70e
+
4ff70e
+    klass->finish_read (document, contents);
4ff70e
 }
4ff70e
 
4ff70e
 static void
4ff70e
@@ -1137,10 +1151,16 @@ gchar *
4ff70e
 yelp_document_get_mime_type (YelpDocument *document,
4ff70e
 			     const gchar  *page_id)
4ff70e
 {
4ff70e
+    YelpDocumentClass *klass;
4ff70e
+
4ff70e
+    g_return_val_if_fail (document != NULL, NULL);
4ff70e
     g_return_val_if_fail (YELP_IS_DOCUMENT (document), NULL);
4ff70e
-    g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->get_mime_type != NULL, NULL);
4ff70e
 
4ff70e
-    return YELP_DOCUMENT_GET_CLASS (document)->get_mime_type (document, page_id);
4ff70e
+    klass = YELP_DOCUMENT_GET_CLASS (document);
4ff70e
+    g_return_val_if_fail (klass != NULL, NULL);
4ff70e
+    g_return_val_if_fail (klass->get_mime_type != NULL, FALSE);
4ff70e
+
4ff70e
+    return klass->get_mime_type (document, page_id);
4ff70e
 }
4ff70e
 
4ff70e
 static gchar *
4ff70e
@@ -1169,10 +1189,16 @@ document_get_mime_type (YelpDocument *document,
4ff70e
 void
4ff70e
 yelp_document_index (YelpDocument *document)
4ff70e
 {
4ff70e
+    YelpDocumentClass *klass;
4ff70e
+
4ff70e
+    g_return_if_fail (document != NULL);
4ff70e
     g_return_if_fail (YELP_IS_DOCUMENT (document));
4ff70e
-    g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->index != NULL);
4ff70e
 
4ff70e
-    YELP_DOCUMENT_GET_CLASS (document)->index (document);
4ff70e
+    klass = YELP_DOCUMENT_GET_CLASS (document);
4ff70e
+    g_return_if_fail (klass != NULL);
4ff70e
+    g_return_if_fail (klass->index != NULL);
4ff70e
+
4ff70e
+    klass->index (document);
4ff70e
 }
4ff70e
 
4ff70e
 static void
4ff70e
-- 
4ff70e
2.19.1
4ff70e