From c89a15d9317c87fb0212809351dedd90b5994716 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Tue, 16 Jun 2020 16:44:57 +0300
Subject: [PATCH] Fixes for unit test fails

---
 components/streams/src/builder.cpp      | 10 ++++++----
 components/structures/src/new_frame.cpp |  2 ++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/components/streams/src/builder.cpp b/components/streams/src/builder.cpp
index 91fa4cfa2..c0e159099 100644
--- a/components/streams/src/builder.cpp
+++ b/components/streams/src/builder.cpp
@@ -91,10 +91,12 @@ ftl::data::Frame &Builder::get(int64_t timestamp, size_t ix) {
 	auto fs = _get(timestamp);
 
 	if (ix >= fs->frames.size()) {
-		throw FTL_Error("Frame index out-of-bounds - " << ix << "(" << fs->frames.size() << ")");
-		//while (fs->frames.size() < size_) {
-		//	fs->frames.push_back(std::move(pool_->allocate(ftl::data::FrameID(fs->frameset(), + fs->frames.size()), fs->timestamp())));
-		//}
+		//throw FTL_Error("Frame index out-of-bounds - " << ix << "(" << fs->frames.size() << ")");
+
+		// FIXME: This is really dangerous
+		while (fs->frames.size() < size_) {
+			fs->frames.push_back(std::move(pool_->allocate(ftl::data::FrameID(fs->frameset(), + fs->frames.size()), fs->timestamp())));
+		}
 	}
 
 	//if (fs->frames.size() < size_) fs->frames.resize(size_);
diff --git a/components/structures/src/new_frame.cpp b/components/structures/src/new_frame.cpp
index fc4e92006..f969023fc 100644
--- a/components/structures/src/new_frame.cpp
+++ b/components/structures/src/new_frame.cpp
@@ -243,6 +243,8 @@ void Frame::merge(Frame &f) {
 		d.status = ChannelStatus::VALID;
 		touch(x.first);
 	}
+	f.status_ = FrameStatus::RELEASED;
+	f.changed_.clear();
 }
 
 void Frame::moveTo(Frame &f) {
-- 
GitLab