private void extendMemory(ISnapshotReadonly[] inputs) { _data.ClearCurrent(); _locals.ClearCurrent(); _localControls.ClearCurrent(); var isFirst = true; foreach (Snapshot input in inputs) { //merge info from extending inputs _globals.ExtendBy(input._globals, isFirst); _globalControls.ExtendBy(input._globalControls, isFirst); _locals.ExtendBy(input._locals, isFirst); _localControls.ExtendBy(input._localControls, isFirst); _meta.ExtendBy(input._meta, isFirst); _data.ExtendBy(input._data, isFirst); //all context stamps on extend level should be same CurrentContextStamp = input.CurrentContextStamp; isFirst = false; } }