Skip to content
cRaptorQ.cpp 33.7 KiB
Newer Older
Luker's avatar
Luker committed
		delete reinterpret_cast<RaptorQ__v1::Decoder<uint64_t*, uint64_t*>*> (
Luker's avatar
Luker committed
																uptr->ptr);
Luker's avatar
Luker committed
		break;
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_NONE:
Luker's avatar
Luker committed
		break;
	}
Luker's avatar
Luker committed
	uptr->ptr = nullptr;
Luker's avatar
Luker committed
	return;
}

void RaptorQ_free_block (struct RaptorQ_ptr *ptr, const uint8_t sbn)
{
Luker's avatar
Luker committed
	if (ptr == nullptr || ptr->type == RaptorQ_type::RQ_NONE ||
															ptr->ptr == nullptr)
Luker's avatar
Luker committed
		return;
	switch (ptr->type) {
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_ENC_8:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Encoder<uint8_t*, uint8_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_ENC_16:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Encoder<uint16_t*, uint16_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_ENC_32:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Encoder<uint32_t*, uint32_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_ENC_64:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Encoder<uint64_t*, uint64_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_DEC_8:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Decoder<uint8_t*, uint8_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_DEC_16:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Decoder<uint16_t*, uint16_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_DEC_32:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Decoder<uint32_t*, uint32_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_DEC_64:
Luker's avatar
Luker committed
		return (reinterpret_cast<RaptorQ__v1::Decoder<uint64_t*, uint64_t*>*> (
Luker's avatar
Luker committed
														ptr->ptr))->free(sbn);
Luker's avatar
Luker committed
	case RaptorQ_type::RQ_NONE:
Luker's avatar
Luker committed
		return;
	}
Luker's avatar
Luker committed
#ifndef USING_CLANG
	// uncomment the return and:
	// clang: WARN: will never be executed (exaustive switch)
	// if commented, GCC: warn: control reaches end of non-void
	// ...make up your mind, guys?
	return;
#endif
Luker's avatar
Luker committed
}