Skip to content

Commit bf47a24

Browse files
committed
---
yaml --- r: 46311 b: refs/heads/auto c: 5c75f21 h: refs/heads/master i: 46309: 5dc293b 46307: 1608a9e 46303: d73fc8c v: v3
1 parent 0fbe1fe commit bf47a24

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: 59bb9c2f1a85007c4b399767ecb98885e349aa2e
17+
refs/heads/auto: 5c75f210ba6e450fb1603b50ca0a4805f13173d7

branches/auto/src/etc/vim/syntax/rust.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ syn match rustAssert "\<assert\(\w\)*"
1414
syn keyword rustKeyword as break
1515
syn keyword rustKeyword copy do drop else extern
1616
syn keyword rustKeyword for if impl let log
17-
syn keyword rustKeyword loop match mod move once priv pub pure
17+
syn keyword rustKeyword loop match mod once priv pub pure
1818
syn keyword rustKeyword ref return static
1919
syn keyword rustKeyword unsafe use while
2020
" FIXME: Scoped impl's name is also fallen in this category

branches/auto/src/rt/rust_util.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ extern struct type_desc str_body_tydesc;
1919

2020
// Inline fn used regularly elsewhere.
2121

22+
static inline size_t
23+
next_power_of_two(size_t s)
24+
{
25+
size_t tmp = s - 1;
26+
tmp |= tmp >> 1;
27+
tmp |= tmp >> 2;
28+
tmp |= tmp >> 4;
29+
tmp |= tmp >> 8;
30+
tmp |= tmp >> 16;
31+
#ifdef _LP64
32+
tmp |= tmp >> 32;
33+
#endif
34+
return tmp + 1;
35+
}
36+
2237
// Rounds |size| to the nearest |alignment|. Invariant: |alignment| is a power
2338
// of two.
2439
template<typename T>
@@ -76,6 +91,10 @@ inline void reserve_vec_exact(rust_task* task, rust_vec_box** vpp,
7691
}
7792
}
7893

94+
inline void reserve_vec(rust_task* task, rust_vec_box** vpp, size_t size) {
95+
reserve_vec_exact(task, vpp, next_power_of_two(size));
96+
}
97+
7998
typedef rust_vec_box rust_str;
8099

81100
inline rust_str *

0 commit comments

Comments
 (0)