- if (ctx->cur_stream != ctx->final_stream) {
- /* Advance to next stream. */
- ctx->cur_stream = (struct wim_lookup_table_entry *)
- ((u8*)next - ctx->list_head_offset);
-
- ctx->cur_stream_offset = 0;
- } else {
- /* No more streams. */
- ctx->cur_stream = NULL;
+ /* Advance to next stream. */
+ ctx->cur_stream = ctx->next_stream;
+ if (ctx->cur_stream != NULL) {
+ if (ctx->cur_stream != ctx->final_stream)
+ ctx->next_stream = next_stream(ctx->cur_stream,
+ ctx->list_head_offset);
+ else
+ ctx->next_stream = NULL;