diff --git a/zinflate.cpp b/zinflate.cpp index 2582cf19..685268f6 100644 --- a/zinflate.cpp +++ b/zinflate.cpp @@ -303,9 +303,6 @@ void Inflator::ProcessInput(bool flush) { while (true) { - if (m_inQueue.IsEmpty()) - return; - switch (m_state) { case PRE_STREAM: @@ -337,6 +334,8 @@ void Inflator::ProcessInput(bool flush) ProcessPoststreamTail(); m_state = m_repeat ? PRE_STREAM : AFTER_END; Output(0, NULL, 0, GetAutoSignalPropagation(), true); // TODO: non-blocking + if (m_inQueue.IsEmpty()) + return; break; case AFTER_END: m_inQueue.TransferTo(*AttachedTransformation());