Resolves: fdo#86786 take of a copy of the MarkData

so macros that trigger on changed data don't change invalidate
interators into them behind our back

Change-Id: Ib7e626b4ec3eea3bd0b1f57f17280a008bb4060e
(cherry picked from commit 1c43d48c62db766ffdf23e8f20ed07cbd7a660ee)