Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
316fb26f
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
316fb26f
编写于
8月 18, 2017
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #9397 from alalek:memcpy_null_guard
上级
a8355170
71e18898
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
15 deletion
+16
-15
modules/core/include/opencv2/core/cvstd.hpp
modules/core/include/opencv2/core/cvstd.hpp
+10
-9
modules/core/include/opencv2/core/cvstd.inl.hpp
modules/core/include/opencv2/core/cvstd.inl.hpp
+6
-6
未找到文件。
modules/core/include/opencv2/core/cvstd.hpp
浏览文件 @
316fb26f
...
...
@@ -598,6 +598,7 @@ String::String(const char* s)
{
if
(
!
s
)
return
;
size_t
len
=
strlen
(
s
);
if
(
!
len
)
return
;
memcpy
(
allocate
(
len
),
s
,
len
);
}
...
...
@@ -665,7 +666,7 @@ String& String::operator=(const char* s)
deallocate
();
if
(
!
s
)
return
*
this
;
size_t
len
=
strlen
(
s
);
memcpy
(
allocate
(
len
),
s
,
len
);
if
(
len
)
memcpy
(
allocate
(
len
),
s
,
len
);
return
*
this
;
}
...
...
@@ -959,8 +960,8 @@ String operator + (const String& lhs, const String& rhs)
{
String
s
;
s
.
allocate
(
lhs
.
len_
+
rhs
.
len_
);
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
memcpy
(
s
.
cstr_
+
lhs
.
len_
,
rhs
.
cstr_
,
rhs
.
len_
);
if
(
lhs
.
len_
)
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
if
(
rhs
.
len_
)
memcpy
(
s
.
cstr_
+
lhs
.
len_
,
rhs
.
cstr_
,
rhs
.
len_
);
return
s
;
}
...
...
@@ -970,8 +971,8 @@ String operator + (const String& lhs, const char* rhs)
String
s
;
size_t
rhslen
=
strlen
(
rhs
);
s
.
allocate
(
lhs
.
len_
+
rhslen
);
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
memcpy
(
s
.
cstr_
+
lhs
.
len_
,
rhs
,
rhslen
);
if
(
lhs
.
len_
)
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
if
(
rhslen
)
memcpy
(
s
.
cstr_
+
lhs
.
len_
,
rhs
,
rhslen
);
return
s
;
}
...
...
@@ -981,8 +982,8 @@ String operator + (const char* lhs, const String& rhs)
String
s
;
size_t
lhslen
=
strlen
(
lhs
);
s
.
allocate
(
lhslen
+
rhs
.
len_
);
memcpy
(
s
.
cstr_
,
lhs
,
lhslen
);
memcpy
(
s
.
cstr_
+
lhslen
,
rhs
.
cstr_
,
rhs
.
len_
);
if
(
lhslen
)
memcpy
(
s
.
cstr_
,
lhs
,
lhslen
);
if
(
rhs
.
len_
)
memcpy
(
s
.
cstr_
+
lhslen
,
rhs
.
cstr_
,
rhs
.
len_
);
return
s
;
}
...
...
@@ -991,7 +992,7 @@ String operator + (const String& lhs, char rhs)
{
String
s
;
s
.
allocate
(
lhs
.
len_
+
1
);
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
if
(
lhs
.
len_
)
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
s
.
cstr_
[
lhs
.
len_
]
=
rhs
;
return
s
;
}
...
...
@@ -1002,7 +1003,7 @@ String operator + (char lhs, const String& rhs)
String
s
;
s
.
allocate
(
rhs
.
len_
+
1
);
s
.
cstr_
[
0
]
=
lhs
;
memcpy
(
s
.
cstr_
+
1
,
rhs
.
cstr_
,
rhs
.
len_
);
if
(
rhs
.
len_
)
memcpy
(
s
.
cstr_
+
1
,
rhs
.
cstr_
,
rhs
.
len_
);
return
s
;
}
...
...
modules/core/include/opencv2/core/cvstd.inl.hpp
浏览文件 @
316fb26f
...
...
@@ -80,7 +80,7 @@ String::String(const std::string& str)
if
(
!
str
.
empty
())
{
size_t
len
=
str
.
size
();
memcpy
(
allocate
(
len
),
str
.
c_str
(),
len
);
if
(
len
)
memcpy
(
allocate
(
len
),
str
.
c_str
(),
len
);
}
}
...
...
@@ -102,7 +102,7 @@ String& String::operator = (const std::string& str)
if
(
!
str
.
empty
())
{
size_t
len
=
str
.
size
();
memcpy
(
allocate
(
len
),
str
.
c_str
(),
len
);
if
(
len
)
memcpy
(
allocate
(
len
),
str
.
c_str
(),
len
);
}
return
*
this
;
}
...
...
@@ -126,8 +126,8 @@ String operator + (const String& lhs, const std::string& rhs)
String
s
;
size_t
rhslen
=
rhs
.
size
();
s
.
allocate
(
lhs
.
len_
+
rhslen
);
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
memcpy
(
s
.
cstr_
+
lhs
.
len_
,
rhs
.
c_str
(),
rhslen
);
if
(
lhs
.
len_
)
memcpy
(
s
.
cstr_
,
lhs
.
cstr_
,
lhs
.
len_
);
if
(
rhslen
)
memcpy
(
s
.
cstr_
+
lhs
.
len_
,
rhs
.
c_str
(),
rhslen
);
return
s
;
}
...
...
@@ -137,8 +137,8 @@ String operator + (const std::string& lhs, const String& rhs)
String
s
;
size_t
lhslen
=
lhs
.
size
();
s
.
allocate
(
lhslen
+
rhs
.
len_
);
memcpy
(
s
.
cstr_
,
lhs
.
c_str
(),
lhslen
);
memcpy
(
s
.
cstr_
+
lhslen
,
rhs
.
cstr_
,
rhs
.
len_
);
if
(
lhslen
)
memcpy
(
s
.
cstr_
,
lhs
.
c_str
(),
lhslen
);
if
(
rhs
.
len_
)
memcpy
(
s
.
cstr_
+
lhslen
,
rhs
.
cstr_
,
rhs
.
len_
);
return
s
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录