On Sun, 31 Aug 2008, Wolfgang Denk wrote:

> Dear Guennadi Liakhovetski,
> 
> In message <[EMAIL PROTECTED]> you wrote:
> > 
> > So, no, this is not because I didn't like somebody else's coding style. 
> > This is because with NAND addition this function would become an 
> > absolutely unreadable monster. So, I would consider this patch a 
> > readability improvement.
> 
> But you are duplicating code. It may be just 20 lines or so, but  the
> better  approach  would  be to leave the common code as is and factor
> out two new functions being called from the common code.

Yes, the original code was:

...
        flash_io(O_RDONLY);
...
        flash_io(O_RDONLY);
...
        flash_io(O_RDWR);

int flash_io(int mode)
{
        fd = open(path, mode);

        if (mode == O_RDONLY) {
                ...
        } else {
                ...
        }

        close(fd);
}

I changed it to

...
        flash_read();
...
        flash_read();
...
        flash_write();
...

int flash_read(void)
{
        fd = open(path, O_RDONLY);

        ...

        close(fd);
}

int flash_write(void)
{
        fd = open(path, O_RDWR);

        ...

        close(fd);
}

yes, I thus duplicate "open" and "close". We could do

...
        flash_io(O_RDONLY);
...
        flash_io(O_RDONLY);
...
        flash_io(O_RDWR);

int flash_io(int mode)
{
        fd = open(path, mode);

        if (mode == O_RDONLY) {
                do_flash_read(fd);
        } else {
                do_flash_write(fd);
        }

        close(fd);
}

but, honestly, I prefer my version. If you disagree, I can change it to 
variant 3, no problem. This will mean redoing all patches 2-6 though...

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [EMAIL PROTECTED]
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to