Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
3ec1c1d7
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看板
提交
3ec1c1d7
编写于
4月 28, 2014
作者:
P
pchelko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8031001: [Parfait] warnings from b121 for jdk/src/solaris/native/sun/awt: JNI-related warnings
Reviewed-by: serb, anthony
上级
5a865e63
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
270 addition
and
126 deletion
+270
-126
src/solaris/native/sun/awt/CUPSfuncs.c
src/solaris/native/sun/awt/CUPSfuncs.c
+20
-8
src/solaris/native/sun/awt/X11Color.c
src/solaris/native/sun/awt/X11Color.c
+23
-4
src/solaris/native/sun/awt/awt.h
src/solaris/native/sun/awt/awt.h
+16
-2
src/solaris/native/sun/awt/awt_AWTEvent.c
src/solaris/native/sun/awt/awt_AWTEvent.c
+7
-7
src/solaris/native/sun/awt/awt_DrawingSurface.c
src/solaris/native/sun/awt/awt_DrawingSurface.c
+14
-1
src/solaris/native/sun/awt/awt_Font.c
src/solaris/native/sun/awt/awt_Font.c
+36
-29
src/solaris/native/sun/awt/awt_GraphicsEnv.c
src/solaris/native/sun/awt/awt_GraphicsEnv.c
+12
-3
src/solaris/native/sun/awt/awt_InputMethod.c
src/solaris/native/sun/awt/awt_InputMethod.c
+14
-3
src/solaris/native/sun/awt/awt_Insets.c
src/solaris/native/sun/awt/awt_Insets.c
+5
-5
src/solaris/native/sun/awt/awt_LoadLibrary.c
src/solaris/native/sun/awt/awt_LoadLibrary.c
+14
-2
src/solaris/native/sun/awt/awt_Robot.c
src/solaris/native/sun/awt/awt_Robot.c
+5
-2
src/solaris/native/sun/awt/awt_UNIXToolkit.c
src/solaris/native/sun/awt/awt_UNIXToolkit.c
+4
-1
src/solaris/native/sun/awt/awt_util.c
src/solaris/native/sun/awt/awt_util.c
+2
-1
src/solaris/native/sun/awt/fontpath.c
src/solaris/native/sun/awt/fontpath.c
+39
-39
src/solaris/native/sun/awt/initIDs.c
src/solaris/native/sun/awt/initIDs.c
+1
-4
src/solaris/native/sun/awt/multi_font.c
src/solaris/native/sun/awt/multi_font.c
+20
-3
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c
+38
-12
未找到文件。
src/solaris/native/sun/awt/CUPSfuncs.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 2003, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -213,6 +213,8 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
...
@@ -213,6 +213,8 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
name
=
(
*
env
)
->
GetStringUTFChars
(
env
,
printer
,
NULL
);
name
=
(
*
env
)
->
GetStringUTFChars
(
env
,
printer
,
NULL
);
if
(
name
==
NULL
)
{
if
(
name
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not create printer name"
);
return
NULL
;
return
NULL
;
}
}
...
@@ -220,12 +222,10 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
...
@@ -220,12 +222,10 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
// unlink() must be caled to remove the file when finished using it.
// unlink() must be caled to remove the file when finished using it.
filename
=
j2d_cupsGetPPD
(
name
);
filename
=
j2d_cupsGetPPD
(
name
);
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
printer
,
name
);
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
printer
,
name
);
CHECK_NULL_RETURN
(
filename
,
NULL
);
cls
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/String"
);
cls
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/String"
);
CHECK_NULL_RETURN
(
cls
,
NULL
);
if
(
filename
==
NULL
)
{
return
NULL
;
}
if
((
ppd
=
j2d_ppdOpenFile
(
filename
))
==
NULL
)
{
if
((
ppd
=
j2d_ppdOpenFile
(
filename
))
==
NULL
)
{
unlink
(
filename
);
unlink
(
filename
);
...
@@ -249,6 +249,7 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
...
@@ -249,6 +249,7 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
unlink
(
filename
);
unlink
(
filename
);
j2d_ppdClose
(
ppd
);
j2d_ppdClose
(
ppd
);
DPRINTF
(
"CUPSfuncs::bad alloc new array
\n
"
,
""
)
DPRINTF
(
"CUPSfuncs::bad alloc new array
\n
"
,
""
)
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"OutOfMemoryError"
);
JNU_ThrowOutOfMemoryError
(
env
,
"OutOfMemoryError"
);
return
NULL
;
return
NULL
;
}
}
...
@@ -323,6 +324,11 @@ Java_sun_print_CUPSPrinter_getPageSizes(JNIEnv *env,
...
@@ -323,6 +324,11 @@ Java_sun_print_CUPSPrinter_getPageSizes(JNIEnv *env,
ppd_size_t
*
size
;
ppd_size_t
*
size
;
const
char
*
name
=
(
*
env
)
->
GetStringUTFChars
(
env
,
printer
,
NULL
);
const
char
*
name
=
(
*
env
)
->
GetStringUTFChars
(
env
,
printer
,
NULL
);
if
(
name
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not create printer name"
);
return
NULL
;
}
const
char
*
filename
;
const
char
*
filename
;
int
i
;
int
i
;
jobjectArray
sizeArray
=
NULL
;
jobjectArray
sizeArray
=
NULL
;
...
@@ -332,9 +338,7 @@ Java_sun_print_CUPSPrinter_getPageSizes(JNIEnv *env,
...
@@ -332,9 +338,7 @@ Java_sun_print_CUPSPrinter_getPageSizes(JNIEnv *env,
// unlink() must be called to remove the file after using it.
// unlink() must be called to remove the file after using it.
filename
=
j2d_cupsGetPPD
(
name
);
filename
=
j2d_cupsGetPPD
(
name
);
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
printer
,
name
);
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
printer
,
name
);
if
(
filename
==
NULL
)
{
CHECK_NULL_RETURN
(
filename
,
NULL
);
return
NULL
;
}
if
((
ppd
=
j2d_ppdOpenFile
(
filename
))
==
NULL
)
{
if
((
ppd
=
j2d_ppdOpenFile
(
filename
))
==
NULL
)
{
unlink
(
filename
);
unlink
(
filename
);
DPRINTF
(
"unable to open PPD %s
\n
"
,
filename
)
DPRINTF
(
"unable to open PPD %s
\n
"
,
filename
)
...
@@ -350,11 +354,19 @@ Java_sun_print_CUPSPrinter_getPageSizes(JNIEnv *env,
...
@@ -350,11 +354,19 @@ Java_sun_print_CUPSPrinter_getPageSizes(JNIEnv *env,
unlink
(
filename
);
unlink
(
filename
);
j2d_ppdClose
(
ppd
);
j2d_ppdClose
(
ppd
);
DPRINTF
(
"CUPSfuncs::bad alloc new float array
\n
"
,
""
)
DPRINTF
(
"CUPSfuncs::bad alloc new float array
\n
"
,
""
)
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"OutOfMemoryError"
);
JNU_ThrowOutOfMemoryError
(
env
,
"OutOfMemoryError"
);
return
NULL
;
return
NULL
;
}
}
dims
=
(
*
env
)
->
GetFloatArrayElements
(
env
,
sizeArray
,
NULL
);
dims
=
(
*
env
)
->
GetFloatArrayElements
(
env
,
sizeArray
,
NULL
);
if
(
dims
==
NULL
)
{
unlink
(
filename
);
j2d_ppdClose
(
ppd
);
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not create printer name"
);
return
NULL
;
}
for
(
i
=
0
;
i
<
option
->
num_choices
;
i
++
)
{
for
(
i
=
0
;
i
<
option
->
num_choices
;
i
++
)
{
choice
=
(
option
->
choices
)
+
i
;
choice
=
(
option
->
choices
)
+
i
;
size
=
j2d_ppdPageSize
(
ppd
,
choice
->
choice
);
size
=
j2d_ppdPageSize
(
ppd
,
choice
->
choice
);
...
...
src/solaris/native/sun/awt/X11Color.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1995, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -892,11 +892,10 @@ jobject getColorSpace(JNIEnv* env, jint csID) {
...
@@ -892,11 +892,10 @@ jobject getColorSpace(JNIEnv* env, jint csID) {
jmethodID
mid
;
jmethodID
mid
;
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/color/ColorSpace"
);
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/color/ColorSpace"
);
CHECK_NULL_RETURN
(
clazz
,
NULL
);
mid
=
(
*
env
)
->
GetStaticMethodID
(
env
,
clazz
,
"getInstance"
,
mid
=
(
*
env
)
->
GetStaticMethodID
(
env
,
clazz
,
"getInstance"
,
"(I)Ljava/awt/color/ColorSpace;"
);
"(I)Ljava/awt/color/ColorSpace;"
);
if
(
mid
==
NULL
)
{
CHECK_NULL_RETURN
(
mid
,
NULL
);
return
NULL
;
}
/* SECURITY: This is safe, because static methods cannot
/* SECURITY: This is safe, because static methods cannot
* be overridden, and this method does not invoke
* be overridden, and this method does not invoke
...
@@ -919,6 +918,11 @@ jobject awtJNI_GetColorModel(JNIEnv *env, AwtGraphicsConfigDataPtr aData)
...
@@ -919,6 +918,11 @@ jobject awtJNI_GetColorModel(JNIEnv *env, AwtGraphicsConfigDataPtr aData)
(
aData
->
awt_depth
>=
15
))
(
aData
->
awt_depth
>=
15
))
{
{
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/image/DirectColorModel"
);
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/image/DirectColorModel"
);
if
(
clazz
==
NULL
)
{
(
*
env
)
->
PopLocalFrame
(
env
,
0
);
return
NULL
;
}
if
(
!
aData
->
isTranslucencySupported
)
{
if
(
!
aData
->
isTranslucencySupported
)
{
mid
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"<init>"
,
"(IIIII)V"
);
mid
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"<init>"
,
"(IIIII)V"
);
...
@@ -1005,6 +1009,10 @@ jobject awtJNI_GetColorModel(JNIEnv *env, AwtGraphicsConfigDataPtr aData)
...
@@ -1005,6 +1009,10 @@ jobject awtJNI_GetColorModel(JNIEnv *env, AwtGraphicsConfigDataPtr aData)
}
}
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/image/ComponentColorModel"
);
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/image/ComponentColorModel"
);
if
(
clazz
==
NULL
)
{
(
*
env
)
->
PopLocalFrame
(
env
,
0
);
return
NULL
;
}
mid
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"<init>"
,
mid
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"<init>"
,
"(Ljava/awt/color/ColorSpace;[IZZII)V"
);
"(Ljava/awt/color/ColorSpace;[IZZII)V"
);
...
@@ -1253,6 +1261,7 @@ int awtJNI_GetColorForVis (JNIEnv *env,jobject this, AwtGraphicsConfigDataPtr aw
...
@@ -1253,6 +1261,7 @@ int awtJNI_GetColorForVis (JNIEnv *env,jobject this, AwtGraphicsConfigDataPtr aw
if
(
!
JNU_IsNull
(
env
,
this
))
if
(
!
JNU_IsNull
(
env
,
this
))
{
{
SYSCLR_class
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/SystemColor"
);
SYSCLR_class
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/SystemColor"
);
CHECK_NULL_RETURN
(
SYSCLR_class
,
0
);
if
((
*
env
)
->
IsInstanceOf
(
env
,
this
,
SYSCLR_class
))
{
if
((
*
env
)
->
IsInstanceOf
(
env
,
this
,
SYSCLR_class
))
{
/* SECURITY: This is safe, because there is no way
/* SECURITY: This is safe, because there is no way
...
@@ -1264,6 +1273,7 @@ int awtJNI_GetColorForVis (JNIEnv *env,jobject this, AwtGraphicsConfigDataPtr aw
...
@@ -1264,6 +1273,7 @@ int awtJNI_GetColorForVis (JNIEnv *env,jobject this, AwtGraphicsConfigDataPtr aw
,
this
,
this
,
"getRGB"
,
"getRGB"
,
"()I"
).
i
;
,
"()I"
).
i
;
JNU_CHECK_EXCEPTION_RETURN
(
env
,
0
);
}
else
{
}
else
{
col
=
(
int
)(
*
env
)
->
GetIntField
(
env
,
this
,
colorValueID
);
col
=
(
int
)(
*
env
)
->
GetIntField
(
env
,
this
,
colorValueID
);
}
}
...
@@ -1370,6 +1380,8 @@ awtJNI_CreateColorData(JNIEnv *env, AwtGraphicsConfigDataPtr adata,
...
@@ -1370,6 +1380,8 @@ awtJNI_CreateColorData(JNIEnv *env, AwtGraphicsConfigDataPtr adata,
AWT_UNLOCK
();
AWT_UNLOCK
();
}
}
sysColors
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/SystemColor"
);
sysColors
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/SystemColor"
);
CHECK_NULL
(
sysColors
);
if
(
lock
)
{
if
(
lock
)
{
AWT_LOCK
();
AWT_LOCK
();
}
}
...
@@ -1377,6 +1389,13 @@ awtJNI_CreateColorData(JNIEnv *env, AwtGraphicsConfigDataPtr adata,
...
@@ -1377,6 +1389,13 @@ awtJNI_CreateColorData(JNIEnv *env, AwtGraphicsConfigDataPtr adata,
"systemColors"
,
"systemColors"
,
"[I"
);
"[I"
);
if
(
colorID
==
NULL
)
{
if
(
lock
)
{
AWT_UNLOCK
();
}
return
;
}
colors
=
(
jintArray
)
(
*
env
)
->
GetStaticObjectField
colors
=
(
jintArray
)
(
*
env
)
->
GetStaticObjectField
(
env
,
sysColors
,
colorID
);
(
env
,
sysColors
,
colorID
);
...
...
src/solaris/native/sun/awt/awt.h
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1995, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -77,8 +77,22 @@ extern void awt_output_flush();
...
@@ -77,8 +77,22 @@ extern void awt_output_flush();
#define AWT_LOCK_IMPL() \
#define AWT_LOCK_IMPL() \
(*env)->CallStaticVoidMethod(env, tkClass, awtLockMID)
(*env)->CallStaticVoidMethod(env, tkClass, awtLockMID)
#define AWT_NOFLUSH_UNLOCK_IMPL() \
#define AWT_NOFLUSH_UNLOCK_IMPL() \
(*env)->CallStaticVoidMethod(env, tkClass, awtUnlockMID)
do { \
jthrowable pendingException; \
if ((pendingException = (*env)->ExceptionOccurred(env)) != NULL) { \
(*env)->ExceptionClear(env); \
} \
(*env)->CallStaticVoidMethod(env, tkClass, awtUnlockMID); \
if (pendingException) { \
if ((*env)->ExceptionCheck(env)) { \
(*env)->ExceptionDescribe(env); \
(*env)->ExceptionClear(env); \
} \
(*env)->Throw(env, pendingException); \
} \
} while (0)
#define AWT_WAIT_IMPL(tm) \
#define AWT_WAIT_IMPL(tm) \
(*env)->CallStaticVoidMethod(env, tkClass, awtWaitMID, (jlong)(tm))
(*env)->CallStaticVoidMethod(env, tkClass, awtWaitMID, (jlong)(tm))
#define AWT_NOTIFY_IMPL() \
#define AWT_NOTIFY_IMPL() \
...
...
src/solaris/native/sun/awt/awt_AWTEvent.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1998, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -49,22 +49,22 @@ struct KeyEventIDs keyEventIDs;
...
@@ -49,22 +49,22 @@ struct KeyEventIDs keyEventIDs;
JNIEXPORT
void
JNICALL
JNIEXPORT
void
JNICALL
Java_java_awt_AWTEvent_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
Java_java_awt_AWTEvent_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
{
{
awtEventIDs
.
bdata
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"bdata"
,
"[B"
);
CHECK_NULL
(
awtEventIDs
.
bdata
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"bdata"
,
"[B"
)
);
awtEventIDs
.
consumed
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"consumed"
,
"Z"
);
CHECK_NULL
(
awtEventIDs
.
consumed
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"consumed"
,
"Z"
)
);
awtEventIDs
.
id
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"id"
,
"I"
);
CHECK_NULL
(
awtEventIDs
.
id
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"id"
,
"I"
)
);
}
}
JNIEXPORT
void
JNICALL
JNIEXPORT
void
JNICALL
Java_java_awt_event_InputEvent_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
Java_java_awt_event_InputEvent_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
{
{
inputEventIDs
.
modifiers
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"modifiers"
,
"I"
);
CHECK_NULL
(
inputEventIDs
.
modifiers
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"modifiers"
,
"I"
)
);
}
}
JNIEXPORT
void
JNICALL
JNIEXPORT
void
JNICALL
Java_java_awt_event_KeyEvent_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
Java_java_awt_event_KeyEvent_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
{
{
keyEventIDs
.
keyCode
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"keyCode"
,
"I"
);
CHECK_NULL
(
keyEventIDs
.
keyCode
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"keyCode"
,
"I"
)
);
keyEventIDs
.
keyChar
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"keyChar"
,
"C"
);
CHECK_NULL
(
keyEventIDs
.
keyChar
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"keyChar"
,
"C"
)
);
}
}
JNIEXPORT
void
JNICALL
JNIEXPORT
void
JNICALL
...
...
src/solaris/native/sun/awt/awt_DrawingSurface.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1996, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -78,6 +78,8 @@ JNIEXPORT jint JNICALL awt_DrawingSurface_Lock(JAWT_DrawingSurface* ds)
...
@@ -78,6 +78,8 @@ JNIEXPORT jint JNICALL awt_DrawingSurface_Lock(JAWT_DrawingSurface* ds)
/* Make sure the target is a java.awt.Component */
/* Make sure the target is a java.awt.Component */
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
CHECK_NULL_RETURN
(
componentClass
,
(
jint
)
JAWT_LOCK_ERROR
);
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
#ifdef DEBUG
#ifdef DEBUG
fprintf
(
stderr
,
"Target is not a component
\n
"
);
fprintf
(
stderr
,
"Target is not a component
\n
"
);
...
@@ -126,6 +128,8 @@ JNIEXPORT int32_t JNICALL
...
@@ -126,6 +128,8 @@ JNIEXPORT int32_t JNICALL
/* Make sure the target is a java.awt.Component */
/* Make sure the target is a java.awt.Component */
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
CHECK_NULL_RETURN
(
componentClass
,
(
int32_t
)
0
);
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
#ifdef DEBUG
#ifdef DEBUG
fprintf
(
stderr
,
"DrawingSurface target must be a component
\n
"
);
fprintf
(
stderr
,
"DrawingSurface target must be a component
\n
"
);
...
@@ -195,6 +199,8 @@ awt_DrawingSurface_GetDrawingSurfaceInfo(JAWT_DrawingSurface* ds)
...
@@ -195,6 +199,8 @@ awt_DrawingSurface_GetDrawingSurfaceInfo(JAWT_DrawingSurface* ds)
/* Make sure the target is a java.awt.Component */
/* Make sure the target is a java.awt.Component */
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
CHECK_NULL_RETURN
(
componentClass
,
NULL
);
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
#ifdef DEBUG
#ifdef DEBUG
fprintf
(
stderr
,
"DrawingSurface target must be a component
\n
"
);
fprintf
(
stderr
,
"DrawingSurface target must be a component
\n
"
);
...
@@ -292,6 +298,8 @@ JNIEXPORT JAWT_DrawingSurface* JNICALL
...
@@ -292,6 +298,8 @@ JNIEXPORT JAWT_DrawingSurface* JNICALL
/* Make sure the target component is a java.awt.Component */
/* Make sure the target component is a java.awt.Component */
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
componentClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Component"
);
CHECK_NULL_RETURN
(
componentClass
,
NULL
);
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
if
(
!
(
*
env
)
->
IsInstanceOf
(
env
,
target
,
componentClass
))
{
#ifdef DEBUG
#ifdef DEBUG
fprintf
(
stderr
,
fprintf
(
stderr
,
...
@@ -354,6 +362,10 @@ JNIEXPORT jobject JNICALL
...
@@ -354,6 +362,10 @@ JNIEXPORT jobject JNICALL
if
(
window
!=
None
)
{
if
(
window
!=
None
)
{
peer
=
JNU_CallStaticMethodByName
(
env
,
NULL
,
"sun/awt/X11/XToolkit"
,
peer
=
JNU_CallStaticMethodByName
(
env
,
NULL
,
"sun/awt/X11/XToolkit"
,
"windowToXWindow"
,
"(J)Lsun/awt/X11/XBaseWindow;"
,
(
jlong
)
window
).
l
;
"windowToXWindow"
,
"(J)Lsun/awt/X11/XBaseWindow;"
,
(
jlong
)
window
).
l
;
if
((
*
env
)
->
ExceptionCheck
(
env
))
{
AWT_UNLOCK
();
return
(
jobject
)
NULL
;
}
}
}
if
((
peer
!=
NULL
)
&&
if
((
peer
!=
NULL
)
&&
(
JNU_IsInstanceOfByName
(
env
,
peer
,
"sun/awt/X11/XWindow"
)
==
1
))
{
(
JNU_IsInstanceOfByName
(
env
,
peer
,
"sun/awt/X11/XWindow"
)
==
1
))
{
...
@@ -361,6 +373,7 @@ JNIEXPORT jobject JNICALL
...
@@ -361,6 +373,7 @@ JNIEXPORT jobject JNICALL
}
}
if
(
target
==
NULL
)
{
if
(
target
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowNullPointerException
(
env
,
"NullPointerException"
);
JNU_ThrowNullPointerException
(
env
,
"NullPointerException"
);
AWT_UNLOCK
();
AWT_UNLOCK
();
return
(
jobject
)
NULL
;
return
(
jobject
)
NULL
;
...
...
src/solaris/native/sun/awt/awt_Font.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1995, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -86,14 +86,13 @@ Java_java_awt_Font_initIDs
...
@@ -86,14 +86,13 @@ Java_java_awt_Font_initIDs
#ifndef HEADLESS
#ifndef HEADLESS
/** We call "NoClientCode" methods because they won't invoke client
/** We call "NoClientCode" methods because they won't invoke client
code on the privileged toolkit thread **/
code on the privileged toolkit thread **/
fontIDs
.
pData
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"pData"
,
"J"
);
CHECK_NULL
(
fontIDs
.
pData
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"pData"
,
"J"
));
fontIDs
.
style
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"style"
,
"I"
);
CHECK_NULL
(
fontIDs
.
style
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"style"
,
"I"
));
fontIDs
.
size
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"size"
,
"I"
);
CHECK_NULL
(
fontIDs
.
size
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"size"
,
"I"
));
fontIDs
.
getPeer
=
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"getPeer_NoClientCode"
,
CHECK_NULL
(
fontIDs
.
getPeer
=
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"getPeer_NoClientCode"
,
"()Ljava/awt/peer/FontPeer;"
);
"()Ljava/awt/peer/FontPeer;"
));
fontIDs
.
getFamily
=
CHECK_NULL
(
fontIDs
.
getFamily
=
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"getFamily_NoClientCode"
,
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"getFamily_NoClientCode"
,
"()Ljava/lang/String;"
));
"()Ljava/lang/String;"
);
#endif
/* !HEADLESS */
#endif
/* !HEADLESS */
}
}
...
@@ -120,12 +119,10 @@ Java_sun_awt_FontDescriptor_initIDs
...
@@ -120,12 +119,10 @@ Java_sun_awt_FontDescriptor_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
(
JNIEnv
*
env
,
jclass
cls
)
{
{
#ifndef HEADLESS
#ifndef HEADLESS
fontDescriptorIDs
.
nativeName
=
CHECK_NULL
(
fontDescriptorIDs
.
nativeName
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"nativeName"
,
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"nativeName"
,
"Ljava/lang/String;"
));
"Ljava/lang/String;"
);
CHECK_NULL
(
fontDescriptorIDs
.
charsetName
=
fontDescriptorIDs
.
charsetName
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"charsetName"
,
"Ljava/lang/String;"
));
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"charsetName"
,
"Ljava/lang/String;"
);
#endif
/* !HEADLESS */
#endif
/* !HEADLESS */
}
}
...
@@ -144,20 +141,18 @@ Java_sun_awt_PlatformFont_initIDs
...
@@ -144,20 +141,18 @@ Java_sun_awt_PlatformFont_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
(
JNIEnv
*
env
,
jclass
cls
)
{
{
#ifndef HEADLESS
#ifndef HEADLESS
platformFontIDs
.
componentFonts
=
CHECK_NULL
(
platformFontIDs
.
componentFonts
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"componentFonts"
,
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"componentFonts"
,
"[Lsun/awt/FontDescriptor;"
);
"[Lsun/awt/FontDescriptor;"
));
platformFontIDs
.
fontConfig
=
CHECK_NULL
(
platformFontIDs
.
fontConfig
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"fontConfig"
,
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"fontConfig"
,
"Lsun/awt/FontConfiguration;"
);
"Lsun/awt/FontConfiguration;"
));
CHECK_NULL
(
platformFontIDs
.
makeConvertedMultiFontString
=
platformFontIDs
.
makeConvertedMultiFontString
=
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"makeConvertedMultiFontString"
,
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"makeConvertedMultiFontString"
,
"(Ljava/lang/String;)[Ljava/lang/Object;"
));
"(Ljava/lang/String;)[Ljava/lang/Object;"
);
CHECK_NULL
(
platformFontIDs
.
makeConvertedMultiFontChars
=
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"makeConvertedMultiFontChars"
,
platformFontIDs
.
makeConvertedMultiFontChars
=
"([CII)[Ljava/lang/Object;"
));
(
*
env
)
->
GetMethodID
(
env
,
cls
,
"makeConvertedMultiFontChars"
,
"([CII)[Ljava/lang/Object;"
);
#endif
/* !HEADLESS */
#endif
/* !HEADLESS */
}
}
...
@@ -385,6 +380,11 @@ awtJNI_FontName(JNIEnv * env, jstring name, char **foundry, char **facename, cha
...
@@ -385,6 +380,11 @@ awtJNI_FontName(JNIEnv * env, jstring name, char **foundry, char **facename, cha
return
0
;
return
0
;
}
}
cname
=
(
char
*
)
JNU_GetStringPlatformChars
(
env
,
name
,
NULL
);
cname
=
(
char
*
)
JNU_GetStringPlatformChars
(
env
,
name
,
NULL
);
if
(
cname
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not create font name"
);
return
0
;
}
/* additional default font names */
/* additional default font names */
if
(
strcmp
(
cname
,
"serif"
)
==
0
)
{
if
(
strcmp
(
cname
,
"serif"
)
==
0
)
{
...
@@ -448,6 +448,8 @@ awtJNI_GetFontData(JNIEnv * env, jobject font, char **errmsg)
...
@@ -448,6 +448,8 @@ awtJNI_GetFontData(JNIEnv * env, jobject font, char **errmsg)
}
}
if
(
!
JNU_IsNull
(
env
,
font
)
&&
awtJNI_IsMultiFont
(
env
,
font
))
{
if
(
!
JNU_IsNull
(
env
,
font
)
&&
awtJNI_IsMultiFont
(
env
,
font
))
{
JNU_CHECK_EXCEPTION_RETURN
(
env
,
NULL
);
struct
FontData
*
fdata
=
NULL
;
struct
FontData
*
fdata
=
NULL
;
int32_t
i
,
size
;
int32_t
i
,
size
;
char
*
fontsetname
=
NULL
;
char
*
fontsetname
=
NULL
;
...
@@ -513,6 +515,11 @@ awtJNI_GetFontData(JNIEnv * env, jobject font, char **errmsg)
...
@@ -513,6 +515,11 @@ awtJNI_GetFontData(JNIEnv * env, jobject font, char **errmsg)
fdata
->
flist
[
i
].
charset_name
=
(
char
*
)
fdata
->
flist
[
i
].
charset_name
=
(
char
*
)
JNU_GetStringPlatformChars
(
env
,
charsetName
,
NULL
);
JNU_GetStringPlatformChars
(
env
,
charsetName
,
NULL
);
if
(
fdata
->
flist
[
i
].
charset_name
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not create charset name"
);
return
NULL
;
}
/* We are done with the objects. */
/* We are done with the objects. */
(
*
env
)
->
DeleteLocalRef
(
env
,
fontDescriptor
);
(
*
env
)
->
DeleteLocalRef
(
env
,
fontDescriptor
);
...
...
src/solaris/native/sun/awt/awt_GraphicsEnv.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1997, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -152,8 +152,11 @@ Java_sun_awt_X11GraphicsConfig_initIDs (JNIEnv *env, jclass cls)
...
@@ -152,8 +152,11 @@ Java_sun_awt_X11GraphicsConfig_initIDs (JNIEnv *env, jclass cls)
x11GraphicsConfigIDs
.
screen
=
NULL
;
x11GraphicsConfigIDs
.
screen
=
NULL
;
x11GraphicsConfigIDs
.
aData
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"aData"
,
"J"
);
x11GraphicsConfigIDs
.
aData
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"aData"
,
"J"
);
CHECK_NULL
(
x11GraphicsConfigIDs
.
aData
);
x11GraphicsConfigIDs
.
bitsPerPixel
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"bitsPerPixel"
,
"I"
);
x11GraphicsConfigIDs
.
bitsPerPixel
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"bitsPerPixel"
,
"I"
);
CHECK_NULL
(
x11GraphicsConfigIDs
.
bitsPerPixel
);
x11GraphicsConfigIDs
.
screen
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"screen"
,
"Lsun/awt/X11GraphicsDevice;"
);
x11GraphicsConfigIDs
.
screen
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"screen"
,
"Lsun/awt/X11GraphicsDevice;"
);
CHECK_NULL
(
x11GraphicsConfigIDs
.
screen
);
if
(
x11GraphicsConfigIDs
.
aData
==
NULL
||
if
(
x11GraphicsConfigIDs
.
aData
==
NULL
||
x11GraphicsConfigIDs
.
bitsPerPixel
==
NULL
||
x11GraphicsConfigIDs
.
bitsPerPixel
==
NULL
||
...
@@ -1346,7 +1349,6 @@ JNIEnv *env, jobject this)
...
@@ -1346,7 +1349,6 @@ JNIEnv *env, jobject this)
/* Make Color Model object for this GraphicsConfiguration */
/* Make Color Model object for this GraphicsConfiguration */
colorModel
=
awtJNI_GetColorModel
(
env
,
adata
);
colorModel
=
awtJNI_GetColorModel
(
env
,
adata
);
AWT_UNLOCK
();
AWT_UNLOCK
();
return
colorModel
;
return
colorModel
;
...
@@ -1374,6 +1376,7 @@ Java_sun_awt_X11GraphicsConfig_pGetBounds(JNIEnv *env, jobject this, jint screen
...
@@ -1374,6 +1376,7 @@ Java_sun_awt_X11GraphicsConfig_pGetBounds(JNIEnv *env, jobject this, jint screen
JNU_GetLongFieldAsPtr
(
env
,
this
,
x11GraphicsConfigIDs
.
aData
);
JNU_GetLongFieldAsPtr
(
env
,
this
,
x11GraphicsConfigIDs
.
aData
);
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Rectangle"
);
clazz
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/Rectangle"
);
CHECK_NULL_RETURN
(
clazz
,
NULL
);
mid
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"<init>"
,
"(IIII)V"
);
mid
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"<init>"
,
"(IIII)V"
);
if
(
mid
!=
NULL
)
{
if
(
mid
!=
NULL
)
{
if
(
usingXinerama
)
{
if
(
usingXinerama
)
{
...
@@ -1543,7 +1546,7 @@ Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals(JNIEnv *env,
...
@@ -1543,7 +1546,7 @@ Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals(JNIEnv *env,
clazz
=
(
*
env
)
->
GetObjectClass
(
env
,
this
);
clazz
=
(
*
env
)
->
GetObjectClass
(
env
,
this
);
midAddVisual
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"addDoubleBufferVisual"
,
midAddVisual
=
(
*
env
)
->
GetMethodID
(
env
,
clazz
,
"addDoubleBufferVisual"
,
"(I)V"
);
"(I)V"
);
CHECK_NULL
(
midAddVisual
);
AWT_LOCK
();
AWT_LOCK
();
rootWindow
=
RootWindow
(
awt_display
,
xinawareScreen
);
rootWindow
=
RootWindow
(
awt_display
,
xinawareScreen
);
visScreenInfo
=
XdbeGetVisualInfo
(
awt_display
,
&
rootWindow
,
&
n
);
visScreenInfo
=
XdbeGetVisualInfo
(
awt_display
,
&
rootWindow
,
&
n
);
...
@@ -1739,6 +1742,7 @@ X11GD_CreateDisplayMode(JNIEnv *env, jint width, jint height,
...
@@ -1739,6 +1742,7 @@ X11GD_CreateDisplayMode(JNIEnv *env, jint width, jint height,
jint
validRefreshRate
=
refreshRate
;
jint
validRefreshRate
=
refreshRate
;
displayModeClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/DisplayMode"
);
displayModeClass
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/DisplayMode"
);
CHECK_NULL_RETURN
(
displayModeClass
,
NULL
);
if
(
JNU_IsNull
(
env
,
displayModeClass
))
{
if
(
JNU_IsNull
(
env
,
displayModeClass
))
{
JNU_ThrowInternalError
(
env
,
JNU_ThrowInternalError
(
env
,
"Could not get display mode class"
);
"Could not get display mode class"
);
...
@@ -1746,6 +1750,7 @@ X11GD_CreateDisplayMode(JNIEnv *env, jint width, jint height,
...
@@ -1746,6 +1750,7 @@ X11GD_CreateDisplayMode(JNIEnv *env, jint width, jint height,
}
}
cid
=
(
*
env
)
->
GetMethodID
(
env
,
displayModeClass
,
"<init>"
,
"(IIII)V"
);
cid
=
(
*
env
)
->
GetMethodID
(
env
,
displayModeClass
,
"<init>"
,
"(IIII)V"
);
CHECK_NULL_RETURN
(
cid
,
NULL
);
if
(
cid
==
NULL
)
{
if
(
cid
==
NULL
)
{
JNU_ThrowInternalError
(
env
,
JNU_ThrowInternalError
(
env
,
"Could not get display mode constructor"
);
"Could not get display mode constructor"
);
...
@@ -1779,6 +1784,7 @@ X11GD_AddDisplayMode(JNIEnv *env, jobject arrayList,
...
@@ -1779,6 +1784,7 @@ X11GD_AddDisplayMode(JNIEnv *env, jobject arrayList,
}
}
mid
=
(
*
env
)
->
GetMethodID
(
env
,
arrayListClass
,
"add"
,
mid
=
(
*
env
)
->
GetMethodID
(
env
,
arrayListClass
,
"add"
,
"(Ljava/lang/Object;)Z"
);
"(Ljava/lang/Object;)Z"
);
CHECK_NULL
(
mid
);
if
(
mid
==
NULL
)
{
if
(
mid
==
NULL
)
{
JNU_ThrowInternalError
(
env
,
JNU_ThrowInternalError
(
env
,
"Could not get method java.util.ArrayList.add()"
);
"Could not get method java.util.ArrayList.add()"
);
...
@@ -1955,6 +1961,9 @@ Java_sun_awt_X11GraphicsDevice_enumDisplayModes
...
@@ -1955,6 +1961,9 @@ Java_sun_awt_X11GraphicsDevice_enumDisplayModes
size
.
height
,
size
.
height
,
BIT_DEPTH_MULTI
,
BIT_DEPTH_MULTI
,
rates
[
j
]);
rates
[
j
]);
if
((
*
env
)
->
ExceptionCheck
(
env
))
{
break
;
}
}
}
}
}
}
}
...
...
src/solaris/native/sun/awt/awt_InputMethod.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1997, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -319,6 +319,7 @@ static X11InputMethodData * getX11InputMethodData(JNIEnv * env, jobject imInstan
...
@@ -319,6 +319,7 @@ static X11InputMethodData * getX11InputMethodData(JNIEnv * env, jobject imInstan
JNU_CallMethodByName
(
env
,
NULL
,
pX11IMData
->
x11inputmethod
,
JNU_CallMethodByName
(
env
,
NULL
,
pX11IMData
->
x11inputmethod
,
"flushText"
,
"flushText"
,
"()V"
);
"()V"
);
JNU_CHECK_EXCEPTION_RETURN
(
env
,
NULL
);
/* IMPORTANT:
/* IMPORTANT:
The order of the following calls is critical since "imInstance" may
The order of the following calls is critical since "imInstance" may
point to the global reference itself, if "freeX11InputMethodData" is called
point to the global reference itself, if "freeX11InputMethodData" is called
...
@@ -1120,6 +1121,9 @@ PreeditDrawCallback(XIC ic, XPointer client_data,
...
@@ -1120,6 +1121,9 @@ PreeditDrawCallback(XIC ic, XPointer client_data,
if
(
text
->
string
.
multi_byte
!=
NULL
)
{
if
(
text
->
string
.
multi_byte
!=
NULL
)
{
if
(
pre_draw
->
text
->
encoding_is_wchar
==
False
)
{
if
(
pre_draw
->
text
->
encoding_is_wchar
==
False
)
{
javastr
=
JNU_NewStringPlatform
(
env
,
(
const
char
*
)
text
->
string
.
multi_byte
);
javastr
=
JNU_NewStringPlatform
(
env
,
(
const
char
*
)
text
->
string
.
multi_byte
);
if
(
javastr
==
NULL
)
{
goto
finally
;
}
}
else
{
}
else
{
char
*
mbstr
=
wcstombsdmp
(
text
->
string
.
wide_char
,
text
->
length
);
char
*
mbstr
=
wcstombsdmp
(
text
->
string
.
wide_char
,
text
->
length
);
if
(
mbstr
==
NULL
)
{
if
(
mbstr
==
NULL
)
{
...
@@ -1127,6 +1131,9 @@ PreeditDrawCallback(XIC ic, XPointer client_data,
...
@@ -1127,6 +1131,9 @@ PreeditDrawCallback(XIC ic, XPointer client_data,
}
}
javastr
=
JNU_NewStringPlatform
(
env
,
(
const
char
*
)
mbstr
);
javastr
=
JNU_NewStringPlatform
(
env
,
(
const
char
*
)
mbstr
);
free
(
mbstr
);
free
(
mbstr
);
if
(
javastr
==
NULL
)
{
goto
finally
;
}
}
}
}
}
if
(
text
->
feedback
!=
NULL
)
{
if
(
text
->
feedback
!=
NULL
)
{
...
@@ -1135,6 +1142,7 @@ PreeditDrawCallback(XIC ic, XPointer client_data,
...
@@ -1135,6 +1142,7 @@ PreeditDrawCallback(XIC ic, XPointer client_data,
style
=
(
*
env
)
->
NewIntArray
(
env
,
text
->
length
);
style
=
(
*
env
)
->
NewIntArray
(
env
,
text
->
length
);
if
(
JNU_IsNull
(
env
,
style
))
{
if
(
JNU_IsNull
(
env
,
style
))
{
(
*
env
)
->
ExceptionClear
(
env
);
THROW_OUT_OF_MEMORY_ERROR
();
THROW_OUT_OF_MEMORY_ERROR
();
goto
finally
;
goto
finally
;
}
}
...
@@ -1395,14 +1403,17 @@ Java_sun_awt_X11_XInputMethod_createXICNative(JNIEnv *env,
...
@@ -1395,14 +1403,17 @@ Java_sun_awt_X11_XInputMethod_createXICNative(JNIEnv *env,
pX11IMData
->
lookup_buf
=
0
;
pX11IMData
->
lookup_buf
=
0
;
pX11IMData
->
lookup_buf_len
=
0
;
pX11IMData
->
lookup_buf_len
=
0
;
if
(
createXIC
(
env
,
pX11IMData
,
(
Window
)
window
)
if
(
createXIC
(
env
,
pX11IMData
,
(
Window
)
window
)
==
False
)
{
==
False
)
{
destroyX11InputMethodData
((
JNIEnv
*
)
NULL
,
pX11IMData
);
destroyX11InputMethodData
((
JNIEnv
*
)
NULL
,
pX11IMData
);
pX11IMData
=
(
X11InputMethodData
*
)
NULL
;
pX11IMData
=
(
X11InputMethodData
*
)
NULL
;
if
((
*
env
)
->
ExceptionCheck
(
env
))
{
goto
finally
;
}
}
}
setX11InputMethodData
(
env
,
this
,
pX11IMData
);
setX11InputMethodData
(
env
,
this
,
pX11IMData
);
finally:
AWT_UNLOCK
();
AWT_UNLOCK
();
return
(
pX11IMData
!=
NULL
);
return
(
pX11IMData
!=
NULL
);
}
}
...
...
src/solaris/native/sun/awt/awt_Insets.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1998, 20
01
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 20
14
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -34,8 +34,8 @@ struct InsetsIDs insetsIDs;
...
@@ -34,8 +34,8 @@ struct InsetsIDs insetsIDs;
JNIEXPORT
void
JNICALL
JNIEXPORT
void
JNICALL
Java_java_awt_Insets_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
Java_java_awt_Insets_initIDs
(
JNIEnv
*
env
,
jclass
cls
)
{
{
insetsIDs
.
top
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"top"
,
"I"
);
CHECK_NULL
(
insetsIDs
.
top
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"top"
,
"I"
)
);
insetsIDs
.
bottom
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"bottom"
,
"I"
);
CHECK_NULL
(
insetsIDs
.
bottom
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"bottom"
,
"I"
)
);
insetsIDs
.
left
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"left"
,
"I"
);
CHECK_NULL
(
insetsIDs
.
left
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"left"
,
"I"
)
);
insetsIDs
.
right
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"right"
,
"I"
);
CHECK_NULL
(
insetsIDs
.
right
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"right"
,
"I"
)
);
}
}
src/solaris/native/sun/awt/awt_LoadLibrary.c
浏览文件 @
3ec1c1d7
...
@@ -77,11 +77,16 @@ JNIEXPORT jboolean JNICALL AWTIsHeadless() {
...
@@ -77,11 +77,16 @@ JNIEXPORT jboolean JNICALL AWTIsHeadless() {
return
isHeadless
;
return
isHeadless
;
}
}
#define CHECK_EXCEPTION_FATAL(env, message) \
if ((*env)->ExceptionCheck(env)) { \
(*env)->ExceptionClear(env); \
(*env)->FatalError(env, message); \
}
/*
/*
* Pathnames to the various awt toolkits
* Pathnames to the various awt toolkits
*/
*/
#ifdef MACOSX
#ifdef MACOSX
#define LWAWT_PATH "/libawt_lwawt.dylib"
#define LWAWT_PATH "/libawt_lwawt.dylib"
#define DEFAULT_PATH LWAWT_PATH
#define DEFAULT_PATH LWAWT_PATH
...
@@ -125,6 +130,8 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
...
@@ -125,6 +130,8 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
*/
*/
fmProp
=
(
*
env
)
->
NewStringUTF
(
env
,
"sun.font.fontmanager"
);
fmProp
=
(
*
env
)
->
NewStringUTF
(
env
,
"sun.font.fontmanager"
);
CHECK_EXCEPTION_FATAL
(
env
,
"Could not allocate font manager property"
);
#ifdef MACOSX
#ifdef MACOSX
fmanager
=
(
*
env
)
->
NewStringUTF
(
env
,
"sun.font.CFontManager"
);
fmanager
=
(
*
env
)
->
NewStringUTF
(
env
,
"sun.font.CFontManager"
);
tk
=
LWAWT_PATH
;
tk
=
LWAWT_PATH
;
...
@@ -132,10 +139,13 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
...
@@ -132,10 +139,13 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
fmanager
=
(
*
env
)
->
NewStringUTF
(
env
,
"sun.awt.X11FontManager"
);
fmanager
=
(
*
env
)
->
NewStringUTF
(
env
,
"sun.awt.X11FontManager"
);
tk
=
XAWT_PATH
;
tk
=
XAWT_PATH
;
#endif
#endif
CHECK_EXCEPTION_FATAL
(
env
,
"Could not allocate font manager name"
);
if
(
fmanager
&&
fmProp
)
{
if
(
fmanager
&&
fmProp
)
{
JNU_CallStaticMethodByName
(
env
,
NULL
,
"java/lang/System"
,
"setProperty"
,
JNU_CallStaticMethodByName
(
env
,
NULL
,
"java/lang/System"
,
"setProperty"
,
"(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"
,
"(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"
,
fmProp
,
fmanager
);
fmProp
,
fmanager
);
CHECK_EXCEPTION_FATAL
(
env
,
"Could not allocate set properties"
);
}
}
#ifndef MACOSX
#ifndef MACOSX
...
@@ -154,9 +164,11 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
...
@@ -154,9 +164,11 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
(
*
env
)
->
DeleteLocalRef
(
env
,
fmanager
);
(
*
env
)
->
DeleteLocalRef
(
env
,
fmanager
);
}
}
jstring
jbuf
=
JNU_NewStringPlatform
(
env
,
buf
);
CHECK_EXCEPTION_FATAL
(
env
,
"Could not allocate library name"
);
JNU_CallStaticMethodByName
(
env
,
NULL
,
"java/lang/System"
,
"load"
,
JNU_CallStaticMethodByName
(
env
,
NULL
,
"java/lang/System"
,
"load"
,
"(Ljava/lang/String;)V"
,
"(Ljava/lang/String;)V"
,
JNU_NewStringPlatform
(
env
,
buf
)
);
jbuf
);
awtHandle
=
dlopen
(
buf
,
RTLD_LAZY
|
RTLD_GLOBAL
);
awtHandle
=
dlopen
(
buf
,
RTLD_LAZY
|
RTLD_GLOBAL
);
...
...
src/solaris/native/sun/awt/awt_Robot.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1999, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -175,10 +175,13 @@ Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls, jint numberOfButton
...
@@ -175,10 +175,13 @@ Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls, jint numberOfButton
num_buttons
=
numberOfButtons
;
num_buttons
=
numberOfButtons
;
tmp
=
(
*
env
)
->
GetIntArrayElements
(
env
,
buttonDownMasks
,
JNI_FALSE
);
tmp
=
(
*
env
)
->
GetIntArrayElements
(
env
,
buttonDownMasks
,
JNI_FALSE
);
CHECK_NULL
(
tmp
);
masks
=
(
jint
*
)
SAFE_SIZE_ARRAY_ALLOC
(
malloc
,
sizeof
(
jint
),
num_buttons
);
masks
=
(
jint
*
)
SAFE_SIZE_ARRAY_ALLOC
(
malloc
,
sizeof
(
jint
),
num_buttons
);
if
(
masks
==
(
jint
*
)
NULL
)
{
if
(
masks
==
(
jint
*
)
NULL
)
{
JNU_ThrowOutOfMemoryError
((
JNIEnv
*
)
JNU_GetEnv
(
jvm
,
JNI_VERSION_1_2
),
NULL
);
(
*
env
)
->
ExceptionClear
(
env
);
(
*
env
)
->
ReleaseIntArrayElements
(
env
,
buttonDownMasks
,
tmp
,
0
);
(
*
env
)
->
ReleaseIntArrayElements
(
env
,
buttonDownMasks
,
tmp
,
0
);
JNU_ThrowOutOfMemoryError
((
JNIEnv
*
)
JNU_GetEnv
(
jvm
,
JNI_VERSION_1_2
),
NULL
);
return
;
return
;
}
}
for
(
i
=
0
;
i
<
num_buttons
;
i
++
)
{
for
(
i
=
0
;
i
<
num_buttons
;
i
++
)
{
...
...
src/solaris/native/sun/awt/awt_UNIXToolkit.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 2004, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -98,6 +98,7 @@ jboolean _icon_upcall(JNIEnv *env, jobject this, GdkPixbuf *pixbuf)
...
@@ -98,6 +98,7 @@ jboolean _icon_upcall(JNIEnv *env, jobject this, GdkPixbuf *pixbuf)
(
*
env
)
->
GetObjectClass
(
env
,
this
));
(
*
env
)
->
GetObjectClass
(
env
,
this
));
icon_upcall_method
=
(
*
env
)
->
GetMethodID
(
env
,
this_class
,
icon_upcall_method
=
(
*
env
)
->
GetMethodID
(
env
,
this_class
,
"loadIconCallback"
,
"([BIIIIIZ)V"
);
"loadIconCallback"
,
"([BIIIIIZ)V"
);
CHECK_NULL_RETURN
(
icon_upcall_method
,
JNI_FALSE
);
}
}
if
(
pixbuf
!=
NULL
)
if
(
pixbuf
!=
NULL
)
...
@@ -112,6 +113,8 @@ jboolean _icon_upcall(JNIEnv *env, jobject this, GdkPixbuf *pixbuf)
...
@@ -112,6 +113,8 @@ jboolean _icon_upcall(JNIEnv *env, jobject this, GdkPixbuf *pixbuf)
/* Copy the data array into a Java structure so we can pass it back. */
/* Copy the data array into a Java structure so we can pass it back. */
jbyteArray
data
=
(
*
env
)
->
NewByteArray
(
env
,
(
row_stride
*
height
));
jbyteArray
data
=
(
*
env
)
->
NewByteArray
(
env
,
(
row_stride
*
height
));
JNU_CHECK_EXCEPTION_RETURN
(
env
,
JNI_FALSE
);
(
*
env
)
->
SetByteArrayRegion
(
env
,
data
,
0
,
(
row_stride
*
height
),
(
*
env
)
->
SetByteArrayRegion
(
env
,
data
,
0
,
(
row_stride
*
height
),
(
jbyte
*
)
pixbuf_data
);
(
jbyte
*
)
pixbuf_data
);
...
...
src/solaris/native/sun/awt/awt_util.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1995, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -76,6 +76,7 @@ awtJNI_ThreadYield(JNIEnv *env) {
...
@@ -76,6 +76,7 @@ awtJNI_ThreadYield(JNIEnv *env) {
Boolean
err
=
FALSE
;
Boolean
err
=
FALSE
;
if
(
threadClass
==
NULL
)
{
if
(
threadClass
==
NULL
)
{
jclass
tc
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/Thread"
);
jclass
tc
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/Thread"
);
CHECK_NULL
(
tc
);
threadClass
=
(
*
env
)
->
NewGlobalRef
(
env
,
tc
);
threadClass
=
(
*
env
)
->
NewGlobalRef
(
env
,
tc
);
(
*
env
)
->
DeleteLocalRef
(
env
,
tc
);
(
*
env
)
->
DeleteLocalRef
(
env
,
tc
);
if
(
threadClass
!=
NULL
)
{
if
(
threadClass
!=
NULL
)
{
...
...
src/solaris/native/sun/awt/fontpath.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1998, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -161,17 +161,22 @@ jboolean isDisplayLocal(JNIEnv *env) {
...
@@ -161,17 +161,22 @@ jboolean isDisplayLocal(JNIEnv *env) {
if
(
!
isLocalSet
)
{
if
(
!
isLocalSet
)
{
jclass
geCls
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/GraphicsEnvironment"
);
jclass
geCls
=
(
*
env
)
->
FindClass
(
env
,
"java/awt/GraphicsEnvironment"
);
CHECK_NULL_RETURN
(
geCls
,
JNI_FALSE
);
jmethodID
getLocalGE
=
(
*
env
)
->
GetStaticMethodID
(
env
,
geCls
,
jmethodID
getLocalGE
=
(
*
env
)
->
GetStaticMethodID
(
env
,
geCls
,
"getLocalGraphicsEnvironment"
,
"getLocalGraphicsEnvironment"
,
"()Ljava/awt/GraphicsEnvironment;"
);
"()Ljava/awt/GraphicsEnvironment;"
);
CHECK_NULL_RETURN
(
getLocalGE
,
JNI_FALSE
);
jobject
ge
=
(
*
env
)
->
CallStaticObjectMethod
(
env
,
geCls
,
getLocalGE
);
jobject
ge
=
(
*
env
)
->
CallStaticObjectMethod
(
env
,
geCls
,
getLocalGE
);
JNU_CHECK_EXCEPTION_RETURN
(
env
,
JNI_FALSE
);
jclass
sgeCls
=
(
*
env
)
->
FindClass
(
env
,
jclass
sgeCls
=
(
*
env
)
->
FindClass
(
env
,
"sun/java2d/SunGraphicsEnvironment"
);
"sun/java2d/SunGraphicsEnvironment"
);
CHECK_NULL_RETURN
(
sgeCls
,
JNI_FALSE
);
if
((
*
env
)
->
IsInstanceOf
(
env
,
ge
,
sgeCls
))
{
if
((
*
env
)
->
IsInstanceOf
(
env
,
ge
,
sgeCls
))
{
jmethodID
isDisplayLocal
=
(
*
env
)
->
GetMethodID
(
env
,
sgeCls
,
jmethodID
isDisplayLocal
=
(
*
env
)
->
GetMethodID
(
env
,
sgeCls
,
"isDisplayLocal"
,
"isDisplayLocal"
,
"()Z"
);
"()Z"
);
JNU_CHECK_EXCEPTION_RETURN
(
env
,
JNI_FALSE
);
isLocal
=
(
*
env
)
->
CallBooleanMethod
(
env
,
ge
,
isDisplayLocal
);
isLocal
=
(
*
env
)
->
CallBooleanMethod
(
env
,
ge
,
isDisplayLocal
);
}
else
{
}
else
{
isLocal
=
True
;
isLocal
=
True
;
...
@@ -1005,50 +1010,38 @@ Java_sun_font_FontConfigManager_getFontConfig
...
@@ -1005,50 +1010,38 @@ Java_sun_font_FontConfigManager_getFontConfig
jmethodID
fcFontCons
;
jmethodID
fcFontCons
;
char
*
debugMinGlyphsStr
=
getenv
(
"J2D_DEBUG_MIN_GLYPHS"
);
char
*
debugMinGlyphsStr
=
getenv
(
"J2D_DEBUG_MIN_GLYPHS"
);
CHECK_NULL
(
fcInfoObj
);
CHECK_NULL
(
fcCompFontArray
);
jclass
fcInfoClass
=
jclass
fcInfoClass
=
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontConfigManager$FontConfigInfo"
);
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontConfigManager$FontConfigInfo"
);
CHECK_NULL
(
fcInfoClass
);
jclass
fcCompFontClass
=
jclass
fcCompFontClass
=
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontConfigManager$FcCompFont"
);
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontConfigManager$FcCompFont"
);
CHECK_NULL
(
fcCompFontClass
);
jclass
fcFontClass
=
jclass
fcFontClass
=
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontConfigManager$FontConfigFont"
);
(
*
env
)
->
FindClass
(
env
,
"sun/font/FontConfigManager$FontConfigFont"
);
CHECK_NULL
(
fcFontClass
);
if
(
fcInfoObj
==
NULL
||
fcCompFontArray
==
NULL
||
fcInfoClass
==
NULL
||
fcCompFontClass
==
NULL
||
fcFontClass
==
NULL
)
{
return
;
CHECK_NULL
(
fcVersionID
=
(
*
env
)
->
GetFieldID
(
env
,
fcInfoClass
,
"fcVersion"
,
"I"
));
}
CHECK_NULL
(
fcCacheDirsID
=
(
*
env
)
->
GetFieldID
(
env
,
fcInfoClass
,
"cacheDirs"
,
"[Ljava/lang/String;"
));
fcVersionID
=
(
*
env
)
->
GetFieldID
(
env
,
fcInfoClass
,
"fcVersion"
,
"I"
);
CHECK_NULL
(
fcNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"fcName"
,
"Ljava/lang/String;"
));
fcCacheDirsID
=
(
*
env
)
->
GetFieldID
(
env
,
fcInfoClass
,
"cacheDirs"
,
CHECK_NULL
(
fcFirstFontID
=
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"firstFont"
,
"[Ljava/lang/String;"
);
"Lsun/font/FontConfigManager$FontConfigFont;"
));
CHECK_NULL
(
fcAllFontsID
=
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"allFonts"
,
fcNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"[Lsun/font/FontConfigManager$FontConfigFont;"
));
"fcName"
,
"Ljava/lang/String;"
);
CHECK_NULL
(
fcFontCons
=
(
*
env
)
->
GetMethodID
(
env
,
fcFontClass
,
"<init>"
,
"()V"
));
fcFirstFontID
=
CHECK_NULL
(
familyNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"firstFont"
,
"familyName"
,
"Ljava/lang/String;"
));
"Lsun/font/FontConfigManager$FontConfigFont;"
);
CHECK_NULL
(
styleNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
"styleStr"
,
"Ljava/lang/String;"
));
fcAllFontsID
=
CHECK_NULL
(
fullNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
(
*
env
)
->
GetFieldID
(
env
,
fcCompFontClass
,
"allFonts"
,
"fullName"
,
"Ljava/lang/String;"
));
"[Lsun/font/FontConfigManager$FontConfigFont;"
);
CHECK_NULL
(
fontFileID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
"fontFile"
,
"Ljava/lang/String;"
));
fcFontCons
=
(
*
env
)
->
GetMethodID
(
env
,
fcFontClass
,
"<init>"
,
"()V"
);
familyNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
"familyName"
,
"Ljava/lang/String;"
);
styleNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
"styleStr"
,
"Ljava/lang/String;"
);
fullNameID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
"fullName"
,
"Ljava/lang/String;"
);
fontFileID
=
(
*
env
)
->
GetFieldID
(
env
,
fcFontClass
,
"fontFile"
,
"Ljava/lang/String;"
);
if
(
fcVersionID
==
NULL
||
fcCacheDirsID
==
NULL
||
fcNameID
==
NULL
||
fcFirstFontID
==
NULL
||
fcAllFontsID
==
NULL
||
fcFontCons
==
NULL
||
familyNameID
==
NULL
||
styleNameID
==
NULL
||
fullNameID
==
NULL
||
fontFileID
==
NULL
)
{
return
;
}
if
((
libfontconfig
=
openFontConfig
())
==
NULL
)
{
if
((
libfontconfig
=
openFontConfig
())
==
NULL
)
{
return
;
return
;
...
@@ -1129,6 +1122,8 @@ Java_sun_font_FontConfigManager_getFontConfig
...
@@ -1129,6 +1122,8 @@ Java_sun_font_FontConfigManager_getFontConfig
if
(
cacheDirs
!=
NULL
)
{
if
(
cacheDirs
!=
NULL
)
{
while
((
cnt
<
max
)
&&
(
cacheDir
=
(
*
FcStrListNext
)(
cacheDirs
)))
{
while
((
cnt
<
max
)
&&
(
cacheDir
=
(
*
FcStrListNext
)(
cacheDirs
)))
{
jstr
=
(
*
env
)
->
NewStringUTF
(
env
,
(
const
char
*
)
cacheDir
);
jstr
=
(
*
env
)
->
NewStringUTF
(
env
,
(
const
char
*
)
cacheDir
);
JNU_CHECK_EXCEPTION
(
env
);
(
*
env
)
->
SetObjectArrayElement
(
env
,
cacheDirArray
,
cnt
++
,
jstr
);
(
*
env
)
->
SetObjectArrayElement
(
env
,
cacheDirArray
,
cnt
++
,
jstr
);
}
}
(
*
FcStrListDone
)(
cacheDirs
);
(
*
FcStrListDone
)(
cacheDirs
);
...
@@ -1136,6 +1131,11 @@ Java_sun_font_FontConfigManager_getFontConfig
...
@@ -1136,6 +1131,11 @@ Java_sun_font_FontConfigManager_getFontConfig
}
}
locale
=
(
*
env
)
->
GetStringUTFChars
(
env
,
localeStr
,
0
);
locale
=
(
*
env
)
->
GetStringUTFChars
(
env
,
localeStr
,
0
);
if
(
locale
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not create locale"
);
return
;
}
arrlen
=
(
*
env
)
->
GetArrayLength
(
env
,
fcCompFontArray
);
arrlen
=
(
*
env
)
->
GetArrayLength
(
env
,
fcCompFontArray
);
for
(
i
=
0
;
i
<
arrlen
;
i
++
)
{
for
(
i
=
0
;
i
<
arrlen
;
i
++
)
{
...
...
src/solaris/native/sun/awt/initIDs.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1997, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -47,9 +47,6 @@ Java_java_awt_Color_initIDs
...
@@ -47,9 +47,6 @@ Java_java_awt_Color_initIDs
(
JNIEnv
*
env
,
jclass
clazz
)
(
JNIEnv
*
env
,
jclass
clazz
)
{
{
colorValueID
=
(
*
env
)
->
GetFieldID
(
env
,
clazz
,
"value"
,
"I"
);
colorValueID
=
(
*
env
)
->
GetFieldID
(
env
,
clazz
,
"value"
,
"I"
);
if
(
colorValueID
==
NULL
)
JNU_ThrowNullPointerException
(
env
,
"Can't get java/awt/Color.value fieldID"
);
}
}
JNIEXPORT
void
JNICALL
JNIEXPORT
void
JNICALL
...
...
src/solaris/native/sun/awt/multi_font.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 1996, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -74,7 +74,7 @@ awtJNI_GetFontDescriptorNumber(JNIEnv * env
...
@@ -74,7 +74,7 @@ awtJNI_GetFontDescriptorNumber(JNIEnv * env
jobject
temp
=
NULL
;
jobject
temp
=
NULL
;
jboolean
validRet
=
JNI_FALSE
;
jboolean
validRet
=
JNI_FALSE
;
if
((
*
env
)
->
EnsureLocalCapacity
(
env
,
2
)
<
0
)
if
((
*
env
)
->
EnsureLocalCapacity
(
env
,
2
)
<
0
||
(
*
env
)
->
ExceptionCheck
(
env
)
)
goto
done
;
goto
done
;
peer
=
(
*
env
)
->
CallObjectMethod
(
env
,
font
,
fontIDs
.
getPeer
);
peer
=
(
*
env
)
->
CallObjectMethod
(
env
,
font
,
fontIDs
.
getPeer
);
...
@@ -162,7 +162,7 @@ awtJNI_IsMultiFontMetrics(JNIEnv * env, jobject this)
...
@@ -162,7 +162,7 @@ awtJNI_IsMultiFontMetrics(JNIEnv * env, jobject this)
font
=
JNU_CallMethodByName
(
env
,
NULL
,
this
,
"getFont_NoClientCode"
,
font
=
JNU_CallMethodByName
(
env
,
NULL
,
this
,
"getFont_NoClientCode"
,
"()Ljava/awt/Font;"
).
l
;
"()Ljava/awt/Font;"
).
l
;
if
(
JNU_IsNull
(
env
,
font
))
{
if
(
JNU_IsNull
(
env
,
font
)
||
(
*
env
)
->
ExceptionCheck
(
env
)
)
{
return
JNI_FALSE
;
return
JNI_FALSE
;
}
}
...
@@ -318,6 +318,10 @@ awtJNI_GetMFStringWidth(JNIEnv * env, jcharArray s, int offset, int sLength, job
...
@@ -318,6 +318,10 @@ awtJNI_GetMFStringWidth(JNIEnv * env, jcharArray s, int offset, int sLength, job
}
}
fdata
=
awtJNI_GetFontData
(
env
,
font
,
&
err
);
fdata
=
awtJNI_GetFontData
(
env
,
font
,
&
err
);
if
((
*
env
)
->
ExceptionCheck
(
env
))
{
(
*
env
)
->
DeleteLocalRef
(
env
,
dataArray
);
return
0
;
}
stringCount
=
(
*
env
)
->
GetArrayLength
(
env
,
dataArray
);
stringCount
=
(
*
env
)
->
GetArrayLength
(
env
,
dataArray
);
...
@@ -336,6 +340,11 @@ awtJNI_GetMFStringWidth(JNIEnv * env, jcharArray s, int offset, int sLength, job
...
@@ -336,6 +340,11 @@ awtJNI_GetMFStringWidth(JNIEnv * env, jcharArray s, int offset, int sLength, job
}
}
j
=
awtJNI_GetFontDescriptorNumber
(
env
,
font
,
fontDescriptor
);
j
=
awtJNI_GetFontDescriptorNumber
(
env
,
font
,
fontDescriptor
);
if
((
*
env
)
->
ExceptionCheck
(
env
))
{
(
*
env
)
->
DeleteLocalRef
(
env
,
fontDescriptor
);
(
*
env
)
->
DeleteLocalRef
(
env
,
data
);
break
;
}
if
(
fdata
->
flist
[
j
].
load
==
0
)
{
if
(
fdata
->
flist
[
j
].
load
==
0
)
{
xf
=
loadFont
(
awt_display
,
xf
=
loadFont
(
awt_display
,
...
@@ -356,6 +365,14 @@ awtJNI_GetMFStringWidth(JNIEnv * env, jcharArray s, int offset, int sLength, job
...
@@ -356,6 +365,14 @@ awtJNI_GetMFStringWidth(JNIEnv * env, jcharArray s, int offset, int sLength, job
stringData
=
stringData
=
(
unsigned
char
*
)(
*
env
)
->
GetPrimitiveArrayCritical
(
env
,
data
,
NULL
);
(
unsigned
char
*
)(
*
env
)
->
GetPrimitiveArrayCritical
(
env
,
data
,
NULL
);
if
(
stringData
==
NULL
)
{
(
*
env
)
->
DeleteLocalRef
(
env
,
fontDescriptor
);
(
*
env
)
->
DeleteLocalRef
(
env
,
data
);
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not get string data"
);
break
;
}
length
=
(
stringData
[
0
]
<<
24
)
|
(
stringData
[
1
]
<<
16
)
|
length
=
(
stringData
[
0
]
<<
24
)
|
(
stringData
[
1
]
<<
16
)
|
(
stringData
[
2
]
<<
8
)
|
stringData
[
3
];
(
stringData
[
2
]
<<
8
)
|
stringData
[
3
];
offsetStringData
=
(
char
*
)(
stringData
+
(
4
*
sizeof
(
char
)));
offsetStringData
=
(
char
*
)(
stringData
+
(
4
*
sizeof
(
char
)));
...
...
src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c
浏览文件 @
3ec1c1d7
/*
/*
* Copyright (c) 2010, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -45,10 +45,12 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_GtkFileDialogPeer_initIDs
...
@@ -45,10 +45,12 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_GtkFileDialogPeer_initIDs
filenameFilterCallbackMethodID
=
(
*
env
)
->
GetMethodID
(
env
,
cx
,
filenameFilterCallbackMethodID
=
(
*
env
)
->
GetMethodID
(
env
,
cx
,
"filenameFilterCallback"
,
"(Ljava/lang/String;)Z"
);
"filenameFilterCallback"
,
"(Ljava/lang/String;)Z"
);
DASSERT
(
filenameFilterCallbackMethodID
!=
NULL
);
DASSERT
(
filenameFilterCallbackMethodID
!=
NULL
);
CHECK_NULL
(
filenameFilterCallbackMethodID
);
setFileInternalMethodID
=
(
*
env
)
->
GetMethodID
(
env
,
cx
,
setFileInternalMethodID
=
(
*
env
)
->
GetMethodID
(
env
,
cx
,
"setFileInternal"
,
"(Ljava/lang/String;[Ljava/lang/String;)V"
);
"setFileInternal"
,
"(Ljava/lang/String;[Ljava/lang/String;)V"
);
DASSERT
(
setFileInternalMethodID
!=
NULL
);
DASSERT
(
setFileInternalMethodID
!=
NULL
);
CHECK_NULL
(
setFileInternalMethodID
);
widgetFieldID
=
(
*
env
)
->
GetFieldID
(
env
,
cx
,
"widget"
,
"J"
);
widgetFieldID
=
(
*
env
)
->
GetFieldID
(
env
,
cx
,
"widget"
,
"J"
);
DASSERT
(
widgetFieldID
!=
NULL
);
DASSERT
(
widgetFieldID
!=
NULL
);
...
@@ -63,6 +65,7 @@ static gboolean filenameFilterCallback(const GtkFileFilterInfo * filter_info, gp
...
@@ -63,6 +65,7 @@ static gboolean filenameFilterCallback(const GtkFileFilterInfo * filter_info, gp
env
=
(
JNIEnv
*
)
JNU_GetEnv
(
jvm
,
JNI_VERSION_1_2
);
env
=
(
JNIEnv
*
)
JNU_GetEnv
(
jvm
,
JNI_VERSION_1_2
);
filename
=
(
*
env
)
->
NewStringUTF
(
env
,
filter_info
->
filename
);
filename
=
(
*
env
)
->
NewStringUTF
(
env
,
filter_info
->
filename
);
JNU_CHECK_EXCEPTION_RETURN
(
env
,
FALSE
);
return
(
*
env
)
->
CallBooleanMethod
(
env
,
obj
,
filenameFilterCallbackMethodID
,
return
(
*
env
)
->
CallBooleanMethod
(
env
,
obj
,
filenameFilterCallbackMethodID
,
filename
);
filename
);
...
@@ -173,13 +176,14 @@ static jobjectArray toFilenamesArray(JNIEnv *env, GSList* list)
...
@@ -173,13 +176,14 @@ static jobjectArray toFilenamesArray(JNIEnv *env, GSList* list)
stringCls
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/String"
);
stringCls
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/String"
);
if
(
stringCls
==
NULL
)
{
if
(
stringCls
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowInternalError
(
env
,
"Could not get java.lang.String class"
);
JNU_ThrowInternalError
(
env
,
"Could not get java.lang.String class"
);
return
NULL
;
return
NULL
;
}
}
array
=
(
*
env
)
->
NewObjectArray
(
env
,
fp_gtk_g_slist_length
(
list
),
stringCls
,
array
=
(
*
env
)
->
NewObjectArray
(
env
,
fp_gtk_g_slist_length
(
list
),
stringCls
,
NULL
);
NULL
);
if
(
array
==
NULL
)
{
if
(
array
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowInternalError
(
env
,
"Could not instantiate array files array"
);
JNU_ThrowInternalError
(
env
,
"Could not instantiate array files array"
);
return
NULL
;
return
NULL
;
}
}
...
@@ -189,7 +193,9 @@ static jobjectArray toFilenamesArray(JNIEnv *env, GSList* list)
...
@@ -189,7 +193,9 @@ static jobjectArray toFilenamesArray(JNIEnv *env, GSList* list)
entry
=
(
char
*
)
iterator
->
data
;
entry
=
(
char
*
)
iterator
->
data
;
entry
=
strrchr
(
entry
,
'/'
)
+
1
;
entry
=
strrchr
(
entry
,
'/'
)
+
1
;
str
=
(
*
env
)
->
NewStringUTF
(
env
,
entry
);
str
=
(
*
env
)
->
NewStringUTF
(
env
,
entry
);
(
*
env
)
->
SetObjectArrayElement
(
env
,
array
,
i
,
str
);
if
(
str
&&
!
(
*
env
)
->
ExceptionCheck
(
env
))
{
(
*
env
)
->
SetObjectArrayElement
(
env
,
array
,
i
,
str
);
}
i
++
;
i
++
;
}
}
...
@@ -215,13 +221,14 @@ static jobjectArray toPathAndFilenamesArray(JNIEnv *env, GSList* list)
...
@@ -215,13 +221,14 @@ static jobjectArray toPathAndFilenamesArray(JNIEnv *env, GSList* list)
stringCls
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/String"
);
stringCls
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/String"
);
if
(
stringCls
==
NULL
)
{
if
(
stringCls
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowInternalError
(
env
,
"Could not get java.lang.String class"
);
JNU_ThrowInternalError
(
env
,
"Could not get java.lang.String class"
);
return
NULL
;
return
NULL
;
}
}
array
=
(
*
env
)
->
NewObjectArray
(
env
,
fp_gtk_g_slist_length
(
list
),
stringCls
,
array
=
(
*
env
)
->
NewObjectArray
(
env
,
fp_gtk_g_slist_length
(
list
),
stringCls
,
NULL
);
NULL
);
if
(
array
==
NULL
)
{
if
(
array
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowInternalError
(
env
,
"Could not instantiate array files array"
);
JNU_ThrowInternalError
(
env
,
"Could not instantiate array files array"
);
return
NULL
;
return
NULL
;
}
}
...
@@ -236,7 +243,9 @@ static jobjectArray toPathAndFilenamesArray(JNIEnv *env, GSList* list)
...
@@ -236,7 +243,9 @@ static jobjectArray toPathAndFilenamesArray(JNIEnv *env, GSList* list)
}
}
str
=
(
*
env
)
->
NewStringUTF
(
env
,
entry
);
str
=
(
*
env
)
->
NewStringUTF
(
env
,
entry
);
(
*
env
)
->
SetObjectArrayElement
(
env
,
array
,
i
,
str
);
if
(
str
&&
!
(
*
env
)
->
ExceptionCheck
(
env
))
{
(
*
env
)
->
SetObjectArrayElement
(
env
,
array
,
i
,
str
);
}
i
++
;
i
++
;
}
}
...
@@ -268,16 +277,17 @@ static void handle_response(GtkWidget* aDialog, gint responseId, gpointer obj)
...
@@ -268,16 +277,17 @@ static void handle_response(GtkWidget* aDialog, gint responseId, gpointer obj)
if
(
full_path_names
)
{
if
(
full_path_names
)
{
//This is a hack for use with "Recent Folders" in gtk where each
//This is a hack for use with "Recent Folders" in gtk where each
//file could have its own directory.
//file could have its own directory.
jcurrent_folder
=
(
*
env
)
->
NewStringUTF
(
env
,
"/"
);
jfilenames
=
toPathAndFilenamesArray
(
env
,
filenames
);
jfilenames
=
toPathAndFilenamesArray
(
env
,
filenames
);
jcurrent_folder
=
(
*
env
)
->
NewStringUTF
(
env
,
"/"
);
}
else
{
}
else
{
jcurrent_folder
=
(
*
env
)
->
NewStringUTF
(
env
,
current_folder
);
jfilenames
=
toFilenamesArray
(
env
,
filenames
);
jfilenames
=
toFilenamesArray
(
env
,
filenames
);
jcurrent_folder
=
(
*
env
)
->
NewStringUTF
(
env
,
current_folder
);
}
if
(
!
(
*
env
)
->
ExceptionCheck
(
env
))
{
(
*
env
)
->
CallVoidMethod
(
env
,
obj
,
setFileInternalMethodID
,
jcurrent_folder
,
jfilenames
);
}
}
(
*
env
)
->
CallVoidMethod
(
env
,
obj
,
setFileInternalMethodID
,
jcurrent_folder
,
jfilenames
);
fp_g_free
(
current_folder
);
fp_g_free
(
current_folder
);
quit
(
env
,
(
jobject
)
obj
,
TRUE
);
quit
(
env
,
(
jobject
)
obj
,
TRUE
);
}
}
...
@@ -296,11 +306,17 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
...
@@ -296,11 +306,17 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
if
(
jvm
==
NULL
)
{
if
(
jvm
==
NULL
)
{
(
*
env
)
->
GetJavaVM
(
env
,
&
jvm
);
(
*
env
)
->
GetJavaVM
(
env
,
&
jvm
);
JNU_CHECK_EXCEPTION
(
env
);
}
}
fp_gdk_threads_enter
();
fp_gdk_threads_enter
();
const
char
*
title
=
jtitle
==
NULL
?
""
:
(
*
env
)
->
GetStringUTFChars
(
env
,
jtitle
,
0
);
const
char
*
title
=
jtitle
==
NULL
?
""
:
(
*
env
)
->
GetStringUTFChars
(
env
,
jtitle
,
0
);
if
(
title
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not get title"
);
return
;
}
if
(
mode
==
java_awt_FileDialog_SAVE
)
{
if
(
mode
==
java_awt_FileDialog_SAVE
)
{
/* Save action */
/* Save action */
...
@@ -328,6 +344,11 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
...
@@ -328,6 +344,11 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
/* Set the directory */
/* Set the directory */
if
(
jdir
!=
NULL
)
{
if
(
jdir
!=
NULL
)
{
const
char
*
dir
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jdir
,
0
);
const
char
*
dir
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jdir
,
0
);
if
(
dir
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not get dir"
);
return
;
}
fp_gtk_file_chooser_set_current_folder
(
GTK_FILE_CHOOSER
(
dialog
),
dir
);
fp_gtk_file_chooser_set_current_folder
(
GTK_FILE_CHOOSER
(
dialog
),
dir
);
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
jdir
,
dir
);
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
jdir
,
dir
);
}
}
...
@@ -335,6 +356,11 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
...
@@ -335,6 +356,11 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
/* Set the filename */
/* Set the filename */
if
(
jfile
!=
NULL
)
{
if
(
jfile
!=
NULL
)
{
const
char
*
filename
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jfile
,
0
);
const
char
*
filename
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jfile
,
0
);
if
(
filename
==
NULL
)
{
(
*
env
)
->
ExceptionClear
(
env
);
JNU_ThrowOutOfMemoryError
(
env
,
"Could not get filename"
);
return
;
}
if
(
mode
==
java_awt_FileDialog_SAVE
)
{
if
(
mode
==
java_awt_FileDialog_SAVE
)
{
fp_gtk_file_chooser_set_current_name
(
GTK_FILE_CHOOSER
(
dialog
),
filename
);
fp_gtk_file_chooser_set_current_name
(
GTK_FILE_CHOOSER
(
dialog
),
filename
);
}
else
{
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录