Hi Jennifer,

Do you mind pasting the URL links to the patches in this thread? I'd
like to backport them into our openjdk6 tree.

Thanks,
Hiroshi

On Mon, Apr 6, 2009 at 12:23 PM, Jennifer Godinez
<jennifer.godi...@sun.com> wrote:
> Hi Roman,
>
> Thanks for submitting the patches.  I got all 4 now.  I'm working on it but
> Jim needs to review the changes.  He's on vacation now so don't expect to
> get anything very soon until he gets back.  I will keep you updated.
>
> Jennifer
>
> Roman Kennke wrote:
>>
>> Hi Jennifer,
>>
>>> Apologies for not replying to you sooner.
>>
>> No problem.
>>
>>>  As far as I know, Jim made comments on the fix.  Have you  looked into
>>> these?
>>
>> Jim commented on the fix for bug #3 that I haven't looked at yet. I will
>> do so tomorrow.
>>
>>>  Whether or not you have, please go ahead and enter the patch into
>>> Bugzilla so we can better keep track on them.
>>
>> I entered the 3 patches for the other 3 problems into bugzilla, and will
>> do the same for the other as soon as I implemented Jim's suggestions.
>>
>> The bugs are 100030, 100031 and 100032 in bugzilla.
>>
>> Thanks, Roman
>>
>>> Jennifer
>>>
>>> Roman Kennke wrote:
>>>>
>>>> Hi,
>>>>
>>>> Is it possible to get an update on these patches or did the whole Java2D
>>>> team just disappear? ;-) Should I enter the patches into Bugzilla or
>>>> should I simply wait? What's happening with them now?
>>>>
>>>> /Roman
>>>>
>>>>> so what happens now with this patch and the others? Should I enter them
>>>>> into Bugzilla, so they don't get lost? Are they already in the process
>>>>> of beeing integrated?
>>>>>
>>>>> /Roman
>>>>>
>>>>> Am Dienstag, den 03.03.2009, 16:17 +0100 schrieb Roman Kennke:
>>>>>>
>>>>>> Hi there,
>>>>>>
>>>>>>> 4. StrokeShapeTest: createStrokedShape() behaves differently.
>>>>>>
>>>>>> It turns out that there is an arithmetic overflow here. The pisces
>>>>>> stroker does a stupid thing here. First it initializes the
>>>>>> scaledLineWidth like this:
>>>>>>
>>>>>>        this.scaledLineWidth2 = ((long)transform.m00*lineWidth2);
>>>>>>
>>>>>> which is infact wrong, because in fixed point arithmetics you need to
>>>>>> apply >> 16, because the decimal moves.
>>>>>>
>>>>>> However, in another place it uses this factor like this:
>>>>>>
>>>>>>                dx = (int)( (ly*scaledLineWidth2)/ilen >> 16);
>>>>>>                dy = (int)(-(lx*scaledLineWidth2)/ilen >> 16);
>>>>>>
>>>>>> which makes it ok in the end. The only problem is, that we start with
>>>>>> an
>>>>>> incredibly large number, then multiply another incredibly large number
>>>>>> and _after_ that (when the overflow already occured) do the >> 16. The
>>>>>> patch moves the >> 16 to the initialization of scaledLineWidth, which
>>>>>> makes it clearer, more correct and even a tad faster, because we do
>>>>>> the
>>>>>> second calculation at least 2x.
>>>>>>
>>>>>> Of course, the real fix here would be to turn the whole implementation
>>>>>> into floating point. This particular testcase is fixed by this patch,
>>>>>> and the 'range of correct behaviour' is much large now, but if you
>>>>>> deal
>>>>>> with very large numbers in your shapes, then you will get trouble
>>>>>> again.
>>>>>>
>>>>>> /Roman
>

Reply via email to