[glib] Avoid overeager warning about deprecated properties



commit 4360756c6903491977886f4b4eee0650469d9ea4
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon May 12 23:05:41 2014 -0400

    Avoid overeager warning about deprecated properties
    
    Construct properties are always set during construction.
    It makes no sense to warn about this even if the property
    is marked as deprecated; the deprecation warning should
    only be issues for explicit uses of the property after
    construction.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=730045

 gobject/gobject.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/gobject/gobject.c b/gobject/gobject.c
index e12eb6b..78fe203 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -1348,9 +1348,16 @@ object_set_property (GObject             *object,
   if (enable_diagnostic[0] == '1')
     {
       if (pspec->flags & G_PARAM_DEPRECATED)
-        g_warning ("The property %s:%s is deprecated and shouldn't be used "
-                   "anymore. It will be removed in a future version.",
-                   G_OBJECT_TYPE_NAME (object), pspec->name);
+        {
+          /* don't warn for automatically provided construct properties */
+          if (!(pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY)) ||
+              !object_in_construction (object))
+            {
+              g_warning ("The property %s:%s is deprecated and shouldn't be used "
+                         "anymore. It will be removed in a future version.",
+                         G_OBJECT_TYPE_NAME (object), pspec->name);
+            }
+        }
     }
 
   /* provide a copy to work from, convert (if necessary) and validate */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]