The root cause is that viewport can draw cached version of themself but the scene can have been updated and the pointed curvemapping could have been freed. To workaround this we just keep a copy of the curvemap at the viewport level.
make format