Remove almost all uses of Heap::new.

This commit is contained in:
Josh Matthews 2017-05-26 10:47:09 -04:00
parent f5eb8445b0
commit 77b3e911c1
4 changed files with 17 additions and 9 deletions

View file

@ -6699,7 +6699,7 @@ class CallbackMember(CGNativeMember):
replacements["argCount"] = self.argCountStr replacements["argCount"] = self.argCountStr
replacements["argvDecl"] = string.Template( replacements["argvDecl"] = string.Template(
"rooted_vec!(let mut argv);\n" "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) ).substitute(replacements)
else: else:
# Avoid weird 0-sized arrays # Avoid weird 0-sized arrays
@ -6774,7 +6774,11 @@ class CallbackMember(CGNativeMember):
conversion = wrapForType( conversion = wrapForType(
"argv_root.handle_mut()", result=argval, "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());") pre="rooted!(in(cx) let mut argv_root = UndefinedValue());")
if arg.variadic: if arg.variadic:
conversion = string.Template( conversion = string.Template(
@ -6790,7 +6794,7 @@ class CallbackMember(CGNativeMember):
" // This is our current trailing argument; reduce argc\n" " // This is our current trailing argument; reduce argc\n"
" argc -= 1;\n" " argc -= 1;\n"
"} else {\n" "} else {\n"
" argv[%d] = Heap::new(UndefinedValue());\n" " argv[%d] = Heap::default();\n"
"}" % (i + 1, i)) "}" % (i + 1, i))
return conversion return conversion

View file

@ -132,7 +132,10 @@ fn key_and_value_return(cx: *mut JSContext,
value: HandleValue) -> Fallible<()> { value: HandleValue) -> Fallible<()> {
let mut dict = unsafe { IterableKeyAndValueResult::empty(cx) }; let mut dict = unsafe { IterableKeyAndValueResult::empty(cx) };
dict.done = false; 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()); rooted!(in(cx) let mut dict_value = UndefinedValue());
unsafe { unsafe {
dict.to_jsval(cx, dict_value.handle_mut()); dict.to_jsval(cx, dict_value.handle_mut());

View file

@ -339,8 +339,9 @@ impl FileReaderMethods for FileReader {
FileReaderResult::String(ref string) => FileReaderResult::String(ref string) =>
StringOrObject::String(string.clone()), StringOrObject::String(string.clone()),
FileReaderResult::ArrayBuffer(ref arr_buffer) => { FileReaderResult::ArrayBuffer(ref arr_buffer) => {
StringOrObject::Object(RootedTraceableBox::new( let result = RootedTraceableBox::new(Heap::default());
Heap::new((*arr_buffer.ptr.get()).to_object()))) result.set((*arr_buffer.ptr.get()).to_object());
StringOrObject::Object(result)
} }
}) })
} }

View file

@ -340,12 +340,12 @@ impl TestBindingMethods for TestBinding {
fn ReceiveNullableSequence(&self) -> Option<Vec<i32>> { Some(vec![1]) } fn ReceiveNullableSequence(&self) -> Option<Vec<i32>> { Some(vec![1]) }
fn ReceiveTestDictionaryWithSuccessOnKeyword(&self) -> RootedTraceableBox<TestDictionary> { fn ReceiveTestDictionaryWithSuccessOnKeyword(&self) -> RootedTraceableBox<TestDictionary> {
RootedTraceableBox::new(TestDictionary { RootedTraceableBox::new(TestDictionary {
anyValue: Heap::new(NullValue()), anyValue: Heap::default(),
booleanValue: None, booleanValue: None,
byteValue: None, byteValue: None,
dict: RootedTraceableBox::new(TestDictionaryDefaults { dict: RootedTraceableBox::new(TestDictionaryDefaults {
UnrestrictedDoubleValue: 0.0, UnrestrictedDoubleValue: 0.0,
anyValue: Heap::new(NullValue()), anyValue: Heap::default(),
booleanValue: false, booleanValue: false,
bytestringValue: ByteString::new(vec![]), bytestringValue: ByteString::new(vec![]),
byteValue: 0, byteValue: 0,
@ -361,7 +361,7 @@ impl TestBindingMethods for TestBinding {
nullableFloatValue: None, nullableFloatValue: None,
nullableLongLongValue: None, nullableLongLongValue: None,
nullableLongValue: None, nullableLongValue: None,
nullableObjectValue: Heap::new(ptr::null_mut()), nullableObjectValue: Heap::default(),
nullableOctetValue: None, nullableOctetValue: None,
nullableShortValue: None, nullableShortValue: None,
nullableStringValue: None, nullableStringValue: None,