This is somewhat "dangerous", as e.g. the verts will be shared between stcs and self. Use `SourceEstimate.copy` and then replace the  data and vertno. It actually simplifies the code, as you can do

    stcs = self if not copy else self.copy()

and then do what you did in line 905.