Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
8bd31e72
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看板
提交
8bd31e72
编写于
4月 04, 2014
作者:
P
prr
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8035630: [parfait] JNI exception pending in jdk/src/windows/native/sun/font/fontpath.c
Reviewed-by: serb, jgodinez
上级
50f5f45b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
2 deletion
+48
-2
src/windows/native/sun/font/fontpath.c
src/windows/native/sun/font/fontpath.c
+48
-2
未找到文件。
src/windows/native/sun/font/fontpath.c
浏览文件 @
8bd31e72
...
@@ -152,6 +152,10 @@ static int CALLBACK EnumFontFacesInFamilyProcA(
...
@@ -152,6 +152,10 @@ static int CALLBACK EnumFontFacesInFamilyProcA(
/* printf("FULL=%s\n",lpelfe->elfFullName);fflush(stdout); */
/* printf("FULL=%s\n",lpelfe->elfFullName);fflush(stdout); */
fullname
=
JNU_NewStringPlatform
(
env
,
lpelfe
->
elfFullName
);
fullname
=
JNU_NewStringPlatform
(
env
,
lpelfe
->
elfFullName
);
if
(
fullname
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
1
;
}
fullnameLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fullname
,
fullnameLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fullname
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
(
*
env
)
->
CallBooleanMethod
(
env
,
fmi
->
list
,
fmi
->
addMID
,
fullname
);
(
*
env
)
->
CallBooleanMethod
(
env
,
fmi
->
list
,
fmi
->
addMID
,
fullname
);
...
@@ -242,6 +246,10 @@ static int CALLBACK EnumFontFacesInFamilyProcW(
...
@@ -242,6 +246,10 @@ static int CALLBACK EnumFontFacesInFamilyProcW(
fullname
=
(
*
env
)
->
NewString
(
env
,
lpelfe
->
elfFullName
,
fullname
=
(
*
env
)
->
NewString
(
env
,
lpelfe
->
elfFullName
,
(
jsize
)
wcslen
((
LPWSTR
)
lpelfe
->
elfFullName
));
(
jsize
)
wcslen
((
LPWSTR
)
lpelfe
->
elfFullName
));
if
(
fullname
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
1
;
}
fullnameLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fullname
,
fullnameLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fullname
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
(
*
env
)
->
CallBooleanMethod
(
env
,
fmi
->
list
,
fmi
->
addMID
,
fullname
);
(
*
env
)
->
CallBooleanMethod
(
env
,
fmi
->
list
,
fmi
->
addMID
,
fullname
);
...
@@ -287,6 +295,10 @@ static int CALLBACK EnumFamilyNamesA(
...
@@ -287,6 +295,10 @@ static int CALLBACK EnumFamilyNamesA(
return
1
;
return
1
;
}
}
fmi
->
family
=
JNU_NewStringPlatform
(
env
,
lpelfe
->
elfLogFont
.
lfFaceName
);
fmi
->
family
=
JNU_NewStringPlatform
(
env
,
lpelfe
->
elfLogFont
.
lfFaceName
);
if
(
fmi
->
family
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
1
;
}
familyLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
family
,
familyLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
family
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
/* check if already seen this family with a different charset */
/* check if already seen this family with a different charset */
...
@@ -296,7 +308,10 @@ static int CALLBACK EnumFamilyNamesA(
...
@@ -296,7 +308,10 @@ static int CALLBACK EnumFamilyNamesA(
}
}
fmi
->
list
=
(
*
env
)
->
NewObject
(
env
,
fmi
->
list
=
(
*
env
)
->
NewObject
(
env
,
fmi
->
arrayListClass
,
fmi
->
arrayListCtr
,
4
);
fmi
->
arrayListClass
,
fmi
->
arrayListCtr
,
4
);
if
(
fmi
->
list
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
1
;
}
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
familyToFontListMap
,
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
familyToFontListMap
,
fmi
->
putMID
,
familyLC
,
fmi
->
list
);
fmi
->
putMID
,
familyLC
,
fmi
->
list
);
...
@@ -343,6 +358,10 @@ static int CALLBACK EnumFamilyNamesW(
...
@@ -343,6 +358,10 @@ static int CALLBACK EnumFamilyNamesW(
}
}
slen
=
wcslen
(
lpelfe
->
elfLogFont
.
lfFaceName
);
slen
=
wcslen
(
lpelfe
->
elfLogFont
.
lfFaceName
);
fmi
->
family
=
(
*
env
)
->
NewString
(
env
,
lpelfe
->
elfLogFont
.
lfFaceName
,
(
jsize
)
slen
);
fmi
->
family
=
(
*
env
)
->
NewString
(
env
,
lpelfe
->
elfLogFont
.
lfFaceName
,
(
jsize
)
slen
);
if
(
fmi
->
family
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
1
;
}
familyLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
family
,
familyLC
=
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
family
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
/* check if already seen this family with a different charset */
/* check if already seen this family with a different charset */
...
@@ -352,7 +371,10 @@ static int CALLBACK EnumFamilyNamesW(
...
@@ -352,7 +371,10 @@ static int CALLBACK EnumFamilyNamesW(
}
}
fmi
->
list
=
(
*
env
)
->
NewObject
(
env
,
fmi
->
list
=
(
*
env
)
->
NewObject
(
env
,
fmi
->
arrayListClass
,
fmi
->
arrayListCtr
,
4
);
fmi
->
arrayListClass
,
fmi
->
arrayListCtr
,
4
);
if
(
fmi
->
list
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
1
;
}
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
familyToFontListMap
,
(
*
env
)
->
CallObjectMethod
(
env
,
fmi
->
familyToFontListMap
,
fmi
->
putMID
,
familyLC
,
fmi
->
list
);
fmi
->
putMID
,
familyLC
,
fmi
->
list
);
...
@@ -447,6 +469,10 @@ static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap,
...
@@ -447,6 +469,10 @@ static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap,
JNIEnv
*
env
=
fmi
->
env
;
JNIEnv
*
env
=
fmi
->
env
;
size_t
dslen
=
strlen
(
data
);
size_t
dslen
=
strlen
(
data
);
jstring
fileStr
=
JNU_NewStringPlatform
(
env
,
data
);
jstring
fileStr
=
JNU_NewStringPlatform
(
env
,
data
);
if
(
fileStr
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
;
}
/* TTC or ttc means it may be a collection. Need to parse out
/* TTC or ttc means it may be a collection. Need to parse out
* multiple font face names separated by " & "
* multiple font face names separated by " & "
...
@@ -467,6 +493,10 @@ static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap,
...
@@ -467,6 +493,10 @@ static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap,
ptr1
=
ptr2
+
3
;
ptr1
=
ptr2
+
3
;
}
}
fontStr
=
JNU_NewStringPlatform
(
env
,
ptr1
);
fontStr
=
JNU_NewStringPlatform
(
env
,
ptr1
);
if
(
fontStr
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
;
}
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fmi
->
toLowerCaseMID
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
locale
);
...
@@ -481,6 +511,10 @@ static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap,
...
@@ -481,6 +511,10 @@ static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap,
}
}
}
else
{
}
else
{
fontStr
=
JNU_NewStringPlatform
(
env
,
name
);
fontStr
=
JNU_NewStringPlatform
(
env
,
name
);
if
(
fontStr
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
;
}
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
(
*
env
)
->
CallObjectMethod
(
env
,
fontToFileMap
,
fmi
->
putMID
,
(
*
env
)
->
CallObjectMethod
(
env
,
fontToFileMap
,
fmi
->
putMID
,
...
@@ -496,6 +530,10 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap,
...
@@ -496,6 +530,10 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap,
JNIEnv
*
env
=
fmi
->
env
;
JNIEnv
*
env
=
fmi
->
env
;
size_t
dslen
=
wcslen
(
data
);
size_t
dslen
=
wcslen
(
data
);
jstring
fileStr
=
(
*
env
)
->
NewString
(
env
,
data
,
(
jsize
)
dslen
);
jstring
fileStr
=
(
*
env
)
->
NewString
(
env
,
data
,
(
jsize
)
dslen
);
if
(
fileStr
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
;
}
/* TTC or ttc means it may be a collection. Need to parse out
/* TTC or ttc means it may be a collection. Need to parse out
* multiple font face names separated by " & "
* multiple font face names separated by " & "
...
@@ -517,6 +555,10 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap,
...
@@ -517,6 +555,10 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap,
ptr1
=
ptr2
+
3
;
ptr1
=
ptr2
+
3
;
}
}
fontStr
=
(
*
env
)
->
NewString
(
env
,
ptr1
,
(
jsize
)
wcslen
(
ptr1
));
fontStr
=
(
*
env
)
->
NewString
(
env
,
ptr1
,
(
jsize
)
wcslen
(
ptr1
));
if
(
fontStr
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
;
}
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fmi
->
toLowerCaseMID
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
locale
);
...
@@ -531,6 +573,10 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap,
...
@@ -531,6 +573,10 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap,
}
}
}
else
{
}
else
{
fontStr
=
(
*
env
)
->
NewString
(
env
,
name
,
(
jsize
)
wcslen
(
name
));
fontStr
=
(
*
env
)
->
NewString
(
env
,
name
,
(
jsize
)
wcslen
(
name
));
if
(
fontStr
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
return
;
}
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fontStr
=
(
*
env
)
->
CallObjectMethod
(
env
,
fontStr
,
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
fmi
->
toLowerCaseMID
,
fmi
->
locale
);
(
*
env
)
->
CallObjectMethod
(
env
,
fontToFileMap
,
fmi
->
putMID
,
(
*
env
)
->
CallObjectMethod
(
env
,
fontToFileMap
,
fmi
->
putMID
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录