[PATCH] Cleanup some spagetti code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Some code had gratuituous gotos that just didn't serve any purpose at all.
Something like:

[...]
	goto success;
failure:
	kfree(something);
	return 0;
success:
	return 1;
}

Changed to:

[...]
	return 1;

failure:
	kfree(something);
	return 0;
}

The latter form is easier to understand, shorter, uses fewer gotos, and much
more common in the dvb code than the former.
# HG changeset patch
# User Trent Piepho <xyzzy@xxxxxxxxxxxxx>
# Node ID 9b7ee58c97f0b98c9f7b06fb2db49099307d6f81
# Parent  5f090950252515d53aea7d06f03ae6c24debb75d
Remove the spagetti code gotos that aren't useful

From: Trent Piepho <xyzzy@xxxxxxxxxxxxx>

Some code had pointless gotos that just didn't make any sense.  They didn't
make the code smaller, or faster, or easier to understand.

Signed-off-by: Trent Piepho <xyzzy@xxxxxxxxxxxxx>

diff -r 5f0909502525 -r 9b7ee58c97f0 linux/drivers/media/dvb/b2c2/flexcop-pci.c
--- a/linux/drivers/media/dvb/b2c2/flexcop-pci.c	Thu May 11 14:59:02 2006 -0700
+++ b/linux/drivers/media/dvb/b2c2/flexcop-pci.c	Thu May 11 16:45:10 2006 -0700
@@ -242,19 +242,16 @@ static int flexcop_pci_dma_init(struct f
 	if ((ret = flexcop_dma_allocate(fc_pci->pdev,&fc_pci->dma[0],FC_DEFAULT_DMA1_BUFSIZE)) != 0)
 		return ret;
 
-	if ((ret = flexcop_dma_allocate(fc_pci->pdev,&fc_pci->dma[1],FC_DEFAULT_DMA2_BUFSIZE)) != 0)
-		goto dma1_free;
+	if ((ret = flexcop_dma_allocate(fc_pci->pdev,&fc_pci->dma[1],FC_DEFAULT_DMA2_BUFSIZE)) != 0) {
+		flexcop_dma_free(&fc_pci->dma[0]);
+		return ret;
+	}
 
 	flexcop_sram_set_dest(fc_pci->fc_dev,FC_SRAM_DEST_MEDIA | FC_SRAM_DEST_NET, FC_SRAM_DEST_TARGET_DMA1);
 	flexcop_sram_set_dest(fc_pci->fc_dev,FC_SRAM_DEST_CAO   | FC_SRAM_DEST_CAI, FC_SRAM_DEST_TARGET_DMA2);
 
 	fc_pci->init_state |= FC_PCI_DMA_INIT;
 
-	goto success;
-dma1_free:
-	flexcop_dma_free(&fc_pci->dma[0]);
-
-success:
 	return ret;
 }
 
@@ -303,7 +300,7 @@ static int flexcop_pci_init(struct flexc
 	spin_lock_init(&fc_pci->irq_lock);
 
 	fc_pci->init_state |= FC_PCI_INIT;
-	goto success;
+	return ret;
 
 err_pci_iounmap:
 	pci_iounmap(fc_pci->pdev, fc_pci->io_mem);
@@ -312,8 +309,6 @@ err_pci_release_regions:
 	pci_release_regions(fc_pci->pdev);
 err_pci_disable_device:
 	pci_disable_device(fc_pci->pdev);
-
-success:
 	return ret;
 }
 
@@ -378,14 +373,14 @@ static int flexcop_pci_probe(struct pci_
 
 	INIT_WORK(&fc_pci->irq_check_work, flexcop_pci_irq_check_work, fc_pci);
 
-	goto success;
+	return ret;
+
 err_fc_exit:
 	flexcop_device_exit(fc);
 err_pci_exit:
 	flexcop_pci_exit(fc_pci);
 err_kfree:
 	flexcop_device_kfree(fc);
-success:
 	return ret;
 }
 
diff -r 5f0909502525 -r 9b7ee58c97f0 linux/drivers/media/dvb/b2c2/flexcop-usb.c
--- a/linux/drivers/media/dvb/b2c2/flexcop-usb.c	Thu May 11 14:59:02 2006 -0700
+++ b/linux/drivers/media/dvb/b2c2/flexcop-usb.c	Thu May 11 16:45:10 2006 -0700
@@ -433,11 +433,10 @@ static int flexcop_usb_transfer_init(str
 	flexcop_wan_set_speed(fc_usb->fc_dev,FC_WAN_SPEED_8MBITS);
 	flexcop_sram_ctrl(fc_usb->fc_dev,1,1,1);
 
-	ret = 0;
-	goto success;
+	return 0;
+
 urb_error:
 	flexcop_usb_transfer_exit(fc_usb);
-success:
 	return ret;
 }
 
@@ -515,15 +514,14 @@ static int flexcop_usb_probe(struct usb_
 		goto err_fc_exit;
 
 	info("%s successfully initialized and connected.",DRIVER_NAME);
-	ret = 0;
-	goto success;
+	return 0;
+
 err_fc_exit:
 	flexcop_device_exit(fc);
 err_usb_exit:
 	flexcop_usb_exit(fc_usb);
 err_kfree:
 	flexcop_device_kfree(fc);
-success:
 	return ret;
 }
 
diff -r 5f0909502525 -r 9b7ee58c97f0 linux/drivers/media/dvb/b2c2/flexcop.c
--- a/linux/drivers/media/dvb/b2c2/flexcop.c	Thu May 11 14:59:02 2006 -0700
+++ b/linux/drivers/media/dvb/b2c2/flexcop.c	Thu May 11 16:45:10 2006 -0700
@@ -116,7 +116,7 @@ static int flexcop_dvb_init(struct flexc
 	dvb_net_init(&fc->dvb_adapter, &fc->dvbnet, &fc->demux.dmx);
 
 	fc->init_state |= FC_STATE_DVB_INIT;
-	goto success;
+	return 0;
 
 err_connect_frontend:
 	fc->demux.dmx.remove_frontend(&fc->demux.dmx,&fc->mem_frontend);
@@ -129,9 +129,6 @@ err_dmx:
 err_dmx:
 	dvb_unregister_adapter(&fc->dvb_adapter);
 	return ret;
-
-success:
-	return 0;
 }
 
 static void flexcop_dvb_exit(struct flexcop_device *fc)
@@ -279,11 +276,10 @@ int flexcop_device_initialize(struct fle
 
 	flexcop_device_name(fc,"initialization of","complete");
 
-	ret = 0;
-	goto success;
+	return 0;
+
 error:
 	flexcop_device_exit(fc);
-success:
 	return ret;
 }
 EXPORT_SYMBOL(flexcop_device_initialize);
diff -r 5f0909502525 -r 9b7ee58c97f0 linux/drivers/media/dvb/dvb-usb/dtt200u-fe.c
--- a/linux/drivers/media/dvb/dvb-usb/dtt200u-fe.c	Thu May 11 14:59:02 2006 -0700
+++ b/linux/drivers/media/dvb/dvb-usb/dtt200u-fe.c	Thu May 11 16:45:10 2006 -0700
@@ -168,11 +168,9 @@ struct dvb_frontend* dtt200u_fe_attach(s
 	state->frontend.ops = &state->ops;
 	state->frontend.demodulator_priv = state;
 
-	goto success;
+	return &state->frontend;
 error:
 	return NULL;
-success:
-	return &state->frontend;
 }
 
 static struct dvb_frontend_ops dtt200u_fe_ops = {
diff -r 5f0909502525 -r 9b7ee58c97f0 linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
--- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c	Thu May 11 14:59:02 2006 -0700
+++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c	Thu May 11 16:45:10 2006 -0700
@@ -121,16 +121,15 @@ int dvb_usb_dvb_init(struct dvb_usb_devi
 
 	dvb_net_init(&d->dvb_adap, &d->dvb_net, &d->demux.dmx);
 
-	goto success;
+	d->state |= DVB_USB_STATE_DVB;
+	return 0;
+
 err_dmx_dev:
 	dvb_dmx_release(&d->demux);
 err_dmx:
 	dvb_unregister_adapter(&d->dvb_adap);
 err:
 	return ret;
-success:
-	d->state |= DVB_USB_STATE_DVB;
-	return 0;
 }
 
 int dvb_usb_dvb_exit(struct dvb_usb_device *d)
diff -r 5f0909502525 -r 9b7ee58c97f0 linux/drivers/media/dvb/dvb-usb/vp702x-fe.c
--- a/linux/drivers/media/dvb/dvb-usb/vp702x-fe.c	Thu May 11 14:59:02 2006 -0700
+++ b/linux/drivers/media/dvb/dvb-usb/vp702x-fe.c	Thu May 11 16:45:10 2006 -0700
@@ -293,11 +293,9 @@ struct dvb_frontend * vp702x_fe_attach(s
 	s->lnb_buf[1] = SET_LNB_POWER;
 	s->lnb_buf[3] = 0xff; /* 0=tone burst, 2=data burst, ff=off */
 
-	goto success;
+	return &s->fe;
 error:
 	return NULL;
-success:
-	return &s->fe;
 }
 
 
diff -r 5f0909502525 -r 9b7ee58c97f0 linux/drivers/media/dvb/dvb-usb/vp7045-fe.c
--- a/linux/drivers/media/dvb/dvb-usb/vp7045-fe.c	Thu May 11 14:59:02 2006 -0700
+++ b/linux/drivers/media/dvb/dvb-usb/vp7045-fe.c	Thu May 11 16:45:10 2006 -0700
@@ -155,11 +155,9 @@ struct dvb_frontend * vp7045_fe_attach(s
 	s->fe.ops = &s->ops;
 	s->fe.demodulator_priv = s;
 
-	goto success;
+	return &s->fe;
 error:
 	return NULL;
-success:
-	return &s->fe;
 }
 
 
_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux