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

Reply via email to