Page MenuHome

Depsgraph crash when calling to_mesh() on a Curve object after clearing its parent
Closed, ResolvedPublic

Description

System Information
Win7 x64, GTX560

Blender Version
Broken: c37e8ecc
Worked: 2.69

When clearing an object's parent, the scene's entire DAG is freed. Converting a Curve object to a mesh (via ob.to_mesh()) leads to an attempt to access the DAG without first checking whether it exists, which crashes Blender.

Callstack:

blender.exe!dag_find_node(DagForest * forest, void * fob) Line 992	C
blender.exe!DAG_get_eval_flags_for_object(Scene * scene, void * object) Line 2945	C
blender.exe!do_makeDispListCurveTypes(Scene * scene, Object * ob, ListBase * dispbase, DerivedMesh * * derivedFinal, int forRender, int forOrco, int renderResolution) Line 1571	C
blender.exe!BKE_displist_make_curveTypes_forRender(Scene * scene, Object * ob, ListBase * dispbase, DerivedMesh * * derivedFinal, int forOrco, int renderResolution) Line 1619	C
blender.exe!rna_Main_meshes_new_from_object(Main * bmain, ReportList * reports, Scene * sce, Object * ob, int apply_modifiers, int settings, int calc_tessface, int calc_undeformed) Line 318	C
blender.exe!rna_Object_to_mesh(Object * ob, ReportList * reports, Scene * sce, int apply_modifiers, int settings, int calc_tessface, int calc_undeformed) Line 121	C
blender.exe!Object_to_mesh_call(bContext * C, ReportList * reports, PointerRNA * _ptr, ParameterList * _parms) Line 4780	C

Exact steps for others to reproduce the error

  1. Open and run the script in the text editor.

Event Timeline

Tom Edwards (artfunkel) raised the priority of this task from to 90.
Tom Edwards (artfunkel) updated the task description. (Show Details)
Tom Edwards (artfunkel) edited a custom field.
Brecht Van Lommel (brecht) lowered the priority of this task from 90 to 50.
Sergey Sharybin (sergey) changed the task status from Unknown Status to Resolved.Jan 23 2014, 7:18 PM

Closed by commit rB0f72a8a7f0a0.