aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2017-05-26 10:47:09 -0400
committerJosh Matthews <josh@joshmatthews.net>2017-09-25 16:11:49 -0400
commit77b3e911c11b2472efa4d7aea944f6aee56171c4 (patch)
tree047f2644b86ad2a9d68de87aba3fc326350aebd3
parentf5eb8445b05d892b432d769f5e036f786e223fd4 (diff)
downloadservo-77b3e911c11b2472efa4d7aea944f6aee56171c4.tar.gz
servo-77b3e911c11b2472efa4d7aea944f6aee56171c4.zip
Remove almost all uses of Heap::new.
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py10
-rw-r--r--components/script/dom/bindings/iterable.rs5
-rw-r--r--components/script/dom/filereader.rs5
-rw-r--r--components/script/dom/testbinding.rs6
4 files changed, 17 insertions, 9 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 05db89f3766..30d847da19f 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -6699,7 +6699,7 @@ class CallbackMember(CGNativeMember):
replacements["argCount"] = self.argCountStr
replacements["argvDecl"] = string.Template(
"rooted_vec!(let mut argv);\n"
- "argv.extend((0..${argCount}).map(|_| Heap::new(UndefinedValue())));\n"
+ "argv.extend((0..${argCount}).map(|_| Heap::default()));\n"
).substitute(replacements)
else:
# Avoid weird 0-sized arrays
@@ -6774,7 +6774,11 @@ class CallbackMember(CGNativeMember):
conversion = wrapForType(
"argv_root.handle_mut()", result=argval,
- successCode="argv[%s] = Heap::new(argv_root.get());" % jsvalIndex,
+ successCode=("{\n" +
+ "let arg = &mut argv[%s];\n" +
+ "*arg = Heap::default();\n" +
+ "arg.set(argv_root.get());\n" +
+ "}") % jsvalIndex,
pre="rooted!(in(cx) let mut argv_root = UndefinedValue());")
if arg.variadic:
conversion = string.Template(
@@ -6790,7 +6794,7 @@ class CallbackMember(CGNativeMember):
" // This is our current trailing argument; reduce argc\n"
" argc -= 1;\n"
"} else {\n"
- " argv[%d] = Heap::new(UndefinedValue());\n"
+ " argv[%d] = Heap::default();\n"
"}" % (i + 1, i))
return conversion
diff --git a/components/script/dom/bindings/iterable.rs b/components/script/dom/bindings/iterable.rs
index 03fac1cb27f..7926ff54173 100644
--- a/components/script/dom/bindings/iterable.rs
+++ b/components/script/dom/bindings/iterable.rs
@@ -132,7 +132,10 @@ fn key_and_value_return(cx: *mut JSContext,
value: HandleValue) -> Fallible<()> {
let mut dict = unsafe { IterableKeyAndValueResult::empty(cx) };
dict.done = false;
- dict.value = Some(vec![Heap::new(key.get()), Heap::new(value.get())]);
+ let values = vec![Heap::default(), Heap::default()];
+ values[0].set(key.get());
+ values[1].set(value.get());
+ dict.value = Some(values);
rooted!(in(cx) let mut dict_value = UndefinedValue());
unsafe {
dict.to_jsval(cx, dict_value.handle_mut());
diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs
index 370643bfa44..355cd85bcd4 100644
--- a/components/script/dom/filereader.rs
+++ b/components/script/dom/filereader.rs
@@ -339,8 +339,9 @@ impl FileReaderMethods for FileReader {
FileReaderResult::String(ref string) =>
StringOrObject::String(string.clone()),
FileReaderResult::ArrayBuffer(ref arr_buffer) => {
- StringOrObject::Object(RootedTraceableBox::new(
- Heap::new((*arr_buffer.ptr.get()).to_object())))
+ let result = RootedTraceableBox::new(Heap::default());
+ result.set((*arr_buffer.ptr.get()).to_object());
+ StringOrObject::Object(result)
}
})
}
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index 1803403f72f..22f8066d24a 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -340,12 +340,12 @@ impl TestBindingMethods for TestBinding {
fn ReceiveNullableSequence(&self) -> Option<Vec<i32>> { Some(vec![1]) }
fn ReceiveTestDictionaryWithSuccessOnKeyword(&self) -> RootedTraceableBox<TestDictionary> {
RootedTraceableBox::new(TestDictionary {
- anyValue: Heap::new(NullValue()),
+ anyValue: Heap::default(),
booleanValue: None,
byteValue: None,
dict: RootedTraceableBox::new(TestDictionaryDefaults {
UnrestrictedDoubleValue: 0.0,
- anyValue: Heap::new(NullValue()),
+ anyValue: Heap::default(),
booleanValue: false,
bytestringValue: ByteString::new(vec![]),
byteValue: 0,
@@ -361,7 +361,7 @@ impl TestBindingMethods for TestBinding {
nullableFloatValue: None,
nullableLongLongValue: None,
nullableLongValue: None,
- nullableObjectValue: Heap::new(ptr::null_mut()),
+ nullableObjectValue: Heap::default(),
nullableOctetValue: None,
nullableShortValue: None,
nullableStringValue: None,