Hi Alex,
Hi *,

if you do not yet have FOP developer access, and you are working on a
larger set of problems, please do not submit one large patch - current
committers will not have the time to go through every single change.
Instead, it is much nicer to have a series of small patches.

One option is to use git. There is a current git clone of the FOP source
tree available [1][2]. It also provides help to untangle tangled working
copies [3]. Git lets you produce patches between different individual
changesets [4], and detects if the patches where applied by someone else.

References:
[1] http://wiki.apache.org/general/GitAtApache
[2] git://git.apache.org/fop.git
[3] http://tomayko.com/writings/the-thing-about-git
[4]
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#sharing-your-changes

hth

Max

Alexander Kiel schrieb:
> Hi,
> 
> a issued a patch for MinOptMax:
> https://issues.apache.org/bugzilla/show_bug.cgi?id=48071
> 
> Please read my first comment there and consider my patch :-)
> 
> Best Regards
> Alex
> 
> On Sun, 2009-10-25 at 23:45 +0100, Alexander Kiel wrote:
>> Hi,
>>
>> the class MinOptMax has some 800 usages in FOP. It holds a triple of
>> values (min, opt, max) of length quantities. 
>>
>> It's heavily used during local computations and passing around. It's
>> fields are public (whereas the class comment says they are only package
>> visible). The public fields (and many methods) make MinOptMax mutable.
>> This mutability is used in the computations for sheer performance
>> reasons. But this mutability is a big bug attractor in passing around
>> situations.
>>
>> I don't think that anyone would wonder that an immutable MinOptMax would
>> help FOP.
>>
>> This refactoring wouldn't be rocket science if all usages of MinOptMax
>> would be covered by tests. I just started and found many such uncovered
>> sections. I'm very new here and so I simply can't write such tests. So I
>> ask you to possible write such tests or remove uncovered code sections.
>>
>> As for performance. I would opt for just refactoring all stuff to
>> immutable MinOptMax and only introduce an MinOptMaxBuffer if really
>> needed.
>>
>> With an immutable MinOptMax we can easily remove all TODO's inside
>> MinOptMax. The integrity tests (min <= opt <= max) and we can remove the
>> clone method, because it wouldn't be needed anymore.
>>
>> I just started the refactoring. All what I need are unit tests.
>>
>> Best Regards
>> Alex
>>
> 


-- 
http://max.berger.name/
OpenPGP ID: C93C5700 Fpr: AB6638CE472A499B3959 ADA2F989A2E5C93C5700

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to