Commit Graph

11 Commits

Author SHA1 Message Date
Josh Matthews
27d4b6b731 servo: Merge #17056 - Make dictionaries and unions containing GC values safer (from jdm:heapdict); r=emilio
Problems:
* the Heap::new constructor is memory-unsafe with any value other than Undefined/Null
* this means that moving dictionaries containing Heap values (ie. any/object) is memory-unsafe
* unions containing GC pointers are similarly unsafe

Solutions:
- dictionaries containing GC pointers are now wrapped in RootedTraceableBox (even inside other dictionaries)
- instead of using Heap::new, dictionaries containing GC pointers are now initialized to a default value (by deriving Default) and mutated one field at a time
- dictionaries containing GC pointers are marked #[must_root]
- FromJSVal for dictionaries containing GC pointers now returns RootedTraceableBox<Dictionary>
- unions wrap their variants that require rooting in RootedTraceableBox

Rather than attempting to derive Default for all dictionaries, we only do so for the dictionaries that require it. Because some dictionaries that require it inherit from dictionaries that do not, we need to write manual implementations for those parent dictionaries. This is a better option than having to figure out a default value for types like `Root<T>`, which would be required for deriving Default for all dictionaries.

I would still like to come up with an automated test for this, but I figured I would get eyes on this first.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #16952
- [ ] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 532dee36c10b7dd5d33e560b55cf65c7243ef1d3
2017-09-25 16:07:47 -05:00
Clément DAVID
a6c6efb7e6 servo: Merge #18179 - Automatically verify that derive() lists are alphabetically ordered #… (from davidcl:master); r=jdm
<!-- Please describe your changes on the following line: -->
Automatically verify that derive() lists are alphabetically ordered #18172

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #18172 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 474369618965569407d127b1e8c481e757cc59d3
2017-08-23 17:18:31 -05:00
Anthony Ramine
eeebb7b92e servo: Merge #14028 - Update Rust to 1.14.0-nightly (7c69b0d5a 2016-11-01) (from servo:rustup); r=nox,SimonSapin
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: c6e15f8ef244a0f3859489ca7f1c7bcc80181468
2016-11-02 21:49:08 -05:00
Ms2ger
d55ddb7e72 servo: Merge #10750 - Use num's constituent crates (from servo:num); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 89b276c889ce76f8fe43c22779835af138472dac
2016-04-20 20:10:24 +05:00
Ms2ger
49d6b5042b servo: Merge #8569 - Rustfmt some of script (from Ms2ger:fmt-script); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: 7a87312121a69b590b364f9b5095f3145554e24b
2015-11-18 15:14:30 +05:00
Ms2ger
622b9e9b6f servo: Merge #8248 - Remove the Zeroable definition for Finite<T> (from Ms2ger:finite-zero); r=jdm
I have no idea why it was added, and it appears to be unused.

Source-Repo: https://github.com/servo/servo
Source-Revision: 851e7098c93a354fdf04808e7935f1bb3721e82b
2015-10-30 06:51:57 +05:00
Matt Brubeck
62a3d94aaf servo: Merge #7204 - Very basic touch events and touch scrolling (from mbrubeck:touchevent); r=jdm
This implements just enough of [Touch Events](http://w3c.github.io/touch-events/) to enable scrolling on Android without regressing basic single-touch interaction like clicking on links.

Dragging a page will scroll it, unless the page calls `preventDefault` on the "touchstart" event.

Does **not** yet support pinch zooming or other multi-touch gestures or events.

Includes a `-Z convert-mouse-to-touch` command line flag for testing on non-touch platforms.  This is also enabled by default on Android because Glutin currently translates touch input to mouse events on Android.

Source-Repo: https://github.com/servo/servo
Source-Revision: dcd207f9bf15c9ecf5d043385ba93277e69201f6
2015-10-22 15:54:01 -06:00
erneyja
21488105b6 servo: Merge #7468 - Making test-tidy check that = have space after them (from JoshTheGoldfish:Issue7460); r=jdm
For issue #7460. Need to ensure compatibility with #7390.

Source-Repo: https://github.com/servo/servo
Source-Revision: 15de679f115f06a8ce33625d77e820b049730d4b
2015-09-01 08:33:02 -06:00
David Winslow
8d2daacb18 servo: Merge #6529 - Refactor #[jstraceable] to #[derive(JSTraceable)] (from dwins:master); r=Manishearth
fixes #6524.  I had to make an additional change not mentioned in the ticket - adding the `#[feature]` to enable deriving custom traits but I assume that's expected at this time.

Source-Repo: https://github.com/servo/servo
Source-Revision: bbb39082e0f640400546d2084a450a8675820a82
2015-07-01 18:27:40 -06:00
Simon Sapin
b72bb5e7d5 servo: Merge #5935 - Upgrade Rust (from servo:rustup_2015-04-25); r=Ms2ger
r? everybody

Source-Repo: https://github.com/servo/servo
Source-Revision: 49aed6555dbc008c1a378c5cbb303f5467232b6b
2015-05-05 09:11:30 -05:00
Tetsuharu OHZEKI
4aeeaa02d7 servo: Merge #5346 - Add bindings support for unrestricted float values (from saneyuki:binding); r=jdm
- Fix #707
- Take over from #5106

Source-Repo: https://github.com/servo/servo
Source-Revision: e77c4e2d76104855c42d1eee09caf36b61acccad
2015-03-25 01:09:47 -06:00