Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
6d3d53b1
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6d3d53b1
编写于
11月 08, 2017
作者:
P
prr
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8185739: Memory leak in BitmapUtil::BitmapToRgn
Reviewed-by: serb, psadhukhan
上级
9116b7fb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
1 deletion
+16
-1
src/java.desktop/windows/native/libawt/windows/awt_BitmapUtil.cpp
....desktop/windows/native/libawt/windows/awt_BitmapUtil.cpp
+16
-1
未找到文件。
src/java.desktop/windows/native/libawt/windows/awt_BitmapUtil.cpp
浏览文件 @
6d3d53b1
...
...
@@ -246,17 +246,28 @@ HRGN BitmapUtil::BitmapToRgn(HBITMAP hBitmap)
UINT
height
=
abs
(
bi
.
bmiHeader
.
biHeight
);
BYTE
*
buf
=
(
BYTE
*
)
safe_Malloc
(
bi
.
bmiHeader
.
biSizeImage
);
if
(
!
buf
)
{
::
DeleteDC
(
hdc
);
return
NULL
;
}
bi
.
bmiHeader
.
biHeight
=
-
(
INT
)
height
;
::
GetDIBits
(
hdc
,
hBitmap
,
0
,
height
,
buf
,
reinterpret_cast
<
BITMAPINFO
*>
(
&
bi
),
DIB_RGB_COLORS
);
/* reserving memory for the worst case */
if
(
!
IS_SAFE_SIZE_MUL
(
width
/
2
+
1
,
height
))
{
throw
std
::
bad_alloc
();
::
DeleteDC
(
hdc
);
free
(
buf
);
return
NULL
;
}
RGNDATA
*
pRgnData
=
(
RGNDATA
*
)
SAFE_SIZE_STRUCT_ALLOC
(
safe_Malloc
,
sizeof
(
RGNDATAHEADER
),
sizeof
(
RECT
),
(
width
/
2
+
1
)
*
height
);
if
(
!
pRgnData
)
{
::
DeleteDC
(
hdc
);
free
(
buf
);
return
NULL
;
}
RGNDATAHEADER
*
pRgnHdr
=
(
RGNDATAHEADER
*
)
pRgnData
;
pRgnHdr
->
dwSize
=
sizeof
(
RGNDATAHEADER
);
pRgnHdr
->
iType
=
RDH_RECTANGLES
;
...
...
@@ -309,6 +320,10 @@ HBITMAP BitmapUtil::BlendCopy(HBITMAP hSrcBitmap, COLORREF blendColor,
UINT
height
=
abs
(
bi
.
bmiHeader
.
biHeight
);
BYTE
*
buf
=
(
BYTE
*
)
safe_Malloc
(
bi
.
bmiHeader
.
biSizeImage
);
if
(
!
buf
)
{
::
DeleteDC
(
hdc
);
return
NULL
;
}
bi
.
bmiHeader
.
biHeight
=
-
(
INT
)
height
;
::
GetDIBits
(
hdc
,
hSrcBitmap
,
0
,
height
,
buf
,
reinterpret_cast
<
BITMAPINFO
*>
(
&
bi
),
DIB_RGB_COLORS
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录