Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
6277e3b2
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6277e3b2
编写于
11月 14, 2014
作者:
C
Colin Sherratt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update ring_buf.rs from fallout of #18827.
上级
4019118e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
5 addition
and
5 deletion
+5
-5
src/libcollections/ring_buf.rs
src/libcollections/ring_buf.rs
+5
-5
未找到文件。
src/libcollections/ring_buf.rs
浏览文件 @
6277e3b2
...
...
@@ -22,7 +22,7 @@
use
core
::
ptr
;
use
core
::
kinds
::
marker
;
use
core
::
mem
;
use
core
::
num
;
use
core
::
num
::{
Int
,
UnsignedInt
}
;
use
std
::
hash
::{
Writer
,
Hash
};
use
std
::
cmp
;
...
...
@@ -115,8 +115,8 @@ pub fn new() -> RingBuf<T> {
#[unstable
=
"matches collection reform specification, waiting for dust to settle"
]
pub
fn
with_capacity
(
n
:
uint
)
->
RingBuf
<
T
>
{
// +1 since the ringbuffer always leaves one space empty
let
cap
=
num
::
next_power_of_two
(
cmp
::
max
(
n
+
1
,
MINIMUM_CAPACITY
)
);
let
size
=
cap
.checked_mul
(
&
mem
::
size_of
::
<
T
>
())
let
cap
=
cmp
::
max
(
n
+
1
,
MINIMUM_CAPACITY
)
.next_power_of_two
(
);
let
size
=
cap
.checked_mul
(
mem
::
size_of
::
<
T
>
())
.expect
(
"capacity overflow"
);
let
ptr
=
if
mem
::
size_of
::
<
T
>
()
!=
0
{
...
...
@@ -280,12 +280,12 @@ pub fn reserve(&mut self, additional: uint) {
let
new_len
=
self
.len
()
+
additional
;
assert
!
(
new_len
+
1
>
self
.len
(),
"capacity overflow"
);
if
new_len
>
self
.capacity
()
{
let
count
=
num
::
next_power_of_two
(
new_len
+
1
);
let
count
=
(
new_len
+
1
)
.next_power_of_two
(
);
assert
!
(
count
>=
new_len
+
1
);
if
mem
::
size_of
::
<
T
>
()
!=
0
{
let
old
=
self
.cap
*
mem
::
size_of
::
<
T
>
();
let
new
=
count
.checked_mul
(
&
mem
::
size_of
::
<
T
>
())
let
new
=
count
.checked_mul
(
mem
::
size_of
::
<
T
>
())
.expect
(
"capacity overflow"
);
unsafe
{
self
.ptr
=
heap
::
reallocate
(
self
.ptr
as
*
mut
u8
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录