Bobby Holley
54f2700ba6
Hoist exported wrapper functionality into a family of traits.
...
All the existing code still uses the concrete implementations, so this
shouldn't impact the generated code at all.
2015-11-18 17:23:29 -08:00
Ms2ger
5ec1cdea9b
Remove dead code from layout.
2015-11-18 15:00:58 +01:00
Ms2ger
ff0acccc06
Consolidate ProfilerMetadata and TimerMetadata.
...
There is no good reason to have the two types.
This also means that the result of LayoutTask::profiler_metadata no longer
borrows the LayoutTask, which I'll need later.
2015-11-09 09:03:50 +01:00
Glenn Watson
695b7491fe
Change overflow calculation to be calculated after compute_absolute_position.
...
Also include absolutely positioned elements in the overflow rect calculation.
Fixes #7797 .
2015-11-03 20:10:06 +10:00
Ms2ger
9f91984415
Use the passed-in reflow root rather than the one stored in the SharedLayoutContext.
2015-10-26 17:51:26 +01:00
Ms2ger
e6e514c89a
Rewrite ParallelPostorderDomTraversal::run_parallel to avoid some unnecessary conversions between LayoutNode and UnsafeLayoutNode.
2015-10-19 15:01:28 +02:00
Ms2ger
3597c463b5
Don't create a LayoutContext in ParallelPostorderDomTraversal::run_parallel.
2015-10-19 15:01:27 +02:00
Ravi Shankar
889eec364b
sorted the extern crate, mod & use declarations
2015-09-24 02:12:45 +05:30
Brandon Fairchild
de3547e401
Fix reported test-tidy errors for unmerged import blocks
...
This merges import blocks that were reported by tidy as unmerged.
2015-09-19 12:50:14 -04:00
Patrick Walton
99587cf105
layout: Allow the overflow area of the <body>
to be scrolled.
...
Fixes scrolling on Twitter.
2015-09-10 18:07:21 -07:00
Simon Sapin
21d69314d4
Don’t mark flow_ref::deref_mut as unsafe.
...
See discussion in https://github.com/servo/servo/pull/7237
2015-08-21 21:16:25 +02:00
Simon Sapin
649250130b
Replace FlowRef with Arc<Flow>, now that Arc supports DST.
...
… and WeakFlowRef with Weak<Flow>.
2015-08-20 16:49:48 +02:00
Simon Sapin
2d22aa8e7e
Replace the unsound impl DerefMut for FlowRef
with an unsafe function.
...
See #6503 .
2015-08-20 16:24:26 +02:00
Johann Tuffe
ec07178b6f
sort all uses
2015-08-20 20:47:12 +08:00
João Oliveira
067a22a868
Replace uses of for foo in bar.iter()
,
...
and `for foo in bar.iter_mut(), and for foo in bar.into_iter()
(continuation of #7197 )
2015-08-18 01:46:11 +01:00
Josh Matthews
8bb853f643
Fix existing syntactics nits.
2015-08-16 10:30:43 -04:00
Anthony Ramine
a49eb14615
Cache the number of children of each node
2015-07-31 23:32:30 +02:00
Ms2ger
14fbfa6aea
Remove unused implementation of ParallelPostorderFlowTraversal for BubbleISizes.
2015-07-23 19:30:43 +02:00
Ms2ger
a18dea6578
Pass the SharedLayoutContext to FlowTraversalFunctions directly.
2015-07-23 19:30:26 +02:00
Ms2ger
17a9f8507e
Remove the unused proxy argument to ParallelPostorderFlowTraversal::run_parallel.
2015-07-23 19:29:58 +02:00
Ms2ger
5d36fbca29
Reduce the amount of code in the unsafe block in ParallelPostorderFlowTraversal::run_parallel.
2015-07-17 14:52:00 +02:00
Ms2ger
3e2c44114c
Move the traversal traits into the traversal module.
2015-07-17 11:40:40 +02:00
Ms2ger
24730f1078
Borrow the QueueData for WorkQueue::run.
...
This allows us to get rid of the raw pointers and unsafe dereferencing in
the parallel layout implementation.
2015-07-04 08:55:48 +02:00
Ms2ger
41da4fceee
Remove the data field from WorkQueue.
...
It is only used in the run method.
2015-06-29 15:09:29 +02:00
Ms2ger
c214c03375
Pass shared_layout_context to run_queue_with_custom_work_data_type.
2015-06-29 15:07:50 +02:00
bors-servo
07a1e187f0
Auto merge of #6461 - Ms2ger:workqueuedata, r=pcwalton
...
Use a dedicated type for the opaque type parameter to WorkQueue in layout.
Currently, we use UnsafeFlow and UnsafeLayoutNode, both of which are aliases
for (usize, usize) and thus interconvertible. This change should make it
clearer that the WorkQueue is not limited to one particular type.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png " height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6461 )
<!-- Reviewable:end -->
2015-06-26 14:10:07 -06:00
Ms2ger
b6e5f8e7b6
Reduce the scope of the unsafe block in ParallelPostorderDomTraversal.
2015-06-25 22:34:00 +02:00
Ms2ger
b98a7f27a9
Remove a no-op transmute in ParallelPostorderDomTraversal.
2015-06-25 22:31:33 +02:00
Ms2ger
d0a29c3951
Use a dedicated type for the opaque type parameter to WorkQueue in layout.
...
Currently, we use UnsafeFlow and UnsafeLayoutNode, both of which are aliases
for (usize, usize) and thus interconvertible. This change should make it
clearer that the WorkQueue is not limited to one particular type.
2015-06-25 21:20:41 +02:00
Ms2ger
a42e11a95f
Replace the LayoutDataAccess trait by inherent methods.
2015-06-22 11:34:31 +02:00
Patrick Walton
732fd9e050
layout: Divide DOM nodes and flows into chunks, and perform work stealing over
...
those instead of working on nodes one-by-one.
This reduces the overhead of the work-stealing traversal function
significantly. It's especially important on ARM, where memory barriers are
expensive.
2015-06-12 16:07:39 -07:00
Michael Wu
c2ed42d2bc
Fix mutable transmutes
2015-05-19 15:27:40 -04:00
Nicholas Nethercote
092507d23c
Add a profile_traits
crate to reduce compile times.
...
A rebuild after touching components/profile/mem.rs now takes 48 seconds (and
only rebuilds `profile` and `servo`) which is much lower than it used to be.
In comparison, a rebuild after touching components/profile_traits/mem.rs takes
294 seconds and rebuilds many more crates.
This change also removes some unnecessary crate dependencies in `net` and
`net_traits`.
2015-04-30 17:58:47 -07:00
Ms2ger
2cc3c1d9c2
Use isize with children_count members.
...
I'm not size why these are signed.
2015-04-02 14:50:15 +02:00
Ms2ger
865d4b4eb4
Use usize for UnsafeFlow.
2015-03-29 12:51:27 +02:00
Fabrice Desré
0580ad9a82
Suppress unused import warnings
2015-03-25 22:57:27 -07:00
Nicholas Nethercote
ce36e574f4
Rename lots of profiling-related things.
...
------------------------------------------------------------------------
BEFORE AFTER
------------------------------------------------------------------------
util::memory util::mem
- heap_size_of - heap_size_of (unchanged)
- SizeOf - HeapSizeOf
- size_of_excluding_self - heap_size_of_children
prof::mem prof::mem
- MemoryProfilerChan - ProfilerChan
- MemoryReport - Report
- MemoryReportsChan - ReportsChan
- MemoryReporter - Reporter
- MemoryProfilerMsg - ProfilerMsg
- {R,UnR}egisterMemoryReporter - {R,UnR}egisterReporter
- MemoryProfiler - Prof
- ReportsForest - ReportsForest (unchanged)
- ReportsTree - ReportsTree (unchanged)
- SystemMemoryReporter - SystemReporter
prof::time prof::time
- TimeProfilerChan - ProfilerChan
- TimerMetadata - TimerMetadata (unchanged)
- Formatable - Formattable [spelling!]
- TimeProfilerMsg - ProfilerMsg
- TimeProfilerCategory - ProfilerCategory
- TimeProfilerBuckets - ProfilerBuckets
- TimeProfiler - Profiler
- TimerMetadataFrameType - TimerMetadataFrameType (unchanged)
- TimerMetadataReflowType - TimerMetadataReflowType (unchanged)
- ProfilerMetadata - ProfilerMetadata (unchanged)
In a few places both prof::time and prof::mem are used, and so
module-qualification is needed to avoid overlap, e.g. time::Profiler and
mem::Profiler. Likewise with std::mem and prof::mem. This is not a big
deal.
2015-03-25 16:00:23 -07:00
Nicholas Nethercote
52447ccd9b
Move profiler code from util
into a new crate profile
.
...
- Most of util::memory has been moved into profile::mem, though the
`SizeOf` trait and related things remain in util::memory. The
`SystemMemoryReporter` code is now in a submodule
profile::mem::system_reporter.
- util::time has been moved entirely into profile::time.
2015-03-24 02:09:31 -07:00
Manish Goregaokar
3479d3fa7f
Replace unsafe_blocks by unsafe_code.
2015-03-21 10:27:32 +01:00
Ms2ger
1604515fd9
Fix various build warnings.
2015-03-20 17:57:49 +01:00
Dan Fox
559ff68b31
Get rid of servo_util
2015-03-05 17:42:05 +00:00
Dan Fox
3441b2c329
layout/layout_data.rs -> layout/data.rs
2015-03-03 19:59:38 +00:00
Dan Fox
dd0df4e9c5
Rename util.rs -> layout_data.rs
2015-03-03 18:12:06 +00:00
Patrick Walton
40a3b41758
layout: Add an option to visualize parallel layout
2015-02-20 19:11:35 -08:00
Ms2ger
7c6b03abfe
Opt-in rather than opt-out to unsafe blocks in layout.
2015-02-08 20:03:27 +01:00
Josh Matthews
95fc29fa0d
Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev.
2015-01-28 10:16:49 +10:00
Ms2ger
13c7cf928a
Stop calling deref() and deref_mut() explicitly.
2015-01-22 16:04:21 +01:00
Ms2ger
faefb27f3e
Use std::sync::atomic::Ordering explicitly.
2015-01-22 14:49:25 +01:00
Ms2ger
4d47817bae
Rename TimeProfilerCategory variants.
2015-01-04 11:59:23 +01:00
Patrick Walton
7371e0b8e3
compositing: Implement cursor
per CSS3-UI § 8.1.1 in the CEF/Mac port.
...
I'm not sure how we want to handle Linux cursors, and GLFW has no
ability to set cursors (short of disabling it and managing it yourself).
2014-12-17 22:58:52 -08:00