Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
75238f3c
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
75238f3c
编写于
12月 17, 2008
作者:
I
igor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6761791: Crash in the FontManager code due to use of JNIEnv saved by another thread
Reviewed-by: bae, prr
上级
94da4a46
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
4 deletion
+23
-4
src/share/native/sun/font/freetypeScaler.c
src/share/native/sun/font/freetypeScaler.c
+23
-4
未找到文件。
src/share/native/sun/font/freetypeScaler.c
浏览文件 @
75238f3c
...
...
@@ -394,12 +394,14 @@ static int setupFTContext(JNIEnv *env,
scalerInfo
->
env
=
env
;
scalerInfo
->
font2D
=
font2D
;
FT_Set_Transform
(
scalerInfo
->
face
,
&
context
->
transform
,
NULL
);
if
(
context
!=
NULL
)
{
FT_Set_Transform
(
scalerInfo
->
face
,
&
context
->
transform
,
NULL
);
errCode
=
FT_Set_Char_Size
(
scalerInfo
->
face
,
0
,
context
->
ptsz
,
72
,
72
);
errCode
=
FT_Set_Char_Size
(
scalerInfo
->
face
,
0
,
context
->
ptsz
,
72
,
72
);
if
(
errCode
==
0
)
{
errCode
=
FT_Activate_Size
(
scalerInfo
->
face
->
size
);
if
(
errCode
==
0
)
{
errCode
=
FT_Activate_Size
(
scalerInfo
->
face
->
size
);
}
}
return
errCode
;
...
...
@@ -885,6 +887,14 @@ Java_sun_font_FreetypeFontScaler_disposeNativeScaler(
JNIEnv
*
env
,
jobject
scaler
,
jlong
pScaler
)
{
FTScalerInfo
*
scalerInfo
=
(
FTScalerInfo
*
)
jlong_to_ptr
(
pScaler
);
/* Freetype functions *may* cause callback to java
that can use cached values. Make sure our cache is up to date.
NB: scaler context is not important at this point, can use NULL. */
int
errCode
=
setupFTContext
(
env
,
scaler
,
scalerInfo
,
NULL
);
if
(
errCode
)
{
return
;
}
freeNativeResources
(
env
,
scalerInfo
);
}
...
...
@@ -932,12 +942,21 @@ Java_sun_font_FreetypeFontScaler_getGlyphCodeNative(
JNIEnv
*
env
,
jobject
scaler
,
jlong
pScaler
,
jchar
charCode
)
{
FTScalerInfo
*
scalerInfo
=
(
FTScalerInfo
*
)
jlong_to_ptr
(
pScaler
);
int
errCode
;
if
(
scaler
==
NULL
||
scalerInfo
->
face
==
NULL
)
{
/* bad/null scaler */
invalidateJavaScaler
(
env
,
scaler
,
scalerInfo
);
return
0
;
}
/* Freetype functions *may* cause callback to java
that can use cached values. Make sure our cache is up to date.
Scaler context is not important here, can use NULL. */
errCode
=
setupFTContext
(
env
,
scaler
,
scalerInfo
,
NULL
);
if
(
errCode
)
{
return
0
;
}
return
FT_Get_Char_Index
(
scalerInfo
->
face
,
charCode
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录