Cairo-Dock / cairo-dock-plug-ins

Plugins of Cairo-Dock project.
http://glx-dock.org
GNU General Public License v3.0
39 stars 34 forks source link

3D plain: sanitizer error with zero division then nan operation #25

Open mtasaka opened 1 week ago

mtasaka commented 1 week ago

With

Executing $ cairo-dock -c gives gcc runtime sanitizer error:

$ cairo-dock -c

 ============================================================================
Cairo-Dock version: 3.5.99
   compiled date: Oct 14 2024 00:00:00

Cairo-Dock was built with support for:
 * GTK version:                  3.24
 * X11:                          yes
 * Wayland:                      yes
 * GLX:                          yes
 * EGL:                          yes
 * gtk-layer-shell:              yes
 * additional Wayland protocols: yes
 * Wayfire IPC:                  yes

Cairo-Dock is currently running with:
 * display backend:              X11
 * OpenGL:                       no
 * taskbar backend:              X11
 * desktop manager backend(s):   X11
 * detected desktop environment: unknown
 ============================================================================

/builddir/cairo-dock-plug-ins-3.5.99_20241007git019f49f-build/cairo-dock-plugins-3.5.99-20241007git019f49f/dock-rendering/src/rendering-3D-plane.c:323:33: runtime error: signed integer overflow: 1 - -2147483648 cannot be represented in type 'int'
/builddir/cairo-dock-plug-ins-3.5.99_20241007git019f49f-build/cairo-dock-plugins-3.5.99-20241007git019f49f/dock-rendering/src/rendering-3D-plane.c:337:65: runtime error: signed integer overflow: 1 - -2147483648 cannot be represented in type 'int'
mtasaka commented 1 week ago

Some debugging logs:

(gdb) break rendering-config.c:91
Breakpoint 2 at 0x7fffdd6ea627: file /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-config.c, line 91.
(gdb) break cd_rendering_calculate_max_dock_size_3D_plane
Breakpoint 3 at 0x7fffdd6fe630: file /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c, line 45.
(gdb) break cd_rendering_render_3D_plane
Breakpoint 4 at 0x7fffdd7012b0: file /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c, line 284.
(gdb) break cd_rendering_register_3D_plane_renderer
Breakpoint 5 at 0x7fffdd705cd0: file /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c, line 888.
(gdb) r
Starting program: /usr/bin/cairo-dock -c

Thread 1 "cairo-dock" hit Breakpoint 5, cd_rendering_register_3D_plane_renderer (cRendererName=cRendererName@entry=0x7fffdd76b840 "3D plane")
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c:888
888 {
(gdb) bt
#0  cd_rendering_register_3D_plane_renderer (cRendererName=cRendererName@entry=0x7fffdd76b840 "3D plane")
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c:888
#1  0x00007fffdd6e9909 in post_load (pVisitCard=0x50f000039ac0, pInterface=0x506000126da0)
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-init.c:141
#2  0x00007ffff626402a in gldi_module_new_from_so_file (cSoFilePath=0x50c0002dbb00 "/usr/lib64/cairo-dock/libcd-rendering.so")
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-module-manager.c:240
#3  0x00007ffff6264c35 in gldi_modules_new_from_directory (cModuleDirPath=0x7ffff662c720 "/usr/lib64/cairo-dock", cModuleDirPath@entry=0x0, erreur=erreur@entry=0x7ffff1809110)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-module-manager.c:299
#4  0x0000000000413fa1 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/cairo-dock-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/cairo-dock.c:642
(gdb) c
Continuing.
Thread 1 "cairo-dock" hit Breakpoint 3, cd_rendering_calculate_max_dock_size_3D_plane (pDock=0x51800000c080)
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c:45
45  {
(gdb) bt
#0  cd_rendering_calculate_max_dock_size_3D_plane (pDock=0x51800000c080)
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c:45
#1  0x00007ffff6317047 in cairo_dock_update_dock_size (pDock=0x51800000c080)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-dock-facility.c:86
#2  0x00007ffff62226fc in gldi_object_init (obj=obj@entry=0x51800000c080, pMgr=pMgr@entry=0x4f1e80 <myDockObjectMgr>, attr=attr@entry=0x7ffff130e930)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-object.c:51
#3  0x00007ffff6222ccc in gldi_object_new (pMgr=0x4f1e80 <myDockObjectMgr>, attr=0x7ffff130e930)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-object.c:60
#4  0x00007ffff62fc413 in gldi_dock_new (cDockName=cDockName@entry=0x7ffff6649920 "_MainDock_")
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-dock-factory.c:2246
#5  0x00007ffff63dcbff in cairo_dock_load_current_theme () at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-config.c:459
#6  0x0000000000414703 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/cairo-dock-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/cairo-dock.c:868
(gdb) n
46      cairo_dock_calculate_icons_positions_at_rest_linear (pDock->icons, pDock->fFlatDockWidth);
(gdb) 
50      _define_parameters (hi, h0, H, l, r, gamma, h, w, dw);
(gdb) 
51      double h0max = (1 + myIconsParam.fAmplitude) * pDock->iMaxIconHeight * pDock->container.fRatio + MAX ((pDock->container.bIsHorizontal ? myIconsParam.iLabelSize : 0), myDocksParam.iFrameMargin + l);
(gdb) p H
$1 = 0
(gdb) n
52      pDock->iMaxDockHeight = (int) (hi + h0max + l);
(gdb) 
56      w = ceil (cairo_dock_calculate_max_dock_width (pDock, pDock->fFlatDockWidth, 1., 2 * dw));  // pDock->iMaxDockWidth
(gdb) 
58      gamma = w / 2 / H;
(gdb) p w
$2 = 22
(gdb) n
60      h = hi + h0 / (1 + gamma);  // en fait, sqrt (1 + gamma * gamma), mais on simplifie pour diminuer l'ordre de 2. pDock->iDecorationsHeight
(gdb) p gamma
$3 = inf
(gdb) n
64      r = MIN (_get_dock_radius(), h / 2);
(gdb) 
65      dw = r + gamma * (h - r) + (l+(r==0)*2)*sqrt(1+gamma*gamma);  // h-2r si on utilisait des cercles au lieu de courbes de Bezier.
(gdb) 
76      int iMaxDockWidth = ceil (cairo_dock_calculate_max_dock_width (pDock, pDock->fFlatDockWidth, 1., 2 * dw));  // on pourra optimiser, ce qui nous interesse ici c'est les fXMin/fXMax.
(gdb) 
77      pDock->iMaxDockWidth = iMaxDockWidth;
(gdb) 
78      pDock->iOffsetForExtend = 0;
(gdb) 
79      double Ws = cairo_dock_get_max_authorized_dock_width (pDock);
(gdb) 
81      if (pDock->iRefCount == 0)
(gdb) 
83          if (pDock->iMaxDockWidth < Ws)  // alors on etend.
(gdb) 
85              pDock->iOffsetForExtend = (Ws - pDock->iMaxDockWidth) / 2;
(gdb) 
86              double extra = Ws - w;
(gdb) 
87              pDock->iMaxDockWidth = ceil (cairo_dock_calculate_max_dock_width (pDock, pDock->fFlatDockWidth, 1., extra));  // on pourra optimiser, ce qui nous interesse ici c'est les fXMin/fXMax.
(gdb) 
89              double a = H + hi;
(gdb) p W
$4 = -inf
(gdb) n
90              double b = H + hi + h0 - W / 2;
(gdb) 
92              gamma = (-b + sqrt (b * b - 4 * a * c)) / 2  / a;
(gdb) p a
$5 = 16
(gdb) p b
$6 = inf
(gdb) p c
$7 = inf
(gdb) n
94              h = hi + h0 / (1 + gamma);
(gdb) p gamma
$8 = -nan(0x8000000000000)
(gdb) n
97      pDock->iDecorationsHeight = h;
(gdb) p h
$9 = -nan(0x8000000000000)
(gdb) n
100     pDock->iDecorationsWidth = pDock->iMaxDockWidth;
(gdb) p pDock->iDecorationsHeight
$10 = -2147483648
(gdb) c
Continuing.
g_file_test: assertion 'filename != NULL' failed
g_file_test: assertion 'filename != NULL' failed
[New Thread 0x7fffda0006c0 (LWP 376903)]
[New Thread 0x7fffd96006c0 (LWP 376904)]
[New Thread 0x7fffd80006c0 (LWP 376905)]

Thread 1 "cairo-dock" hit Breakpoint 2, read_conf_file (myApplet=<optimized out>, pKeyFile=0x507000073190)
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-config.c:91
91      iVanishingPointY = cairo_dock_get_integer_key_value (pKeyFile, "Inclinated Plane", "vanishing point y", &bFlushConfFileNeeded, 0, NULL, NULL);
(gdb) bt
#0  read_conf_file (myApplet=<optimized out>, pKeyFile=0x507000073190) at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-config.c:91
#1  0x00007ffff6267e57 in _read_module_config (pKeyFile=pKeyFile@entry=0x507000073190, pInstance=pInstance@entry=0x50f00003e5c0)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-module-instance-manager.c:83
#2  0x00007ffff626efc5 in init_object (obj=0x50f00003e5c0, attr=<optimized out>)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-module-instance-manager.c:455
#3  0x00007ffff62226fc in gldi_object_init (obj=obj@entry=0x50f00003e5c0, pMgr=0x4f1a40 <myModuleInstanceObjectMgr>, pMgr@entry=0x7ffff6b5a160, attr=attr@entry=0x7ffff120c5e0)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-object.c:51
#4  0x00007ffff6268a97 in gldi_module_instance_new
    (pModule=pModule@entry=0x508000116ba0, cConfFilePah=cConfFilePah@entry=0x508000124f20 "/home/tasaka1/.config/cairo-dock/current_theme/plug-ins/rendering/rendering.conf")
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-module-instance-manager.c:65
#5  0x00007ffff626522f in gldi_module_activate (module=module@entry=0x508000116ba0)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-module-manager.c:403
#6  0x00007ffff6266b57 in gldi_modules_activate_from_list (cActiveModuleList=cActiveModuleList@entry=0x0)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-module-manager.c:461
#7  0x00007ffff63dcc0e in cairo_dock_load_current_theme () at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-config.c:463
#8  0x0000000000414703 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/cairo-dock-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/cairo-dock.c:868
(gdb) n
[Detaching after vfork from child process 376906]
Cairo-Dock - Launcher API Daemon is already running (2816)
[Thread 0x7fffd96006c0 (LWP 376904) exited]
101     my_fParaboleCurvature = sqrt (cairo_dock_get_double_key_value (pKeyFile, "Parabolic", "curvature", &bFlushConfFileNeeded, .7, NULL, NULL));  // c'est mieux proche de 1.
(gdb) p iVanishingPointY
$11 = 300
(gdb) c
Continuing.

cairo_dock_create_surface_from_image_simple: assertion 'cImageFile != NULL' failed

Thread 1 "cairo-dock" hit Breakpoint 4, cd_rendering_render_3D_plane (pCairoContext=0x51b0000b7c80, pDock=0x51800000c080)
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c:284
284 {
(gdb) bt
#0  cd_rendering_render_3D_plane (pCairoContext=0x51b0000c7880, pDock=0x51800000c080)
    at /usr/src/debug/cairo-dock-plug-ins-3.5.99^20241007git019f49f-1.fc42.san.1.x86_64/dock-rendering/src/rendering-3D-plane.c:284
#1  0x00007ffff62c72fc in _render_dock_notification (pUserData=<optimized out>, pDock=0x51800000c080, pCairoContext=0x51b0000c7880)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-dock-manager.c:1139
#2  0x00007ffff62eb87e in _on_expose (pWidget=pWidget@entry=0x517000014be0, pCairoContext=0x51b0000c7880, pDock=0x51800000c080)
    at /usr/src/debug/cairo-dock-freeworld-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/gldit/cairo-dock-dock-factory.c:130
#3  0x00007ffff6c8d634 in _gtk_marshal_BOOLEAN__BOXED
    (closure=0x507000070040, return_value=0x7fffffffc660, param_values=0x7fffffffc6f0, marshal_data=<optimized out>, invocation_hint=<optimized out>, n_param_values=<optimized out>)
    at gtk/gtkmarshalers.c:84
#4  0x00007ffff6f40216 in _gtk_marshal_BOOLEAN__BOXED
    (closure=0x507000070040, return_value=0x7fffffffc660, n_param_values=2, param_values=0x7fffffffc6f0, invocation_hint=<optimized out>, marshal_data=0x0) at gtk/gtkmarshalers.c:70
#5  gtk_widget_draw_marshaller (closure=0x507000070040, return_value=0x7fffffffc660, n_param_values=2, param_values=0x7fffffffc6f0, invocation_hint=<optimized out>, marshal_data=0x0)
    at ../gtk/gtkwidget.c:951
#6  0x00007ffff7ee47da in g_closure_invoke (closure=0x507000070040, return_value=0x7fffffffc660, n_param_values=2, param_values=0x7fffffffc6f0, invocation_hint=0x7fffffffc640)
    at ../gobject/gclosure.c:833
#7  0x00007ffff7f148f3 in signal_emit_unlocked_R.isra.0
    (node=node@entry=0x7fffffffc800, detail=detail@entry=0, instance=instance@entry=0x517000014be0, emission_return=emission_return@entry=0x7fffffffc880, instance_and_params=instance_and_params@entry=0x7fffffffc6f0) at ../gobject/gsignal.c:3887
#8  0x00007ffff7f04bf4 in signal_emit_valist_unlocked (instance=instance@entry=0x517000014be0, signal_id=signal_id@entry=52, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffc970)
    at ../gobject/gsignal.c:3532
#9  0x00007ffff7f05671 in g_signal_emit_valist (instance=0x517000014be0, signal_id=52, detail=0, var_args=var_args@entry=0x7fffffffc970) at ../gobject/gsignal.c:3262
#10 0x00007ffff7f05733 in g_signal_emit (instance=instance@entry=0x517000014be0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3582
#11 0x00007ffff6f4fd91 in gtk_widget_draw_internal (widget=0x517000014be0, cr=0x51b0000c7880, clip_to_size=<optimized out>) at ../gtk/gtkwidget.c:7077
#12 0x00007ffff6f5ddef in gtk_widget_render (widget=0x517000014be0, window=0x51400001a640, region=<optimized out>) at ../gtk/gtkwidget.c:17610
#13 0x00007ffff6df545c in gtk_main_do_event (event=<optimized out>) at ../gtk/gtkmain.c:1844
#14 gtk_main_do_event (event=<optimized out>) at ../gtk/gtkmain.c:1691
#15 0x00007ffff7487807 in _gdk_event_emit (event=0x7fffffffcbf0) at ../gdk/gdkevents.c:73
#16 _gdk_event_emit (event=0x7fffffffcbf0) at ../gdk/gdkevents.c:67
#17 0x00007ffff7498ed9 in _gdk_window_process_updates_recurse_helper (window=0x51400001a640, expose_region=<optimized out>) at ../gdk/gdkwindow.c:3874
#18 0x00007ffff749e755 in gdk_window_process_updates_internal (window=0x51400001a640) at ../gdk/gdkwindow.c:4020
#19 0x00007ffff749e971 in gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>) at ../gdk/gdkwindow.c:4215
#20 gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>) at ../gdk/gdkwindow.c:4186
#24 0x00007ffff7f05733 in <emit signal '???' on instance ???> (instance=instance@entry=0x51200000f2b0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3582
    #21 0x00007ffff7f0555c in _g_closure_invoke_va (closure=0x5070000709e0, return_value=0x0, instance=0x51200000f2b0, args=0x7fffffffcf60, n_params=0, param_types=0x0) at ../gobject/gclosure.c:896
    #22 signal_emit_valist_unlocked (instance=instance@entry=0x51200000f2b0, signal_id=signal_id@entry=32, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffcf60) at ../gobject/gsignal.c:3423
    #23 0x00007ffff7f05671 in g_signal_emit_valist (instance=0x51200000f2b0, signal_id=32, detail=0, var_args=var_args@entry=0x7fffffffcf60) at ../gobject/gsignal.c:3262
#25 0x00007ffff74951b8 in _gdk_frame_clock_emit_paint (frame_clock=0x51200000f2b0) at ../gdk/gdkframeclock.c:657
#26 gdk_frame_clock_paint_idle (data=0x51200000f2b0) at ../gdk/gdkframeclockidle.c:597
#27 0x00007ffff748100d in gdk_threads_dispatch (data=data@entry=0x50300083a070) at ../gdk/gdk.c:769
#28 0x00007ffff76f7519 in g_timeout_dispatch (source=0x50b000185190, callback=0x7ffff7480fe0 <gdk_threads_dispatch>, user_data=0x50300083a070) at ../glib/gmain.c:5070
#29 0x00007ffff76f128c in g_main_dispatch (context=0x511000004000) at ../glib/gmain.c:3357
#30 g_main_context_dispatch_unlocked (context=0x511000004000) at ../glib/gmain.c:4208
#31 0x00007ffff77517f8 in g_main_context_iterate_unlocked.isra.0 (context=0x511000004000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4273
#32 0x00007ffff76f7377 in g_main_loop_run (loop=0x5020004dc570) at ../glib/gmain.c:4475
#33 0x00007ffff6defb35 in gtk_main () at ../gtk/gtkmain.c:1329
#34 0x0000000000414a57 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/cairo-dock-3.5.99^20241013git0324720-1.fc42.san.x86_64/src/cairo-dock.c:996
(gdb) n
285     _define_parameters (hi, h0, H, l, r, gamma, h, w, dw);
(gdb) 
286     h = pDock->iDecorationsHeight;
(gdb) 
287     if (h < 2 * r)
(gdb) p h
$12 = -2147483648
(gdb) n
288         r = h / 2;
(gdb) 
292     if (cairo_dock_is_extended_dock (pDock))  // mode panel etendu.
(gdb) 
310         w = cairo_dock_get_current_dock_width_linear (pDock);
(gdb) 
311         gamma = w / 2 / H;
(gdb) 
313         h = pDock->iDecorationsHeight;
(gdb) 
314         Icon *pFirstIcon = cairo_dock_get_first_icon (pDock->icons);
(gdb) 
315         dx = (pFirstIcon != NULL ? pFirstIcon->fX - 0*myDocksParam.iFrameMargin : r);
(gdb) 
316         dx += (pDock->iOffsetForExtend * (pDock->fAlign - .5) * 2);
(gdb) 
320     if (pDock->container.bDirectionUp)
(gdb) 
323         dy = pDock->container.iHeight - pDock->iDecorationsHeight - 1.5 * l;
(gdb) p pDock->container.iHeight
$13 = 1
(gdb) p pDock->iDecorationsHeight
$14 = -2147483648
(gdb) n
/builddir/cairo-dock-plug-ins-3.5.99_20241007git019f49f-build/cairo-dock-plugins-3.5.99-20241007git019f49f/dock-rendering/src/rendering-3D-plane.c:323:33: runtime error: signed integer overflow: 1 - -2147483648 cannot be represented in type 'int'
332     cairo_save (pCairoContext);
mtasaka commented 1 week ago

So summary:

mtasaka commented 1 week ago

Then at some time, cd_rendering_calculate_max_dock_size_3D_plane is again called, then pDock->iDecorationsHeight is updated, then cd_rendering_render_3D_plane gets working finally.

But anyway I think causing zero division, then causing nan operation is unpleasant, so ideally functions should be called in order:

But currently I have no idea how to fix so.

dkondor commented 1 week ago

Hi,

thank you for reporting and the detailed analysis! I agree that the config file should be read before any of the other functions. I do have an idea how to do that, but I'll need some time to experiment with it. If you need a quick workaround, setting any sensible default value for the problematic parameters should work. E.g. probably the following (not tested):

diff --git a/dock-rendering/src/rendering-init.c b/dock-rendering/src/rendering-init.c
index 734224698..85902ea9a 100755
--- a/dock-rendering/src/rendering-init.c
+++ b/dock-rendering/src/rendering-init.c
@@ -41,7 +41,7 @@
 #define CD_RENDERING_PANEL_VIEW_NAME N_("Panel")

-int iVanishingPointY;  // distance du point de fuite au plan (au niveau du point de contact du plan et des icones).
+int iVanishingPointY = 1;  // distance du point de fuite au plan (au niveau du point de contact du plan et des icones).

 double my_fInclinationOnHorizon;  // inclinaison de la ligne de fuite vers l'horizon.
 cairo_surface_t *my_pFlatSeparatorSurface[2] = {NULL, NULL};
dkondor commented 3 days ago

Hi,

I've come up with a potential solution, it is available here: https://github.com/dkondor/cairo-dock-core/tree/module_autoload_config (note: it is a change in the core of CD, which you need to recompile using that branch; no changes needed for the plugins)

I'm not yet sure if I'm completely happy with this solution, but would be great if you could test and give feedback. Thank you!

mtasaka commented 1 day ago

For me, the above branch (module_autoload_config) seems to be working, thank you.

dkondor commented 1 day ago

Great, thank you for testing! I'll review it one more time and then merge it