Maurits Rijk <[EMAIL PROTECTED]> writes:

> I just had a look at the code of some of the plug-ins and I noticed that
> there is often lot's of room for improvement:
> 
> 1) some constructions are plain clumsy, for example somewhere I saw:
> 
>       for (k = 0; k < bytes; k++) destline++;
> 
> instead of simply: 
> 
>       destline += bytes;

Easily fixable.  But why did the code get into that state to begin with?

> 2) a lot of functionality has been added since the last update of some
> of the plug-ins. Result: duplicate functionality

This basically boils down to "the GIMP's user interface is a mess".  I
don't know how much fixing and polishing you want to do during the
freeze.  If you remove functionality from some plug-ins, you may have
to modify scripts and trigger some other chain reactions that the
freeze may not be happy with.

> 3) sometimes it's just lack of C knowledge:
> 
>       if (p)
>          free(p);
> 
> can be simply replaced by just: 
> 
>       free(p);

If p is a null pointer then "free (p)" may (and should!) crash.  You
are incorrect here.

> 4) some plugins have obvious memory leaks.
> 
> So my question: is it worth the effort to carefully go through all the
> code (not only plug-ins) and clean things up?

Yes.  You can use tools like memprof to do this.

> 1) source code becomes smaller. Not a big deal with Gb harddisks, but
> nice for future maintenance.
> 
> 2) object code becomes smaller. My initial estimate that for example
> most plug-ins can be easily reduced with 10 a 20 % without much effort.
> 
> 3) during the process we might find further bugs.

(3) is the important one.  The first priority is to achieve
correctness.  Performance in terms of speed or memory is secondary.

> Disadvantages:
> 
> 1) this will cost time/effort (I am willing to make my contribution).

Not an issue.

> 2) we might break things that work

This can be fixed by, you know, testing things after you change them :-)

> 3) we don't spend time on other fun things liking adding functionality.

The GIMP does not need more functionality at this point; it needs to
be checked for correctness.

  Federico

Reply via email to