[OpenJDK 2D-Dev] Review Request: (JDK-8048782) OpenJDK: PiscesCache : xmax/ymax rounding up can cause RasterFormatException.
prasanta.sadhukhan at oracle.com
Wed Feb 25 10:27:19 UTC 2015
Thanks Jim,Phil for review.
Updated webrev contains the changes -
On 2/21/2015 2:57 AM, Jim Graham wrote:
> Hi Prasanta,
> This fixes the symptom without fixing the underlying issue which is
> that there is poor sharing of information between the objects in the
> Pisces package. The cache adds 1 to bboxX1 and bboxY1 for its own
> internal purposes - and it seems extremely questionable that it should
> do so as reading through the code it isn't clear that it should - and
> then another object grabs its bbox data, making assumptions about how
> those fields are managed, and gets it wrong. Filtering the answer for
> "rightness" does not fix the underlying problem of how PTG gets its
> data. I'd recommend a solution that brings us closer to having the
> code make sense, though we should look for a minimal solution since
> Marlin may patch much of this code when that project gets integrated.
> Some suggestions:
> - Add PiscesCache.getBBox() which does the proper "- 1"s
> - Adjust PiscesCache to not need to add one. This is probably the
> best overall solution since it gets rid of "voodoo" code in
> PiscesCaceh, but it would require a lot more testing. This could get
> risky, so the first solution above, though it might add more code, is
> probably better for now. Note that in PiscesCache, allocating the
> rowAARLE array already adds one to the number of rows allocated which
> seems odd because now we allocate 2 additional rows due to the bbox+1
> adjustment. Also, bboxX1 is never even used so adding 1 to it just
> seems pointless other than to confuse code that reads the values.
> On 2/19/2015 8:39 PM, prasanta sadhukhan wrote:
>> I would like a review for a solution of this bug.
>> In OpenJDK9, "java.awt.image.RasterFormatException: (x + width) is
>> outside raster" is thrown when the bounding box width outgrows original
>> raster. This is because PiscesRenderingEngine does not take care of
>> clipping the bounding box correctly.
>> webrev: http://cr.openjdk.java.net/~serb/prasanta/8048782/webrev.00
More information about the 2d-dev