playlist_CreateNode(): add an argument to specify an input_item_t to be linked...
playlist_CreateNode(): add an argument to specify an input_item_t to be linked with the node, rather than creating a new input. Setting that argument to NULL will make playlist_CreateNode() behave like previously. That way we can create only one input per pair of node (for local playlist, media library, and service discovery) Previous behaviour was to create 2 inputs with the same i_id member, but we would store both input in a binary search tree (sorted by i_id), and that kind of tree MUST NOT have 2 items with the same key, else we will get some bad memory corruption when the wrong input is removed from the tree (the other being left in the tree while the memory referred by it was freed). Note that this breaks ABI
Showing with 34 additions and 38 deletions