Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Turbo码先生
redis
提交
1596d6a6
R
redis
项目概览
Turbo码先生
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1596d6a6
编写于
1月 16, 2012
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Obsolete SDS_ABORT_ON_OOM removed from sds.c
上级
bd068b15
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
52 deletion
+3
-52
src/sds.c
src/sds.c
+3
-52
未找到文件。
src/sds.c
浏览文件 @
1596d6a6
...
...
@@ -26,16 +26,8 @@
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* History:
*
* - 22 March 2011: History section created on top of sds.c
* - 22 March 2011: Fixed a problem with "\xab" escapes convertion in
* function sdssplitargs().
*/
#define SDS_ABORT_ON_OOM
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
...
...
@@ -44,11 +36,6 @@
#include "sds.h"
#include "zmalloc.h"
static
void
sdsOomAbort
(
void
)
{
fprintf
(
stderr
,
"SDS: Out Of Memory (SDS_ABORT_ON_OOM defined)
\n
"
);
abort
();
}
sds
sdsnewlen
(
const
void
*
init
,
size_t
initlen
)
{
struct
sdshdr
*
sh
;
...
...
@@ -57,11 +44,7 @@ sds sdsnewlen(const void *init, size_t initlen) {
}
else
{
sh
=
zcalloc
(
sizeof
(
struct
sdshdr
)
+
initlen
+
1
);
}
#ifdef SDS_ABORT_ON_OOM
if
(
sh
==
NULL
)
sdsOomAbort
();
#else
if
(
sh
==
NULL
)
return
NULL
;
#endif
sh
->
len
=
initlen
;
sh
->
free
=
0
;
if
(
initlen
&&
init
)
...
...
@@ -122,11 +105,7 @@ sds sdsMakeRoomFor(sds s, size_t addlen) {
else
newlen
+=
SDS_MAX_PREALLOC
;
newsh
=
zrealloc
(
sh
,
sizeof
(
struct
sdshdr
)
+
newlen
+
1
);
#ifdef SDS_ABORT_ON_OOM
if
(
newsh
==
NULL
)
sdsOomAbort
();
#else
if
(
newsh
==
NULL
)
return
NULL
;
#endif
newsh
->
free
=
newlen
-
len
;
return
newsh
->
buf
;
...
...
@@ -232,11 +211,7 @@ sds sdscatvprintf(sds s, const char *fmt, va_list ap) {
while
(
1
)
{
buf
=
zmalloc
(
buflen
);
#ifdef SDS_ABORT_ON_OOM
if
(
buf
==
NULL
)
sdsOomAbort
();
#else
if
(
buf
==
NULL
)
return
NULL
;
#endif
buf
[
buflen
-
2
]
=
'\0'
;
va_copy
(
cpy
,
ap
);
vsnprintf
(
buf
,
buflen
,
fmt
,
cpy
);
...
...
@@ -356,11 +331,7 @@ sds *sdssplitlen(char *s, int len, char *sep, int seplen, int *count) {
if
(
seplen
<
1
||
len
<
0
)
return
NULL
;
tokens
=
zmalloc
(
sizeof
(
sds
)
*
slots
);
#ifdef SDS_ABORT_ON_OOM
if
(
tokens
==
NULL
)
sdsOomAbort
();
#else
if
(
tokens
==
NULL
)
return
NULL
;
#endif
if
(
len
==
0
)
{
*
count
=
0
;
...
...
@@ -373,25 +344,13 @@ sds *sdssplitlen(char *s, int len, char *sep, int seplen, int *count) {
slots
*=
2
;
newtokens
=
zrealloc
(
tokens
,
sizeof
(
sds
)
*
slots
);
if
(
newtokens
==
NULL
)
{
#ifdef SDS_ABORT_ON_OOM
sdsOomAbort
();
#else
goto
cleanup
;
#endif
}
if
(
newtokens
==
NULL
)
goto
cleanup
;
tokens
=
newtokens
;
}
/* search the separator */
if
((
seplen
==
1
&&
*
(
s
+
j
)
==
sep
[
0
])
||
(
memcmp
(
s
+
j
,
sep
,
seplen
)
==
0
))
{
tokens
[
elements
]
=
sdsnewlen
(
s
+
start
,
j
-
start
);
if
(
tokens
[
elements
]
==
NULL
)
{
#ifdef SDS_ABORT_ON_OOM
sdsOomAbort
();
#else
goto
cleanup
;
#endif
}
if
(
tokens
[
elements
]
==
NULL
)
goto
cleanup
;
elements
++
;
start
=
j
+
seplen
;
j
=
j
+
seplen
-
1
;
/* skip the separator */
...
...
@@ -399,18 +358,11 @@ sds *sdssplitlen(char *s, int len, char *sep, int seplen, int *count) {
}
/* Add the final element. We are sure there is room in the tokens array. */
tokens
[
elements
]
=
sdsnewlen
(
s
+
start
,
len
-
start
);
if
(
tokens
[
elements
]
==
NULL
)
{
#ifdef SDS_ABORT_ON_OOM
sdsOomAbort
();
#else
goto
cleanup
;
#endif
}
if
(
tokens
[
elements
]
==
NULL
)
goto
cleanup
;
elements
++
;
*
count
=
elements
;
return
tokens
;
#ifndef SDS_ABORT_ON_OOM
cleanup:
{
int
i
;
...
...
@@ -419,7 +371,6 @@ cleanup:
*
count
=
0
;
return
NULL
;
}
#endif
}
void
sdsfreesplitres
(
sds
*
tokens
,
int
count
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录