Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
b72c4373
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,发现更多精彩内容 >>
提交
b72c4373
编写于
8月 22, 2013
作者:
B
Brian Anderson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
rt: Remove old precise GC code
上级
c17447f8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
0 addition
and
127 deletion
+0
-127
mk/rt.mk
mk/rt.mk
+0
-1
src/libstd/rt/mod.rs
src/libstd/rt/mod.rs
+0
-3
src/rt/rust_gc_metadata.cpp
src/rt/rust_gc_metadata.cpp
+0
-95
src/rt/rust_gc_metadata.h
src/rt/rust_gc_metadata.h
+0
-26
src/rt/rustrt.def.in
src/rt/rustrt.def.in
+0
-2
未找到文件。
mk/rt.mk
浏览文件 @
b72c4373
...
...
@@ -71,7 +71,6 @@ RUNTIME_CXXS_$(1)_$(2) := \
rt/rust_upcall.cpp
\
rt/rust_uv.cpp
\
rt/rust_crate_map.cpp
\
rt/rust_gc_metadata.cpp
\
rt/rust_util.cpp
\
rt/rust_log.cpp
\
rt/isaac/randport.cpp
\
...
...
src/libstd/rt/mod.rs
浏览文件 @
b72c4373
...
...
@@ -224,10 +224,7 @@ pub fn init(argc: int, argv: **u8, crate_map: *u8) {
args
::
init
(
argc
,
argv
);
env
::
init
();
logging
::
init
(
crate_map
);
rust_update_gc_metadata
(
crate_map
);
}
externfn!
(
fn
rust_update_gc_metadata
(
crate_map
:
*
u8
));
}
/// One-time runtime cleanup.
...
...
src/rt/rust_gc_metadata.cpp
已删除
100644 → 0
浏览文件 @
c17447f8
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#include "rust_gc_metadata.h"
#include "rust_crate_map.h"
#include "rust_globals.h"
#include <algorithm>
#include <vector>
struct
safe_point
{
uintptr_t
safe_point_loc
;
uintptr_t
safe_point_meta
;
uintptr_t
function_meta
;
};
struct
update_gc_entry_args
{
std
::
vector
<
safe_point
>
*
safe_points
;
};
static
void
update_gc_entry
(
const
mod_entry
*
entry
,
void
*
cookie
)
{
update_gc_entry_args
*
args
=
(
update_gc_entry_args
*
)
cookie
;
if
(
!
strcmp
(
entry
->
name
,
"_gc_module_metadata"
))
{
uintptr_t
*
next
=
(
uintptr_t
*
)
entry
->
state
;
uint32_t
num_safe_points
=
*
(
uint32_t
*
)
next
;
next
++
;
for
(
uint32_t
i
=
0
;
i
<
num_safe_points
;
i
++
)
{
safe_point
sp
=
{
next
[
0
],
next
[
1
],
next
[
2
]
};
next
+=
3
;
args
->
safe_points
->
push_back
(
sp
);
}
}
}
static
bool
cmp_safe_point
(
safe_point
a
,
safe_point
b
)
{
return
a
.
safe_point_loc
<
b
.
safe_point_loc
;
}
uintptr_t
*
global_safe_points
=
0
;
void
update_gc_metadata
(
const
void
*
map
)
{
std
::
vector
<
safe_point
>
safe_points
;
update_gc_entry_args
args
=
{
&
safe_points
};
// Extract list of safe points from each module.
iter_crate_map
((
const
cratemap
*
)
map
,
update_gc_entry
,
(
void
*
)
&
args
);
std
::
sort
(
safe_points
.
begin
(),
safe_points
.
end
(),
cmp_safe_point
);
// Serialize safe point list into format expected by runtime.
global_safe_points
=
(
uintptr_t
*
)
malloc
((
safe_points
.
size
()
*
3
+
1
)
*
sizeof
(
uintptr_t
));
if
(
!
global_safe_points
)
return
;
uintptr_t
*
next
=
global_safe_points
;
*
next
=
safe_points
.
size
();
next
++
;
for
(
uint32_t
i
=
0
;
i
<
safe_points
.
size
();
i
++
)
{
next
[
0
]
=
safe_points
[
i
].
safe_point_loc
;
next
[
1
]
=
safe_points
[
i
].
safe_point_meta
;
next
[
2
]
=
safe_points
[
i
].
function_meta
;
next
+=
3
;
}
}
extern
"C"
CDECL
void
*
rust_gc_metadata
()
{
return
(
void
*
)
global_safe_points
;
}
extern
"C"
CDECL
void
rust_update_gc_metadata
(
const
void
*
map
)
{
update_gc_metadata
(
map
);
}
//
// Local Variables:
// mode: C++
// fill-column: 78;
// indent-tabs-mode: nil
// c-basic-offset: 4
// buffer-file-coding-system: utf-8-unix
// End:
//
src/rt/rust_gc_metadata.h
已删除
100644 → 0
浏览文件 @
c17447f8
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#ifndef RUST_GC_METADATA_H
#define RUST_GC_METADATA_H
void
update_gc_metadata
(
const
void
*
map
);
//
// Local Variables:
// mode: C++
// fill-column: 78;
// indent-tabs-mode: nil
// c-basic-offset: 4
// buffer-file-coding-system: utf-8-unix
// End:
//
#endif
/* RUST_GC_METADATA_H */
src/rt/rustrt.def.in
浏览文件 @
b72c4373
...
...
@@ -130,8 +130,6 @@ rust_lock_little_lock
rust_unlock_little_lock
tdefl_compress_mem_to_heap
tinfl_decompress_mem_to_heap
rust_gc_metadata
rust_update_gc_metadata
rust_uv_ip4_port
rust_uv_ip6_port
rust_uv_tcp_getpeername
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录