bvhtree_from_mesh_edges_create_tree can actually leave the BVHTree
NULL (e.g. if no edges are present).
Now dont allocate BVHTreeFromMesh on the SurfaceModifierData at all
in case the tree would be NULL anyways.
Places like get_effector_data check for SurfaceModifierData-
BVHTreeFromMesh and dont try to stuff like getting a closest point on
surface, which would crash as soon as BVHNodes would need to be accessed
(from the NULL BVHTree).