Sven, you suggested that I run valgrind to locate the source of a bug related to eyedropping. These are the highlights of the results. This part is probably unrelated to the eyedropping bug (bug #450802), but may be serious: It happens after the image is loaded; don't know whether it's before or after i zoom in, but I scribble on the image with the pencil tool after zooming in, and afterwards, these messages are there. I take it as a strong suggestion that the tile pyramid code is still a bit dodgy. I plan to retry with '--error-limit=no' as it suggests, later, but perhaps these results will be helpful (I don't fully understand them myself yet -- eg. I only just figured out that the highest item on the stack is the first result.). A complete dump of the results is attached as a gzipped .txt, 5k. valgrind output follows: ==14080== ==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x82CC819: tile_pyramid_validate_tile (tile-pyramid.c:482) ==14080== by 0x82CAF56: tile_manager_validate (tile-manager.c:284) ==14080== by 0x82CA0A3: tile_lock (tile.c:162) ==14080== by 0x82CACFD: tile_manager_get (tile-manager.c:250) ==14080== by 0x82CC5AD: tile_pyramid_validate_tile (tile-pyramid.c:382) ==14080== by 0x82CAF56: tile_manager_validate (tile-manager.c:284) ==14080== by 0x82CA0A3: tile_lock (tile.c:162) ==14080== by 0x82CACFD: tile_manager_get (tile-manager.c:250) ==14080== by 0x82CC5AD: tile_pyramid_validate_tile (tile-pyramid.c:382) ==14080== by 0x82CAF56: tile_manager_validate (tile-manager.c:284) ==14080== by 0x82CA0A3: tile_lock (tile.c:162) ==14080== by 0x82CACFD: tile_manager_get (tile-manager.c:250) ==14080== ==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x8226FD3: gimp_drawable_get_sub_preview (gimpdrawable-preview.c:415) ==14080== by 0x822737C: gimp_drawable_preview_private (gimpdrawable-preview.c:205) ==14080== by 0x8227457: gimp_drawable_get_preview (gimpdrawable-preview.c:84) ==14080== by 0x82769A0: gimp_viewable_get_new_preview (gimpviewable.c:737) ==14080== by 0x81809E4: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:178) ==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796) ==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129) ==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x817EBAF: gimp_view_render_to_buffer (gimpviewrenderer.c:1077) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930) ==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213) ==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796) ==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129) ==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x817EBCA: gimp_view_render_to_buffer (gimpviewrenderer.c:1079) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930) ==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213) ==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796) ==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129) ==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x817EBE5: gimp_view_render_to_buffer (gimpviewrenderer.c:1081) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930) ==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213) ==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796) ==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129) ==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x817E98E: gimp_view_render_to_buffer (gimpviewrenderer.c:1068) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930) ==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213) ==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796) ==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129) ==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x817E9A9: gimp_view_render_to_buffer (gimpviewrenderer.c:1070) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930) ==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213) ==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796) ==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129) ==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x817E9C4: gimp_view_render_to_buffer (gimpviewrenderer.c:1072) ==14080== by 0x817ECB5: gimp_view_renderer_render_buffer (gimpviewrenderer.c:930) ==14080== by 0x8180961: gimp_view_renderer_drawable_render (gimpviewrendererdrawable.c:213) ==14080== by 0x817F1E6: gimp_view_renderer_real_draw (gimpviewrenderer.c:716) ==14080== by 0x817F4C5: gimp_view_renderer_draw (gimpviewrenderer.c:606) ==14080== by 0x41EC289: gtk_cell_renderer_render (gtkcellrenderer.c:563) ==14080== by 0x43E5FAD: gtk_tree_view_column_cell_process_action (gtktreeviewcolumn.c:2796) ==14080== by 0x43E6828: _gtk_tree_view_column_cell_render (gtktreeviewcolumn.c:3129) ==14080== by 0x43D2522: gtk_tree_view_expose (gtktreeview.c:4617) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CA8EE: g_type_class_meta_marshal (gclosure.c:567) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC1A3: render_image_rgb_a (gimpdisplayshell-render.c:819) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264) ==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574) ==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC154: render_image_rgb_a (gimpdisplayshell-render.c:829) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264) ==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574) ==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC161: render_image_rgb_a (gimpdisplayshell-render.c:830) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264) ==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574) ==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365) ==14080== ==14080== Use of uninitialised value of size 4 ==14080== at 0x80BC16E: render_image_rgb_a (gimpdisplayshell-render.c:831) ==14080== by 0x80BBA33: gimp_display_shell_render (gimpdisplayshell-render.c:264) ==14080== by 0x80B6A2F: gimp_display_shell_draw_area (gimpdisplayshell-draw.c:574) ==14080== by 0x80B06F0: gimp_display_shell_canvas_expose (gimpdisplayshell-callbacks.c:412) ==14080== by 0x42C66D3: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84) ==14080== by 0x46CAF1E: g_closure_invoke (gclosure.c:490) ==14080== by 0x46DB0D4: signal_emit_unlocked_R (gsignal.c:2440) ==14080== by 0x46DC953: g_signal_emit_valist (gsignal.c:2209) ==14080== by 0x46DCF48: g_signal_emit (gsignal.c:2243) ==14080== by 0x43F5975: gtk_widget_event_internal (gtkwidget.c:4267) ==14080== by 0x42C4E77: gtk_main_do_event (gtkmain.c:1522) ==14080== by 0x452C988: gdk_window_process_updates_internal (gdkwindow.c:2365) ==14080== ==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x451E9EE: gdk_pixbuf_render_threshold_alpha (gdkpixbuf-render.c:115) ==14080== by 0x451ED8D: gdk_pixbuf_render_pixmap_and_mask_for_colormap (gdkpixbuf-render.c:322) ==14080== by 0x4408C2D: gtk_window_realize_icon (gtkwindow.c:2955) ==14080== by 0x44090B0: gtk_window_set_icon (gtkwindow.c:3286) ==14080== by 0x80AC4DB: gimp_display_shell_update_icon (gimpdisplayshell.c:1511) ==14080== by 0x80B7DBC: gimp_display_shell_idle_update_icon (gimpdisplayshell-handlers.c:666) ==14080== by 0x47E5EB7: g_timeout_dispatch (gmain.c:3488) ==14080== by 0x47E4198: g_main_context_dispatch (gmain.c:2061) ==14080== by 0x47E7495: g_main_context_iterate (gmain.c:2694) ==14080== by 0x47E77B7: g_main_loop_run (gmain.c:2898) ==14080== by 0x8066F6B: app_run (app.c:246) ==14080== by 0x8067E55: main (main.c:381) ==14080== ==14080== Conditional jump or move depends on uninitialised value(s) ==14080== at 0x451E974: gdk_pixbuf_render_threshold_alpha (gdkpixbuf-render.c:129) ==14080== by 0x451ED8D: gdk_pixbuf_render_pixmap_and_mask_for_colormap (gdkpixbuf-render.c:322) ==14080== by 0x4408C2D: gtk_window_realize_icon (gtkwindow.c:2955) ==14080== by 0x44090B0: gtk_window_set_icon (gtkwindow.c:3286) ==14080== by 0x80AC4DB: gimp_display_shell_update_icon (gimpdisplayshell.c:1511) ==14080== by 0x80B7DBC: gimp_display_shell_idle_update_icon (gimpdisplayshell-handlers.c:666) ==14080== by 0x47E5EB7: g_timeout_dispatch (gmain.c:3488) ==14080== by 0x47E4198: g_main_context_dispatch (gmain.c:2061) ==14080== by 0x47E7495: g_main_context_iterate (gmain.c:2694) ==14080== by 0x47E77B7: g_main_loop_run (gmain.c:2898) ==14080== by 0x8066F6B: app_run (app.c:246) ==14080== by 0x8067E55: main (main.c:381) ==14080== ==14080== More than 10000000 total errors detected. I'm not reporting any more. ==14080== Final error counts will be inaccurate. Go fix your program! ==14080== Rerun with --error-limit=no to disable this cutoff. Note ==14080== that errors may occur in your program without prior warning from ==14080== Valgrind, because errors are no longer being displayed. ==14080== After that, I just shut down gimp. ==14080== ERROR SUMMARY: 10000000 errors from 27 contexts (suppressed: 87 from 1) ==14080== malloc/free: in use at exit: 10,547,993 bytes in 84,810 blocks. ==14080== malloc/free: 2,603,442 allocs, 2,518,632 frees, 524,379,066 bytes allocated. ==14080== For counts of detected errors, rerun with: -v ==14080== searching for pointers to 84,810 not-freed blocks. ==14080== checked 10,087,828 bytes. ==14080== ==14080== LEAK SUMMARY: ==14080== definitely lost: 1,756 bytes in 62 blocks. ==14080== possibly lost: 2,224,336 bytes in 2,110 blocks. ==14080== still reachable: 8,321,901 bytes in 82,638 blocks. ==14080== suppressed: 0 bytes in 0 blocks. ==14080== Rerun with --leak-check=full to see details of leaked memory. quirks of my setup -- well, I have an unusual amount of dockables -- maybe 14 in total. Some of these are tabbed (up to 3 tabs); Exactly 1 is docked to another window (the gimp toolbox has a dockbook holding 2 tabs: Color and Pattern, and is currently forced by the WM to be much smaller than normal (80x60 pixels IIRC), so that only the FG/BG color status tab and some of the menubar shows, the rest disappears.). That might effect the result. _______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer