ao2_replace() bumps the reference count of the object that is doing the
replacing, which is not what we want. We just want to drop the old ref
on the old object and update the pointer to point to the new object.
Pointed out by George Joseph in #asterisk-dev
Change-Id: Ie8167ed3d4b52b9d1ea2d785f885e8c27206743d
/* We don't need to lock here because we are the thread that
* created this mohclass and we haven't published it yet */
- ao2_replace(mohclass->files, playlist_entries);
+ ao2_ref(mohclass->files, -1);
+ mohclass->files = playlist_entries;
}
}
AST_VECTOR_COMPACT(files);
ao2_lock(class);
- ao2_replace(class->files, files);
+ ao2_ref(class->files, -1);
+ class->files = files;
ao2_unlock(class);
return AST_VECTOR_SIZE(files);