Hi, In article <[email protected]>, Stephen F. Booth<[email protected]> wrote: > I've never used the C++ API, but the source for get_block() is just: > > return > local::construct_block(::FLAC__metadata_simple_iterator_get_block(iterator_)); > > and construct_block() looks like (simplified for the picture case): > > Prototype *ret = 0; > ret = new Picture(object, /*copy=*/false); > return ret; > > So I don't see any way this couldn't be a leak if you aren't deleting > the pointer returned from get_block(). > > The documentation says: > > * The ownership of pointers in the C++ layer follows that in > * the C layer, i.e. > * - The objects returned by get_block() are yours to > * modify, but changes are not reflected in the FLAC file > * until you call set_block(). The objects are also > * yours to delete; they are not automatically deleted > * when passed to set_block() or insert_block_after(). > > So I think it will be necessary for you to delete the object manually.
Thanks for that. Can't find all of that in the documentation I'm looking at: http://flac.sourceforge.net/api/index.html However, it does all make sense and ties in with my reading of the library source too. Thanks a lot for the response. Andy _______________________________________________ Flac-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/flac-dev
