on 20/05/2009 15:32 John Baldwin said the following: > On Wednesday 20 May 2009 8:09:46 am Andriy Gapon wrote: >> This is a patch that I currently use to fix the problem for myself - both 2KB >> structs are allocated on the heap. >> I am not sure what is the proper style for chained calls using chained >> if-else, >> but I think that the chaining is the best way to organize that piece of >> code, so >> that there is only one exit point from case-block to make sure that FREE is >> always >> called. > > I usually use goto for that. Error handling does seem to be one of the few > appropriate uses of goto. In this case you would basically be replacing all > the 'break's with 'goto out' or some such. Also, please do not use the > MALLOC() > or FREE() macros in new code as they are deprecated (I think they are > completely > removed in 8).
I used MALLOC/FREE only because I saw that this is what was used in that file before. I will fix this. I was reluctant to use goto and label within a case block. In my personal taste that looks uglier and less safe (e.g. accidental goto from another case or from outside of switch). I would preferred goto if label was outside of switch/case. But maybe it's my personal prejudice. I will follow the style that you will recommend. -- Andriy Gapon _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"