xc7series: fix bug with missing empty frames

Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
This commit is contained in:
Tomasz Michalak 2019-04-08 10:11:40 +02:00
parent 710658ebf8
commit 1f6ba5d734
1 changed files with 8 additions and 10 deletions

View File

@ -63,22 +63,20 @@ int Frames::readFrames(const std::string& frm_file_str) {
} }
void Frames::addMissingFrames(const absl::optional<Part>& part) { void Frames::addMissingFrames(const absl::optional<Part>& part) {
auto current_frame_address = frames_data_.begin()->first; auto current_frame_address =
auto next_frame_address = absl::optional<FrameAddress>(FrameAddress(0));
part->GetNextFrameAddress(current_frame_address); do {
while (next_frame_address) { auto iter = frames_data_.find(*current_frame_address);
current_frame_address = *next_frame_address;
auto iter = frames_data_.find(current_frame_address);
if (iter == frames_data_.end()) { if (iter == frames_data_.end()) {
FrameData frame_data(101, 0); FrameData frame_data(101, 0);
// TODO make sure if this is needed // TODO make sure if this is needed
updateECC(frame_data); updateECC(frame_data);
frames_data_.insert(std::pair<FrameAddress, FrameData>( frames_data_.insert(std::pair<FrameAddress, FrameData>(
current_frame_address, frame_data)); *current_frame_address, frame_data));
} }
next_frame_address = current_frame_address =
part->GetNextFrameAddress(current_frame_address); part->GetNextFrameAddress(*current_frame_address);
} } while (current_frame_address);
} }
void Frames::updateECC(FrameData& data) { void Frames::updateECC(FrameData& data) {