Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
1ffc3320
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看板
提交
1ffc3320
编写于
10月 23, 2009
作者:
B
bae
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6888167: memory leaks in the medialib glue code
Reviewed-by: igor, prr
上级
4c8ebca3
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
37 addition
and
14 deletion
+37
-14
src/share/native/sun/awt/medialib/awt_ImagingLib.c
src/share/native/sun/awt/medialib/awt_ImagingLib.c
+37
-14
未找到文件。
src/share/native/sun/awt/medialib/awt_ImagingLib.c
浏览文件 @
1ffc3320
...
@@ -960,21 +960,15 @@ Java_sun_awt_image_ImagingLib_transformRaster(JNIEnv *env, jobject this,
...
@@ -960,21 +960,15 @@ Java_sun_awt_image_ImagingLib_transformRaster(JNIEnv *env, jobject this,
mlib_filter
filter
;
mlib_filter
filter
;
unsigned
int
*
dP
;
unsigned
int
*
dP
;
if
((
srcRasterP
=
(
RasterS_t
*
)
calloc
(
1
,
sizeof
(
RasterS_t
)))
==
NULL
)
{
JNU_ThrowOutOfMemoryError
(
env
,
"Out of memory"
);
return
-
1
;
}
if
((
dstRasterP
=
(
RasterS_t
*
)
calloc
(
1
,
sizeof
(
RasterS_t
)))
==
NULL
)
{
JNU_ThrowOutOfMemoryError
(
env
,
"Out of memory"
);
free
(
srcRasterP
);
return
-
1
;
}
/* This function requires a lot of local refs ??? Is 64 enough ??? */
/* This function requires a lot of local refs ??? Is 64 enough ??? */
if
((
*
env
)
->
EnsureLocalCapacity
(
env
,
64
)
<
0
)
if
((
*
env
)
->
EnsureLocalCapacity
(
env
,
64
)
<
0
)
return
0
;
return
0
;
if
(
s_nomlib
)
return
0
;
if
(
s_timeIt
)
{
(
*
start_timer
)(
3600
);
}
switch
(
interpType
)
{
switch
(
interpType
)
{
case
java_awt_image_AffineTransformOp_TYPE_BILINEAR
:
case
java_awt_image_AffineTransformOp_TYPE_BILINEAR
:
filter
=
MLIB_BILINEAR
;
filter
=
MLIB_BILINEAR
;
...
@@ -990,9 +984,15 @@ Java_sun_awt_image_ImagingLib_transformRaster(JNIEnv *env, jobject this,
...
@@ -990,9 +984,15 @@ Java_sun_awt_image_ImagingLib_transformRaster(JNIEnv *env, jobject this,
return
-
1
;
return
-
1
;
}
}
if
(
s_nomlib
)
return
0
;
if
((
srcRasterP
=
(
RasterS_t
*
)
calloc
(
1
,
sizeof
(
RasterS_t
)))
==
NULL
)
{
if
(
s_timeIt
)
{
JNU_ThrowOutOfMemoryError
(
env
,
"Out of memory"
);
(
*
start_timer
)(
3600
);
return
-
1
;
}
if
((
dstRasterP
=
(
RasterS_t
*
)
calloc
(
1
,
sizeof
(
RasterS_t
)))
==
NULL
)
{
JNU_ThrowOutOfMemoryError
(
env
,
"Out of memory"
);
free
(
srcRasterP
);
return
-
1
;
}
}
if
((
*
env
)
->
GetArrayLength
(
env
,
jmatrix
)
<
6
)
{
if
((
*
env
)
->
GetArrayLength
(
env
,
jmatrix
)
<
6
)
{
...
@@ -1215,6 +1215,9 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
...
@@ -1215,6 +1215,9 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
}
}
if
(
tbl
==
NULL
||
table
==
NULL
||
jtable
==
NULL
)
{
if
(
tbl
==
NULL
||
table
==
NULL
||
jtable
==
NULL
)
{
if
(
tbl
!=
NULL
)
free
(
tbl
);
if
(
table
!=
NULL
)
free
(
table
);
if
(
jtable
!=
NULL
)
free
(
jtable
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
JNU_ThrowNullPointerException
(
env
,
"NULL LUT"
);
JNU_ThrowNullPointerException
(
env
,
"NULL LUT"
);
...
@@ -1224,6 +1227,11 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
...
@@ -1224,6 +1227,11 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
for
(
i
=
0
;
i
<
jlen
;
i
++
)
{
for
(
i
=
0
;
i
<
jlen
;
i
++
)
{
jtable
[
i
]
=
(
*
env
)
->
GetObjectArrayElement
(
env
,
jtableArrays
,
i
);
jtable
[
i
]
=
(
*
env
)
->
GetObjectArrayElement
(
env
,
jtableArrays
,
i
);
if
(
jtable
[
i
]
==
NULL
)
{
if
(
jtable
[
i
]
==
NULL
)
{
free
(
tbl
);
free
(
table
);
free
(
jtable
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
return
0
;
return
0
;
}
}
}
}
...
@@ -1232,6 +1240,9 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
...
@@ -1232,6 +1240,9 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
FALSE
,
&
hint
);
FALSE
,
&
hint
);
if
(
nbands
<
1
)
{
if
(
nbands
<
1
)
{
/* Can't handle any custom images */
/* Can't handle any custom images */
free
(
tbl
);
free
(
table
);
free
(
jtable
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
return
0
;
return
0
;
...
@@ -1240,12 +1251,18 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
...
@@ -1240,12 +1251,18 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
/* Allocate the arrays */
/* Allocate the arrays */
if
(
allocateArray
(
env
,
srcImageP
,
&
src
,
&
sdata
,
TRUE
,
FALSE
,
FALSE
)
<
0
)
{
if
(
allocateArray
(
env
,
srcImageP
,
&
src
,
&
sdata
,
TRUE
,
FALSE
,
FALSE
)
<
0
)
{
/* Must be some problem */
/* Must be some problem */
free
(
tbl
);
free
(
table
);
free
(
jtable
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
return
0
;
return
0
;
}
}
if
(
allocateArray
(
env
,
dstImageP
,
&
dst
,
&
ddata
,
FALSE
,
FALSE
,
FALSE
)
<
0
)
{
if
(
allocateArray
(
env
,
dstImageP
,
&
dst
,
&
ddata
,
FALSE
,
FALSE
,
FALSE
)
<
0
)
{
/* Must be some problem */
/* Must be some problem */
free
(
tbl
);
free
(
table
);
free
(
jtable
);
freeArray
(
env
,
srcImageP
,
src
,
sdata
,
NULL
,
NULL
,
NULL
);
freeArray
(
env
,
srcImageP
,
src
,
sdata
,
NULL
,
NULL
,
NULL
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
...
@@ -1284,6 +1301,9 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
...
@@ -1284,6 +1301,9 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject this,
(
jbyte
*
)
table
[
j
],
(
jbyte
*
)
table
[
j
],
JNI_ABORT
);
JNI_ABORT
);
}
}
free
(
tbl
);
free
(
table
);
free
(
jtable
);
freeArray
(
env
,
srcImageP
,
src
,
sdata
,
NULL
,
NULL
,
NULL
);
freeArray
(
env
,
srcImageP
,
src
,
sdata
,
NULL
,
NULL
,
NULL
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
srcImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
awt_freeParsedImage
(
dstImageP
,
TRUE
);
...
@@ -1413,12 +1433,15 @@ Java_sun_awt_image_ImagingLib_lookupByteRaster(JNIEnv *env,
...
@@ -1413,12 +1433,15 @@ Java_sun_awt_image_ImagingLib_lookupByteRaster(JNIEnv *env,
/* Parse the source raster - reject custom images */
/* Parse the source raster - reject custom images */
if
((
status
=
awt_parseRaster
(
env
,
jsrc
,
srcRasterP
))
<=
0
)
{
if
((
status
=
awt_parseRaster
(
env
,
jsrc
,
srcRasterP
))
<=
0
)
{
free
(
srcRasterP
);
free
(
dstRasterP
);
return
0
;
return
0
;
}
}
/* Parse the destination image - reject custom images */
/* Parse the destination image - reject custom images */
if
((
status
=
awt_parseRaster
(
env
,
jdst
,
dstRasterP
))
<=
0
)
{
if
((
status
=
awt_parseRaster
(
env
,
jdst
,
dstRasterP
))
<=
0
)
{
awt_freeParsedRaster
(
srcRasterP
,
TRUE
);
awt_freeParsedRaster
(
srcRasterP
,
TRUE
);
free
(
dstRasterP
);
return
0
;
return
0
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录