[gnome-control-center/wip/hadess/power-profiles-startup-crash] power: Fix possible assertion on startup




commit 9acaa10567c94048657c69538e5d7813f82c4224
Author: Bastien Nocera <hadess hadess net>
Date:   Wed Mar 31 11:06:44 2021 +0200

    power: Fix possible assertion on startup
    
    When opening the Power panel, and if power-profiles-daemon isn't already
    started, we'll be autostarting it, making it send signals about all the
    changed properties, including "PerformanceInhibited" even if we
    don't have a Performance row.
    
    Ignore the property change if we don't have a row for it rather than
    asserting.
    
     #0  0x00007f73916bc292 in raise () from /lib64/libc.so.6
     #1  0x00007f73916a58a4 in abort () from /lib64/libc.so.6
     #2  0x00007f7393203ccc in g_assertion_message.cold () from /lib64/libglib-2.0.so.0
     #3  0x00007f739325f22f in g_assertion_message_expr () from /lib64/libglib-2.0.so.0
     #4  0x000055a4099e28ae in performance_profile_set_inhibited (self=0x55a40b37e320, self=0x55a40b37e320, 
performance_inhibited=<optimized out>) at ../panels/power/cc-power-panel.c:1366
     #5  power_profiles_properties_changed_cb (self=0x55a40b37e320, changed_properties=<optimized out>, 
invalidated_properties=<optimized out>, proxy=<optimized out>) at ../panels/power/cc-power-panel.c:1425
     #6  0x00007f7393332c2f in g_closure_invoke () from /lib64/libgobject-2.0.so.0
     #7  0x00007f739334eea6 in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
    
    1362    {
    1363      CcPowerProfileRow *row;
    1364
    1365      row = self->power_profiles_row[CC_POWER_PROFILE_PERFORMANCE];
    1366      g_assert (row != NULL);
    1367      cc_power_profile_row_set_performance_inhibited (row, performance_inhibited);
    1368    }

 panels/power/cc-power-panel.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
index c9c4705da..0b8226a29 100644
--- a/panels/power/cc-power-panel.c
+++ b/panels/power/cc-power-panel.c
@@ -1363,7 +1363,8 @@ performance_profile_set_inhibited (CcPowerPanel  *self,
   CcPowerProfileRow *row;
 
   row = self->power_profiles_row[CC_POWER_PROFILE_PERFORMANCE];
-  g_assert (row != NULL);
+  if (!row)
+      return;
   cc_power_profile_row_set_performance_inhibited (row, performance_inhibited);
 }
 


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