Skip to content

Commit 3189704

Browse files
Yuri NesterenkoRealCLanger
authored andcommitted
8324559: Improve 2D image handling
Reviewed-by: mbalao Backport-of: 1a5a44019871c411148ca85d0491cc68d2256e4e
1 parent 926391e commit 3189704

File tree

1 file changed

+8
-8
lines changed
  • src/java.desktop/share/native/libawt/java2d/loops

1 file changed

+8
-8
lines changed

src/java.desktop/share/native/libawt/java2d/loops/MaskFill.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -467,7 +467,7 @@ storePgram(EdgeInfo *pLeftEdge, EdgeInfo *pRightEdge,
467467
#define INSERT_ACCUM(pACCUM, IMIN, IMAX, X0, Y0, X1, Y1, CX1, CX2, MULT) \
468468
do { \
469469
jdouble xmid = ((X0) + (X1)) * 0.5; \
470-
if (xmid <= (CX2)) { \
470+
if (xmid < (CX2)) { \
471471
jdouble sliceh = ((Y1) - (Y0)); \
472472
jdouble slicearea; \
473473
jint i; \
@@ -556,7 +556,7 @@ fillAAPgram(NativePrimitive *pPrim, SurfaceDataRasInfo *pRasInfo,
556556
jint cy2 = pRasInfo->bounds.y2;
557557
jint width = cx2 - cx1;
558558
EdgeInfo edges[4];
559-
jfloat localaccum[MASK_BUF_LEN + 1];
559+
jfloat localaccum[MASK_BUF_LEN + 2];
560560
jfloat *pAccum;
561561

562562
if (!storePgram(edges + 0, edges + 2,
@@ -568,12 +568,12 @@ fillAAPgram(NativePrimitive *pPrim, SurfaceDataRasInfo *pRasInfo,
568568
}
569569

570570
pAccum = ((width > MASK_BUF_LEN)
571-
? malloc((width + 1) * sizeof(jfloat))
571+
? malloc((width + 2) * sizeof(jfloat))
572572
: localaccum);
573573
if (pAccum == NULL) {
574574
return;
575575
}
576-
memset(pAccum, 0, (width+1) * sizeof(jfloat));
576+
memset(pAccum, 0, (width + 2) * sizeof(jfloat));
577577

578578
while (cy1 < cy2) {
579579
jint lmin, lmax, rmin, rmax;
@@ -794,7 +794,7 @@ drawAAPgram(NativePrimitive *pPrim, SurfaceDataRasInfo *pRasInfo,
794794
jint cy2 = pRasInfo->bounds.y2;
795795
jint width = cx2 - cx1;
796796
EdgeInfo edges[8];
797-
jfloat localaccum[MASK_BUF_LEN + 1];
797+
jfloat localaccum[MASK_BUF_LEN + 2];
798798
jfloat *pAccum;
799799

800800
if (!storePgram(edges + 0, edges + 6,
@@ -815,12 +815,12 @@ drawAAPgram(NativePrimitive *pPrim, SurfaceDataRasInfo *pRasInfo,
815815
JNI_TRUE);
816816

817817
pAccum = ((width > MASK_BUF_LEN)
818-
? malloc((width + 1) * sizeof(jfloat))
818+
? malloc((width + 2) * sizeof(jfloat))
819819
: localaccum);
820820
if (pAccum == NULL) {
821821
return;
822822
}
823-
memset(pAccum, 0, (width+1) * sizeof(jfloat));
823+
memset(pAccum, 0, (width + 2) * sizeof(jfloat));
824824

825825
while (cy1 < cy2) {
826826
jint lmin, lmax, rmin, rmax;

0 commit comments

Comments
 (0)