On Thu, Jul 15, 2004 at 02:57:17PM -0400, Igor Pechtchanski wrote: >> 2) The other problem is that I find it sort of odd to see the dec() >> method performing a deletion. Couldn't this be handled where, IMO, >> it should logically be handled, in the close function, e.g., >> >> if (!audio_out_->dec ()) >> delete audio_out_; >> ? > >Umm, that's actually a rather standard construct in reference counting >(called "object suicide" -- you should get some references if you Google >for "object suicide reference counting").
Yes, I thought that would be your answer, however, I don't like the idea of having a method called "inc" which just increments a count and a method called "dec" which decrements a count and, oh, hey, it might delete the object, too. It seems more straightforward to delete audio_out_ in the place where you'd expect it to be deleted rather than having a o a "dec" call which, if you check, you'll notice that it deletes the buffer. Or, as a compromise, don't call it 'dec'. Call it something which illustrates what it is doing. cgf