Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Zlib
提交
f898bbed
T
Third Party Zlib
项目概览
OpenHarmony
/
Third Party Zlib
大约 1 年 前同步成功
通知
16
Star
112
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Zlib
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f898bbed
编写于
4月 25, 2014
作者:
M
Mark Adler
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix compress() to work on lengths more than a maximum unsigned.
上级
72c70060
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
24 addition
and
18 deletion
+24
-18
compress.c
compress.c
+24
-18
未找到文件。
compress.c
浏览文件 @
f898bbed
/* compress.c -- compress a memory buffer
* Copyright (C) 1995-2005
Jean-loup Gailly.
* Copyright (C) 1995-2005
, 2014 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
...
...
@@ -28,16 +28,11 @@ int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
{
z_stream
stream
;
int
err
;
const
uInt
max
=
-
1
;
uLong
left
;
stream
.
next_in
=
(
z_const
Bytef
*
)
source
;
stream
.
avail_in
=
(
uInt
)
sourceLen
;
#ifdef MAXSEG_64K
/* Check for source > 64K on 16-bit machine: */
if
((
uLong
)
stream
.
avail_in
!=
sourceLen
)
return
Z_BUF_ERROR
;
#endif
stream
.
next_out
=
dest
;
stream
.
avail_out
=
(
uInt
)
*
destLen
;
if
((
uLong
)
stream
.
avail_out
!=
*
destLen
)
return
Z_BUF_ERROR
;
left
=
*
destLen
;
*
destLen
=
0
;
stream
.
zalloc
=
(
alloc_func
)
0
;
stream
.
zfree
=
(
free_func
)
0
;
...
...
@@ -46,15 +41,26 @@ int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
err
=
deflateInit
(
&
stream
,
level
);
if
(
err
!=
Z_OK
)
return
err
;
err
=
deflate
(
&
stream
,
Z_FINISH
);
if
(
err
!=
Z_STREAM_END
)
{
deflateEnd
(
&
stream
);
return
err
==
Z_OK
?
Z_BUF_ERROR
:
err
;
stream
.
next_out
=
dest
;
stream
.
avail_out
=
0
;
stream
.
next_in
=
(
z_const
Bytef
*
)
source
;
stream
.
avail_in
=
0
;
do
{
if
(
stream
.
avail_out
==
0
)
{
stream
.
avail_out
=
left
>
(
uLong
)
max
?
max
:
(
uInt
)
left
;
left
-=
stream
.
avail_out
;
}
*
destLen
=
stream
.
total_out
;
if
(
stream
.
avail_in
==
0
)
{
stream
.
avail_in
=
sourceLen
>
(
uLong
)
max
?
max
:
(
uInt
)
sourceLen
;
sourceLen
-=
stream
.
avail_in
;
}
err
=
deflate
(
&
stream
,
sourceLen
?
Z_NO_FLUSH
:
Z_FINISH
);
}
while
(
err
==
Z_OK
);
err
=
deflateEnd
(
&
stream
);
return
err
;
*
destLen
=
stream
.
total_out
;
deflateEnd
(
&
stream
);
return
err
==
Z_STREAM_END
?
Z_OK
:
err
;
}
/* ===========================================================================
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录