My patch for metadata_iterators didn't completely fix the problem.

The behavior of chain_prepare_for_write_() must always be the same
as the behavior of FLAC__metadata_chain_check_if_tempfile_needed().

Currently it's not the case: one check was missed in
FLAC__metadata_chain_check_if_tempfile_needed(), and also 
chain_prepare_for_write_()
checks sizes of metadata blocks *after* making the changes of the chain, while
FLAC__metadata_chain_check_if_tempfile_needed() does it *before* the changes.

This patch changes FLAC__metadata_chain_check_if_tempfile_needed() so that it
keeps some info (lbs_state, lbs_size) about estimated changes and then
uses it to check the block sizes.

It also simplifies FLAC__metadata_chain_check_if_tempfile_needed() a little.

Attachment: metadata_iterators_fix.patch
Description: Binary data

_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to