When a mesh is pinned in the properties panel, Blender crashes when you click the "Add Custom Split Normals Data".
The code calls ob = ED_object_context(C) which returns NULL when the mesh is pinned in the properties panel, causing a segfault when trying to get the mesh via ob->data.
A new function ED_mesh_context(C) avoids this by first checking whether a mesh was pinned in the context. If not, it checks the pinned object's data. If that's not there, or it's not a mesh, it returns the active object's mesh. Finally it returns NULL if there is no active object, or if the active object is not a mesh object.