ast_stream_clone() cannot copy the opaque user data stored on a stream.
We don't know how to clone the data so it isn't copied into the clone.
Change-Id: Ia51321bf38ecbfdcc53787ca77ea5fd2cabdf367
* \retval NULL failure
*
* \note Opaque data pointers set with ast_stream_set_data() are not part
- * of the deep clone. The pointers are simply copied.
+ * of the deep clone. We have no way to clone the data.
*
* \since 15
*/
{
struct ast_stream *new_stream;
size_t stream_size;
+ int idx;
if (!stream) {
return NULL;
ao2_ref(new_stream->formats, +1);
}
+ /* We cannot clone the opaque data because we don't know how. */
+ for (idx = 0; idx < AST_STREAM_DATA_SLOT_MAX; ++idx) {
+ new_stream->data[idx] = NULL;
+ new_stream->data_free_fn[idx] = NULL;
+ }
+
return new_stream;
}