[0.64.1 Dev] Convert to bones influence:crash !(fixed)

How to reproduce :

Open Synfig,
Create some figure
Choose on vertex (on parameter list or by selecting a orange handle)
Right click and select convert / bone influence
Crash !

Console Output

code: GLib-GObject-CRITICAL : Object class gtkmm__CustomObject_N6studio15ValueBase_EntryE doesn’t implement property ‘editing-canceled’ from interface ‘GtkCellEditable’
actions/valuedescconvert.cpp:185 Action::ValueDescConvert::prepare() with value BLinePoint (-0,733333, 0,700000) type boneinfluence
actions/valuedescconvert.cpp:197 CONVERT boneinfluence: desc canvas = 9b2a300
actions/valuedescconvert.cpp:198 CONVERT boneinfluence: src_value_node canvas is 9b2a300
synfigstudio: …/Sources/Synfig/synfig/install/include/ETL/_handle.h :277 : T
etl::handle::operator->() const [with T = synfig::ValueNode_Composite; etl::handle::pointer = synfig::ValueNode_Composite
]: assert « obj » failed.

Call Stack

Thread 1 (Thread 0xb5f82880 (LWP 19624)): #0 0xb7fde424 in __kernel_vsyscall () #1 0xb63c982f in raise () from /lib/i386-linux-gnu/i686/cmov/libc.so.6 #2 0xb63cccf3 in abort () from /lib/i386-linux-gnu/i686/cmov/libc.so.6 #3 0xb63c2727 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6 #4 0xb63c27d7 in __assert_fail () from /lib/i386-linux-gnu/i686/cmov/libc.so.6 #5 0x084a218d in etl::handle<synfig::ValueNode_Composite>::operator-> (this=0xbfffc5b0) at /home/haricot/Sources/Synfig/synfig/install/include/ETL/_handle.h:277 #6 0x086401df in studio::Duckmatic::add_to_ducks (this=0x8fbae14, value_desc=..., canvas_view=..., transform_stack=..., param_desc=0x93a5a40, multiple=0) at duckmatic.cpp:2413 #7 0x08638e18 in studio::Duckmatic::add_ducks_layers (this=0x8fbae14, canvas=..., selected_layer_set=..., canvas_view=..., transform_stack=...) at duckmatic.cpp:1588 #8 0x0860b256 in studio::CanvasView::rebuild_ducks (this=0x8df7bc8) at canvasview.cpp:3025 #9 0x08628c34 in sigc::bound_mem_functor0<void, studio::CanvasView>::operator() (this=0x93ecfd0) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787 #10 0x08626248 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, studio::CanvasView> >::operator() (this=0x93ecfcc) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #11 0x0862826a in sigc::bind_return_functor<bool, sigc::bound_mem_functor0<void, studio::CanvasView> >::operator() (this=0x93ecfc8) at /usr/include/sigc++-2.0/sigc++/adaptors/bind_return.h:173 #12 0x086250c5 in sigc::internal::slot_call0<sigc::bind_return_functor<bool, sigc::bound_mem_functor0<void, studio::CanvasView> >, bool>::call_it (rep=0x93ecfb0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #13 0xb6d0c0e4 in ?? () from /usr/lib/i386-linux-gnu/libglibmm-2.4.so.1 #14 0xb66e01d7 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #15 0xb66df483 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0 #16 0xb66df820 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #17 0xb66dfcfb in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0 #18 0xb6e70ad0 in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #19 0xb757f264 in Gtk::Main::run_impl() () from /usr/lib/libgtkmm-2.4.so.1 #20 0xb757fc9f in Gtk::Main::run() () from /usr/lib/libgtkmm-2.4.so.1 #21 0x083c2652 in main (argc=0, argv=0xbffff564) at main.cpp:108

Confirmed here: Windows 32 bits build debug in house built version.

Can’t do it right now, but can you try this?

  •   			int i=composite_vertex_value_node->get_link_index_from_name("t2");
  •   			int i=composite_bone_link_value_node->get_link_index_from_name("t2");


Yep … that’s work ! at least, no crash and i can move, thrue the created bone, some part of my figure …
is that work correctly? … i don’t know :open_mouth:

I can take the honnor for this commit if you want …


I’m sure that the crash came from that commit. It was me who introduced it recently :blush:
github.com/synfig/synfig/blame/ … .cpp#L2413
Please fix that directly in the master branch without pull request.

Thank’s for that ‘triks’… i did’t knew it was possible to edit directly github like that !

Nota : Has i do not have the good access right, i could not “live*update” the file, github has automatically made a fork (github.com/d-j-a-y/synfig/branches/patch-1) and then i pull a request)