Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
a456f1a0
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a456f1a0
编写于
3月 02, 2015
作者:
V
vadim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8072490: Better font morphing redux
Reviewed-by: prr, srl, mschoene
上级
fb6199a0
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
23 addition
and
13 deletion
+23
-13
src/share/native/sun/font/layout/LETableReference.h
src/share/native/sun/font/layout/LETableReference.h
+2
-2
src/share/native/sun/font/layout/LigatureSubstProc.cpp
src/share/native/sun/font/layout/LigatureSubstProc.cpp
+5
-2
src/share/native/sun/font/layout/LigatureSubstProc2.cpp
src/share/native/sun/font/layout/LigatureSubstProc2.cpp
+5
-2
src/share/native/sun/font/layout/MorphTables.cpp
src/share/native/sun/font/layout/MorphTables.cpp
+8
-5
src/share/native/sun/font/layout/PairPositioningSubtables.cpp
...share/native/sun/font/layout/PairPositioningSubtables.cpp
+3
-2
未找到文件。
src/share/native/sun/font/layout/LETableReference.h
浏览文件 @
a456f1a0
...
...
@@ -188,7 +188,7 @@ public:
void
addOffset
(
size_t
offset
,
LEErrorCode
&
success
)
{
if
(
hasBounds
())
{
if
(
offset
>
fLength
)
{
if
(
offset
>
=
fLength
)
{
LE_DEBUG_TR
(
"addOffset off end"
);
success
=
LE_INDEX_OUT_OF_BOUNDS_ERROR
;
return
;
...
...
@@ -203,7 +203,7 @@ public:
if
(
atPtr
==
NULL
)
return
0
;
if
(
LE_FAILURE
(
success
))
return
LE_UINTPTR_MAX
;
if
((
atPtr
<
fStart
)
||
(
hasBounds
()
&&
(
atPtr
>
fStart
+
fLength
)))
{
(
hasBounds
()
&&
(
atPtr
>
=
fStart
+
fLength
)))
{
LE_DEBUG_TR3
(
"ptrToOffset args out of range: %p"
,
atPtr
,
0
);
success
=
LE_INDEX_OUT_OF_BOUNDS_ERROR
;
return
LE_UINTPTR_MAX
;
...
...
src/share/native/sun/font/layout/LigatureSubstProc.cpp
浏览文件 @
a456f1a0
...
...
@@ -92,15 +92,18 @@ ByteOffset LigatureSubstitutionProcessor::processStateEntry(LEGlyphStorage &glyp
if
(
actionOffset
!=
0
)
{
LEReferenceTo
<
LigatureActionEntry
>
ap
(
stHeader
,
success
,
actionOffset
);
LigatureActionEntry
action
;
le_int32
offset
,
i
=
0
;
le_int32
offset
,
i
=
0
,
j
=
0
;
le_int32
stack
[
nComponents
];
le_int16
mm
=
-
1
;
do
{
le_uint32
componentGlyph
=
componentStack
[
m
--
];
if
(
j
++
>
0
)
{
ap
.
addObject
(
success
);
}
action
=
SWAPL
(
*
ap
.
getAlias
());
ap
.
addObject
(
success
);
// ap++
if
(
m
<
0
)
{
m
=
nComponents
-
1
;
...
...
src/share/native/sun/font/layout/LigatureSubstProc2.cpp
浏览文件 @
a456f1a0
...
...
@@ -98,7 +98,7 @@ le_uint16 LigatureSubstitutionProcessor2::processStateEntry(LEGlyphStorage &glyp
ap
.
addObject
(
ligActionIndex
,
success
);
LEReferenceToArrayOf
<
TTGlyphID
>
ligatureTable
(
stHeader
,
success
,
ligatureOffset
,
LE_UNBOUNDED_ARRAY
);
LigatureActionEntry
action
;
le_int32
offset
,
i
=
0
;
le_int32
offset
,
i
=
0
,
j
=
0
;
le_int32
stack
[
nComponents
];
le_int16
mm
=
-
1
;
...
...
@@ -111,6 +111,10 @@ le_uint16 LigatureSubstitutionProcessor2::processStateEntry(LEGlyphStorage &glyp
do
{
le_uint32
componentGlyph
=
componentStack
[
m
--
];
// pop off
if
(
j
++
>
0
)
{
ap
.
addObject
(
success
);
}
action
=
SWAPL
(
*
ap
.
getAlias
());
if
(
m
<
0
)
{
...
...
@@ -144,7 +148,6 @@ le_uint16 LigatureSubstitutionProcessor2::processStateEntry(LEGlyphStorage &glyp
LE_DEBUG_BAD_FONT
(
"m<0"
)
}
#endif
ap
.
addObject
(
success
);
}
while
(
LE_SUCCESS
(
success
)
&&
!
(
action
&
lafLast
)
&&
(
m
>=
0
)
);
// stop if last bit is set, or if run out of items
while
(
mm
>=
0
)
{
...
...
src/share/native/sun/font/layout/MorphTables.cpp
浏览文件 @
a456f1a0
...
...
@@ -52,8 +52,11 @@ void MorphTableHeader::process(const LETableReference &base, LEGlyphStorage &gly
le_uint32
chain
;
for
(
chain
=
0
;
LE_SUCCESS
(
success
)
&&
(
chain
<
chainCount
);
chain
+=
1
)
{
if
(
chain
>
0
)
{
le_uint32
chainLength
=
SWAPL
(
chainHeader
->
chainLength
);
chainHeader
.
addOffset
(
chainLength
,
success
);
}
FeatureFlags
defaultFlags
=
SWAPL
(
chainHeader
->
defaultFlags
);
le_uint32
chainLength
=
SWAPL
(
chainHeader
->
chainLength
);
le_int16
nFeatureEntries
=
SWAPW
(
chainHeader
->
nFeatureEntries
);
le_int16
nSubtables
=
SWAPW
(
chainHeader
->
nSubtables
);
LEReferenceTo
<
MorphSubtableHeader
>
subtableHeader
=
...
...
@@ -61,7 +64,10 @@ void MorphTableHeader::process(const LETableReference &base, LEGlyphStorage &gly
le_int16
subtable
;
for
(
subtable
=
0
;
LE_SUCCESS
(
success
)
&&
(
subtable
<
nSubtables
);
subtable
+=
1
)
{
le_int16
length
=
SWAPW
(
subtableHeader
->
length
);
if
(
subtable
>
0
)
{
le_int16
length
=
SWAPW
(
subtableHeader
->
length
);
subtableHeader
.
addOffset
(
length
,
success
);
}
SubtableCoverage
coverage
=
SWAPW
(
subtableHeader
->
coverage
);
FeatureFlags
subtableFeatures
=
SWAPL
(
subtableHeader
->
subtableFeatures
);
...
...
@@ -69,10 +75,7 @@ void MorphTableHeader::process(const LETableReference &base, LEGlyphStorage &gly
if
((
coverage
&
scfVertical
)
==
0
&&
(
subtableFeatures
&
defaultFlags
)
!=
0
&&
LE_SUCCESS
(
success
))
{
subtableHeader
->
process
(
subtableHeader
,
glyphStorage
,
success
);
}
subtableHeader
.
addOffset
(
length
,
success
);
}
chainHeader
.
addOffset
(
chainLength
,
success
);
}
}
...
...
src/share/native/sun/font/layout/PairPositioningSubtables.cpp
浏览文件 @
a456f1a0
...
...
@@ -179,12 +179,13 @@ PairPositioningFormat1Subtable::findPairValueRecord(TTGlyphID glyphID, LEReferen
LEReferenceTo
<
PairValueRecord
>
record
(
records
);
for
(
le_int32
r
=
0
;
r
<
recordCount
;
r
+=
1
)
{
if
(
r
>
0
)
{
record
.
addOffset
(
recordSize
,
success
);
}
if
(
LE_FAILURE
(
success
))
return
LEReferenceTo
<
PairValueRecord
>
();
if
(
SWAPW
(
record
->
secondGlyph
)
==
glyphID
)
{
return
record
;
}
record
.
addOffset
(
recordSize
,
success
);
}
#else
#error dead code - not updated.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录