Skip to content

Commit 3567162

Browse files
author
blake2-ppc
committed
---
yaml --- r: 80577 b: refs/heads/auto c: 8d488f3 h: refs/heads/master i: 80575: fb5dcc2 v: v3
1 parent accff01 commit 3567162

File tree

21 files changed

+62
-2205
lines changed

21 files changed

+62
-2205
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1313
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1414
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1515
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16-
refs/heads/auto: 9ea295b7df26c954cbb4f5f3c0dc669b14a2389d
16+
refs/heads/auto: 8d488f38ed4fad414f9a693b6f4574dfa92b06fd
1717
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1818
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1919
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/Makefile.in

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ CFG_LIBRUSTC_$(1) :=$(call CFG_LIB_NAME_$(1),rustc)
214214
CFG_LIBSYNTAX_$(1) :=$(call CFG_LIB_NAME_$(1),syntax)
215215
CFG_LIBRUSTPKG_$(1) :=$(call CFG_LIB_NAME_$(1),rustpkg)
216216
CFG_LIBRUSTDOC_$(1) :=$(call CFG_LIB_NAME_$(1),rustdoc)
217-
CFG_LIBRUSTDOCNG_$(1) :=$(call CFG_LIB_NAME_$(1),rustdoc_ng)
218217
CFG_LIBRUSTI_$(1) :=$(call CFG_LIB_NAME_$(1),rusti)
219218
CFG_LIBRUST_$(1) :=$(call CFG_LIB_NAME_$(1),rust)
220219

@@ -224,7 +223,6 @@ LIBRUSTC_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustc)
224223
LIBSYNTAX_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),syntax)
225224
LIBRUSTPKG_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustpkg)
226225
LIBRUSTDOC_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustdoc)
227-
LIBRUSTDOCNG_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustdoc_ng)
228226
LIBRUSTI_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rusti)
229227
LIBRUST_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rust)
230228
EXTRALIB_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),extra)
@@ -233,7 +231,6 @@ LIBRUSTC_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustc)
233231
LIBSYNTAX_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),syntax)
234232
LIBRUSTPKG_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustpkg)
235233
LIBRUSTDOC_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustdoc)
236-
LIBRUSTDOCNG_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustdoc_ng)
237234
LIBRUSTI_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rusti)
238235
LIBRUST_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rust)
239236

@@ -446,7 +443,6 @@ CSREQ$(1)_T_$(2)_H_$(3) = \
446443
$$(HBIN$(1)_H_$(3))/rust$$(X_$(3)) \
447444
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTPKG_$(3)) \
448445
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTDOC_$(3)) \
449-
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTDOCNG_$(3)) \
450446
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTI_$(3)) \
451447
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUST_$(3)) \
452448
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) \
@@ -455,7 +451,6 @@ CSREQ$(1)_T_$(2)_H_$(3) = \
455451
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2)) \
456452
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTPKG_$(2)) \
457453
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(2)) \
458-
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOCNG_$(2)) \
459454
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTI_$(2)) \
460455
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUST_$(2))
461456

branches/auto/mk/clean.mk

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ clean$(1)_H_$(2):
7272
$(Q)rm -f $$(HBIN$(1)_H_$(2))/rust$(X_$(2))
7373
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTPKG_$(2))
7474
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTDOC_$(2))
75-
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTDOCNG_$(2))
7675
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUNTIME_$(2))
7776
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_STDLIB_$(2))
7877
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_EXTRALIB_$(2))
@@ -86,7 +85,6 @@ clean$(1)_H_$(2):
8685
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBSYNTAX_GLOB_$(2))
8786
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBRUSTPKG_GLOB_$(2))
8887
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBRUSTDOC_GLOB_$(2))
89-
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBRUSTDOCNG_GLOB_$(2))
9088
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBRUSTI_GLOB_$(2))
9189
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBRUST_GLOB_$(2))
9290
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUSTLLVM_$(2))
@@ -109,7 +107,6 @@ clean$(1)_T_$(2)_H_$(3):
109107
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rust$(X_$(2))
110108
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTPKG_$(2))
111109
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(2))
112-
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOCNG_$(2))
113110
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME_$(2))
114111
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2))
115112
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2))
@@ -123,7 +120,6 @@ clean$(1)_T_$(2)_H_$(3):
123120
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBSYNTAX_GLOB_$(2))
124121
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTPKG_GLOB_$(2))
125122
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTDOC_GLOB_$(2))
126-
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTDOCNG_GLOB_$(2))
127123
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTI_GLOB_$(2))
128124
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUST_GLOB_$(2))
129125
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM_$(2))

branches/auto/mk/install.mk

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ install-target-$(1)-host-$(2): $$(CSREQ$$(ISTAGE)_T_$(1)_H_$(2))
104104
$$(Q)$$(call INSTALL_LIB,$$(LIBSYNTAX_GLOB_$(1)))
105105
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTPKG_GLOB_$(1)))
106106
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTDOC_GLOB_$(1)))
107-
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTDOCNG_GLOB_$(1)))
108107
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTI_GLOB_$(1)))
109108
$$(Q)$$(call INSTALL_LIB,$$(LIBRUST_GLOB_$(1)))
110109
$$(Q)$$(call INSTALL_LIB,libmorestack.a)
@@ -150,7 +149,6 @@ install-host: $(CSREQ$(ISTAGE)_T_$(CFG_BUILD_TRIPLE)_H_$(CFG_BUILD_TRIPLE))
150149
$(Q)$(call INSTALL_LIB,$(LIBRUST_GLOB_$(CFG_BUILD_TRIPLE)))
151150
$(Q)$(call INSTALL_LIB,$(LIBRUSTPKG_GLOB_$(CFG_BUILD_TRIPLE)))
152151
$(Q)$(call INSTALL_LIB,$(LIBRUSTDOC_GLOB_$(CFG_BUILD_TRIPLE)))
153-
$(Q)$(call INSTALL_LIB,$(LIBRUSTDOCNG_GLOB_$(CFG_BUILD_TRIPLE)))
154152
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUNTIME_$(CFG_BUILD_TRIPLE)))
155153
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUSTLLVM_$(CFG_BUILD_TRIPLE)))
156154
$(Q)$(call INSTALL,$(S)/man, $(PREFIX_ROOT)/share/man/man1,rust.1)

branches/auto/mk/rt.mk

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,15 @@ else ifeq ($(OSTYPE_$(1)), apple-darwin)
102102
LIBUV_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/libuv/libuv.a
103103
JEMALLOC_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/jemalloc/lib/libjemalloc_pic.a
104104
else ifeq ($(OSTYPE_$(1)), unknown-freebsd)
105-
LIBUV_OSTYPE_$(1)_$(2) := freebsd
105+
LIBUV_OSTYPE_$(1)_$(2) := unix/freebsd
106106
LIBUV_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/libuv/libuv.a
107107
JEMALLOC_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/jemalloc/lib/libjemalloc_pic.a
108108
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
109-
LIBUV_OSTYPE_$(1)_$(2) := android
109+
LIBUV_OSTYPE_$(1)_$(2) := unix/android
110110
LIBUV_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/libuv/libuv.a
111111
JEMALLOC_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/jemalloc/lib/libjemalloc_pic.a
112112
else
113-
LIBUV_OSTYPE_$(1)_$(2) := linux
113+
LIBUV_OSTYPE_$(1)_$(2) := unix/linux
114114
LIBUV_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/libuv/libuv.a
115115
JEMALLOC_LIB_$(1)_$(2) := $$(RT_BUILD_DIR_$(1)_$(2))/jemalloc/lib/libjemalloc_pic.a
116116
endif
@@ -178,7 +178,6 @@ export PYTHONPATH := $(PYTHONPATH):$$(S)src/gyp/pylib
178178
$$(LIBUV_MAKEFILE_$(1)_$(2)): $$(LIBUV_DEPS)
179179
(cd $(S)src/libuv/ && \
180180
$$(CFG_PYTHON) ./gyp_uv -f make -Dtarget_arch=$$(LIBUV_ARCH_$(1)) -D ninja \
181-
-DOS=$$(LIBUV_OSTYPE_$(1)_$(2)) \
182181
-Goutput_dir=$$(@D) --generator-output $$(@D))
183182

184183
# XXX: Shouldn't need platform-specific conditions here

branches/auto/mk/tools.mk

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@ RUSTPKG_INPUTS := $(wildcard $(S)src/librustpkg/*.rs)
2323
RUSTDOC_LIB := $(S)src/librustdoc/rustdoc.rs
2424
RUSTDOC_INPUTS := $(wildcard $(S)src/librustdoc/*.rs)
2525

26-
# rustdoc_ng, the next generation documentation tool
27-
28-
RUSTDOCNG_LIB := $(S)src/rustdoc_ng/lib.rs
29-
RUSTDOCNG_INPUTS := $(wildcard $(S)src/rustdoc_ng/*.rs)
30-
3126
# Rusti, the JIT REPL
3227
RUSTI_LIB := $(S)src/librusti/rusti.rs
3328
RUSTI_INPUTS := $(wildcard $(S)src/librusti/*.rs)
@@ -83,24 +78,6 @@ $$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X_$(4)): \
8378
@$$(call E, compile_and_link: $$@)
8479
$$(STAGE$(1)_T_$(4)_H_$(3)) --cfg rustdoc -o $$@ $$<
8580

86-
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOCNG_$(4)): \
87-
$$(RUSTDOCNG_LIB) $$(RUSTDOCNG_INPUTS) \
88-
$$(SREQ$(1)_T_$(4)_H_$(3)) \
89-
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) \
90-
| $$(TLIB$(1)_T_$(4)_H_$(3))/
91-
@$$(call E, compile_and_link: $$@)
92-
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTDOCNG_GLOB_$(4)),$$(notdir $$@))
93-
$$(STAGE$(1)_T_$(4)_H_$(3)) --out-dir $$(@D) $$< && touch $$@
94-
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTDOCNG_GLOB_$(4)),$$(notdir $$@))
95-
96-
$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc_ng$$(X_$(4)): \
97-
$$(DRIVER_CRATE) \
98-
$$(TSREQ$(1)_T_$(4)_H_$(3)) \
99-
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOCNG_$(4)) \
100-
| $$(TBIN$(1)_T_$(4)_H_$(3))/
101-
@$$(call E, compile_and_link: $$@)
102-
$$(STAGE$(1)_T_$(4)_H_$(3)) --cfg rustdoc_ng -o $$@ $$<
103-
10481
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(4)): \
10582
$$(RUSTI_LIB) $$(RUSTI_INPUTS) \
10683
$$(SREQ$(1)_T_$(4)_H_$(3)) \
@@ -125,7 +102,6 @@ $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUST_$(4)): \
125102
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTPKG_$(4)) \
126103
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(4)) \
127104
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOC_$(4)) \
128-
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOCNG_$(4)) \
129105
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) \
130106
| $$(TLIB$(1)_T_$(4)_H_$(3))/
131107
@$$(call E, compile_and_link: $$@)
@@ -195,19 +171,6 @@ $$(HBIN$(2)_H_$(4))/rustdoc$$(X_$(4)): \
195171
@$$(call E, cp: $$@)
196172
$$(Q)cp $$< $$@
197173

198-
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTDOCNG_$(4)): \
199-
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOCNG_$(4)) \
200-
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \
201-
$$(HSREQ$(2)_H_$(4)) \
202-
| $$(HLIB$(2)_H_$(4))/
203-
@$$(call E, cp: $$@)
204-
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTDOCNG_GLOB_$(4)),$$(notdir $$@))
205-
$$(Q)cp $$< $$@
206-
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTDOCNG_GLOB_$(4)),$$(notdir $$@))
207-
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTDOCNG_GLOB_$(4)) \
208-
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTDOCNG_DSYM_GLOB_$(4))) \
209-
$$(HLIB$(2)_H_$(4))
210-
211174
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTI_$(4)): \
212175
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(4)) \
213176
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \

branches/auto/src/libextra/json.rs

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -135,21 +135,18 @@ impl serialize::Encoder for Encoder {
135135
_id: uint,
136136
cnt: uint,
137137
f: &fn(&mut Encoder)) {
138-
// enums are encoded as strings or objects
138+
// enums are encoded as strings or vectors:
139139
// Bunny => "Bunny"
140-
// Kangaroo(34,"William") => {"variant": "Kangaroo", "fields": [34,"William"]}
140+
// Kangaroo(34,"William") => ["Kangaroo",[34,"William"]]
141+
141142
if cnt == 0 {
142143
self.wr.write_str(escape_str(name));
143144
} else {
144-
self.wr.write_char('{');
145-
self.wr.write_str("\"variant\"");
146-
self.wr.write_char(':');
145+
self.wr.write_char('[');
147146
self.wr.write_str(escape_str(name));
148147
self.wr.write_char(',');
149-
self.wr.write_str("\"fields\"");
150-
self.wr.write_str(":[");
151148
f(self);
152-
self.wr.write_str("]}");
149+
self.wr.write_char(']');
153150
}
154151
}
155152

@@ -950,20 +947,14 @@ impl serialize::Decoder for Decoder {
950947
debug!("read_enum_variant(names=%?)", names);
951948
let name = match self.stack.pop() {
952949
String(s) => s,
953-
Object(o) => {
954-
let n = match o.find(&~"variant").expect("invalidly encoded json") {
955-
&String(ref s) => s.clone(),
956-
_ => fail!("invalidly encoded json"),
957-
};
958-
match o.find(&~"fields").expect("invalidly encoded json") {
959-
&List(ref l) => {
960-
for field in l.rev_iter() {
961-
self.stack.push(field.clone());
962-
}
963-
},
964-
_ => fail!("invalidly encoded json")
950+
List(list) => {
951+
for v in list.move_rev_iter() {
952+
self.stack.push(v);
953+
}
954+
match self.stack.pop() {
955+
String(s) => s,
956+
value => fail!("invalid variant name: %?", value),
965957
}
966-
n
967958
}
968959
ref json => fail!("invalid variant: %?", *json),
969960
};
@@ -1526,7 +1517,7 @@ mod tests {
15261517
let mut encoder = Encoder(wr);
15271518
animal.encode(&mut encoder);
15281519
},
1529-
~"{\"variant\":\"Frog\",\"fields\":[\"Henry\",349]}"
1520+
~"[\"Frog\",\"Henry\",349]"
15301521
);
15311522
assert_eq!(
15321523
do io::with_str_writer |wr| {
@@ -1930,14 +1921,14 @@ mod tests {
19301921
assert_eq!(value, Dog);
19311922

19321923
let mut decoder =
1933-
Decoder(from_str("{\"variant\":\"Frog\",\"fields\":[\"Henry\",349]}").unwrap());
1924+
Decoder(from_str("[\"Frog\",\"Henry\",349]").unwrap());
19341925
let value: Animal = Decodable::decode(&mut decoder);
19351926
assert_eq!(value, Frog(~"Henry", 349));
19361927
}
19371928
19381929
#[test]
19391930
fn test_decode_map() {
1940-
let s = ~"{\"a\": \"Dog\", \"b\": {\"variant\":\"Frog\",\"fields\":[\"Henry\", 349]}}";
1931+
let s = ~"{\"a\": \"Dog\", \"b\": [\"Frog\", \"Henry\", 349]}";
19411932
let mut decoder = Decoder(from_str(s).unwrap());
19421933
let mut map: TreeMap<~str, Animal> = Decodable::decode(&mut decoder);
19431934

branches/auto/src/libstd/c_str.rs

Lines changed: 3 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ use ops::Drop;
1515
use option::{Option, Some, None};
1616
use ptr::RawPtr;
1717
use ptr;
18-
use str;
1918
use str::StrSlice;
2019
use vec::{ImmutableVector, CopyableVector};
2120
use container::Container;
@@ -98,25 +97,15 @@ impl CString {
9897
/// # Failure
9998
///
10099
/// Fails if the CString is null.
101-
#[inline]
102100
pub fn as_bytes<'a>(&'a self) -> &'a [u8] {
101+
#[fixed_stack_segment]; #[inline(never)];
103102
if self.buf.is_null() { fail!("CString is null!"); }
104103
unsafe {
105-
let len = ptr::position(self.buf, |c| *c == 0);
104+
let len = libc::strlen(self.buf) as uint;
106105
cast::transmute((self.buf, len + 1))
107106
}
108107
}
109108

110-
/// Converts the CString into a `&str` without copying.
111-
/// Returns None if the CString is not UTF-8 or is null.
112-
#[inline]
113-
pub fn as_str<'a>(&'a self) -> Option<&'a str> {
114-
if self.buf.is_null() { return None; }
115-
let buf = self.as_bytes();
116-
let buf = buf.slice_to(buf.len()-1); // chop off the trailing NUL
117-
str::from_utf8_slice_opt(buf)
118-
}
119-
120109
/// Return a CString iterator.
121110
pub fn iter<'a>(&'a self) -> CStringIterator<'a> {
122111
CStringIterator {
@@ -249,7 +238,7 @@ mod tests {
249238
use option::{Some, None};
250239

251240
#[test]
252-
fn test_str_to_c_str() {
241+
fn test_to_c_str() {
253242
do "".to_c_str().with_ref |buf| {
254243
unsafe {
255244
assert_eq!(*ptr::offset(buf, 0), 0);
@@ -268,37 +257,6 @@ mod tests {
268257
}
269258
}
270259

271-
#[test]
272-
fn test_vec_to_c_str() {
273-
let b: &[u8] = [];
274-
do b.to_c_str().with_ref |buf| {
275-
unsafe {
276-
assert_eq!(*ptr::offset(buf, 0), 0);
277-
}
278-
}
279-
280-
do bytes!("hello").to_c_str().with_ref |buf| {
281-
unsafe {
282-
assert_eq!(*ptr::offset(buf, 0), 'h' as libc::c_char);
283-
assert_eq!(*ptr::offset(buf, 1), 'e' as libc::c_char);
284-
assert_eq!(*ptr::offset(buf, 2), 'l' as libc::c_char);
285-
assert_eq!(*ptr::offset(buf, 3), 'l' as libc::c_char);
286-
assert_eq!(*ptr::offset(buf, 4), 'o' as libc::c_char);
287-
assert_eq!(*ptr::offset(buf, 5), 0);
288-
}
289-
}
290-
291-
do bytes!("foo", 0xff).to_c_str().with_ref |buf| {
292-
unsafe {
293-
assert_eq!(*ptr::offset(buf, 0), 'f' as libc::c_char);
294-
assert_eq!(*ptr::offset(buf, 1), 'o' as libc::c_char);
295-
assert_eq!(*ptr::offset(buf, 2), 'o' as libc::c_char);
296-
assert_eq!(*ptr::offset(buf, 3), 0xff);
297-
assert_eq!(*ptr::offset(buf, 4), 0);
298-
}
299-
}
300-
}
301-
302260
#[test]
303261
fn test_is_null() {
304262
let c_str = unsafe { CString::new(ptr::null(), false) };
@@ -391,33 +349,4 @@ mod tests {
391349
}
392350
}
393351
}
394-
395-
#[test]
396-
fn test_as_bytes() {
397-
let c_str = "hello".to_c_str();
398-
assert_eq!(c_str.as_bytes(), bytes!("hello", 0));
399-
let c_str = "".to_c_str();
400-
assert_eq!(c_str.as_bytes(), bytes!(0));
401-
let c_str = bytes!("foo", 0xff).to_c_str();
402-
assert_eq!(c_str.as_bytes(), bytes!("foo", 0xff, 0));
403-
}
404-
405-
#[test]
406-
#[should_fail]
407-
fn test_as_bytes_fail() {
408-
let c_str = unsafe { CString::new(ptr::null(), false) };
409-
c_str.as_bytes();
410-
}
411-
412-
#[test]
413-
fn test_as_str() {
414-
let c_str = "hello".to_c_str();
415-
assert_eq!(c_str.as_str(), Some("hello"));
416-
let c_str = "".to_c_str();
417-
assert_eq!(c_str.as_str(), Some(""));
418-
let c_str = bytes!("foo", 0xff).to_c_str();
419-
assert_eq!(c_str.as_str(), None);
420-
let c_str = unsafe { CString::new(ptr::null(), false) };
421-
assert_eq!(c_str.as_str(), None);
422-
}
423352
}

0 commit comments

Comments
 (0)