提交 0c578bc2 编写于 作者: P prr

8190280: [macos] Font2DTest demo started failing for Arabic range from JDK 8 u162 b01 on Mac

Reviewed-by: serb, pnarayanan
上级 4a905126
......@@ -72,6 +72,10 @@ public final class CompositeStrike extends FontStrike {
PhysicalStrike getStrikeForSlot(int slot) {
if (slot >= strikes.length) {
slot = 0;
}
PhysicalStrike strike = strikes[slot];
if (strike == null) {
strike =
......
......@@ -136,12 +136,18 @@ LEGlyphID FontInstanceAdapter::mapCharToGlyph(LEUnicode32 ch, const LECharMapper
}
LEGlyphID id = (LEGlyphID)env->CallIntMethod(font2D, sunFontIDs.f2dCharToGlyphMID, (jint)mappedChar);
if ((int)id < 0) {
id = 0;
}
return id;
}
LEGlyphID FontInstanceAdapter::mapCharToGlyph(LEUnicode32 ch) const
{
LEGlyphID id = (LEGlyphID)env->CallIntMethod(font2D, sunFontIDs.f2dCharToGlyphMID, ch);
if ((int)id < 0) {
id = 0;
}
return id;
}
......@@ -189,8 +195,12 @@ le_uint32 FontInstanceAdapter::mapCharToWideGlyph(LEUnicode32 ch, const LECharMa
return 1;
}
return (LEGlyphID)env->CallIntMethod(font2D, sunFontIDs.charToGlyphMID,
LEGlyphID id = (LEGlyphID)env->CallIntMethod(font2D, sunFontIDs.charToGlyphMID,
mappedChar);
if ((int)id < 0) {
id = 0;
}
return id;
}
void FontInstanceAdapter::getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const
......
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.image.BufferedImage;
/**
* @test
* @bug 8190280
* @summary ensure no negative glyph ids propagate to code used by TextLayout
*/
public class NegativeGlyphIDException {
public static void main(String[] args) {
Font font = new Font("Monospaced", Font.PLAIN, 12);
String text = "\u0601";
FontRenderContext frc = new FontRenderContext(null, false, false);
TextLayout layout = new TextLayout(text, font, frc);
BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = bi.createGraphics();
layout.draw(g2d, 50.0f, 50.0f);
layout.getCaretShapes(0);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册