[Nice] New SDP parsing API
Youness Alaoui
youness.alaoui at collabora.co.uk
Tue Feb 5 10:50:43 PST 2013
On 02/05/2013 03:47 AM, Olivier Crête wrote:
> Hi,
>
> On Tue, 2013-02-05 at 11:28 +0530, Rohan Garg wrote:
>> I notice that you use goto quite liberally elsewhere, but isn't usage
>> of goto generally frowned upon? ( I haven't looked the rest of the
>> code thoroughly enough to say if it can be converted to not use goto
>> ).
>
> Using goto is ok if you use it right, for example, in C, it's quite
> popular to exit in case of errors, since we have no exceptions.
>
Yeah Rohan, it can be refactored like you said. But that "find_component/goto
done" part was copy/pasted from elsewhere, and pretty much all functions work
the same, with the "done" or "end" label at the end to do the unlock/return.
I prefer keeping consistency with the other functions than refactoring that one.
And I can't refactor everything otherwise you get :
if (cond1) {
if (cond2) {
do stuff
if (!error) {
bla bla bla
if (foo != NULL) {
etc...
}
}
}
}
And it makes the code much less readable that way. Also, in some use cases, it's
not even possible to do it that way (like inside a block, you need to free some
memory, and you have a bunch of error handling if/else, and you have to
copy/paste the same code in a bunch of places).
Like Olivier said, using goto in C is very common when it comes to error
handling and is usually the prefered way... only avoid goto statements if it's
for stuff like :
loop:
do stuff
i++
if (i < x)
goto loop;
There are better constructs for that :)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/nice/attachments/20130205/62b49538/attachment.pgp>
More information about the nice
mailing list